{"version":3,"file":"js/chunk-vendors.8b64acfb.js","mappings":"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IAAgCjF,GACrEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,GACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACtEkF,GAAsC,IAAgCjF,IACt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T,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,aAAc,KACd,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,SAAU,KACV,SAAU,KACV,SAAU,KACV,QAAS,KACT,QAAS,KACT,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KACd,SAAU,KACV,QAAS,KACT,QAAS,KACT,QAAS,KACT,aAAc,KACd,QAAS,KACT,aAAc,KAC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eAAe1sD,EAChD9mE,KAAK09B,OAASsnc,EAEtB,EACAxkN,WAAY,SAAS39Q,GACjB7C,KAAKgzF,SAASnwF,GACd7C,KAAKsle,SAAU,QAAUzie,EAAE2wH,eAAe1sD,EAAI9mE,KAAKqle,cAC/Crle,KAAK09B,SAAWsnc,IACZhle,KAAKwje,kBAAoBxje,KAAKsle,QAAU,EACxCtle,KAAK09B,OAASunc,EAEdjle,KAAK0je,aAGT1je,KAAK09B,SAAWunc,IAChBpie,EAAEqqF,iBACFltF,KAAKule,gBAEb,EACAA,cAAe,WACX,IAAIC,EAAiBxle,KAAKyle,qBACtBz3d,EAAMiI,KAAKC,IAAI,EAAIsvd,EAAgBxle,KAAKsle,QAAUtle,KAAK0le,6BACvD3/M,EAAQ,IAAM/3Q,EAAMw3d,EAAiB,EACzCxle,KAAK+he,WAAWpgZ,IAAI,CAChBwF,QAAS,IACVimB,YAAY,EAAsCp/F,EAAMw3d,IAC3D,QAAKxle,KAAK+he,WAAY,CAClB/zd,IAAKA,IAEThO,KAAK20b,OAAOhzW,IAAI,CACZ0N,UAAW,UAAY02L,EAAQ,QAEvC,EACAo+M,YAAa,WACT,OAAOnke,KAAKwje,kBAAoBxje,KAAK09B,SAAWunc,GAAgBjle,KAAKsle,SAAWtle,KAAKyle,qBAAuBzle,KAAK0le,2BACrH,EACAD,mBAAoB,WAChB,OAAOxvd,KAAK64E,MAAM,KAAM,QAAe9uF,KAAK6qG,WAChD,EACA66X,0BAA2B,WACvB,OAAQzvd,KAAK64E,MAAM,KAAM,QAAe9uF,KAAK+he,YACjD,EACA0B,UAAW,WACHzje,KAAKmke,eACLnke,KAAK8je,sBAET9je,KAAK0je,WACT,EACAC,WAAY,WACR3je,KAAK0je,WACT,EACAA,UAAW,WACH1je,KAAK09B,SAAWsnc,GAAiBhle,KAAK09B,SAAWunc,GACjDjle,KAAKuie,eAEb,EACAwB,aAAc,SAASlhe,GAEnB,GADA7C,KAAKgzF,SAASnwF,GACV7C,KAAK09B,SAAW,EAApB,CAGA,IAAIsmc,EAAkBhke,KAAKijB,WAAWjV,IAClCi2d,EAAcjke,KAAKk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DhzF,KAAKmke,cACLnke,KAAKoke,iBACEpke,KAAKqke,iBACZrke,KAAK2me,oBACE3me,KAAK09B,SAAW,GACvB19B,KAAKuke,gBAEb,EACAqC,eAAgB,WACZ5me,KAAKqme,WAAWQ,OAAO7me,KAAKkje,eAAiBlje,KAAKkke,UACtD,EACAC,YAAa,WACT,OAAOnke,KAAKwje,kBAAoBxje,KAAKkke,WAAa,CACtD,EACAG,eAAgB,WACZ,IAAIjB,EAAcpje,KAAK08R,YAAY7yR,IAAI,GACvC,OAAO7J,KAAKwke,qBAAuBvud,KAAK64E,MAAM9uF,KAAKqje,gBAAkBptd,KAAK60D,KAAKs4Z,EAAYr5Y,aAAe,CAC9G,EACA+8Y,gBAAiB,WACT9me,KAAK+me,aAAe/me,KAAK09B,SAAW,EACpC19B,KAAK8je,sBACE9je,KAAK+me,aAAe/me,KAAK09B,SAAW,GAC3C19B,KAAKgne,sBAELhne,KAAKgzF,UAEb,EACA2zY,kBAAmB,WACX3me,KAAK09B,SAAW,KAGpB19B,KAAK09B,OAAS,GACd19B,KAAKine,WAAajne,KAAKkne,gBAC3B,EACAC,cAAe,WACX,OAAQnne,KAAKkje,cACjB,EACAgE,cAAe,WACX,OAAOrB,EAAK3vd,IAAIlW,KAAKgzF,YAAahzF,KAAKkje,eAC3C,EACA8D,oBAAqB,WACjBhne,KAAKqie,qBAAqB7jY,MAC9B,EACA4lY,eAAgB,WACRpke,KAAK09B,SAAW,IAGpB19B,KAAK09B,OAAS,EACd19B,KAAKone,WAAa,EAClBpne,KAAK+he,WAAWlgZ,SAAS,GACzB7hF,KAAK8ie,uBACT,EACAyB,eAAgB,WACRvke,KAAK09B,SAAW,IAGpB19B,KAAKuie,gBACLvie,KAAKgme,gBACLhme,KAAK+he,WAAWt+Y,YAAY,GAAsCA,YAAY,GAC9EzjF,KAAKoie,iBAAiB5jY,OAC1B,EACAslY,oBAAqB,WACb9je,KAAK09B,SAAW,IAGpB19B,KAAK09B,OAAS,EACd19B,KAAK+he,WAAWlgZ,SAAS,GAAsC4B,YAAY,GAC3EzjF,KAAK8ie,uBACL9ie,KAAKmie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","sources":["webpack://derogbio/./node_modules/@devextreme/runtime/esm/inferno/effect_host.js","webpack://derogbio/./node_modules/@devextreme/runtime/esm/inferno/base_component.js","webpack://derogbio/./node_modules/@devextreme/runtime/esm/inferno/create_context.js","webpack://derogbio/./node_modules/@devextreme/runtime/esm/inferno/effect.js","webpack://derogbio/./node_modules/@devextreme/runtime/esm/inferno/portal.js","webpack://derogbio/./node_modules/@devextreme/runtime/esm/inferno/re_render_effect.js","webpack://derogbio/./node_modules/@devextreme/runtime/esm/inferno/mocked/shared.js","webpack://derogbio/./node_modules/@devextreme/runtime/esm/inferno/mocked/hydrate.js","webpack://derogbio/./node_modules/@devextreme/runtime/esm/inferno/render_template.js","webpack://derogbio/./node_modules/@devextreme/runtime/esm/inferno/normalize_styles.js","webpack://derogbio/./node_modules/@sentry/hub/esm/session.js","webpack://derogbio/./node_modules/@sentry/hub/esm/hub.js","webpack://derogbio/./node_modules/@sentry/hub/esm/scope.js","webpack://derogbio/./node_modules/@sentry/minimal/esm/index.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/constants.js","webpack://derogbio/./node_modules/@sentry/types/esm/transaction.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/errors.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/hubextensions.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/idletransaction.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/backgroundtab.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/bindReporter.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/generateUniqueID.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/initMetric.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/observe.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/onHidden.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/web-vitals/getCLS.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/web-vitals/lib/getVisibilityWatcher.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/web-vitals/getFID.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/web-vitals/getLCP.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/metrics.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/request.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/router.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/browser/browsertracing.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/index.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/span.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/spanstatus.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/transaction.js","webpack://derogbio/./node_modules/@sentry/tracing/esm/utils.js","webpack://derogbio/./node_modules/@sentry/types/esm/session.js","webpack://derogbio/./node_modules/@sentry/types/esm/transport.js","webpack://derogbio/./node_modules/@sentry/utils/esm/browser.js","webpack://derogbio/./node_modules/@sentry/utils/esm/global.js","webpack://derogbio/./node_modules/@sentry/utils/esm/instrument.js","webpack://derogbio/./node_modules/@sentry/utils/esm/is.js","webpack://derogbio/./node_modules/@sentry/utils/esm/logger.js","webpack://derogbio/./node_modules/@sentry/utils/esm/misc.js","webpack://derogbio/./node_modules/@sentry/utils/esm/node.js","webpack://derogbio/./node_modules/@sentry/utils/esm/memo.js","webpack://derogbio/./node_modules/@sentry/utils/esm/object.js","webpack://derogbio/./node_modules/@sentry/utils/esm/stacktrace.js","webpack://derogbio/./node_modules/@sentry/utils/esm/string.js","webpack://derogbio/./node_modules/@sentry/utils/esm/supports.js","webpack://derogbio/./node_modules/@sentry/utils/esm/syncpromise.js","webpack://derogbio/./node_modules/@sentry/utils/esm/time.js","webpack://derogbio/./node_modules/@sentry/vue/esm/router.js","webpack://derogbio/./node_modules/@sentry/core/esm/integrations/functiontostring.js","webpack://derogbio/./node_modules/@sentry/core/esm/version.js","webpack://derogbio/./node_modules/@sentry/core/esm/integrations/inboundfilters.js","webpack://derogbio/./node_modules/@sentry/core/esm/sdk.js","webpack://derogbio/./node_modules/@sentry/utils/esm/polyfill.js","webpack://derogbio/./node_modules/@sentry/utils/esm/error.js","webpack://derogbio/./node_modules/@sentry/utils/esm/dsn.js","webpack://derogbio/./node_modules/@sentry/core/esm/integration.js","webpack://derogbio/./node_modules/@sentry/core/esm/baseclient.js","webpack://derogbio/./node_modules/@sentry/types/esm/status.js","webpack://derogbio/./node_modules/@sentry/core/esm/transports/noop.js","webpack://derogbio/./node_modules/@sentry/types/esm/severity.js","webpack://derogbio/./node_modules/@sentry/core/esm/basebackend.js","webpack://derogbio/./node_modules/@sentry/browser/esm/tracekit.js","webpack://derogbio/./node_modules/@sentry/browser/esm/parsers.js","webpack://derogbio/./node_modules/@sentry/browser/esm/eventbuilder.js","webpack://derogbio/./node_modules/@sentry/core/esm/request.js","webpack://derogbio/./node_modules/@sentry/core/esm/api.js","webpack://derogbio/./node_modules/@sentry/utils/esm/promisebuffer.js","webpack://derogbio/./node_modules/@sentry/utils/esm/async.js","webpack://derogbio/./node_modules/@sentry/browser/esm/transports/utils.js","webpack://derogbio/./node_modules/@sentry/browser/esm/transports/base.js","webpack://derogbio/./node_modules/@sentry/browser/esm/transports/fetch.js","webpack://derogbio/./node_modules/@sentry/browser/esm/transports/xhr.js","webpack://derogbio/./node_modules/@sentry/browser/esm/backend.js","webpack://derogbio/./node_modules/@sentry/browser/esm/helpers.js","webpack://derogbio/./node_modules/@sentry/browser/esm/integrations/breadcrumbs.js","webpack://derogbio/./node_modules/@sentry/browser/esm/client.js","webpack://derogbio/./node_modules/@sentry/browser/esm/integrations/trycatch.js","webpack://derogbio/./node_modules/@sentry/browser/esm/integrations/globalhandlers.js","webpack://derogbio/./node_modules/@sentry/browser/esm/integrations/linkederrors.js","webpack://derogbio/./node_modules/@sentry/browser/esm/integrations/dedupe.js","webpack://derogbio/./node_modules/@sentry/browser/esm/integrations/useragent.js","webpack://derogbio/./node_modules/@sentry/browser/esm/sdk.js","webpack://derogbio/./node_modules/@sentry/vue/esm/constants.js","webpack://derogbio/./node_modules/@sentry/vue/esm/components.js","webpack://derogbio/./node_modules/@sentry/vue/esm/errorhandler.js","webpack://derogbio/./node_modules/@sentry/vue/esm/tracing.js","webpack://derogbio/./node_modules/@sentry/vue/esm/sdk.js","webpack://derogbio/./node_modules/devextreme/dist/css/dx.common.css","webpack://derogbio/./node_modules/devextreme/dist/css/dx.light.css","webpack://derogbio/./node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/api.js","webpack://derogbio/./node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/getUrl.js","webpack://derogbio/./node_modules/@vue/cli-service/node_modules/css-loader/dist/runtime/noSourceMaps.js","webpack://derogbio/./node_modules/axios/index.js","webpack://derogbio/./node_modules/axios/lib/adapters/xhr.js","webpack://derogbio/./node_modules/axios/lib/axios.js","webpack://derogbio/./node_modules/axios/lib/cancel/Cancel.js","webpack://derogbio/./node_modules/axios/lib/cancel/CancelToken.js","webpack://derogbio/./node_modules/axios/lib/cancel/isCancel.js","webpack://derogbio/./node_modules/axios/lib/core/Axios.js","webpack://derogbio/./node_modules/axios/lib/core/InterceptorManager.js","webpack://derogbio/./node_modules/axios/lib/core/buildFullPath.js","webpack://derogbio/./node_modules/axios/lib/core/createError.js","webpack://derogbio/./node_modules/axios/lib/core/dispatchRequest.js","webpack://derogbio/./node_modules/axios/lib/core/enhanceError.js","webpack://derogbio/./node_modules/axios/lib/core/mergeConfig.js","webpack://derogbio/./node_modules/axios/lib/core/settle.js","webpack://derogbio/./node_modules/axios/lib/core/transformData.js","webpack://derogbio/./node_modules/axios/lib/defaults.js","webpack://derogbio/./node_modules/axios/lib/helpers/bind.js","webpack://derogbio/./node_modules/axios/lib/helpers/buildURL.js","webpack://derogbio/./node_modules/axios/lib/helpers/combineURLs.js","webpack://derogbio/./node_modules/axios/lib/helpers/cookies.js","webpack://derogbio/./node_modules/axios/lib/helpers/isAbsoluteURL.js","webpack://derogbio/./node_modules/axios/lib/helpers/isAxiosError.js","webpack://derogbio/./node_modules/axios/lib/helpers/isURLSameOrigin.js","webpack://derogbio/./node_modules/axios/lib/helpers/normalizeHeaderName.js","webpack://derogbio/./node_modules/axios/lib/helpers/parseHeaders.js","webpack://derogbio/./node_modules/axios/lib/helpers/spread.js","webpack://derogbio/./node_modules/axios/lib/utils.js","webpack://derogbio/./node_modules/core-js/internals/a-function.js","webpack://derogbio/./node_modules/core-js/internals/a-possible-prototype.js","webpack://derogbio/./node_modules/core-js/internals/add-to-unscopables.js","webpack://derogbio/./node_modules/core-js/internals/advance-string-index.js","webpack://derogbio/./node_modules/core-js/internals/an-instance.js","webpack://derogbio/./node_modules/core-js/internals/an-object.js","webpack://derogbio/./node_modules/core-js/internals/array-from.js","webpack://derogbio/./node_modules/core-js/internals/array-includes.js","webpack://derogbio/./node_modules/core-js/internals/array-method-is-strict.js","webpack://derogbio/./node_modules/core-js/internals/array-reduce.js","webpack://derogbio/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://derogbio/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://derogbio/./node_modules/core-js/internals/classof-raw.js","webpack://derogbio/./node_modules/core-js/internals/classof.js","webpack://derogbio/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://derogbio/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://derogbio/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://derogbio/./node_modules/core-js/internals/create-iterator-constructor.js","webpack://derogbio/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://derogbio/./node_modules/core-js/internals/create-property-descriptor.js","webpack://derogbio/./node_modules/core-js/internals/create-property.js","webpack://derogbio/./node_modules/core-js/internals/define-iterator.js","webpack://derogbio/./node_modules/core-js/internals/descriptors.js","webpack://derogbio/./node_modules/core-js/internals/document-create-element.js","webpack://derogbio/./node_modules/core-js/internals/dom-iterables.js","webpack://derogbio/./node_modules/core-js/internals/engine-is-ios.js","webpack://derogbio/./node_modules/core-js/internals/engine-is-node.js","webpack://derogbio/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://derogbio/./node_modules/core-js/internals/engine-user-agent.js","webpack://derogbio/./node_modules/core-js/internals/engine-v8-version.js","webpack://derogbio/./node_modules/core-js/internals/enum-bug-keys.js","webpack://derogbio/./node_modules/core-js/internals/export.js","webpack://derogbio/./node_modules/core-js/internals/fails.js","webpack://derogbio/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://derogbio/./node_modules/core-js/internals/function-bind-context.js","webpack://derogbio/./node_modules/core-js/internals/get-built-in.js","webpack://derogbio/./node_modules/core-js/internals/get-iterator-method.js","webpack://derogbio/./node_modules/core-js/internals/get-iterator.js","webpack://derogbio/./node_modules/core-js/internals/get-substitution.js","webpack://derogbio/./node_modules/core-js/internals/global.js","webpack://derogbio/./node_modules/core-js/internals/has.js","webpack://derogbio/./node_modules/core-js/internals/hidden-keys.js","webpack://derogbio/./node_modules/core-js/internals/host-report-errors.js","webpack://derogbio/./node_modules/core-js/internals/html.js","webpack://derogbio/./node_modules/core-js/internals/ie8-dom-define.js","webpack://derogbio/./node_modules/core-js/internals/indexed-object.js","webpack://derogbio/./node_modules/core-js/internals/inherit-if-required.js","webpack://derogbio/./node_modules/core-js/internals/inspect-source.js","webpack://derogbio/./node_modules/core-js/internals/internal-state.js","webpack://derogbio/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://derogbio/./node_modules/core-js/internals/is-forced.js","webpack://derogbio/./node_modules/core-js/internals/is-object.js","webpack://derogbio/./node_modules/core-js/internals/is-pure.js","webpack://derogbio/./node_modules/core-js/internals/is-regexp.js","webpack://derogbio/./node_modules/core-js/internals/iterate.js","webpack://derogbio/./node_modules/core-js/internals/iterator-close.js","webpack://derogbio/./node_modules/core-js/internals/iterators-core.js","webpack://derogbio/./node_modules/core-js/internals/iterators.js","webpack://derogbio/./node_modules/core-js/internals/microtask.js","webpack://derogbio/./node_modules/core-js/internals/native-promise-constructor.js","webpack://derogbio/./node_modules/core-js/internals/native-symbol.js","webpack://derogbio/./node_modules/core-js/internals/native-url.js","webpack://derogbio/./node_modules/core-js/internals/native-weak-map.js","webpack://derogbio/./node_modules/core-js/internals/new-promise-capability.js","webpack://derogbio/./node_modules/core-js/internals/not-a-regexp.js","webpack://derogbio/./node_modules/core-js/internals/object-assign.js","webpack://derogbio/./node_modules/core-js/internals/object-create.js","webpack://derogbio/./node_modules/core-js/internals/object-define-properties.js","webpack://derogbio/./node_modules/core-js/internals/object-define-property.js","webpack://derogbio/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://derogbio/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://derogbio/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://derogbio/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://derogbio/./node_modules/core-js/internals/object-keys-internal.js","webpack://derogbio/./node_modules/core-js/internals/object-keys.js","webpack://derogbio/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://derogbio/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://derogbio/./node_modules/core-js/internals/own-keys.js","webpack://derogbio/./node_modules/core-js/internals/path.js","webpack://derogbio/./node_modules/core-js/internals/perform.js","webpack://derogbio/./node_modules/core-js/internals/promise-resolve.js","webpack://derogbio/./node_modules/core-js/internals/redefine-all.js","webpack://derogbio/./node_modules/core-js/internals/redefine.js","webpack://derogbio/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://derogbio/./node_modules/core-js/internals/regexp-exec.js","webpack://derogbio/./node_modules/core-js/internals/regexp-flags.js","webpack://derogbio/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://derogbio/./node_modules/core-js/internals/require-object-coercible.js","webpack://derogbio/./node_modules/core-js/internals/same-value.js","webpack://derogbio/./node_modules/core-js/internals/set-global.js","webpack://derogbio/./node_modules/core-js/internals/set-species.js","webpack://derogbio/./node_modules/core-js/internals/set-to-string-tag.js","webpack://derogbio/./node_modules/core-js/internals/shared-key.js","webpack://derogbio/./node_modules/core-js/internals/shared-store.js","webpack://derogbio/./node_modules/core-js/internals/shared.js","webpack://derogbio/./node_modules/core-js/internals/species-constructor.js","webpack://derogbio/./node_modules/core-js/internals/string-multibyte.js","webpack://derogbio/./node_modules/core-js/internals/string-punycode-to-ascii.js","webpack://derogbio/./node_modules/core-js/internals/task.js","webpack://derogbio/./node_modules/core-js/internals/to-absolute-index.js","webpack://derogbio/./node_modules/core-js/internals/to-indexed-object.js","webpack://derogbio/./node_modules/core-js/internals/to-integer.js","webpack://derogbio/./node_modules/core-js/internals/to-length.js","webpack://derogbio/./node_modules/core-js/internals/to-object.js","webpack://derogbio/./node_modules/core-js/internals/to-primitive.js","webpack://derogbio/./node_modules/core-js/internals/to-string-tag-support.js","webpack://derogbio/./node_modules/core-js/internals/uid.js","webpack://derogbio/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://derogbio/./node_modules/core-js/internals/well-known-symbol.js","webpack://derogbio/./node_modules/core-js/modules/es.array.includes.js","webpack://derogbio/./node_modules/core-js/modules/es.array.iterator.js","webpack://derogbio/./node_modules/core-js/modules/es.array.reduce.js","webpack://derogbio/./node_modules/core-js/modules/es.json.stringify.js","webpack://derogbio/./node_modules/core-js/modules/es.object.assign.js","webpack://derogbio/./node_modules/core-js/modules/es.promise.js","webpack://derogbio/./node_modules/core-js/modules/es.regexp.constructor.js","webpack://derogbio/./node_modules/core-js/modules/es.regexp.exec.js","webpack://derogbio/./node_modules/core-js/modules/es.regexp.test.js","webpack://derogbio/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://derogbio/./node_modules/core-js/modules/es.string.includes.js","webpack://derogbio/./node_modules/core-js/modules/es.string.iterator.js","webpack://derogbio/./node_modules/core-js/modules/es.string.match.js","webpack://derogbio/./node_modules/core-js/modules/es.string.replace-all.js","webpack://derogbio/./node_modules/core-js/modules/es.string.replace.js","webpack://derogbio/./node_modules/core-js/modules/es.string.search.js","webpack://derogbio/./node_modules/core-js/modules/es.symbol.description.js","webpack://derogbio/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://derogbio/./node_modules/core-js/modules/web.url-search-params.js","webpack://derogbio/./node_modules/core-js/modules/web.url.js","webpack://derogbio/./node_modules/devextreme/esm/animation/frame.js","webpack://derogbio/./node_modules/devextreme/esm/animation/easing.js","webpack://derogbio/./node_modules/devextreme/esm/animation/fx.js","webpack://derogbio/./node_modules/devextreme/esm/animation/position.js","webpack://derogbio/./node_modules/devextreme/esm/animation/translator.js","webpack://derogbio/./node_modules/devextreme/esm/core/action.js","webpack://derogbio/./node_modules/devextreme/esm/core/class.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/comparator.js","webpack://derogbio/./node_modules/devextreme/esm/core/options/option_manager.js","webpack://derogbio/./node_modules/devextreme/esm/core/options/index.js","webpack://derogbio/./node_modules/devextreme/esm/core/postponed_operations.js","webpack://derogbio/./node_modules/devextreme/esm/core/component.js","webpack://derogbio/./node_modules/devextreme/esm/core/component_registrator_callbacks.js","webpack://derogbio/./node_modules/devextreme/esm/core/component_registrator.js","webpack://derogbio/./node_modules/devextreme/esm/core/config.js","webpack://derogbio/./node_modules/devextreme/esm/core/devices.js","webpack://derogbio/./node_modules/devextreme/esm/core/dom_adapter.js","webpack://derogbio/./node_modules/devextreme/esm/core/template_manager.js","webpack://derogbio/./node_modules/devextreme/esm/core/dom_component.js","webpack://derogbio/./node_modules/devextreme/esm/core/element.js","webpack://derogbio/./node_modules/devextreme/esm/core/element_data.js","webpack://derogbio/./node_modules/devextreme/esm/core/errors.js","webpack://derogbio/./node_modules/devextreme/esm/core/events_strategy.js","webpack://derogbio/./node_modules/devextreme/esm/core/guid.js","webpack://derogbio/./node_modules/devextreme/esm/core/memorized_callbacks.js","webpack://derogbio/./node_modules/devextreme/esm/core/options/utils.js","webpack://derogbio/./node_modules/devextreme/esm/core/renderer_base.js","webpack://derogbio/./node_modules/devextreme/esm/core/renderer.js","webpack://derogbio/./node_modules/devextreme/esm/core/resize_observer.js","webpack://derogbio/./node_modules/devextreme/esm/core/templates/bindable_template.js","webpack://derogbio/./node_modules/devextreme/esm/core/templates/child_default_template.js","webpack://derogbio/./node_modules/devextreme/esm/core/templates/empty_template.js","webpack://derogbio/./node_modules/devextreme/esm/core/templates/function_template.js","webpack://derogbio/./node_modules/devextreme/esm/core/templates/template_base.js","webpack://derogbio/./node_modules/devextreme/esm/core/http_request.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/ajax.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/array.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/array_compare.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/browser.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/call_once.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/callbacks.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/common.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/console.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/data.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/common/utils/date/toMilliseconds.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/date.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/date_serialization.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/deferred.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/dependency_injector.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/dom.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/error.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/extend.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/html_parser.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/icon.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/inflector.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/iterator.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/math.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/object.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/position.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/public_component.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/ready_callbacks.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/resize_callbacks.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/selection_filter.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/shadow_dom.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/size.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/storage.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/string.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/style.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/support.js","webpack://derogbio/./node_modules/devextreme/esm/core/templates/template_engine_registry.js","webpack://derogbio/./node_modules/devextreme/esm/core/templates/template_engines.js","webpack://derogbio/./node_modules/devextreme/esm/core/templates/template.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/template_manager.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/type.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/variable_wrapper.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/version.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/view_port.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/window.js","webpack://derogbio/./node_modules/devextreme/esm/core/version.js","webpack://derogbio/./node_modules/devextreme/esm/data/abstract_store.js","webpack://derogbio/./node_modules/devextreme/esm/data/array_query.js","webpack://derogbio/./node_modules/devextreme/esm/data/array_store.js","webpack://derogbio/./node_modules/devextreme/esm/data/array_utils.js","webpack://derogbio/./node_modules/devextreme/esm/data/custom_store.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/queue.js","webpack://derogbio/./node_modules/devextreme/esm/data/data_source/operation_manager.js","webpack://derogbio/./node_modules/devextreme/esm/data/data_source/data_source.js","webpack://derogbio/./node_modules/devextreme/esm/data/data_source/utils.js","webpack://derogbio/./node_modules/devextreme/esm/data/errors.js","webpack://derogbio/./node_modules/devextreme/esm/data/query_adapters.js","webpack://derogbio/./node_modules/devextreme/esm/data/remote_query.js","webpack://derogbio/./node_modules/devextreme/esm/data/query_implementation.js","webpack://derogbio/./node_modules/devextreme/esm/data/query.js","webpack://derogbio/./node_modules/devextreme/esm/data/store_helper.js","webpack://derogbio/./node_modules/devextreme/esm/data/utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/collection/data_controller.js","webpack://derogbio/./node_modules/devextreme/esm/data_helper.js","webpack://derogbio/./node_modules/devextreme/esm/events/utils/event_nodes_disposing.js","webpack://derogbio/./node_modules/devextreme/esm/events/click.js","webpack://derogbio/./node_modules/devextreme/esm/events/contextmenu.js","webpack://derogbio/./node_modules/devextreme/esm/events/core/emitter.feedback.js","webpack://derogbio/./node_modules/devextreme/esm/events/core/emitter.js","webpack://derogbio/./node_modules/devextreme/esm/events/core/emitter_registrator.js","webpack://derogbio/./node_modules/devextreme/esm/events/core/event_registrator.js","webpack://derogbio/./node_modules/devextreme/esm/events/core/event_registrator_callbacks.js","webpack://derogbio/./node_modules/devextreme/esm/events/core/hook_touch_props.js","webpack://derogbio/./node_modules/devextreme/esm/events/core/events_engine.js","webpack://derogbio/./node_modules/devextreme/esm/events/core/keyboard_processor.js","webpack://derogbio/./node_modules/devextreme/esm/events/core/wheel.js","webpack://derogbio/./node_modules/devextreme/esm/events/double_click.js","webpack://derogbio/./node_modules/devextreme/esm/events/drag.js","webpack://derogbio/./node_modules/devextreme/esm/events/gesture/emitter.gesture.js","webpack://derogbio/./node_modules/devextreme/esm/events/gesture/emitter.gesture.scroll.js","webpack://derogbio/./node_modules/devextreme/esm/events/gesture/swipeable.js","webpack://derogbio/./node_modules/devextreme/esm/events/hold.js","webpack://derogbio/./node_modules/devextreme/esm/events/hover.js","webpack://derogbio/./node_modules/devextreme/esm/events/pointer/base.js","webpack://derogbio/./node_modules/devextreme/esm/events/pointer/touch.js","webpack://derogbio/./node_modules/devextreme/esm/events/pointer/observer.js","webpack://derogbio/./node_modules/devextreme/esm/events/pointer/mouse.js","webpack://derogbio/./node_modules/devextreme/esm/events/pointer/mouse_and_touch.js","webpack://derogbio/./node_modules/devextreme/esm/events/pointer.js","webpack://derogbio/./node_modules/devextreme/esm/events/remove.js","webpack://derogbio/./node_modules/devextreme/esm/events/short.js","webpack://derogbio/./node_modules/devextreme/esm/events/swipe.js","webpack://derogbio/./node_modules/devextreme/esm/events/utils/add_namespace.js","webpack://derogbio/./node_modules/devextreme/esm/events/utils/index.js","webpack://derogbio/./node_modules/devextreme/esm/events/visibility_change.js","webpack://derogbio/./node_modules/devextreme/esm/format_helper.js","webpack://derogbio/./node_modules/devextreme/esm/localization.js","webpack://derogbio/./node_modules/devextreme/esm/localization/cldr-data/parent_locales.js","webpack://derogbio/./node_modules/devextreme/esm/localization/parentLocale.js","webpack://derogbio/./node_modules/devextreme/esm/localization/core.js","webpack://derogbio/./node_modules/devextreme/esm/localization/currency.js","webpack://derogbio/./node_modules/devextreme/esm/localization/cldr-data/first_day_of_week_data.js","webpack://derogbio/./node_modules/devextreme/esm/localization/intl/date.js","webpack://derogbio/./node_modules/devextreme/esm/localization/date.js","webpack://derogbio/./node_modules/devextreme/esm/localization/default_date_names.js","webpack://derogbio/./node_modules/devextreme/esm/localization/ldml/date.format.js","webpack://derogbio/./node_modules/devextreme/esm/localization/ldml/date.formatter.js","webpack://derogbio/./node_modules/devextreme/esm/localization/ldml/date.parser.js","webpack://derogbio/./node_modules/devextreme/esm/localization/ldml/number.js","webpack://derogbio/./node_modules/devextreme/esm/localization/default_messages.js","webpack://derogbio/./node_modules/devextreme/esm/localization/message.js","webpack://derogbio/./node_modules/devextreme/esm/localization/open_xml_currency_format.js","webpack://derogbio/./node_modules/devextreme/esm/localization/cldr-data/accounting_formats.js","webpack://derogbio/./node_modules/devextreme/esm/localization/intl/number.js","webpack://derogbio/./node_modules/devextreme/esm/localization/number.js","webpack://derogbio/./node_modules/devextreme/esm/localization/utils.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/common/config_context.js","webpack://derogbio/./node_modules/devextreme/esm/core/inferno_renderer.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/utils/shallow_equals.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/component_wrapper/utils/utils.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/component_wrapper/common/template_wrapper.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/component_wrapper/utils/update_props_immutable.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/component_wrapper/common/component.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/common/base_props.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/common/utils/get_updated_options.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/common/dom_component_wrapper.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/common/config_provider.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/utils/resolve_rtl.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/common/widget.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/overlays/validation_message.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/editors/common/editor.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/scroll_view/common/consts.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_relative_offset.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/scroll_direction.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/utils/combine_classes.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/utils/get_computed_style.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/utils/subscribe_to_event.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/utils/type_conversion.js","webpack://derogbio/./node_modules/devextreme/esm/ui/box.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/component_wrapper/button.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/common/icon.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/common/ink_ripple.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/button.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/button.j.js","webpack://derogbio/./node_modules/devextreme/esm/ui/button.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/utils/dom.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/component_wrapper/editors/editor.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/component_wrapper/editors/check_box.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/editors/check_box/utils.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box_icon.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/editors/check_box/check_box.j.js","webpack://derogbio/./node_modules/devextreme/esm/ui/check_box.js","webpack://derogbio/./node_modules/devextreme/esm/ui/collection/item.js","webpack://derogbio/./node_modules/devextreme/esm/ui/collection/ui.collection_widget.base.js","webpack://derogbio/./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.js","webpack://derogbio/./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.js","webpack://derogbio/./node_modules/devextreme/esm/ui/collection/ui.collection_widget.edit.strategy.plain.js","webpack://derogbio/./node_modules/devextreme/esm/ui/collection/ui.collection_widget.live_update.js","webpack://derogbio/./node_modules/devextreme/esm/ui/context_menu/ui.context_menu.js","webpack://derogbio/./node_modules/devextreme/esm/ui/context_menu.js","webpack://derogbio/./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.edit.strategy.js","webpack://derogbio/./node_modules/devextreme/esm/ui/context_menu/ui.menu_base.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_headers.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.columns_controller.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.data_source_adapter.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.data_controller.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.sorting.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.rows.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.context_menu.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.error_handling.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grid_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.header_panel.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.base.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.state_storing.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.selection.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_chooser.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.core.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.expanded.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.collapsed.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.grouping.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.master_detail.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editor_factory.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_row_based.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_form_based.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.editing_cell_based.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.validating.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.virtual_scrolling.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_row.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.header_filter.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_sync.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_builder.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.filter_panel.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.search.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.pager.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.columns_resizing_reordering.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.keyboard_navigation.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/aggregate_calculator.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.summary.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.column_fixing.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.adaptivity.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.virtual_columns.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.export.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/file_saver.js","webpack://derogbio/./node_modules/devextreme/esm/localization/language_codes.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel_format_converter.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel/excel.tag_helper.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel/excel.cell_alignment_helper.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel/excel.color_helper.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel/excel.pattern_fill_helper.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel/excel.fill_helper.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel/excel.font_helper.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel/excel.cell_format_helper.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel/excel.number_format_helper.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel/excel.file.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/excel_creator.js","webpack://derogbio/./node_modules/devextreme/esm/color.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/svg.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/image_creator.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/svg_creator.js","webpack://derogbio/./node_modules/devextreme/esm/exporter/pdf_creator.js","webpack://derogbio/./node_modules/devextreme/esm/exporter.js","webpack://derogbio/./node_modules/devextreme/esm/ui/button_group.js","webpack://derogbio/./node_modules/devextreme/esm/ui/drop_down_button.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.export.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.focus.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.row_dragging.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid.js","webpack://derogbio/./node_modules/devextreme/esm/ui/data_grid/ui.data_grid.core.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.parts.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/calendar/ui.calendar.navigator.js","webpack://derogbio/./node_modules/devextreme/esm/ui/calendar/ui.calendar.base_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/calendar/ui.calendar.views.js","webpack://derogbio/./node_modules/devextreme/esm/ui/calendar/ui.calendar.js","webpack://derogbio/./node_modules/devextreme/esm/ui/calendar.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/convert_location.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_view_roller.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.date_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.native.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.time_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_box.strategy.list.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_box.base.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_box.mask.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box/ui.date_box.js","webpack://derogbio/./node_modules/devextreme/esm/ui/date_box.js","webpack://derogbio/./node_modules/devextreme/esm/ui/dialog.js","webpack://derogbio/./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_button.js","webpack://derogbio/./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_editor.js","webpack://derogbio/./node_modules/devextreme/esm/ui/drop_down_editor/utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/editor/editor.js","webpack://derogbio/./node_modules/devextreme/esm/ui/editor/ui.data_expression.js","webpack://derogbio/./node_modules/devextreme/esm/ui/filter_builder/between.js","webpack://derogbio/./node_modules/devextreme/esm/ui/filter_builder/ui.filter_operations_dictionary.js","webpack://derogbio/./node_modules/devextreme/esm/ui/filter_builder/utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/ui.form.items_runtime_info.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/ui.form.item_option_action.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/ui.form.utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/ui.form.item_options_actions.js","webpack://derogbio/./node_modules/devextreme/esm/ui/responsive_box.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/constants.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/components/label.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/components/field_item.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/components/button_item.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/components/empty_item.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/ui.form.layout_manager.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form/ui.form.js","webpack://derogbio/./node_modules/devextreme/esm/ui/form.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.accessibility.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.adaptivity.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_chooser.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_fixing.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_headers.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_controller.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_resizing_reordering.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.column_state_mixin.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.columns_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.context_menu.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.data_controller.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.data_source_adapter.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_cell_based.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_constants.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_form_based.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editing_row_based.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.editor_factory.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.error_handling.js","webpack://derogbio/./node_modules/devextreme/esm/ui/filter_builder/filter_builder.js","webpack://derogbio/./node_modules/devextreme/esm/ui/filter_builder.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_builder.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_panel.js","webpack://derogbio/./node_modules/devextreme/esm/ui/menu/ui.submenu.js","webpack://derogbio/./node_modules/devextreme/esm/ui/menu/ui.menu.js","webpack://derogbio/./node_modules/devextreme/esm/ui/menu.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_row.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_custom_operations.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.filter_sync.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.focus.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.grid_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_filter_core.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_filter.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.header_panel.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.keyboard_navigation.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.master_detail.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.modules.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/component_wrapper/grid_pager.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/utils/get_element_width.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/resizable_container.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/common/base_pager_props.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/common/pager_props.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/info.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/common/keyboard_action_context.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/common/light_button.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/common/consts.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/pages/page.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/pages/large.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/editors/common/editor_state_props.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/editors/common/editor_label_props.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/editors/number_box.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/utils/calculate_values_fitted_width.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/pages/small.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/pages/page_index_selector.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/editors/drop_down_editors/select_box.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/page_size/small.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/page_size/large.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/page_size/selector.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/content.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/pager.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/pager/pager.j.js","webpack://derogbio/./node_modules/devextreme/esm/ui/pager.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.pager.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.row_dragging.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.rows.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.search.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.selection.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.sorting_mixin.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.sorting.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.state_storing_core.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.state_storing.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.validating.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_columns_core.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_columns.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid.core.virtual_data_loader.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_scrolling_core.js","webpack://derogbio/./node_modules/devextreme/esm/ui/grid_core/ui.grid_core.virtual_scrolling.js","webpack://derogbio/./node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_converter.js","webpack://derogbio/./node_modules/devextreme/esm/ui/hierarchical_collection/ui.data_adapter.js","webpack://derogbio/./node_modules/devextreme/esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list/modules/search.js","webpack://derogbio/./node_modules/devextreme/esm/ui/radio_group/radio_button.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.selection.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list/item.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_style.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list/ui.list.base.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list/ui.list.edit.decorator_registry.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list/ui.list.edit.strategy.grouped.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list/ui.list.edit.provider.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list/ui.list.edit.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list/ui.list.edit.search.js","webpack://derogbio/./node_modules/devextreme/esm/ui/list_light.js","webpack://derogbio/./node_modules/devextreme/esm/ui/load_indicator.js","webpack://derogbio/./node_modules/devextreme/esm/ui/load_panel.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toast/ui.toast.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toast.js","webpack://derogbio/./node_modules/devextreme/esm/ui/notify.js","webpack://derogbio/./node_modules/devextreme/esm/ui/number_box/utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/number_box/number_box.caret.js","webpack://derogbio/./node_modules/devextreme/esm/ui/number_box/number_box.spin.js","webpack://derogbio/./node_modules/devextreme/esm/ui/number_box/number_box.spins.js","webpack://derogbio/./node_modules/devextreme/esm/ui/number_box/number_box.base.js","webpack://derogbio/./node_modules/devextreme/esm/ui/number_box/number_box.mask.js","webpack://derogbio/./node_modules/devextreme/esm/ui/number_box/number_box.js","webpack://derogbio/./node_modules/devextreme/esm/ui/number_box.js","webpack://derogbio/./node_modules/devextreme/esm/ui/overlay/overlay_position_controller.js","webpack://derogbio/./node_modules/devextreme/esm/mobile/hide_callback.js","webpack://derogbio/./node_modules/devextreme/esm/ui/overlay/ui.overlay.js","webpack://derogbio/./node_modules/devextreme/esm/ui/overlay/utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/overlay/z_index.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/resizable/utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/popover/popover_position_controller.js","webpack://derogbio/./node_modules/devextreme/esm/ui/popover/ui.popover.js","webpack://derogbio/./node_modules/devextreme/esm/ui/popup/ui.popup.full.js","webpack://derogbio/./node_modules/devextreme/esm/ui/popup.js","webpack://derogbio/./node_modules/devextreme/esm/ui/popup/popup_drag.js","webpack://derogbio/./node_modules/devextreme/esm/ui/resizable.js","webpack://derogbio/./node_modules/devextreme/esm/ui/popup/popup_position_controller.js","webpack://derogbio/./node_modules/devextreme/esm/ui/popup/ui.popup.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.pull_down.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.simulated.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/ui.scroll_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/animator.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.device.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.native.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_element_location_internal.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.old.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/ui.scrollable.simulated.js","webpack://derogbio/./node_modules/devextreme/esm/ui/scroll_view/ui.scrollbar.js","webpack://derogbio/./node_modules/devextreme/esm/ui/drop_down_editor/ui.drop_down_list.js","webpack://derogbio/./node_modules/devextreme/esm/ui/select_box.js","webpack://derogbio/./node_modules/devextreme/esm/ui/selection/selection.strategy.js","webpack://derogbio/./node_modules/devextreme/esm/ui/selection/selection.strategy.deferred.js","webpack://derogbio/./node_modules/devextreme/esm/ui/selection/selection.strategy.standard.js","webpack://derogbio/./node_modules/devextreme/esm/ui/selection/selection.js","webpack://derogbio/./node_modules/devextreme/esm/ui/shared/accessibility.js","webpack://derogbio/./node_modules/devextreme/esm/ui/shared/filtering.js","webpack://derogbio/./node_modules/devextreme/esm/ui/shared/grouped_data_converter_mixin.js","webpack://derogbio/./node_modules/devextreme/esm/ui/shared/ui.editor_factory_mixin.js","webpack://derogbio/./node_modules/devextreme/esm/ui/draggable.js","webpack://derogbio/./node_modules/devextreme/esm/ui/sortable.js","webpack://derogbio/./node_modules/devextreme/esm/ui/multi_view/ui.multi_view.animation.js","webpack://derogbio/./node_modules/devextreme/esm/ui/multi_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/tabs/item.js","webpack://derogbio/./node_modules/devextreme/esm/ui/tabs/constants.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js","webpack://derogbio/./node_modules/devextreme/esm/renovation/ui/scroll_view/utils/get_boundary_props.js","webpack://derogbio/./node_modules/devextreme/esm/ui/tabs.js","webpack://derogbio/./node_modules/devextreme/esm/ui/tab_panel/item.js","webpack://derogbio/./node_modules/devextreme/esm/ui/tab_panel.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/text_box.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/button.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/utils.support.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.rule.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/ui.text_editor.clear.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/custom.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/texteditor_button_collection/index.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/ui.text_editor.label.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/ui.text_editor.base.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.base.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.default.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.strategy.input_events.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/ui.text_editor.mask.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/ui.text_editor.js","webpack://derogbio/./node_modules/devextreme/esm/ui/text_box/utils.caret.js","webpack://derogbio/./node_modules/devextreme/esm/ui/themes.js","webpack://derogbio/./node_modules/devextreme/esm/ui/themes_callback.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.utils.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toolbar/strategy/toolbar.multiline.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toolbar/internal/ui.toolbar.menu.list.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toolbar/internal/ui.toolbar.menu.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toolbar/strategy/toolbar.singleline.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toolbar.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toolbar/constants.js","webpack://derogbio/./node_modules/devextreme/esm/ui/collection/ui.collection_widget.async.js","webpack://derogbio/./node_modules/devextreme/esm/ui/toolbar/ui.toolbar.base.js","webpack://derogbio/./node_modules/devextreme/esm/ui/tooltip/tooltip.js","webpack://derogbio/./node_modules/devextreme/esm/ui/tooltip.js","webpack://derogbio/./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.base.js","webpack://derogbio/./node_modules/devextreme/esm/ui/tree_view/ui.tree_view.search.js","webpack://derogbio/./node_modules/devextreme/esm/ui/tree_view.js","webpack://derogbio/./node_modules/devextreme/esm/ui/validation_engine.js","webpack://derogbio/./node_modules/devextreme/esm/ui/validation_group.js","webpack://derogbio/./node_modules/devextreme/esm/ui/validation_message.js","webpack://derogbio/./node_modules/devextreme/esm/ui/validation_summary.js","webpack://derogbio/./node_modules/devextreme/esm/ui/validation/default_adapter.js","webpack://derogbio/./node_modules/devextreme/esm/ui/validator.js","webpack://derogbio/./node_modules/devextreme/esm/ui/widget/selectors.js","webpack://derogbio/./node_modules/devextreme/esm/ui/widget/swatch_container.js","webpack://derogbio/./node_modules/devextreme/esm/ui/widget/ui.errors.js","webpack://derogbio/./node_modules/devextreme/esm/core/utils/stubs.js","webpack://derogbio/./node_modules/devextreme/esm/ui/widget/ui.search_box_mixin.js","webpack://derogbio/./node_modules/devextreme/esm/ui/widget/ui.widget.js","webpack://derogbio/./node_modules/devextreme/esm/ui/widget/utils.ink_ripple.js","webpack://derogbio/./node_modules/inferno-create-element/dist/index.esm.js","webpack://derogbio/./node_modules/inferno/dist/index.esm.js","webpack://derogbio/./node_modules/jszip/dist/jszip.min.js","webpack://derogbio/./node_modules/lodash/_Symbol.js","webpack://derogbio/./node_modules/lodash/_arrayMap.js","webpack://derogbio/./node_modules/lodash/_arrayReduce.js","webpack://derogbio/./node_modules/lodash/_asciiToArray.js","webpack://derogbio/./node_modules/lodash/_asciiWords.js","webpack://derogbio/./node_modules/lodash/_baseGetTag.js","webpack://derogbio/./node_modules/lodash/_basePropertyOf.js","webpack://derogbio/./node_modules/lodash/_baseSlice.js","webpack://derogbio/./node_modules/lodash/_baseToString.js","webpack://derogbio/./node_modules/lodash/_castSlice.js","webpack://derogbio/./node_modules/lodash/_createCaseFirst.js","webpack://derogbio/./node_modules/lodash/_createCompounder.js","webpack://derogbio/./node_modules/lodash/_deburrLetter.js","webpack://derogbio/./node_modules/lodash/_freeGlobal.js","webpack://derogbio/./node_modules/lodash/_getRawTag.js","webpack://derogbio/./node_modules/lodash/_hasUnicode.js","webpack://derogbio/./node_modules/lodash/_hasUnicodeWord.js","webpack://derogbio/./node_modules/lodash/_objectToString.js","webpack://derogbio/./node_modules/lodash/_root.js","webpack://derogbio/./node_modules/lodash/_stringToArray.js","webpack://derogbio/./node_modules/lodash/_unicodeToArray.js","webpack://derogbio/./node_modules/lodash/_unicodeWords.js","webpack://derogbio/./node_modules/lodash/camelCase.js","webpack://derogbio/./node_modules/lodash/capitalize.js","webpack://derogbio/./node_modules/lodash/deburr.js","webpack://derogbio/./node_modules/lodash/isArray.js","webpack://derogbio/./node_modules/lodash/isObjectLike.js","webpack://derogbio/./node_modules/lodash/isSymbol.js","webpack://derogbio/./node_modules/lodash/toString.js","webpack://derogbio/./node_modules/lodash/upperFirst.js","webpack://derogbio/./node_modules/lodash/words.js","webpack://derogbio/./node_modules/tslib/tslib.es6.js","webpack://derogbio/./node_modules/vue-i18n/dist/vue-i18n.esm.js","webpack://derogbio/./node_modules/vue-router/dist/vue-router.esm.js","webpack://derogbio/./node_modules/devextreme/dist/css/dx.common.css?9084","webpack://derogbio/./node_modules/devextreme/dist/css/dx.light.css?509c","webpack://derogbio/./node_modules/vue-style-loader/lib/listToStyles.js","webpack://derogbio/./node_modules/vue-style-loader/lib/addStylesClient.js","webpack://derogbio/./node_modules/vue-wait/dist/vue-wait.js","webpack://derogbio/./node_modules/vue/dist/vue.runtime.esm.js","webpack://derogbio/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://derogbio/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://derogbio/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://derogbio/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://derogbio/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://derogbio/./node_modules/@babel/runtime/helpers/esm/objectSpread2.js","webpack://derogbio/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"sourcesContent":["export const InfernoEffectHost = {\n lockCount: 0,\n lock() {\n this.lockCount++;\n },\n callbacks: [],\n callEffects() {\n this.lockCount--;\n if (this.lockCount < 0) {\n throw new Error('Unexpected Effect Call');\n }\n if (this.lockCount === 0) {\n const effects = this.callbacks;\n this.callbacks = [];\n effects.forEach((callback) => callback());\n }\n },\n};\n","import { Component, findDOMfromVNode } from 'inferno';\nimport { InfernoEffectHost } from './effect_host';\nconst areObjectsEqual = (firstObject, secondObject) => {\n const bothAreObjects = firstObject instanceof Object && secondObject instanceof Object;\n if (!bothAreObjects) {\n return firstObject === secondObject;\n }\n const firstObjectKeys = Object.keys(firstObject);\n const secondObjectKeys = Object.keys(secondObject);\n if (firstObjectKeys.length !== secondObjectKeys.length) {\n return false;\n }\n const hasDifferentElement = firstObjectKeys.some((key) => firstObject[key] !== secondObject[key]);\n return !hasDifferentElement;\n};\nexport class BaseInfernoComponent extends Component {\n constructor() {\n super(...arguments);\n this._pendingContext = this.context;\n }\n componentWillReceiveProps(_, context) {\n this._pendingContext = context !== null && context !== void 0 ? context : {};\n }\n shouldComponentUpdate(nextProps, nextState) {\n return (!areObjectsEqual(this.props, nextProps)\n || !areObjectsEqual(this.state, nextState)\n || !areObjectsEqual(this.context, this._pendingContext));\n }\n}\nexport class InfernoComponent extends BaseInfernoComponent {\n constructor() {\n super(...arguments);\n this._effects = [];\n }\n createEffects() {\n return [];\n }\n updateEffects() { }\n componentWillMount() {\n InfernoEffectHost.lock();\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n componentWillUpdate(_nextProps, _nextState, _context) {\n InfernoEffectHost.lock();\n }\n componentDidMount() {\n InfernoEffectHost.callbacks.push(() => { this._effects = this.createEffects(); });\n InfernoEffectHost.callEffects();\n }\n componentDidUpdate() {\n InfernoEffectHost.callbacks.push(() => this.updateEffects());\n InfernoEffectHost.callEffects();\n }\n destroyEffects() {\n this._effects.forEach((e) => e.dispose());\n }\n componentWillUnmount() {\n this.destroyEffects();\n }\n}\nexport class InfernoWrapperComponent extends InfernoComponent {\n constructor() {\n super(...arguments);\n this.vDomElement = null;\n }\n vDomUpdateClasses() {\n const el = this.vDomElement;\n const currentClasses = el.className.length\n ? el.className.split(' ')\n : [];\n const addedClasses = currentClasses.filter((className) => el.dxClasses.previous.indexOf(className) < 0);\n const removedClasses = el.dxClasses.previous.filter((className) => currentClasses.indexOf(className) < 0);\n addedClasses.forEach((value) => {\n const indexInRemoved = el.dxClasses.removed.indexOf(value);\n if (indexInRemoved > -1) {\n el.dxClasses.removed.splice(indexInRemoved, 1);\n }\n else {\n el.dxClasses.added.push(value);\n }\n });\n removedClasses.forEach((value) => {\n const indexInAdded = el.dxClasses.added.indexOf(value);\n if (indexInAdded > -1) {\n el.dxClasses.added.splice(indexInAdded, 1);\n }\n else {\n el.dxClasses.removed.push(value);\n }\n });\n }\n componentDidMount() {\n const el = findDOMfromVNode(this.$LI, true);\n this.vDomElement = el;\n super.componentDidMount();\n el.dxClasses = el.dxClasses || {\n removed: [], added: [], previous: [],\n };\n el.dxClasses.previous = (el === null || el === void 0 ? void 0 : el.className.length) ? el.className.split(' ')\n : [];\n }\n componentDidUpdate() {\n super.componentDidUpdate();\n const el = this.vDomElement;\n if (el !== null) {\n el.dxClasses.added.forEach((className) => el.classList.add(className));\n el.dxClasses.removed.forEach((className) => el.classList.remove(className));\n el.dxClasses.previous = el.className.length\n ? el.className.split(' ')\n : [];\n }\n }\n shouldComponentUpdate(nextProps, nextState) {\n const shouldUpdate = super.shouldComponentUpdate(nextProps, nextState);\n if (shouldUpdate) {\n this.vDomUpdateClasses();\n }\n return shouldUpdate;\n }\n}\n","import { Component } from 'inferno';\nlet contextId = 0;\nexport const createContext = function (defaultValue) {\n const id = contextId++;\n return {\n id,\n defaultValue,\n Provider: class extends Component {\n getChildContext() {\n return Object.assign(Object.assign({}, this.context), { [id]: this.props.value || defaultValue });\n }\n render() {\n return this.props.children;\n }\n },\n };\n};\n","export class InfernoEffect {\n constructor(effect, dependency) {\n this.dependency = dependency;\n this.effect = effect;\n this.destroy = effect();\n }\n update(dependency) {\n const currentDependency = this.dependency;\n if (dependency) {\n this.dependency = dependency;\n }\n if (!dependency || dependency.some((d, i) => currentDependency[i] !== d)) {\n this.dispose();\n this.destroy = this.effect();\n }\n }\n dispose() {\n if (this.destroy) {\n this.destroy();\n }\n }\n}\n","import { createPortal } from 'inferno';\nexport const Portal = ({ container, children }) => {\n if (container) {\n return createPortal(children, container);\n }\n return null;\n};\n","import { rerender as reRender } from 'inferno';\nimport { InfernoEffect } from './effect';\nexport const createReRenderEffect = () => new InfernoEffect(() => {\n reRender();\n}, []);\n","export const ERROR_MSG = 'a runtime error occured! Use Inferno in development environment to find the error.';\nexport function isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nexport function isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nexport function isFunction(o) {\n return typeof o === 'function';\n}\nexport function isNull(o) {\n return o === null;\n}\nexport function throwError(message) {\n if (!message) {\n message = ERROR_MSG;\n }\n throw new Error(`Inferno Error: ${message}`);\n}\n","import { _CI, _HI, _M, _MCCC, _ME, _MFCC, _MP, _MR, EMPTY_OBJ, render, _RFC as renderFunctionalComponent, } from 'inferno';\nimport { isFunction, isInvalid, isNull, isNullOrUndef, throwError, } from './shared';\nfunction isSameInnerHTML(dom, innerHTML) {\n const tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\nfunction findLastDOMFromVNode(vNode) {\n let flags;\n let children;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n children = vNode.children;\n if (flags & 8192 /* Fragment */) {\n vNode = vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[children.length - 1];\n }\n else if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n else {\n vNode = children;\n }\n }\n return null;\n}\nfunction isSamePropsInnerHTML(dom, props) {\n return Boolean(props && props.dangerouslySetInnerHTML && props.dangerouslySetInnerHTML.__html && isSameInnerHTML(dom, props.dangerouslySetInnerHTML.__html));\n}\nfunction hydrateComponent(vNode, parentDOM, dom, context, isSVG, isClass, lifecycle) {\n const type = vNode.type;\n const ref = vNode.ref;\n const props = vNode.props || EMPTY_OBJ;\n let currentNode;\n if (isClass) {\n const instance = _CI(vNode, type, props, context, isSVG, lifecycle);\n const input = instance.$LI;\n currentNode = hydrateVNode(input, parentDOM, dom, instance.$CX, isSVG, lifecycle);\n _MCCC(ref, instance, lifecycle);\n }\n else {\n const input = _HI(renderFunctionalComponent(vNode, context));\n currentNode = hydrateVNode(input, parentDOM, dom, context, isSVG, lifecycle);\n vNode.children = input;\n _MFCC(vNode, lifecycle);\n }\n return currentNode;\n}\nfunction hydrateChildren(parentVNode, parentNode, currentNode, context, isSVG, lifecycle) {\n const childFlags = parentVNode.childFlags;\n const children = parentVNode.children;\n const props = parentVNode.props;\n const flags = parentVNode.flags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (isNull(currentNode)) {\n _M(children, parentNode, context, isSVG, null, lifecycle);\n }\n else {\n currentNode = hydrateVNode(children, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n }\n else if (childFlags === 16 /* HasTextChildren */) {\n if (isNull(currentNode)) {\n parentNode.appendChild(document.createTextNode(children));\n }\n else if (parentNode.childNodes.length !== 1 || currentNode.nodeType !== 3) {\n parentNode.textContent = children;\n }\n else if (currentNode.nodeValue !== children) {\n currentNode.nodeValue = children;\n }\n currentNode = null;\n }\n else if (childFlags & 12 /* MultipleChildren */) {\n let prevVNodeIsTextNode = false;\n for (let i = 0, len = children.length; i < len; ++i) {\n const child = children[i];\n if (isNull(currentNode) || (prevVNodeIsTextNode && (child.flags & 16 /* Text */) > 0)) {\n _M(child, parentNode, context, isSVG, currentNode, lifecycle);\n }\n else {\n currentNode = hydrateVNode(child, parentNode, currentNode, context, isSVG, lifecycle);\n currentNode = currentNode ? currentNode.nextSibling : null;\n }\n prevVNodeIsTextNode = (child.flags & 16 /* Text */) > 0;\n }\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n if ((flags & 8192 /* Fragment */) === 0) {\n let nextSibling = null;\n while (currentNode) {\n nextSibling = currentNode.nextSibling;\n parentNode.removeChild(currentNode);\n currentNode = nextSibling;\n }\n }\n }\n else if (!isNull(parentNode.firstChild) && !isSamePropsInnerHTML(parentNode, props)) {\n parentNode.textContent = ''; // dom has content, but VNode has no children remove everything from DOM\n if (flags & 448 /* FormElement */) {\n // If element is form element, we need to clear defaultValue also\n parentNode.defaultValue = '';\n }\n }\n}\nfunction hydrateElement(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const props = vNode.props;\n const className = vNode.className;\n const flags = vNode.flags;\n const ref = vNode.ref;\n isSVG = isSVG || (flags & 32 /* SvgElement */) > 0;\n if (dom.nodeType !== 1) {\n _ME(vNode, null, context, isSVG, null, lifecycle);\n parentDOM.replaceChild(vNode.dom, dom);\n }\n else {\n vNode.dom = dom;\n hydrateChildren(vNode, dom, dom.firstChild, context, isSVG, lifecycle);\n if (!isNull(props)) {\n _MP(vNode, flags, props, dom, isSVG);\n }\n if (isNullOrUndef(className)) {\n if (dom.className !== '') {\n dom.removeAttribute('class');\n }\n }\n else if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n _MR(ref, dom, lifecycle);\n }\n return vNode.dom;\n}\nfunction hydrateText(vNode, parentDOM, dom) {\n if (dom.nodeType !== 3) {\n parentDOM.replaceChild((vNode.dom = document.createTextNode(vNode.children)), dom);\n }\n else {\n const text = vNode.children;\n if (dom.nodeValue !== text) {\n dom.nodeValue = text;\n }\n vNode.dom = dom;\n }\n return vNode.dom;\n}\nfunction hydrateFragment(vNode, parentDOM, dom, context, isSVG, lifecycle) {\n const children = vNode.children;\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n hydrateText(children, parentDOM, dom);\n return children.dom;\n }\n hydrateChildren(vNode, parentDOM, dom, context, isSVG, lifecycle);\n return findLastDOMFromVNode(children[children.length - 1]);\n}\nfunction hydrateVNode(vNode, parentDOM, currentDom, context, isSVG, lifecycle) {\n const flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 14 /* Component */) {\n return hydrateComponent(vNode, parentDOM, currentDom, context, isSVG, (flags & 4 /* ComponentClass */) > 0, lifecycle);\n }\n if (flags & 481 /* Element */) {\n return hydrateElement(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n if (flags & 16 /* Text */) {\n return hydrateText(vNode, parentDOM, currentDom);\n }\n if (flags & 512 /* Void */) {\n return (vNode.dom = currentDom);\n }\n if (flags & 8192 /* Fragment */) {\n return hydrateFragment(vNode, parentDOM, currentDom, context, isSVG, lifecycle);\n }\n throwError();\n return null;\n}\nexport function hydrate(input, parentDOM, callback) {\n let dom = parentDOM.firstChild;\n if (isNull(dom)) {\n render(input, parentDOM, callback);\n }\n else {\n const lifecycle = [];\n if (!isInvalid(input)) {\n dom = hydrateVNode(input, parentDOM, dom, {}, false, lifecycle);\n }\n // clear any other DOM nodes, there should be only a single entry for the root\n while (dom && (dom = dom.nextSibling)) {\n parentDOM.removeChild(dom);\n }\n if (lifecycle.length > 0) {\n let listener;\n while ((listener = lifecycle.shift()) !== undefined) {\n listener();\n }\n }\n }\n parentDOM.$V = input;\n if (isFunction(callback)) {\n callback();\n }\n}\n","import { render } from 'inferno';\nimport { createElement } from 'inferno-create-element';\nconst getContainer = (props) => { var _a, _b; return ((_a = props.container) === null || _a === void 0 ? void 0 : _a.get(0)) || ((_b = props.item) === null || _b === void 0 ? void 0 : _b.get(0)); };\nexport function renderTemplate(template, props, _component) {\n setTimeout(() => {\n render(createElement(template, props), getContainer(props));\n }, 0);\n}\nexport const hasTemplate = (name, properties, _component) => {\n const value = properties[name];\n return !!value && typeof value !== 'string';\n};\n","const NUMBER_STYLES = new Set([\n 'animationIterationCount',\n 'borderImageOutset',\n 'borderImageSlice',\n 'border-imageWidth',\n 'boxFlex',\n 'boxFlexGroup',\n 'boxOrdinalGroup',\n 'columnCount',\n 'fillOpacity',\n 'flex',\n 'flexGrow',\n 'flexNegative',\n 'flexOrder',\n 'flexPositive',\n 'flexShrink',\n 'floodOpacity',\n 'fontWeight',\n 'gridColumn',\n 'gridRow',\n 'lineClamp',\n 'lineHeight',\n 'opacity',\n 'order',\n 'orphans',\n 'stopOpacity',\n 'strokeDasharray',\n 'strokeDashoffset',\n 'strokeMiterlimit',\n 'strokeOpacity',\n 'strokeWidth',\n 'tabSize',\n 'widows',\n 'zIndex',\n 'zoom',\n]);\nconst isNumeric = (value) => {\n if (typeof value === 'number')\n return true;\n return !Number.isNaN(Number(value));\n};\nconst getNumberStyleValue = (style, value) => (NUMBER_STYLES.has(style) ? value : `${value}px`);\nconst uppercasePattern = /[A-Z]/g;\nconst kebabCase = (str) => str.replace(uppercasePattern, '-$&').toLowerCase();\nexport function normalizeStyles(styles) {\n if (!(styles instanceof Object)) {\n return undefined;\n }\n return Object\n .entries(styles)\n .reduce((acc, [key, value]) => {\n acc[kebabCase(key)] = isNumeric(value)\n ? getNumberStyleValue(key, value)\n : value;\n return acc;\n }, {});\n}\n","import { SessionStatus } from '@sentry/types';\nimport { dropUndefinedKeys, timestampInSeconds, uuid4 } from '@sentry/utils';\n/**\n * @inheritdoc\n */\nvar Session = /** @class */ (function () {\n function Session(context) {\n this.errors = 0;\n this.sid = uuid4();\n this.duration = 0;\n this.status = SessionStatus.Ok;\n this.init = true;\n this.ignoreDuration = false;\n // Both timestamp and started are in seconds since the UNIX epoch.\n var startingTime = timestampInSeconds();\n this.timestamp = startingTime;\n this.started = startingTime;\n if (context) {\n this.update(context);\n }\n }\n /** JSDoc */\n // eslint-disable-next-line complexity\n Session.prototype.update = function (context) {\n if (context === void 0) { context = {}; }\n if (context.user) {\n if (!this.ipAddress && context.user.ip_address) {\n this.ipAddress = context.user.ip_address;\n }\n if (!this.did && !context.did) {\n this.did = context.user.id || context.user.email || context.user.username;\n }\n }\n this.timestamp = context.timestamp || timestampInSeconds();\n if (context.ignoreDuration) {\n this.ignoreDuration = context.ignoreDuration;\n }\n if (context.sid) {\n // Good enough uuid validation. — Kamil\n this.sid = context.sid.length === 32 ? context.sid : uuid4();\n }\n if (context.init !== undefined) {\n this.init = context.init;\n }\n if (!this.did && context.did) {\n this.did = \"\" + context.did;\n }\n if (typeof context.started === 'number') {\n this.started = context.started;\n }\n if (this.ignoreDuration) {\n this.duration = undefined;\n }\n else if (typeof context.duration === 'number') {\n this.duration = context.duration;\n }\n else {\n var duration = this.timestamp - this.started;\n this.duration = duration >= 0 ? duration : 0;\n }\n if (context.release) {\n this.release = context.release;\n }\n if (context.environment) {\n this.environment = context.environment;\n }\n if (!this.ipAddress && context.ipAddress) {\n this.ipAddress = context.ipAddress;\n }\n if (!this.userAgent && context.userAgent) {\n this.userAgent = context.userAgent;\n }\n if (typeof context.errors === 'number') {\n this.errors = context.errors;\n }\n if (context.status) {\n this.status = context.status;\n }\n };\n /** JSDoc */\n Session.prototype.close = function (status) {\n if (status) {\n this.update({ status: status });\n }\n else if (this.status === SessionStatus.Ok) {\n this.update({ status: SessionStatus.Exited });\n }\n else {\n this.update();\n }\n };\n /** JSDoc */\n Session.prototype.toJSON = function () {\n return dropUndefinedKeys({\n sid: \"\" + this.sid,\n init: this.init,\n // Make sure that sec is converted to ms for date constructor\n started: new Date(this.started * 1000).toISOString(),\n timestamp: new Date(this.timestamp * 1000).toISOString(),\n status: this.status,\n errors: this.errors,\n did: typeof this.did === 'number' || typeof this.did === 'string' ? \"\" + this.did : undefined,\n duration: this.duration,\n attrs: dropUndefinedKeys({\n release: this.release,\n environment: this.environment,\n ip_address: this.ipAddress,\n user_agent: this.userAgent,\n }),\n });\n };\n return Session;\n}());\nexport { Session };\n//# sourceMappingURL=session.js.map","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable max-lines */\nimport { SessionStatus, } from '@sentry/types';\nimport { consoleSandbox, dateTimestampInSeconds, getGlobalObject, isNodeEnv, logger, uuid4 } from '@sentry/utils';\nimport { Scope } from './scope';\nimport { Session } from './session';\n/**\n * API compatibility version of this hub.\n *\n * WARNING: This number should only be increased when the global interface\n * changes and new methods are introduced.\n *\n * @hidden\n */\nexport var API_VERSION = 4;\n/**\n * Default maximum number of breadcrumbs added to an event. Can be overwritten\n * with {@link Options.maxBreadcrumbs}.\n */\nvar DEFAULT_BREADCRUMBS = 100;\n/**\n * @inheritDoc\n */\nvar Hub = /** @class */ (function () {\n /**\n * Creates a new instance of the hub, will push one {@link Layer} into the\n * internal stack on creation.\n *\n * @param client bound to the hub.\n * @param scope bound to the hub.\n * @param version number, higher number means higher priority.\n */\n function Hub(client, scope, _version) {\n if (scope === void 0) { scope = new Scope(); }\n if (_version === void 0) { _version = API_VERSION; }\n this._version = _version;\n /** Is a {@link Layer}[] containing the client and scope */\n this._stack = [{}];\n this.getStackTop().scope = scope;\n if (client) {\n this.bindClient(client);\n }\n }\n /**\n * @inheritDoc\n */\n Hub.prototype.isOlderThan = function (version) {\n return this._version < version;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.bindClient = function (client) {\n var top = this.getStackTop();\n top.client = client;\n if (client && client.setupIntegrations) {\n client.setupIntegrations();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.pushScope = function () {\n // We want to clone the content of prev scope\n var scope = Scope.clone(this.getScope());\n this.getStack().push({\n client: this.getClient(),\n scope: scope,\n });\n return scope;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.popScope = function () {\n if (this.getStack().length <= 1)\n return false;\n return !!this.getStack().pop();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.withScope = function (callback) {\n var scope = this.pushScope();\n try {\n callback(scope);\n }\n finally {\n this.popScope();\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getClient = function () {\n return this.getStackTop().client;\n };\n /** Returns the scope of the top stack. */\n Hub.prototype.getScope = function () {\n return this.getStackTop().scope;\n };\n /** Returns the scope stack for domains or the process. */\n Hub.prototype.getStack = function () {\n return this._stack;\n };\n /** Returns the topmost scope layer in the order domain > local > process. */\n Hub.prototype.getStackTop = function () {\n return this._stack[this._stack.length - 1];\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Hub.prototype.captureException = function (exception, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: exception,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureException', exception, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureMessage = function (message, level, hint) {\n var eventId = (this._lastEventId = uuid4());\n var finalHint = hint;\n // If there's no explicit hint provided, mimic the same thing that would happen\n // in the minimal itself to create a consistent behavior.\n // We don't do this in the client, as it's the lowest level API, and doing this,\n // would prevent user from having full control over direct calls.\n if (!hint) {\n var syntheticException = void 0;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n finalHint = {\n originalException: message,\n syntheticException: syntheticException,\n };\n }\n this._invokeClient('captureMessage', message, level, __assign(__assign({}, finalHint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureEvent = function (event, hint) {\n var eventId = uuid4();\n if (event.type !== 'transaction') {\n this._lastEventId = eventId;\n }\n this._invokeClient('captureEvent', event, __assign(__assign({}, hint), { event_id: eventId }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.lastEventId = function () {\n return this._lastEventId;\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.addBreadcrumb = function (breadcrumb, hint) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope || !client)\n return;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _b = (client.getOptions && client.getOptions()) || {}, _c = _b.beforeBreadcrumb, beforeBreadcrumb = _c === void 0 ? null : _c, _d = _b.maxBreadcrumbs, maxBreadcrumbs = _d === void 0 ? DEFAULT_BREADCRUMBS : _d;\n if (maxBreadcrumbs <= 0)\n return;\n var timestamp = dateTimestampInSeconds();\n var mergedBreadcrumb = __assign({ timestamp: timestamp }, breadcrumb);\n var finalBreadcrumb = beforeBreadcrumb\n ? consoleSandbox(function () { return beforeBreadcrumb(mergedBreadcrumb, hint); })\n : mergedBreadcrumb;\n if (finalBreadcrumb === null)\n return;\n scope.addBreadcrumb(finalBreadcrumb, maxBreadcrumbs);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setUser = function (user) {\n var scope = this.getScope();\n if (scope)\n scope.setUser(user);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTags = function (tags) {\n var scope = this.getScope();\n if (scope)\n scope.setTags(tags);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtras = function (extras) {\n var scope = this.getScope();\n if (scope)\n scope.setExtras(extras);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setTag = function (key, value) {\n var scope = this.getScope();\n if (scope)\n scope.setTag(key, value);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.setExtra = function (key, extra) {\n var scope = this.getScope();\n if (scope)\n scope.setExtra(key, extra);\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype.setContext = function (name, context) {\n var scope = this.getScope();\n if (scope)\n scope.setContext(name, context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.configureScope = function (callback) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (scope && client) {\n callback(scope);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.run = function (callback) {\n var oldHub = makeMain(this);\n try {\n callback(this);\n }\n finally {\n makeMain(oldHub);\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.getIntegration = function (integration) {\n var client = this.getClient();\n if (!client)\n return null;\n try {\n return client.getIntegration(integration);\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Hub\");\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSpan = function (context) {\n return this._callExtensionMethod('startSpan', context);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startTransaction = function (context, customSamplingContext) {\n return this._callExtensionMethod('startTransaction', context, customSamplingContext);\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.traceHeaders = function () {\n return this._callExtensionMethod('traceHeaders');\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.captureSession = function (endSession) {\n if (endSession === void 0) { endSession = false; }\n // both send the update and pull the session from the scope\n if (endSession) {\n return this.endSession();\n }\n // only send the update\n this._sendSessionUpdate();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.endSession = function () {\n var _a, _b, _c, _d, _e;\n (_c = (_b = (_a = this.getStackTop()) === null || _a === void 0 ? void 0 : _a.scope) === null || _b === void 0 ? void 0 : _b.getSession()) === null || _c === void 0 ? void 0 : _c.close();\n this._sendSessionUpdate();\n // the session is over; take it off of the scope\n (_e = (_d = this.getStackTop()) === null || _d === void 0 ? void 0 : _d.scope) === null || _e === void 0 ? void 0 : _e.setSession();\n };\n /**\n * @inheritDoc\n */\n Hub.prototype.startSession = function (context) {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n var _b = (client && client.getOptions()) || {}, release = _b.release, environment = _b.environment;\n // Will fetch userAgent if called from browser sdk\n var global = getGlobalObject();\n var userAgent = (global.navigator || {}).userAgent;\n var session = new Session(__assign(__assign(__assign({ release: release,\n environment: environment }, (scope && { user: scope.getUser() })), (userAgent && { userAgent: userAgent })), context));\n if (scope) {\n // End existing session if there's one\n var currentSession = scope.getSession && scope.getSession();\n if (currentSession && currentSession.status === SessionStatus.Ok) {\n currentSession.update({ status: SessionStatus.Exited });\n }\n this.endSession();\n // Afterwards we set the new session on the scope\n scope.setSession(session);\n }\n return session;\n };\n /**\n * Sends the current Session on the scope\n */\n Hub.prototype._sendSessionUpdate = function () {\n var _a = this.getStackTop(), scope = _a.scope, client = _a.client;\n if (!scope)\n return;\n var session = scope.getSession && scope.getSession();\n if (session) {\n if (client && client.captureSession) {\n client.captureSession(session);\n }\n }\n };\n /**\n * Internal helper function to call a method on the top client if it exists.\n *\n * @param method The method to call on the client.\n * @param args Arguments to pass to the client function.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._invokeClient = function (method) {\n var _a;\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var _b = this.getStackTop(), scope = _b.scope, client = _b.client;\n if (client && client[method]) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any\n (_a = client)[method].apply(_a, __spread(args, [scope]));\n }\n };\n /**\n * Calls global extension method and binding current instance to the function call\n */\n // @ts-ignore Function lacks ending return statement and return type does not include 'undefined'. ts(2366)\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Hub.prototype._callExtensionMethod = function (method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var carrier = getMainCarrier();\n var sentry = carrier.__SENTRY__;\n if (sentry && sentry.extensions && typeof sentry.extensions[method] === 'function') {\n return sentry.extensions[method].apply(this, args);\n }\n logger.warn(\"Extension method \" + method + \" couldn't be found, doing nothing.\");\n };\n return Hub;\n}());\nexport { Hub };\n/**\n * Returns the global shim registry.\n *\n * FIXME: This function is problematic, because despite always returning a valid Carrier,\n * it has an optional `__SENTRY__` property, which then in turn requires us to always perform an unnecessary check\n * at the call-site. We always access the carrier through this function, so we can guarantee that `__SENTRY__` is there.\n **/\nexport function getMainCarrier() {\n var carrier = getGlobalObject();\n carrier.__SENTRY__ = carrier.__SENTRY__ || {\n extensions: {},\n hub: undefined,\n };\n return carrier;\n}\n/**\n * Replaces the current main hub with the passed one on the global object\n *\n * @returns The old replaced hub\n */\nexport function makeMain(hub) {\n var registry = getMainCarrier();\n var oldHub = getHubFromCarrier(registry);\n setHubOnCarrier(registry, hub);\n return oldHub;\n}\n/**\n * Returns the default hub instance.\n *\n * If a hub is already registered in the global carrier but this module\n * contains a more recent version, it replaces the registered version.\n * Otherwise, the currently registered hub will be returned.\n */\nexport function getCurrentHub() {\n // Get main carrier (global for every environment)\n var registry = getMainCarrier();\n // If there's no hub, or its an old API, assign a new one\n if (!hasHubOnCarrier(registry) || getHubFromCarrier(registry).isOlderThan(API_VERSION)) {\n setHubOnCarrier(registry, new Hub());\n }\n // Prefer domains over global if they are there (applicable only to Node environment)\n if (isNodeEnv()) {\n return getHubFromActiveDomain(registry);\n }\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n}\n/**\n * Returns the active domain, if one exists\n * @deprecated No longer used; remove in v7\n * @returns The domain, or undefined if there is no active domain\n */\n// eslint-disable-next-line deprecation/deprecation\nexport function getActiveDomain() {\n logger.warn('Function `getActiveDomain` is deprecated and will be removed in a future version.');\n var sentry = getMainCarrier().__SENTRY__;\n return sentry && sentry.extensions && sentry.extensions.domain && sentry.extensions.domain.active;\n}\n/**\n * Try to read the hub from an active domain, and fallback to the registry if one doesn't exist\n * @returns discovered hub\n */\nfunction getHubFromActiveDomain(registry) {\n var _a, _b, _c;\n try {\n var activeDomain = (_c = (_b = (_a = getMainCarrier().__SENTRY__) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b.domain) === null || _c === void 0 ? void 0 : _c.active;\n // If there's no active domain, just return global hub\n if (!activeDomain) {\n return getHubFromCarrier(registry);\n }\n // If there's no hub on current domain, or it's an old API, assign a new one\n if (!hasHubOnCarrier(activeDomain) || getHubFromCarrier(activeDomain).isOlderThan(API_VERSION)) {\n var registryHubTopStack = getHubFromCarrier(registry).getStackTop();\n setHubOnCarrier(activeDomain, new Hub(registryHubTopStack.client, Scope.clone(registryHubTopStack.scope)));\n }\n // Return hub that lives on a domain\n return getHubFromCarrier(activeDomain);\n }\n catch (_Oo) {\n // Return hub that lives on a global object\n return getHubFromCarrier(registry);\n }\n}\n/**\n * This will tell whether a carrier has a hub on it or not\n * @param carrier object\n */\nfunction hasHubOnCarrier(carrier) {\n return !!(carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub);\n}\n/**\n * This will create a new {@link Hub} and add to the passed object on\n * __SENTRY__.hub.\n * @param carrier object\n * @hidden\n */\nexport function getHubFromCarrier(carrier) {\n if (carrier && carrier.__SENTRY__ && carrier.__SENTRY__.hub)\n return carrier.__SENTRY__.hub;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = new Hub();\n return carrier.__SENTRY__.hub;\n}\n/**\n * This will set passed {@link Hub} on the passed object's __SENTRY__.hub attribute\n * @param carrier object\n * @param hub Hub\n * @returns A boolean indicating success or failure\n */\nexport function setHubOnCarrier(carrier, hub) {\n if (!carrier)\n return false;\n carrier.__SENTRY__ = carrier.__SENTRY__ || {};\n carrier.__SENTRY__.hub = hub;\n return true;\n}\n//# sourceMappingURL=hub.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { dateTimestampInSeconds, getGlobalObject, isPlainObject, isThenable, SyncPromise } from '@sentry/utils';\n/**\n * Absolute maximum number of breadcrumbs added to an event.\n * The `maxBreadcrumbs` option cannot be higher than this value.\n */\nvar MAX_BREADCRUMBS = 100;\n/**\n * Holds additional event information. {@link Scope.applyToEvent} will be\n * called by the client before an event will be sent.\n */\nvar Scope = /** @class */ (function () {\n function Scope() {\n /** Flag if notifying is happening. */\n this._notifyingListeners = false;\n /** Callback for client to receive scope changes. */\n this._scopeListeners = [];\n /** Callback list that will be called after {@link applyToEvent}. */\n this._eventProcessors = [];\n /** Array of breadcrumbs. */\n this._breadcrumbs = [];\n /** User */\n this._user = {};\n /** Tags */\n this._tags = {};\n /** Extra */\n this._extra = {};\n /** Contexts */\n this._contexts = {};\n }\n /**\n * Inherit values from the parent scope.\n * @param scope to clone.\n */\n Scope.clone = function (scope) {\n var newScope = new Scope();\n if (scope) {\n newScope._breadcrumbs = __spread(scope._breadcrumbs);\n newScope._tags = __assign({}, scope._tags);\n newScope._extra = __assign({}, scope._extra);\n newScope._contexts = __assign({}, scope._contexts);\n newScope._user = scope._user;\n newScope._level = scope._level;\n newScope._span = scope._span;\n newScope._session = scope._session;\n newScope._transactionName = scope._transactionName;\n newScope._fingerprint = scope._fingerprint;\n newScope._eventProcessors = __spread(scope._eventProcessors);\n newScope._requestSession = scope._requestSession;\n }\n return newScope;\n };\n /**\n * Add internal on change listener. Used for sub SDKs that need to store the scope.\n * @hidden\n */\n Scope.prototype.addScopeListener = function (callback) {\n this._scopeListeners.push(callback);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addEventProcessor = function (callback) {\n this._eventProcessors.push(callback);\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setUser = function (user) {\n this._user = user || {};\n if (this._session) {\n this._session.update({ user: user });\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getUser = function () {\n return this._user;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getRequestSession = function () {\n return this._requestSession;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setRequestSession = function (requestSession) {\n this._requestSession = requestSession;\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTags = function (tags) {\n this._tags = __assign(__assign({}, this._tags), tags);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTag = function (key, value) {\n var _a;\n this._tags = __assign(__assign({}, this._tags), (_a = {}, _a[key] = value, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtras = function (extras) {\n this._extra = __assign(__assign({}, this._extra), extras);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setExtra = function (key, extra) {\n var _a;\n this._extra = __assign(__assign({}, this._extra), (_a = {}, _a[key] = extra, _a));\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setFingerprint = function (fingerprint) {\n this._fingerprint = fingerprint;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setLevel = function (level) {\n this._level = level;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setTransactionName = function (name) {\n this._transactionName = name;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Can be removed in major version.\n * @deprecated in favor of {@link this.setTransactionName}\n */\n Scope.prototype.setTransaction = function (name) {\n return this.setTransactionName(name);\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setContext = function (key, context) {\n var _a;\n if (context === null) {\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this._contexts[key];\n }\n else {\n this._contexts = __assign(__assign({}, this._contexts), (_a = {}, _a[key] = context, _a));\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSpan = function (span) {\n this._span = span;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSpan = function () {\n return this._span;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getTransaction = function () {\n var _a, _b, _c, _d;\n // often, this span will be a transaction, but it's not guaranteed to be\n var span = this.getSpan();\n // try it the new way first\n if ((_a = span) === null || _a === void 0 ? void 0 : _a.transaction) {\n return (_b = span) === null || _b === void 0 ? void 0 : _b.transaction;\n }\n // fallback to the old way (known bug: this only finds transactions with sampled = true)\n if ((_d = (_c = span) === null || _c === void 0 ? void 0 : _c.spanRecorder) === null || _d === void 0 ? void 0 : _d.spans[0]) {\n return span.spanRecorder.spans[0];\n }\n // neither way found a transaction\n return undefined;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.setSession = function (session) {\n if (!session) {\n delete this._session;\n }\n else {\n this._session = session;\n }\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.getSession = function () {\n return this._session;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.update = function (captureContext) {\n if (!captureContext) {\n return this;\n }\n if (typeof captureContext === 'function') {\n var updatedScope = captureContext(this);\n return updatedScope instanceof Scope ? updatedScope : this;\n }\n if (captureContext instanceof Scope) {\n this._tags = __assign(__assign({}, this._tags), captureContext._tags);\n this._extra = __assign(__assign({}, this._extra), captureContext._extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext._contexts);\n if (captureContext._user && Object.keys(captureContext._user).length) {\n this._user = captureContext._user;\n }\n if (captureContext._level) {\n this._level = captureContext._level;\n }\n if (captureContext._fingerprint) {\n this._fingerprint = captureContext._fingerprint;\n }\n if (captureContext._requestSession) {\n this._requestSession = captureContext._requestSession;\n }\n }\n else if (isPlainObject(captureContext)) {\n // eslint-disable-next-line no-param-reassign\n captureContext = captureContext;\n this._tags = __assign(__assign({}, this._tags), captureContext.tags);\n this._extra = __assign(__assign({}, this._extra), captureContext.extra);\n this._contexts = __assign(__assign({}, this._contexts), captureContext.contexts);\n if (captureContext.user) {\n this._user = captureContext.user;\n }\n if (captureContext.level) {\n this._level = captureContext.level;\n }\n if (captureContext.fingerprint) {\n this._fingerprint = captureContext.fingerprint;\n }\n if (captureContext.requestSession) {\n this._requestSession = captureContext.requestSession;\n }\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clear = function () {\n this._breadcrumbs = [];\n this._tags = {};\n this._extra = {};\n this._user = {};\n this._contexts = {};\n this._level = undefined;\n this._transactionName = undefined;\n this._fingerprint = undefined;\n this._requestSession = undefined;\n this._span = undefined;\n this._session = undefined;\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.addBreadcrumb = function (breadcrumb, maxBreadcrumbs) {\n var maxCrumbs = typeof maxBreadcrumbs === 'number' ? Math.min(maxBreadcrumbs, MAX_BREADCRUMBS) : MAX_BREADCRUMBS;\n // No data has been changed, so don't notify scope listeners\n if (maxCrumbs <= 0) {\n return this;\n }\n var mergedBreadcrumb = __assign({ timestamp: dateTimestampInSeconds() }, breadcrumb);\n this._breadcrumbs = __spread(this._breadcrumbs, [mergedBreadcrumb]).slice(-maxCrumbs);\n this._notifyScopeListeners();\n return this;\n };\n /**\n * @inheritDoc\n */\n Scope.prototype.clearBreadcrumbs = function () {\n this._breadcrumbs = [];\n this._notifyScopeListeners();\n return this;\n };\n /**\n * Applies the current context and fingerprint to the event.\n * Note that breadcrumbs will be added by the client.\n * Also if the event has already breadcrumbs on it, we do not merge them.\n * @param event Event\n * @param hint May contain additional information about the original exception.\n * @hidden\n */\n Scope.prototype.applyToEvent = function (event, hint) {\n var _a;\n if (this._extra && Object.keys(this._extra).length) {\n event.extra = __assign(__assign({}, this._extra), event.extra);\n }\n if (this._tags && Object.keys(this._tags).length) {\n event.tags = __assign(__assign({}, this._tags), event.tags);\n }\n if (this._user && Object.keys(this._user).length) {\n event.user = __assign(__assign({}, this._user), event.user);\n }\n if (this._contexts && Object.keys(this._contexts).length) {\n event.contexts = __assign(__assign({}, this._contexts), event.contexts);\n }\n if (this._level) {\n event.level = this._level;\n }\n if (this._transactionName) {\n event.transaction = this._transactionName;\n }\n // We want to set the trace context for normal events only if there isn't already\n // a trace context on the event. There is a product feature in place where we link\n // errors with transaction and it relies on that.\n if (this._span) {\n event.contexts = __assign({ trace: this._span.getTraceContext() }, event.contexts);\n var transactionName = (_a = this._span.transaction) === null || _a === void 0 ? void 0 : _a.name;\n if (transactionName) {\n event.tags = __assign({ transaction: transactionName }, event.tags);\n }\n }\n this._applyFingerprint(event);\n event.breadcrumbs = __spread((event.breadcrumbs || []), this._breadcrumbs);\n event.breadcrumbs = event.breadcrumbs.length > 0 ? event.breadcrumbs : undefined;\n return this._notifyEventProcessors(__spread(getGlobalEventProcessors(), this._eventProcessors), event, hint);\n };\n /**\n * This will be called after {@link applyToEvent} is finished.\n */\n Scope.prototype._notifyEventProcessors = function (processors, event, hint, index) {\n var _this = this;\n if (index === void 0) { index = 0; }\n return new SyncPromise(function (resolve, reject) {\n var processor = processors[index];\n if (event === null || typeof processor !== 'function') {\n resolve(event);\n }\n else {\n var result = processor(__assign({}, event), hint);\n if (isThenable(result)) {\n void result\n .then(function (final) { return _this._notifyEventProcessors(processors, final, hint, index + 1).then(resolve); })\n .then(null, reject);\n }\n else {\n void _this._notifyEventProcessors(processors, result, hint, index + 1)\n .then(resolve)\n .then(null, reject);\n }\n }\n });\n };\n /**\n * This will be called on every set call.\n */\n Scope.prototype._notifyScopeListeners = function () {\n var _this = this;\n // We need this check for this._notifyingListeners to be able to work on scope during updates\n // If this check is not here we'll produce endless recursion when something is done with the scope\n // during the callback.\n if (!this._notifyingListeners) {\n this._notifyingListeners = true;\n this._scopeListeners.forEach(function (callback) {\n callback(_this);\n });\n this._notifyingListeners = false;\n }\n };\n /**\n * Applies fingerprint from the scope to the event if there's one,\n * uses message if there's one instead or get rid of empty fingerprint\n */\n Scope.prototype._applyFingerprint = function (event) {\n // Make sure it's an array first and we actually have something in place\n event.fingerprint = event.fingerprint\n ? Array.isArray(event.fingerprint)\n ? event.fingerprint\n : [event.fingerprint]\n : [];\n // If we have something on the scope, then merge it with event\n if (this._fingerprint) {\n event.fingerprint = event.fingerprint.concat(this._fingerprint);\n }\n // If we have no data at all, remove empty array default\n if (event.fingerprint && !event.fingerprint.length) {\n delete event.fingerprint;\n }\n };\n return Scope;\n}());\nexport { Scope };\n/**\n * Returns the global event processors.\n */\nfunction getGlobalEventProcessors() {\n /* eslint-disable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n var global = getGlobalObject();\n global.__SENTRY__ = global.__SENTRY__ || {};\n global.__SENTRY__.globalEventProcessors = global.__SENTRY__.globalEventProcessors || [];\n return global.__SENTRY__.globalEventProcessors;\n /* eslint-enable @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access */\n}\n/**\n * Add a EventProcessor to be kept globally.\n * @param callback EventProcessor to add\n */\nexport function addGlobalEventProcessor(callback) {\n getGlobalEventProcessors().push(callback);\n}\n//# sourceMappingURL=scope.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { getCurrentHub } from '@sentry/hub';\n/**\n * This calls a function on the current hub.\n * @param method function to call on hub.\n * @param args to pass to function.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction callOnHub(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n var hub = getCurrentHub();\n if (hub && hub[method]) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return hub[method].apply(hub, __spread(args));\n }\n throw new Error(\"No hub defined or \" + method + \" was not found on the hub, please open a bug report.\");\n}\n/**\n * Captures an exception event and sends it to Sentry.\n *\n * @param exception An exception-like object.\n * @returns The generated eventId.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function captureException(exception, captureContext) {\n var syntheticException;\n try {\n throw new Error('Sentry syntheticException');\n }\n catch (exception) {\n syntheticException = exception;\n }\n return callOnHub('captureException', exception, {\n captureContext: captureContext,\n originalException: exception,\n syntheticException: syntheticException,\n });\n}\n/**\n * Captures a message event and sends it to Sentry.\n *\n * @param message The message to send to Sentry.\n * @param level Define the level of the message.\n * @returns The generated eventId.\n */\nexport function captureMessage(message, captureContext) {\n var syntheticException;\n try {\n throw new Error(message);\n }\n catch (exception) {\n syntheticException = exception;\n }\n // This is necessary to provide explicit scopes upgrade, without changing the original\n // arity of the `captureMessage(message, level)` method.\n var level = typeof captureContext === 'string' ? captureContext : undefined;\n var context = typeof captureContext !== 'string' ? { captureContext: captureContext } : undefined;\n return callOnHub('captureMessage', message, level, __assign({ originalException: message, syntheticException: syntheticException }, context));\n}\n/**\n * Captures a manually created event and sends it to Sentry.\n *\n * @param event The event to send to Sentry.\n * @returns The generated eventId.\n */\nexport function captureEvent(event) {\n return callOnHub('captureEvent', event);\n}\n/**\n * Callback to set context information onto the scope.\n * @param callback Callback function that receives Scope.\n */\nexport function configureScope(callback) {\n callOnHub('configureScope', callback);\n}\n/**\n * Records a new breadcrumb which will be attached to future events.\n *\n * Breadcrumbs will be added to subsequent events to provide more context on\n * user's actions prior to an error or crash.\n *\n * @param breadcrumb The breadcrumb to record.\n */\nexport function addBreadcrumb(breadcrumb) {\n callOnHub('addBreadcrumb', breadcrumb);\n}\n/**\n * Sets context data with the given name.\n * @param name of the context\n * @param context Any kind of data. This data will be normalized.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function setContext(name, context) {\n callOnHub('setContext', name, context);\n}\n/**\n * Set an object that will be merged sent as extra data with the event.\n * @param extras Extras object to merge into current context.\n */\nexport function setExtras(extras) {\n callOnHub('setExtras', extras);\n}\n/**\n * Set an object that will be merged sent as tags data with the event.\n * @param tags Tags context object to merge into current context.\n */\nexport function setTags(tags) {\n callOnHub('setTags', tags);\n}\n/**\n * Set key:value that will be sent as extra data with the event.\n * @param key String of extra\n * @param extra Any kind of data. This data will be normalized.\n */\nexport function setExtra(key, extra) {\n callOnHub('setExtra', key, extra);\n}\n/**\n * Set key:value that will be sent as tags data with the event.\n *\n * Can also be used to unset a tag, by passing `undefined`.\n *\n * @param key String key of tag\n * @param value Value of tag\n */\nexport function setTag(key, value) {\n callOnHub('setTag', key, value);\n}\n/**\n * Updates user context information for future events.\n *\n * @param user User context object to be set in the current context. Pass `null` to unset the user.\n */\nexport function setUser(user) {\n callOnHub('setUser', user);\n}\n/**\n * Creates a new scope with and executes the given operation within.\n * The scope is automatically removed once the operation\n * finishes or throws.\n *\n * This is essentially a convenience function for:\n *\n * pushScope();\n * callback();\n * popScope();\n *\n * @param callback that will be enclosed into push/popScope.\n */\nexport function withScope(callback) {\n callOnHub('withScope', callback);\n}\n/**\n * Calls a function on the latest client. Use this with caution, it's meant as\n * in \"internal\" helper so we don't need to expose every possible function in\n * the shim. It is not guaranteed that the client actually implements the\n * function.\n *\n * @param method The method to call on the client/client.\n * @param args Arguments to pass to the client/fontend.\n * @hidden\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function _callOnClient(method) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n callOnHub.apply(void 0, __spread(['_invokeClient', method], args));\n}\n/**\n * Starts a new `Transaction` and returns it. This is the entry point to manual tracing instrumentation.\n *\n * A tree structure can be built by adding child spans to the transaction, and child spans to other spans. To start a\n * new child span within the transaction or any span, call the respective `.startChild()` method.\n *\n * Every child span must be finished before the transaction is finished, otherwise the unfinished spans are discarded.\n *\n * The transaction must be finished with a call to its `.finish()` method, at which point the transaction with all its\n * finished child spans will be sent to Sentry.\n *\n * @param context Properties of the new `Transaction`.\n * @param customSamplingContext Information given to the transaction sampling function (along with context-dependent\n * default values). See {@link Options.tracesSampler}.\n *\n * @returns The transaction which was just started\n */\nexport function startTransaction(context, customSamplingContext) {\n return callOnHub('startTransaction', __assign({}, context), customSamplingContext);\n}\n//# sourceMappingURL=index.js.map","// Store finish reasons in tuple to save on bundle size\n// Readonly type should enforce that this is not mutated.\nexport var FINISH_REASON_TAG = 'finishReason';\nexport var IDLE_TRANSACTION_FINISH_REASONS = ['heartbeatFailed', 'idleTimeout', 'documentHidden'];\n//# sourceMappingURL=constants.js.map","export var TransactionSamplingMethod;\n(function (TransactionSamplingMethod) {\n TransactionSamplingMethod[\"Explicit\"] = \"explicitly_set\";\n TransactionSamplingMethod[\"Sampler\"] = \"client_sampler\";\n TransactionSamplingMethod[\"Rate\"] = \"client_rate\";\n TransactionSamplingMethod[\"Inheritance\"] = \"inheritance\";\n})(TransactionSamplingMethod || (TransactionSamplingMethod = {}));\n//# sourceMappingURL=transaction.js.map","import { addInstrumentationHandler, logger } from '@sentry/utils';\nimport { SpanStatus } from './spanstatus';\nimport { getActiveTransaction } from './utils';\n/**\n * Configures global error listeners\n */\nexport function registerErrorInstrumentation() {\n addInstrumentationHandler({\n callback: errorCallback,\n type: 'error',\n });\n addInstrumentationHandler({\n callback: errorCallback,\n type: 'unhandledrejection',\n });\n}\n/**\n * If an error or unhandled promise occurs, we mark the active transaction as failed\n */\nfunction errorCallback() {\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n logger.log(\"[Tracing] Transaction: \" + SpanStatus.InternalError + \" -> Global error occured\");\n activeTransaction.setStatus(SpanStatus.InternalError);\n }\n}\n//# sourceMappingURL=errors.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { getMainCarrier } from '@sentry/hub';\nimport { TransactionSamplingMethod, } from '@sentry/types';\nimport { dynamicRequire, isNodeEnv, loadModule, logger } from '@sentry/utils';\nimport { registerErrorInstrumentation } from './errors';\nimport { IdleTransaction } from './idletransaction';\nimport { Transaction } from './transaction';\nimport { hasTracingEnabled } from './utils';\n/** Returns all trace headers that are currently on the top scope. */\nfunction traceHeaders() {\n var scope = this.getScope();\n if (scope) {\n var span = scope.getSpan();\n if (span) {\n return {\n 'sentry-trace': span.toTraceparent(),\n };\n }\n }\n return {};\n}\n/**\n * Makes a sampling decision for the given transaction and stores it on the transaction.\n *\n * Called every time a transaction is created. Only transactions which emerge with a `sampled` value of `true` will be\n * sent to Sentry.\n *\n * @param hub: The hub off of which to read config options\n * @param transaction: The transaction needing a sampling decision\n * @param samplingContext: Default and user-provided data which may be used to help make the decision\n *\n * @returns The given transaction with its `sampled` value set\n */\nfunction sample(transaction, options, samplingContext) {\n // nothing to do if tracing is not enabled\n if (!hasTracingEnabled(options)) {\n transaction.sampled = false;\n return transaction;\n }\n // if the user has forced a sampling decision by passing a `sampled` value in their transaction context, go with that\n if (transaction.sampled !== undefined) {\n transaction.setMetadata({\n transactionSampling: { method: TransactionSamplingMethod.Explicit },\n });\n return transaction;\n }\n // we would have bailed already if neither `tracesSampler` nor `tracesSampleRate` were defined, so one of these should\n // work; prefer the hook if so\n var sampleRate;\n if (typeof options.tracesSampler === 'function') {\n sampleRate = options.tracesSampler(samplingContext);\n transaction.setMetadata({\n transactionSampling: {\n method: TransactionSamplingMethod.Sampler,\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n else if (samplingContext.parentSampled !== undefined) {\n sampleRate = samplingContext.parentSampled;\n transaction.setMetadata({\n transactionSampling: { method: TransactionSamplingMethod.Inheritance },\n });\n }\n else {\n sampleRate = options.tracesSampleRate;\n transaction.setMetadata({\n transactionSampling: {\n method: TransactionSamplingMethod.Rate,\n // cast to number in case it's a boolean\n rate: Number(sampleRate),\n },\n });\n }\n // Since this is coming from the user (or from a function provided by the user), who knows what we might get. (The\n // only valid values are booleans or numbers between 0 and 1.)\n if (!isValidSampleRate(sampleRate)) {\n logger.warn(\"[Tracing] Discarding transaction because of invalid sample rate.\");\n transaction.sampled = false;\n return transaction;\n }\n // if the function returned 0 (or false), or if `tracesSampleRate` is 0, it's a sign the transaction should be dropped\n if (!sampleRate) {\n logger.log(\"[Tracing] Discarding transaction because \" + (typeof options.tracesSampler === 'function'\n ? 'tracesSampler returned 0 or false'\n : 'a negative sampling decision was inherited or tracesSampleRate is set to 0'));\n transaction.sampled = false;\n return transaction;\n }\n // Now we roll the dice. Math.random is inclusive of 0, but not of 1, so strict < is safe here. In case sampleRate is\n // a boolean, the < comparison will cause it to be automatically cast to 1 if it's true and 0 if it's false.\n transaction.sampled = Math.random() < sampleRate;\n // if we're not going to keep it, we're done\n if (!transaction.sampled) {\n logger.log(\"[Tracing] Discarding transaction because it's not included in the random sample (sampling rate = \" + Number(sampleRate) + \")\");\n return transaction;\n }\n logger.log(\"[Tracing] starting \" + transaction.op + \" transaction - \" + transaction.name);\n return transaction;\n}\n/**\n * Checks the given sample rate to make sure it is valid type and value (a boolean, or a number between 0 and 1).\n */\nfunction isValidSampleRate(rate) {\n // we need to check NaN explicitly because it's of type 'number' and therefore wouldn't get caught by this typecheck\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n if (isNaN(rate) || !(typeof rate === 'number' || typeof rate === 'boolean')) {\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be a boolean or a number between 0 and 1. Got \" + JSON.stringify(rate) + \" of type \" + JSON.stringify(typeof rate) + \".\");\n return false;\n }\n // in case sampleRate is a boolean, it will get automatically cast to 1 if it's true and 0 if it's false\n if (rate < 0 || rate > 1) {\n logger.warn(\"[Tracing] Given sample rate is invalid. Sample rate must be between 0 and 1. Got \" + rate + \".\");\n return false;\n }\n return true;\n}\n/**\n * Creates a new transaction and adds a sampling decision if it doesn't yet have one.\n *\n * The Hub.startTransaction method delegates to this method to do its work, passing the Hub instance in as `this`, as if\n * it had been called on the hub directly. Exists as a separate function so that it can be injected into the class as an\n * \"extension method.\"\n *\n * @param this: The Hub starting the transaction\n * @param transactionContext: Data used to configure the transaction\n * @param CustomSamplingContext: Optional data to be provided to the `tracesSampler` function (if any)\n *\n * @returns The new transaction\n *\n * @see {@link Hub.startTransaction}\n */\nfunction _startTransaction(transactionContext, customSamplingContext) {\n var _a, _b;\n var options = ((_a = this.getClient()) === null || _a === void 0 ? void 0 : _a.getOptions()) || {};\n var transaction = new Transaction(transactionContext, this);\n transaction = sample(transaction, options, __assign({ parentSampled: transactionContext.parentSampled, transactionContext: transactionContext }, customSamplingContext));\n if (transaction.sampled) {\n transaction.initSpanRecorder((_b = options._experiments) === null || _b === void 0 ? void 0 : _b.maxSpans);\n }\n return transaction;\n}\n/**\n * Create new idle transaction.\n */\nexport function startIdleTransaction(hub, transactionContext, idleTimeout, onScope, customSamplingContext) {\n var _a, _b;\n var options = ((_a = hub.getClient()) === null || _a === void 0 ? void 0 : _a.getOptions()) || {};\n var transaction = new IdleTransaction(transactionContext, hub, idleTimeout, onScope);\n transaction = sample(transaction, options, __assign({ parentSampled: transactionContext.parentSampled, transactionContext: transactionContext }, customSamplingContext));\n if (transaction.sampled) {\n transaction.initSpanRecorder((_b = options._experiments) === null || _b === void 0 ? void 0 : _b.maxSpans);\n }\n return transaction;\n}\n/**\n * @private\n */\nexport function _addTracingExtensions() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n carrier.__SENTRY__.extensions = carrier.__SENTRY__.extensions || {};\n if (!carrier.__SENTRY__.extensions.startTransaction) {\n carrier.__SENTRY__.extensions.startTransaction = _startTransaction;\n }\n if (!carrier.__SENTRY__.extensions.traceHeaders) {\n carrier.__SENTRY__.extensions.traceHeaders = traceHeaders;\n }\n}\n/**\n * @private\n */\nfunction _autoloadDatabaseIntegrations() {\n var carrier = getMainCarrier();\n if (!carrier.__SENTRY__) {\n return;\n }\n var packageToIntegrationMapping = {\n mongodb: function () {\n var integration = dynamicRequire(module, './integrations/node/mongo');\n return new integration.Mongo();\n },\n mongoose: function () {\n var integration = dynamicRequire(module, './integrations/node/mongo');\n return new integration.Mongo({ mongoose: true });\n },\n mysql: function () {\n var integration = dynamicRequire(module, './integrations/node/mysql');\n return new integration.Mysql();\n },\n pg: function () {\n var integration = dynamicRequire(module, './integrations/node/postgres');\n return new integration.Postgres();\n },\n };\n var mappedPackages = Object.keys(packageToIntegrationMapping)\n .filter(function (moduleName) { return !!loadModule(moduleName); })\n .map(function (pkg) {\n try {\n return packageToIntegrationMapping[pkg]();\n }\n catch (e) {\n return undefined;\n }\n })\n .filter(function (p) { return p; });\n if (mappedPackages.length > 0) {\n carrier.__SENTRY__.integrations = __spread((carrier.__SENTRY__.integrations || []), mappedPackages);\n }\n}\n/**\n * This patches the global object and injects the Tracing extensions methods\n */\nexport function addExtensionMethods() {\n _addTracingExtensions();\n // Detect and automatically load specified integrations.\n if (isNodeEnv()) {\n _autoloadDatabaseIntegrations();\n }\n // If an error happens globally, we should make sure transaction status is set to error.\n registerErrorInstrumentation();\n}\n//# sourceMappingURL=hubextensions.js.map","import { __extends, __values } from \"tslib\";\nimport { logger, timestampWithMs } from '@sentry/utils';\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from './constants';\nimport { SpanRecorder } from './span';\nimport { SpanStatus } from './spanstatus';\nimport { Transaction } from './transaction';\nexport var DEFAULT_IDLE_TIMEOUT = 1000;\nexport var HEARTBEAT_INTERVAL = 5000;\n/**\n * @inheritDoc\n */\nvar IdleTransactionSpanRecorder = /** @class */ (function (_super) {\n __extends(IdleTransactionSpanRecorder, _super);\n function IdleTransactionSpanRecorder(_pushActivity, _popActivity, transactionSpanId, maxlen) {\n if (transactionSpanId === void 0) { transactionSpanId = ''; }\n var _this = _super.call(this, maxlen) || this;\n _this._pushActivity = _pushActivity;\n _this._popActivity = _popActivity;\n _this.transactionSpanId = transactionSpanId;\n return _this;\n }\n /**\n * @inheritDoc\n */\n IdleTransactionSpanRecorder.prototype.add = function (span) {\n var _this = this;\n // We should make sure we do not push and pop activities for\n // the transaction that this span recorder belongs to.\n if (span.spanId !== this.transactionSpanId) {\n // We patch span.finish() to pop an activity after setting an endTimestamp.\n span.finish = function (endTimestamp) {\n span.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n _this._popActivity(span.spanId);\n };\n // We should only push new activities if the span does not have an end timestamp.\n if (span.endTimestamp === undefined) {\n this._pushActivity(span.spanId);\n }\n }\n _super.prototype.add.call(this, span);\n };\n return IdleTransactionSpanRecorder;\n}(SpanRecorder));\nexport { IdleTransactionSpanRecorder };\n/**\n * An IdleTransaction is a transaction that automatically finishes. It does this by tracking child spans as activities.\n * You can have multiple IdleTransactions active, but if the `onScope` option is specified, the idle transaction will\n * put itself on the scope on creation.\n */\nvar IdleTransaction = /** @class */ (function (_super) {\n __extends(IdleTransaction, _super);\n function IdleTransaction(transactionContext, _idleHub, \n /**\n * The time to wait in ms until the idle transaction will be finished.\n * @default 1000\n */\n _idleTimeout, \n // If an idle transaction should be put itself on and off the scope automatically.\n _onScope) {\n if (_idleTimeout === void 0) { _idleTimeout = DEFAULT_IDLE_TIMEOUT; }\n if (_onScope === void 0) { _onScope = false; }\n var _this = _super.call(this, transactionContext, _idleHub) || this;\n _this._idleHub = _idleHub;\n _this._idleTimeout = _idleTimeout;\n _this._onScope = _onScope;\n // Activities store a list of active spans\n _this.activities = {};\n // Amount of times heartbeat has counted. Will cause transaction to finish after 3 beats.\n _this._heartbeatCounter = 0;\n // We should not use heartbeat if we finished a transaction\n _this._finished = false;\n _this._beforeFinishCallbacks = [];\n if (_idleHub && _onScope) {\n // There should only be one active transaction on the scope\n clearActiveTransaction(_idleHub);\n // We set the transaction here on the scope so error events pick up the trace\n // context and attach it to the error.\n logger.log(\"Setting idle transaction on scope. Span ID: \" + _this.spanId);\n _idleHub.configureScope(function (scope) { return scope.setSpan(_this); });\n }\n _this._initTimeout = setTimeout(function () {\n if (!_this._finished) {\n _this.finish();\n }\n }, _this._idleTimeout);\n return _this;\n }\n /** {@inheritDoc} */\n IdleTransaction.prototype.finish = function (endTimestamp) {\n var e_1, _a;\n var _this = this;\n if (endTimestamp === void 0) { endTimestamp = timestampWithMs(); }\n this._finished = true;\n this.activities = {};\n if (this.spanRecorder) {\n logger.log('[Tracing] finishing IdleTransaction', new Date(endTimestamp * 1000).toISOString(), this.op);\n try {\n for (var _b = __values(this._beforeFinishCallbacks), _c = _b.next(); !_c.done; _c = _b.next()) {\n var callback = _c.value;\n callback(this, endTimestamp);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.spanRecorder.spans = this.spanRecorder.spans.filter(function (span) {\n // If we are dealing with the transaction itself, we just return it\n if (span.spanId === _this.spanId) {\n return true;\n }\n // We cancel all pending spans with status \"cancelled\" to indicate the idle transaction was finished early\n if (!span.endTimestamp) {\n span.endTimestamp = endTimestamp;\n span.setStatus(SpanStatus.Cancelled);\n logger.log('[Tracing] cancelling span since transaction ended early', JSON.stringify(span, undefined, 2));\n }\n var keepSpan = span.startTimestamp < endTimestamp;\n if (!keepSpan) {\n logger.log('[Tracing] discarding Span since it happened after Transaction was finished', JSON.stringify(span, undefined, 2));\n }\n return keepSpan;\n });\n logger.log('[Tracing] flushing IdleTransaction');\n }\n else {\n logger.log('[Tracing] No active IdleTransaction');\n }\n // this._onScope is true if the transaction was previously on the scope.\n if (this._onScope) {\n clearActiveTransaction(this._idleHub);\n }\n return _super.prototype.finish.call(this, endTimestamp);\n };\n /**\n * Register a callback function that gets excecuted before the transaction finishes.\n * Useful for cleanup or if you want to add any additional spans based on current context.\n *\n * This is exposed because users have no other way of running something before an idle transaction\n * finishes.\n */\n IdleTransaction.prototype.registerBeforeFinishCallback = function (callback) {\n this._beforeFinishCallbacks.push(callback);\n };\n /**\n * @inheritDoc\n */\n IdleTransaction.prototype.initSpanRecorder = function (maxlen) {\n var _this = this;\n if (!this.spanRecorder) {\n var pushActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._pushActivity(id);\n };\n var popActivity = function (id) {\n if (_this._finished) {\n return;\n }\n _this._popActivity(id);\n };\n this.spanRecorder = new IdleTransactionSpanRecorder(pushActivity, popActivity, this.spanId, maxlen);\n // Start heartbeat so that transactions do not run forever.\n logger.log('Starting heartbeat');\n this._pingHeartbeat();\n }\n this.spanRecorder.add(this);\n };\n /**\n * Start tracking a specific activity.\n * @param spanId The span id that represents the activity\n */\n IdleTransaction.prototype._pushActivity = function (spanId) {\n if (this._initTimeout) {\n clearTimeout(this._initTimeout);\n this._initTimeout = undefined;\n }\n logger.log(\"[Tracing] pushActivity: \" + spanId);\n this.activities[spanId] = true;\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n };\n /**\n * Remove an activity from usage\n * @param spanId The span id that represents the activity\n */\n IdleTransaction.prototype._popActivity = function (spanId) {\n var _this = this;\n if (this.activities[spanId]) {\n logger.log(\"[Tracing] popActivity \" + spanId);\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete this.activities[spanId];\n logger.log('[Tracing] new activities count', Object.keys(this.activities).length);\n }\n if (Object.keys(this.activities).length === 0) {\n var timeout = this._idleTimeout;\n // We need to add the timeout here to have the real endtimestamp of the transaction\n // Remember timestampWithMs is in seconds, timeout is in ms\n var end_1 = timestampWithMs() + timeout / 1000;\n setTimeout(function () {\n if (!_this._finished) {\n _this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[1]);\n _this.finish(end_1);\n }\n }, timeout);\n }\n };\n /**\n * Checks when entries of this.activities are not changing for 3 beats.\n * If this occurs we finish the transaction.\n */\n IdleTransaction.prototype._beat = function () {\n // We should not be running heartbeat if the idle transaction is finished.\n if (this._finished) {\n return;\n }\n var heartbeatString = Object.keys(this.activities).join('');\n if (heartbeatString === this._prevHeartbeatString) {\n this._heartbeatCounter += 1;\n }\n else {\n this._heartbeatCounter = 1;\n }\n this._prevHeartbeatString = heartbeatString;\n if (this._heartbeatCounter >= 3) {\n logger.log(\"[Tracing] Transaction finished because of no change for 3 heart beats\");\n this.setStatus(SpanStatus.DeadlineExceeded);\n this.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[0]);\n this.finish();\n }\n else {\n this._pingHeartbeat();\n }\n };\n /**\n * Pings the heartbeat\n */\n IdleTransaction.prototype._pingHeartbeat = function () {\n var _this = this;\n logger.log(\"pinging Heartbeat -> current counter: \" + this._heartbeatCounter);\n setTimeout(function () {\n _this._beat();\n }, HEARTBEAT_INTERVAL);\n };\n return IdleTransaction;\n}(Transaction));\nexport { IdleTransaction };\n/**\n * Reset active transaction on scope\n */\nfunction clearActiveTransaction(hub) {\n if (hub) {\n var scope = hub.getScope();\n if (scope) {\n var transaction = scope.getTransaction();\n if (transaction) {\n scope.setSpan(undefined);\n }\n }\n }\n}\n//# sourceMappingURL=idletransaction.js.map","import { getGlobalObject, logger } from '@sentry/utils';\nimport { FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS } from '../constants';\nimport { SpanStatus } from '../spanstatus';\nimport { getActiveTransaction } from '../utils';\nvar global = getGlobalObject();\n/**\n * Add a listener that cancels and finishes a transaction when the global\n * document is hidden.\n */\nexport function registerBackgroundTabDetection() {\n if (global && global.document) {\n global.document.addEventListener('visibilitychange', function () {\n var activeTransaction = getActiveTransaction();\n if (global.document.hidden && activeTransaction) {\n logger.log(\"[Tracing] Transaction: \" + SpanStatus.Cancelled + \" -> since tab moved to the background, op: \" + activeTransaction.op);\n // We should not set status if it is already set, this prevent important statuses like\n // error or data loss from being overwritten on transaction.\n if (!activeTransaction.status) {\n activeTransaction.setStatus(SpanStatus.Cancelled);\n }\n activeTransaction.setTag('visibilitychange', 'document.hidden');\n activeTransaction.setTag(FINISH_REASON_TAG, IDLE_TRANSACTION_FINISH_REASONS[2]);\n activeTransaction.finish();\n }\n });\n }\n else {\n logger.warn('[Tracing] Could not set up background tab detection due to lack of global document');\n }\n}\n//# sourceMappingURL=backgroundtab.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport var bindReporter = function (callback, metric, reportAllChanges) {\n var prevValue;\n return function (forceReport) {\n if (metric.value >= 0) {\n if (forceReport || reportAllChanges) {\n metric.delta = metric.value - (prevValue || 0);\n // Report the metric if there's a non-zero delta or if no previous\n // value exists (which can happen in the case of the document becoming\n // hidden when the metric value is 0).\n // See: https://github.com/GoogleChrome/web-vitals/issues/14\n if (metric.delta || prevValue === undefined) {\n prevValue = metric.value;\n callback(metric);\n }\n }\n }\n };\n};\n//# sourceMappingURL=bindReporter.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Performantly generate a unique, 30-char string by combining a version\n * number, the current timestamp with a 13-digit number integer.\n * @return {string}\n */\nexport var generateUniqueID = function () {\n return \"v2-\" + Date.now() + \"-\" + (Math.floor(Math.random() * (9e12 - 1)) + 1e12);\n};\n//# sourceMappingURL=generateUniqueID.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { generateUniqueID } from './generateUniqueID';\nexport var initMetric = function (name, value) {\n return {\n name: name,\n value: (value !== null && value !== void 0 ? value : -1),\n delta: 0,\n entries: [],\n id: generateUniqueID(),\n };\n};\n//# sourceMappingURL=initMetric.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Takes a performance entry type and a callback function, and creates a\n * `PerformanceObserver` instance that will observe the specified entry type\n * with buffering enabled and call the callback _for each entry_.\n *\n * This function also feature-detects entry support and wraps the logic in a\n * try/catch to avoid errors in unsupporting browsers.\n */\nexport var observe = function (type, callback) {\n try {\n if (PerformanceObserver.supportedEntryTypes.includes(type)) {\n // More extensive feature detect needed for Firefox due to:\n // https://github.com/GoogleChrome/web-vitals/issues/142\n if (type === 'first-input' && !('PerformanceEventTiming' in self)) {\n return;\n }\n var po = new PerformanceObserver(function (l) { return l.getEntries().map(callback); });\n po.observe({ type: type, buffered: true });\n return po;\n }\n }\n catch (e) {\n // Do nothing.\n }\n return;\n};\n//# sourceMappingURL=observe.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { getGlobalObject } from '@sentry/utils';\nexport var onHidden = function (cb, once) {\n var onHiddenOrPageHide = function (event) {\n if (event.type === 'pagehide' || getGlobalObject().document.visibilityState === 'hidden') {\n cb(event);\n if (once) {\n removeEventListener('visibilitychange', onHiddenOrPageHide, true);\n removeEventListener('pagehide', onHiddenOrPageHide, true);\n }\n }\n };\n addEventListener('visibilitychange', onHiddenOrPageHide, true);\n // Some browsers have buggy implementations of visibilitychange,\n // so we use pagehide in addition, just to be safe.\n addEventListener('pagehide', onHiddenOrPageHide, true);\n};\n//# sourceMappingURL=onHidden.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { bindReporter } from './lib/bindReporter';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nexport var getCLS = function (onReport, reportAllChanges) {\n var metric = initMetric('CLS', 0);\n var report;\n var sessionValue = 0;\n var sessionEntries = [];\n var entryHandler = function (entry) {\n // Only count layout shifts without recent user input.\n // TODO: Figure out why entry can be undefined\n if (entry && !entry.hadRecentInput) {\n var firstSessionEntry = sessionEntries[0];\n var lastSessionEntry = sessionEntries[sessionEntries.length - 1];\n // If the entry occurred less than 1 second after the previous entry and\n // less than 5 seconds after the first entry in the session, include the\n // entry in the current session. Otherwise, start a new session.\n if (sessionValue &&\n sessionEntries.length !== 0 &&\n entry.startTime - lastSessionEntry.startTime < 1000 &&\n entry.startTime - firstSessionEntry.startTime < 5000) {\n sessionValue += entry.value;\n sessionEntries.push(entry);\n }\n else {\n sessionValue = entry.value;\n sessionEntries = [entry];\n }\n // If the current session value is larger than the current CLS value,\n // update CLS and the entries contributing to it.\n if (sessionValue > metric.value) {\n metric.value = sessionValue;\n metric.entries = sessionEntries;\n if (report) {\n report();\n }\n }\n }\n };\n var po = observe('layout-shift', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n onHidden(function () {\n po.takeRecords().map(entryHandler);\n report(true);\n });\n }\n};\n//# sourceMappingURL=getCLS.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { getGlobalObject } from '@sentry/utils';\nimport { onHidden } from './onHidden';\nvar firstHiddenTime = -1;\nvar initHiddenTime = function () {\n return getGlobalObject().document.visibilityState === 'hidden' ? 0 : Infinity;\n};\nvar trackChanges = function () {\n // Update the time if/when the document becomes hidden.\n onHidden(function (_a) {\n var timeStamp = _a.timeStamp;\n firstHiddenTime = timeStamp;\n }, true);\n};\nexport var getVisibilityWatcher = function () {\n if (firstHiddenTime < 0) {\n // If the document is hidden when this code runs, assume it was hidden\n // since navigation start. This isn't a perfect heuristic, but it's the\n // best we can do until an API is available to support querying past\n // visibilityState.\n firstHiddenTime = initHiddenTime();\n trackChanges();\n }\n return {\n get firstHiddenTime() {\n return firstHiddenTime;\n },\n };\n};\n//# sourceMappingURL=getVisibilityWatcher.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nexport var getFID = function (onReport, reportAllChanges) {\n var visibilityWatcher = getVisibilityWatcher();\n var metric = initMetric('FID');\n var report;\n var entryHandler = function (entry) {\n // Only report if the page wasn't hidden prior to the first input.\n if (report && entry.startTime < visibilityWatcher.firstHiddenTime) {\n metric.value = entry.processingStart - entry.startTime;\n metric.entries.push(entry);\n report(true);\n }\n };\n var po = observe('first-input', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n onHidden(function () {\n po.takeRecords().map(entryHandler);\n po.disconnect();\n }, true);\n }\n};\n//# sourceMappingURL=getFID.js.map","/*\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { bindReporter } from './lib/bindReporter';\nimport { getVisibilityWatcher } from './lib/getVisibilityWatcher';\nimport { initMetric } from './lib/initMetric';\nimport { observe } from './lib/observe';\nimport { onHidden } from './lib/onHidden';\nvar reportedMetricIDs = {};\nexport var getLCP = function (onReport, reportAllChanges) {\n var visibilityWatcher = getVisibilityWatcher();\n var metric = initMetric('LCP');\n var report;\n var entryHandler = function (entry) {\n // The startTime attribute returns the value of the renderTime if it is not 0,\n // and the value of the loadTime otherwise.\n var value = entry.startTime;\n // If the page was hidden prior to paint time of the entry,\n // ignore it and mark the metric as final, otherwise add the entry.\n if (value < visibilityWatcher.firstHiddenTime) {\n metric.value = value;\n metric.entries.push(entry);\n }\n if (report) {\n report();\n }\n };\n var po = observe('largest-contentful-paint', entryHandler);\n if (po) {\n report = bindReporter(onReport, metric, reportAllChanges);\n var stopListening_1 = function () {\n if (!reportedMetricIDs[metric.id]) {\n po.takeRecords().map(entryHandler);\n po.disconnect();\n reportedMetricIDs[metric.id] = true;\n report(true);\n }\n };\n // Stop listening after input. Note: while scrolling is an input that\n // stop LCP observation, it's unreliable since it can be programmatically\n // generated. See: https://github.com/GoogleChrome/web-vitals/issues/75\n ['keydown', 'click'].forEach(function (type) {\n addEventListener(type, stopListening_1, { once: true, capture: true });\n });\n onHidden(stopListening_1, true);\n }\n};\n//# sourceMappingURL=getLCP.js.map","import { __assign, __rest } from \"tslib\";\nimport { browserPerformanceTimeOrigin, getGlobalObject, htmlTreeAsString, isNodeEnv, logger } from '@sentry/utils';\nimport { msToSec } from '../utils';\nimport { getCLS } from './web-vitals/getCLS';\nimport { getFID } from './web-vitals/getFID';\nimport { getLCP } from './web-vitals/getLCP';\nimport { getVisibilityWatcher } from './web-vitals/lib/getVisibilityWatcher';\nvar global = getGlobalObject();\n/** Class tracking metrics */\nvar MetricsInstrumentation = /** @class */ (function () {\n function MetricsInstrumentation(_reportAllChanges) {\n if (_reportAllChanges === void 0) { _reportAllChanges = false; }\n var _a, _b;\n this._reportAllChanges = _reportAllChanges;\n this._measurements = {};\n this._performanceCursor = 0;\n if (!isNodeEnv() && ((_a = global) === null || _a === void 0 ? void 0 : _a.performance) && ((_b = global) === null || _b === void 0 ? void 0 : _b.document)) {\n if (global.performance.mark) {\n global.performance.mark('sentry-tracing-init');\n }\n this._trackCLS();\n this._trackLCP();\n this._trackFID();\n }\n }\n /** Add performance related spans to a transaction */\n MetricsInstrumentation.prototype.addPerformanceEntries = function (transaction) {\n var _this = this;\n if (!global || !global.performance || !global.performance.getEntries || !browserPerformanceTimeOrigin) {\n // Gatekeeper if performance API not available\n return;\n }\n logger.log('[Tracing] Adding & adjusting spans using Performance API');\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var entryScriptSrc;\n if (global.document && global.document.scripts) {\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < global.document.scripts.length; i++) {\n // We go through all scripts on the page and look for 'data-entry'\n // We remember the name and measure the time between this script finished loading and\n // our mark 'sentry-tracing-init'\n if (global.document.scripts[i].dataset.entry === 'true') {\n entryScriptSrc = global.document.scripts[i].src;\n break;\n }\n }\n }\n var entryScriptStartTimestamp;\n var tracingInitMarkStartTime;\n var responseStartTimestamp;\n var requestStartTimestamp;\n global.performance\n .getEntries()\n .slice(this._performanceCursor)\n .forEach(function (entry) {\n var startTime = msToSec(entry.startTime);\n var duration = msToSec(entry.duration);\n if (transaction.op === 'navigation' && timeOrigin + startTime < transaction.startTimestamp) {\n return;\n }\n switch (entry.entryType) {\n case 'navigation': {\n addNavigationSpans(transaction, entry, timeOrigin);\n responseStartTimestamp = timeOrigin + msToSec(entry.responseStart);\n requestStartTimestamp = timeOrigin + msToSec(entry.requestStart);\n break;\n }\n case 'mark':\n case 'paint':\n case 'measure': {\n var startTimestamp = addMeasureSpans(transaction, entry, startTime, duration, timeOrigin);\n if (tracingInitMarkStartTime === undefined && entry.name === 'sentry-tracing-init') {\n tracingInitMarkStartTime = startTimestamp;\n }\n // capture web vitals\n var firstHidden = getVisibilityWatcher();\n // Only report if the page wasn't hidden prior to the web vital.\n var shouldRecord = entry.startTime < firstHidden.firstHiddenTime;\n if (entry.name === 'first-paint' && shouldRecord) {\n logger.log('[Measurements] Adding FP');\n _this._measurements['fp'] = { value: entry.startTime };\n _this._measurements['mark.fp'] = { value: startTimestamp };\n }\n if (entry.name === 'first-contentful-paint' && shouldRecord) {\n logger.log('[Measurements] Adding FCP');\n _this._measurements['fcp'] = { value: entry.startTime };\n _this._measurements['mark.fcp'] = { value: startTimestamp };\n }\n break;\n }\n case 'resource': {\n var resourceName = entry.name.replace(global.location.origin, '');\n var endTimestamp = addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin);\n // We remember the entry script end time to calculate the difference to the first init mark\n if (entryScriptStartTimestamp === undefined && (entryScriptSrc || '').indexOf(resourceName) > -1) {\n entryScriptStartTimestamp = endTimestamp;\n }\n break;\n }\n default:\n // Ignore other entry types.\n }\n });\n if (entryScriptStartTimestamp !== undefined && tracingInitMarkStartTime !== undefined) {\n _startChild(transaction, {\n description: 'evaluation',\n endTimestamp: tracingInitMarkStartTime,\n op: 'script',\n startTimestamp: entryScriptStartTimestamp,\n });\n }\n this._performanceCursor = Math.max(performance.getEntries().length - 1, 0);\n this._trackNavigator(transaction);\n // Measurements are only available for pageload transactions\n if (transaction.op === 'pageload') {\n // normalize applicable web vital values to be relative to transaction.startTimestamp\n var timeOrigin_1 = msToSec(browserPerformanceTimeOrigin);\n // Generate TTFB (Time to First Byte), which measured as the time between the beginning of the transaction and the\n // start of the response in milliseconds\n if (typeof responseStartTimestamp === 'number') {\n logger.log('[Measurements] Adding TTFB');\n this._measurements['ttfb'] = { value: (responseStartTimestamp - transaction.startTimestamp) * 1000 };\n if (typeof requestStartTimestamp === 'number' && requestStartTimestamp <= responseStartTimestamp) {\n // Capture the time spent making the request and receiving the first byte of the response.\n // This is the time between the start of the request and the start of the response in milliseconds.\n this._measurements['ttfb.requestTime'] = { value: (responseStartTimestamp - requestStartTimestamp) * 1000 };\n }\n }\n ['fcp', 'fp', 'lcp'].forEach(function (name) {\n if (!_this._measurements[name] || timeOrigin_1 >= transaction.startTimestamp) {\n return;\n }\n // The web vitals, fcp, fp, lcp, and ttfb, all measure relative to timeOrigin.\n // Unfortunately, timeOrigin is not captured within the transaction span data, so these web vitals will need\n // to be adjusted to be relative to transaction.startTimestamp.\n var oldValue = _this._measurements[name].value;\n var measurementTimestamp = timeOrigin_1 + msToSec(oldValue);\n // normalizedValue should be in milliseconds\n var normalizedValue = Math.abs((measurementTimestamp - transaction.startTimestamp) * 1000);\n var delta = normalizedValue - oldValue;\n logger.log(\"[Measurements] Normalized \" + name + \" from \" + oldValue + \" to \" + normalizedValue + \" (\" + delta + \")\");\n _this._measurements[name].value = normalizedValue;\n });\n if (this._measurements['mark.fid'] && this._measurements['fid']) {\n // create span for FID\n _startChild(transaction, {\n description: 'first input delay',\n endTimestamp: this._measurements['mark.fid'].value + msToSec(this._measurements['fid'].value),\n op: 'web.vitals',\n startTimestamp: this._measurements['mark.fid'].value,\n });\n }\n // If FCP is not recorded we should not record the cls value\n // according to the new definition of CLS.\n if (!('fcp' in this._measurements)) {\n delete this._measurements.cls;\n }\n transaction.setMeasurements(this._measurements);\n this._tagMetricInfo(transaction);\n transaction.setTag('sentry_reportAllChanges', this._reportAllChanges);\n }\n };\n /** Add LCP / CLS data to transaction to allow debugging */\n MetricsInstrumentation.prototype._tagMetricInfo = function (transaction) {\n if (this._lcpEntry) {\n logger.log('[Measurements] Adding LCP Data');\n // Capture Properties of the LCP element that contributes to the LCP.\n if (this._lcpEntry.element) {\n transaction.setTag('lcp.element', htmlTreeAsString(this._lcpEntry.element));\n }\n if (this._lcpEntry.id) {\n transaction.setTag('lcp.id', this._lcpEntry.id);\n }\n if (this._lcpEntry.url) {\n // Trim URL to the first 200 characters.\n transaction.setTag('lcp.url', this._lcpEntry.url.trim().slice(0, 200));\n }\n transaction.setTag('lcp.size', this._lcpEntry.size);\n }\n // See: https://developer.mozilla.org/en-US/docs/Web/API/LayoutShift\n if (this._clsEntry && this._clsEntry.sources) {\n logger.log('[Measurements] Adding CLS Data');\n this._clsEntry.sources.forEach(function (source, index) {\n return transaction.setTag(\"cls.source.\" + (index + 1), htmlTreeAsString(source.node));\n });\n }\n };\n /** Starts tracking the Cumulative Layout Shift on the current page. */\n MetricsInstrumentation.prototype._trackCLS = function () {\n var _this = this;\n // See:\n // https://web.dev/evolving-cls/\n // https://web.dev/cls-web-tooling/\n getCLS(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n logger.log('[Measurements] Adding CLS');\n _this._measurements['cls'] = { value: metric.value };\n _this._clsEntry = entry;\n });\n };\n /**\n * Capture the information of the user agent.\n */\n MetricsInstrumentation.prototype._trackNavigator = function (transaction) {\n var navigator = global.navigator;\n if (!navigator) {\n return;\n }\n // track network connectivity\n var connection = navigator.connection;\n if (connection) {\n if (connection.effectiveType) {\n transaction.setTag('effectiveConnectionType', connection.effectiveType);\n }\n if (connection.type) {\n transaction.setTag('connectionType', connection.type);\n }\n if (isMeasurementValue(connection.rtt)) {\n this._measurements['connection.rtt'] = { value: connection.rtt };\n }\n if (isMeasurementValue(connection.downlink)) {\n this._measurements['connection.downlink'] = { value: connection.downlink };\n }\n }\n if (isMeasurementValue(navigator.deviceMemory)) {\n transaction.setTag('deviceMemory', String(navigator.deviceMemory));\n }\n if (isMeasurementValue(navigator.hardwareConcurrency)) {\n transaction.setTag('hardwareConcurrency', String(navigator.hardwareConcurrency));\n }\n };\n /** Starts tracking the Largest Contentful Paint on the current page. */\n MetricsInstrumentation.prototype._trackLCP = function () {\n var _this = this;\n getLCP(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var startTime = msToSec(entry.startTime);\n logger.log('[Measurements] Adding LCP');\n _this._measurements['lcp'] = { value: metric.value };\n _this._measurements['mark.lcp'] = { value: timeOrigin + startTime };\n _this._lcpEntry = entry;\n }, this._reportAllChanges);\n };\n /** Starts tracking the First Input Delay on the current page. */\n MetricsInstrumentation.prototype._trackFID = function () {\n var _this = this;\n getFID(function (metric) {\n var entry = metric.entries.pop();\n if (!entry) {\n return;\n }\n var timeOrigin = msToSec(browserPerformanceTimeOrigin);\n var startTime = msToSec(entry.startTime);\n logger.log('[Measurements] Adding FID');\n _this._measurements['fid'] = { value: metric.value };\n _this._measurements['mark.fid'] = { value: timeOrigin + startTime };\n });\n };\n return MetricsInstrumentation;\n}());\nexport { MetricsInstrumentation };\n/** Instrument navigation entries */\nfunction addNavigationSpans(transaction, entry, timeOrigin) {\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'unloadEvent', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'redirect', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'domContentLoadedEvent', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'loadEvent', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'connect', timeOrigin: timeOrigin });\n addPerformanceNavigationTiming({\n transaction: transaction,\n entry: entry,\n event: 'secureConnection',\n timeOrigin: timeOrigin,\n eventEnd: 'connectEnd',\n description: 'TLS/SSL',\n });\n addPerformanceNavigationTiming({\n transaction: transaction,\n entry: entry,\n event: 'fetch',\n timeOrigin: timeOrigin,\n eventEnd: 'domainLookupStart',\n description: 'cache',\n });\n addPerformanceNavigationTiming({ transaction: transaction, entry: entry, event: 'domainLookup', timeOrigin: timeOrigin, description: 'DNS' });\n addRequest(transaction, entry, timeOrigin);\n}\n/** Create measure related spans */\nfunction addMeasureSpans(transaction, entry, startTime, duration, timeOrigin) {\n var measureStartTimestamp = timeOrigin + startTime;\n var measureEndTimestamp = measureStartTimestamp + duration;\n _startChild(transaction, {\n description: entry.name,\n endTimestamp: measureEndTimestamp,\n op: entry.entryType,\n startTimestamp: measureStartTimestamp,\n });\n return measureStartTimestamp;\n}\n/** Create resource-related spans */\nexport function addResourceSpans(transaction, entry, resourceName, startTime, duration, timeOrigin) {\n // we already instrument based on fetch and xhr, so we don't need to\n // duplicate spans here.\n if (entry.initiatorType === 'xmlhttprequest' || entry.initiatorType === 'fetch') {\n return undefined;\n }\n var data = {};\n if ('transferSize' in entry) {\n data['Transfer Size'] = entry.transferSize;\n }\n if ('encodedBodySize' in entry) {\n data['Encoded Body Size'] = entry.encodedBodySize;\n }\n if ('decodedBodySize' in entry) {\n data['Decoded Body Size'] = entry.decodedBodySize;\n }\n var startTimestamp = timeOrigin + startTime;\n var endTimestamp = startTimestamp + duration;\n _startChild(transaction, {\n description: resourceName,\n endTimestamp: endTimestamp,\n op: entry.initiatorType ? \"resource.\" + entry.initiatorType : 'resource',\n startTimestamp: startTimestamp,\n data: data,\n });\n return endTimestamp;\n}\n/** Create performance navigation related spans */\nfunction addPerformanceNavigationTiming(props) {\n var transaction = props.transaction, entry = props.entry, event = props.event, timeOrigin = props.timeOrigin, eventEnd = props.eventEnd, description = props.description;\n var end = eventEnd ? entry[eventEnd] : entry[event + \"End\"];\n var start = entry[event + \"Start\"];\n if (!start || !end) {\n return;\n }\n _startChild(transaction, {\n op: 'browser',\n description: (description !== null && description !== void 0 ? description : event),\n startTimestamp: timeOrigin + msToSec(start),\n endTimestamp: timeOrigin + msToSec(end),\n });\n}\n/** Create request and response related spans */\nfunction addRequest(transaction, entry, timeOrigin) {\n _startChild(transaction, {\n op: 'browser',\n description: 'request',\n startTimestamp: timeOrigin + msToSec(entry.requestStart),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd),\n });\n _startChild(transaction, {\n op: 'browser',\n description: 'response',\n startTimestamp: timeOrigin + msToSec(entry.responseStart),\n endTimestamp: timeOrigin + msToSec(entry.responseEnd),\n });\n}\n/**\n * Helper function to start child on transactions. This function will make sure that the transaction will\n * use the start timestamp of the created child span if it is earlier than the transactions actual\n * start timestamp.\n */\nexport function _startChild(transaction, _a) {\n var startTimestamp = _a.startTimestamp, ctx = __rest(_a, [\"startTimestamp\"]);\n if (startTimestamp && transaction.startTimestamp > startTimestamp) {\n transaction.startTimestamp = startTimestamp;\n }\n return transaction.startChild(__assign({ startTimestamp: startTimestamp }, ctx));\n}\n/**\n * Checks if a given value is a valid measurement value.\n */\nfunction isMeasurementValue(value) {\n return typeof value === 'number' && isFinite(value);\n}\n//# sourceMappingURL=metrics.js.map","import { __assign, __read, __spread } from \"tslib\";\nimport { addInstrumentationHandler, isInstanceOf, isMatchingPattern } from '@sentry/utils';\nimport { SpanStatus } from '../spanstatus';\nimport { getActiveTransaction, hasTracingEnabled } from '../utils';\nexport var DEFAULT_TRACING_ORIGINS = ['localhost', /^\\//];\nexport var defaultRequestInstrumentationOptions = {\n traceFetch: true,\n traceXHR: true,\n tracingOrigins: DEFAULT_TRACING_ORIGINS,\n};\n/** Registers span creators for xhr and fetch requests */\nexport function instrumentOutgoingRequests(_options) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = __assign(__assign({}, defaultRequestInstrumentationOptions), _options), traceFetch = _a.traceFetch, traceXHR = _a.traceXHR, tracingOrigins = _a.tracingOrigins, shouldCreateSpanForRequest = _a.shouldCreateSpanForRequest;\n // We should cache url -> decision so that we don't have to compute\n // regexp everytime we create a request.\n var urlMap = {};\n var defaultShouldCreateSpan = function (url) {\n if (urlMap[url]) {\n return urlMap[url];\n }\n var origins = tracingOrigins;\n urlMap[url] =\n origins.some(function (origin) { return isMatchingPattern(url, origin); }) &&\n !isMatchingPattern(url, 'sentry_key');\n return urlMap[url];\n };\n // We want that our users don't have to re-implement shouldCreateSpanForRequest themselves\n // That's why we filter out already unwanted Spans from tracingOrigins\n var shouldCreateSpan = defaultShouldCreateSpan;\n if (typeof shouldCreateSpanForRequest === 'function') {\n shouldCreateSpan = function (url) {\n return defaultShouldCreateSpan(url) && shouldCreateSpanForRequest(url);\n };\n }\n var spans = {};\n if (traceFetch) {\n addInstrumentationHandler({\n callback: function (handlerData) {\n fetchCallback(handlerData, shouldCreateSpan, spans);\n },\n type: 'fetch',\n });\n }\n if (traceXHR) {\n addInstrumentationHandler({\n callback: function (handlerData) {\n xhrCallback(handlerData, shouldCreateSpan, spans);\n },\n type: 'xhr',\n });\n }\n}\n/**\n * Create and track fetch request spans\n */\nexport function fetchCallback(handlerData, shouldCreateSpan, spans) {\n if (!hasTracingEnabled() || !(handlerData.fetchData && shouldCreateSpan(handlerData.fetchData.url))) {\n return;\n }\n if (handlerData.endTimestamp && handlerData.fetchData.__span) {\n var span = spans[handlerData.fetchData.__span];\n if (span) {\n if (handlerData.response) {\n // TODO (kmclb) remove this once types PR goes through\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n span.setHttpStatus(handlerData.response.status);\n }\n else if (handlerData.error) {\n span.setStatus(SpanStatus.InternalError);\n }\n span.finish();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[handlerData.fetchData.__span];\n }\n return;\n }\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: __assign(__assign({}, handlerData.fetchData), { type: 'fetch' }),\n description: handlerData.fetchData.method + \" \" + handlerData.fetchData.url,\n op: 'http.client',\n });\n handlerData.fetchData.__span = span.spanId;\n spans[span.spanId] = span;\n var request = (handlerData.args[0] = handlerData.args[0]);\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var options = (handlerData.args[1] = handlerData.args[1] || {});\n var headers = options.headers;\n if (isInstanceOf(request, Request)) {\n headers = request.headers;\n }\n if (headers) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (typeof headers.append === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n headers.append('sentry-trace', span.toTraceparent());\n }\n else if (Array.isArray(headers)) {\n headers = __spread(headers, [['sentry-trace', span.toTraceparent()]]);\n }\n else {\n headers = __assign(__assign({}, headers), { 'sentry-trace': span.toTraceparent() });\n }\n }\n else {\n headers = { 'sentry-trace': span.toTraceparent() };\n }\n options.headers = headers;\n }\n}\n/**\n * Create and track xhr request spans\n */\nexport function xhrCallback(handlerData, shouldCreateSpan, spans) {\n var _a, _b;\n if (!hasTracingEnabled() || ((_a = handlerData.xhr) === null || _a === void 0 ? void 0 : _a.__sentry_own_request__) ||\n !(((_b = handlerData.xhr) === null || _b === void 0 ? void 0 : _b.__sentry_xhr__) && shouldCreateSpan(handlerData.xhr.__sentry_xhr__.url))) {\n return;\n }\n var xhr = handlerData.xhr.__sentry_xhr__;\n // check first if the request has finished and is tracked by an existing span which should now end\n if (handlerData.endTimestamp && handlerData.xhr.__sentry_xhr_span_id__) {\n var span = spans[handlerData.xhr.__sentry_xhr_span_id__];\n if (span) {\n span.setHttpStatus(xhr.status_code);\n span.finish();\n // eslint-disable-next-line @typescript-eslint/no-dynamic-delete\n delete spans[handlerData.xhr.__sentry_xhr_span_id__];\n }\n return;\n }\n // if not, create a new span to track it\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n var span = activeTransaction.startChild({\n data: __assign(__assign({}, xhr.data), { type: 'xhr', method: xhr.method, url: xhr.url }),\n description: xhr.method + \" \" + xhr.url,\n op: 'http.client',\n });\n handlerData.xhr.__sentry_xhr_span_id__ = span.spanId;\n spans[handlerData.xhr.__sentry_xhr_span_id__] = span;\n if (handlerData.xhr.setRequestHeader) {\n try {\n handlerData.xhr.setRequestHeader('sentry-trace', span.toTraceparent());\n }\n catch (_) {\n // Error: InvalidStateError: Failed to execute 'setRequestHeader' on 'XMLHttpRequest': The object's state must be OPENED.\n }\n }\n }\n}\n//# sourceMappingURL=request.js.map","import { addInstrumentationHandler, getGlobalObject, logger } from '@sentry/utils';\nvar global = getGlobalObject();\n/**\n * Default function implementing pageload and navigation transactions\n */\nexport function instrumentRoutingWithDefaults(customStartTransaction, startTransactionOnPageLoad, startTransactionOnLocationChange) {\n if (startTransactionOnPageLoad === void 0) { startTransactionOnPageLoad = true; }\n if (startTransactionOnLocationChange === void 0) { startTransactionOnLocationChange = true; }\n if (!global || !global.location) {\n logger.warn('Could not initialize routing instrumentation due to invalid location');\n return;\n }\n var startingUrl = global.location.href;\n var activeTransaction;\n if (startTransactionOnPageLoad) {\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'pageload' });\n }\n if (startTransactionOnLocationChange) {\n addInstrumentationHandler({\n callback: function (_a) {\n var to = _a.to, from = _a.from;\n /**\n * This early return is there to account for some cases where a navigation transaction starts right after\n * long-running pageload. We make sure that if `from` is undefined and a valid `startingURL` exists, we don't\n * create an uneccessary navigation transaction.\n *\n * This was hard to duplicate, but this behavior stopped as soon as this fix was applied. This issue might also\n * only be caused in certain development environments where the usage of a hot module reloader is causing\n * errors.\n */\n if (from === undefined && startingUrl && startingUrl.indexOf(to) !== -1) {\n startingUrl = undefined;\n return;\n }\n if (from !== to) {\n startingUrl = undefined;\n if (activeTransaction) {\n logger.log(\"[Tracing] Finishing current transaction with op: \" + activeTransaction.op);\n // If there's an open transaction on the scope, we need to finish it before creating an new one.\n activeTransaction.finish();\n }\n activeTransaction = customStartTransaction({ name: global.location.pathname, op: 'navigation' });\n }\n },\n type: 'history',\n });\n }\n}\n//# sourceMappingURL=router.js.map","import { __assign } from \"tslib\";\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { startIdleTransaction } from '../hubextensions';\nimport { DEFAULT_IDLE_TIMEOUT } from '../idletransaction';\nimport { SpanStatus } from '../spanstatus';\nimport { extractTraceparentData, secToMs } from '../utils';\nimport { registerBackgroundTabDetection } from './backgroundtab';\nimport { MetricsInstrumentation } from './metrics';\nimport { defaultRequestInstrumentationOptions, instrumentOutgoingRequests, } from './request';\nimport { instrumentRoutingWithDefaults } from './router';\nexport var DEFAULT_MAX_TRANSACTION_DURATION_SECONDS = 600;\nvar DEFAULT_BROWSER_TRACING_OPTIONS = __assign({ idleTimeout: DEFAULT_IDLE_TIMEOUT, markBackgroundTransactions: true, maxTransactionDuration: DEFAULT_MAX_TRANSACTION_DURATION_SECONDS, routingInstrumentation: instrumentRoutingWithDefaults, startTransactionOnLocationChange: true, startTransactionOnPageLoad: true }, defaultRequestInstrumentationOptions);\n/**\n * The Browser Tracing integration automatically instruments browser pageload/navigation\n * actions as transactions, and captures requests, metrics and errors as spans.\n *\n * The integration can be configured with a variety of options, and can be extended to use\n * any routing library. This integration uses {@see IdleTransaction} to create transactions.\n */\nvar BrowserTracing = /** @class */ (function () {\n function BrowserTracing(_options) {\n /**\n * @inheritDoc\n */\n this.name = BrowserTracing.id;\n this._emitOptionsWarning = false;\n /** Store configured idle timeout so that it can be added as a tag to transactions */\n this._configuredIdleTimeout = undefined;\n var tracingOrigins = defaultRequestInstrumentationOptions.tracingOrigins;\n // NOTE: Logger doesn't work in constructors, as it's initialized after integrations instances\n if (_options) {\n this._configuredIdleTimeout = _options.idleTimeout;\n if (_options.tracingOrigins && Array.isArray(_options.tracingOrigins) && _options.tracingOrigins.length !== 0) {\n tracingOrigins = _options.tracingOrigins;\n }\n else {\n this._emitOptionsWarning = true;\n }\n }\n this.options = __assign(__assign(__assign({}, DEFAULT_BROWSER_TRACING_OPTIONS), _options), { tracingOrigins: tracingOrigins });\n var _metricOptions = this.options._metricOptions;\n this._metrics = new MetricsInstrumentation(_metricOptions && _metricOptions._reportAllChanges);\n }\n /**\n * @inheritDoc\n */\n BrowserTracing.prototype.setupOnce = function (_, getCurrentHub) {\n var _this = this;\n this._getCurrentHub = getCurrentHub;\n if (this._emitOptionsWarning) {\n logger.warn('[Tracing] You need to define `tracingOrigins` in the options. Set an array of urls or patterns to trace.');\n logger.warn(\"[Tracing] We added a reasonable default for you: \" + defaultRequestInstrumentationOptions.tracingOrigins);\n }\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.options, instrumentRouting = _a.routingInstrumentation, startTransactionOnLocationChange = _a.startTransactionOnLocationChange, startTransactionOnPageLoad = _a.startTransactionOnPageLoad, markBackgroundTransactions = _a.markBackgroundTransactions, traceFetch = _a.traceFetch, traceXHR = _a.traceXHR, tracingOrigins = _a.tracingOrigins, shouldCreateSpanForRequest = _a.shouldCreateSpanForRequest;\n instrumentRouting(function (context) { return _this._createRouteTransaction(context); }, startTransactionOnPageLoad, startTransactionOnLocationChange);\n if (markBackgroundTransactions) {\n registerBackgroundTabDetection();\n }\n instrumentOutgoingRequests({ traceFetch: traceFetch, traceXHR: traceXHR, tracingOrigins: tracingOrigins, shouldCreateSpanForRequest: shouldCreateSpanForRequest });\n };\n /** Create routing idle transaction. */\n BrowserTracing.prototype._createRouteTransaction = function (context) {\n var _this = this;\n if (!this._getCurrentHub) {\n logger.warn(\"[Tracing] Did not create \" + context.op + \" transaction because _getCurrentHub is invalid.\");\n return undefined;\n }\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _a = this.options, beforeNavigate = _a.beforeNavigate, idleTimeout = _a.idleTimeout, maxTransactionDuration = _a.maxTransactionDuration;\n var parentContextFromHeader = context.op === 'pageload' ? getHeaderContext() : undefined;\n var expandedContext = __assign(__assign(__assign({}, context), parentContextFromHeader), { trimEnd: true });\n var modifiedContext = typeof beforeNavigate === 'function' ? beforeNavigate(expandedContext) : expandedContext;\n // For backwards compatibility reasons, beforeNavigate can return undefined to \"drop\" the transaction (prevent it\n // from being sent to Sentry).\n var finalContext = modifiedContext === undefined ? __assign(__assign({}, expandedContext), { sampled: false }) : modifiedContext;\n if (finalContext.sampled === false) {\n logger.log(\"[Tracing] Will not send \" + finalContext.op + \" transaction because of beforeNavigate.\");\n }\n logger.log(\"[Tracing] Starting \" + finalContext.op + \" transaction on scope\");\n var hub = this._getCurrentHub();\n var location = getGlobalObject().location;\n var idleTransaction = startIdleTransaction(hub, finalContext, idleTimeout, true, { location: location });\n idleTransaction.registerBeforeFinishCallback(function (transaction, endTimestamp) {\n _this._metrics.addPerformanceEntries(transaction);\n adjustTransactionDuration(secToMs(maxTransactionDuration), transaction, endTimestamp);\n });\n idleTransaction.setTag('idleTimeout', this._configuredIdleTimeout);\n return idleTransaction;\n };\n /**\n * @inheritDoc\n */\n BrowserTracing.id = 'BrowserTracing';\n return BrowserTracing;\n}());\nexport { BrowserTracing };\n/**\n * Gets transaction context from a sentry-trace meta.\n *\n * @returns Transaction context data from the header or undefined if there's no header or the header is malformed\n */\nexport function getHeaderContext() {\n var header = getMetaContent('sentry-trace');\n if (header) {\n return extractTraceparentData(header);\n }\n return undefined;\n}\n/** Returns the value of a meta tag */\nexport function getMetaContent(metaName) {\n var el = getGlobalObject().document.querySelector(\"meta[name=\" + metaName + \"]\");\n return el ? el.getAttribute('content') : null;\n}\n/** Adjusts transaction value based on max transaction duration */\nfunction adjustTransactionDuration(maxDuration, transaction, endTimestamp) {\n var diff = endTimestamp - transaction.startTimestamp;\n var isOutdatedTransaction = endTimestamp && (diff > maxDuration || diff < 0);\n if (isOutdatedTransaction) {\n transaction.setStatus(SpanStatus.DeadlineExceeded);\n transaction.setTag('maxTransactionDurationExceeded', 'true');\n }\n}\n//# sourceMappingURL=browsertracing.js.map","import { addExtensionMethods } from './hubextensions';\nimport * as Integrations from './integrations';\nexport { Integrations };\n// This is already exported as part of `Integrations` above (and for the moment will remain so for\n// backwards compatibility), but that interferes with treeshaking, so we also export it separately\n// here.\n//\n// Previously we expected users to import tracing integrations like\n//\n// import { Integrations } from '@sentry/tracing';\n// const instance = new Integrations.BrowserTracing();\n//\n// This makes the integrations unable to be treeshaken though. To address this, we now have\n// this individual export. We now expect users to consume BrowserTracing like so:\n//\n// import { BrowserTracing } from '@sentry/tracing';\n// const instance = new BrowserTracing();\n//\n// For an example of of the new usage of BrowserTracing, see @sentry/nextjs index.client.ts\nexport { BrowserTracing } from './browser';\nexport { Span } from './span';\nexport { Transaction } from './transaction';\nexport { \n// TODO deprecate old name in v7\ninstrumentOutgoingRequests as registerRequestInstrumentation, defaultRequestInstrumentationOptions, } from './browser';\nexport { SpanStatus } from './spanstatus';\nexport { IdleTransaction } from './idletransaction';\nexport { startIdleTransaction } from './hubextensions';\n// We are patching the global object with our hub extension methods\naddExtensionMethods();\nexport { addExtensionMethods };\nexport { extractTraceparentData, getActiveTransaction, hasTracingEnabled, stripUrlQueryAndFragment, TRACEPARENT_REGEXP, } from './utils';\n//# sourceMappingURL=index.js.map","import { __assign } from \"tslib\";\nimport { dropUndefinedKeys, timestampWithMs, uuid4 } from '@sentry/utils';\nimport { SpanStatus } from './spanstatus';\n/**\n * Keeps track of finished spans for a given transaction\n * @internal\n * @hideconstructor\n * @hidden\n */\nvar SpanRecorder = /** @class */ (function () {\n function SpanRecorder(maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n this.spans = [];\n this._maxlen = maxlen;\n }\n /**\n * This is just so that we don't run out of memory while recording a lot\n * of spans. At some point we just stop and flush out the start of the\n * trace tree (i.e.the first n spans with the smallest\n * start_timestamp).\n */\n SpanRecorder.prototype.add = function (span) {\n if (this.spans.length > this._maxlen) {\n span.spanRecorder = undefined;\n }\n else {\n this.spans.push(span);\n }\n };\n return SpanRecorder;\n}());\nexport { SpanRecorder };\n/**\n * Span contains all data about a span\n */\nvar Span = /** @class */ (function () {\n /**\n * You should never call the constructor manually, always use `Sentry.startTransaction()`\n * or call `startChild()` on an existing span.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Span(spanContext) {\n /**\n * @inheritDoc\n */\n this.traceId = uuid4();\n /**\n * @inheritDoc\n */\n this.spanId = uuid4().substring(16);\n /**\n * Timestamp in seconds when the span was created.\n */\n this.startTimestamp = timestampWithMs();\n /**\n * @inheritDoc\n */\n this.tags = {};\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n this.data = {};\n if (!spanContext) {\n return this;\n }\n if (spanContext.traceId) {\n this.traceId = spanContext.traceId;\n }\n if (spanContext.spanId) {\n this.spanId = spanContext.spanId;\n }\n if (spanContext.parentSpanId) {\n this.parentSpanId = spanContext.parentSpanId;\n }\n // We want to include booleans as well here\n if ('sampled' in spanContext) {\n this.sampled = spanContext.sampled;\n }\n if (spanContext.op) {\n this.op = spanContext.op;\n }\n if (spanContext.description) {\n this.description = spanContext.description;\n }\n if (spanContext.data) {\n this.data = spanContext.data;\n }\n if (spanContext.tags) {\n this.tags = spanContext.tags;\n }\n if (spanContext.status) {\n this.status = spanContext.status;\n }\n if (spanContext.startTimestamp) {\n this.startTimestamp = spanContext.startTimestamp;\n }\n if (spanContext.endTimestamp) {\n this.endTimestamp = spanContext.endTimestamp;\n }\n }\n /**\n * @inheritDoc\n * @deprecated\n */\n Span.prototype.child = function (spanContext) {\n return this.startChild(spanContext);\n };\n /**\n * @inheritDoc\n */\n Span.prototype.startChild = function (spanContext) {\n var childSpan = new Span(__assign(__assign({}, spanContext), { parentSpanId: this.spanId, sampled: this.sampled, traceId: this.traceId }));\n childSpan.spanRecorder = this.spanRecorder;\n if (childSpan.spanRecorder) {\n childSpan.spanRecorder.add(childSpan);\n }\n childSpan.transaction = this.transaction;\n return childSpan;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setTag = function (key, value) {\n var _a;\n this.tags = __assign(__assign({}, this.tags), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n Span.prototype.setData = function (key, value) {\n var _a;\n this.data = __assign(__assign({}, this.data), (_a = {}, _a[key] = value, _a));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setStatus = function (value) {\n this.status = value;\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.setHttpStatus = function (httpStatus) {\n this.setTag('http.status_code', String(httpStatus));\n var spanStatus = SpanStatus.fromHttpCode(httpStatus);\n if (spanStatus !== SpanStatus.UnknownError) {\n this.setStatus(spanStatus);\n }\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.isSuccess = function () {\n return this.status === SpanStatus.Ok;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.finish = function (endTimestamp) {\n this.endTimestamp = typeof endTimestamp === 'number' ? endTimestamp : timestampWithMs();\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toTraceparent = function () {\n var sampledString = '';\n if (this.sampled !== undefined) {\n sampledString = this.sampled ? '-1' : '-0';\n }\n return this.traceId + \"-\" + this.spanId + sampledString;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toContext = function () {\n return dropUndefinedKeys({\n data: this.data,\n description: this.description,\n endTimestamp: this.endTimestamp,\n op: this.op,\n parentSpanId: this.parentSpanId,\n sampled: this.sampled,\n spanId: this.spanId,\n startTimestamp: this.startTimestamp,\n status: this.status,\n tags: this.tags,\n traceId: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.updateWithContext = function (spanContext) {\n var _a, _b, _c, _d, _e;\n this.data = (_a = spanContext.data, (_a !== null && _a !== void 0 ? _a : {}));\n this.description = spanContext.description;\n this.endTimestamp = spanContext.endTimestamp;\n this.op = spanContext.op;\n this.parentSpanId = spanContext.parentSpanId;\n this.sampled = spanContext.sampled;\n this.spanId = (_b = spanContext.spanId, (_b !== null && _b !== void 0 ? _b : this.spanId));\n this.startTimestamp = (_c = spanContext.startTimestamp, (_c !== null && _c !== void 0 ? _c : this.startTimestamp));\n this.status = spanContext.status;\n this.tags = (_d = spanContext.tags, (_d !== null && _d !== void 0 ? _d : {}));\n this.traceId = (_e = spanContext.traceId, (_e !== null && _e !== void 0 ? _e : this.traceId));\n return this;\n };\n /**\n * @inheritDoc\n */\n Span.prototype.getTraceContext = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n trace_id: this.traceId,\n });\n };\n /**\n * @inheritDoc\n */\n Span.prototype.toJSON = function () {\n return dropUndefinedKeys({\n data: Object.keys(this.data).length > 0 ? this.data : undefined,\n description: this.description,\n op: this.op,\n parent_span_id: this.parentSpanId,\n span_id: this.spanId,\n start_timestamp: this.startTimestamp,\n status: this.status,\n tags: Object.keys(this.tags).length > 0 ? this.tags : undefined,\n timestamp: this.endTimestamp,\n trace_id: this.traceId,\n });\n };\n return Span;\n}());\nexport { Span };\n//# sourceMappingURL=span.js.map","/** The status of an Span. */\n// eslint-disable-next-line import/export\nexport var SpanStatus;\n(function (SpanStatus) {\n /** The operation completed successfully. */\n SpanStatus[\"Ok\"] = \"ok\";\n /** Deadline expired before operation could complete. */\n SpanStatus[\"DeadlineExceeded\"] = \"deadline_exceeded\";\n /** 401 Unauthorized (actually does mean unauthenticated according to RFC 7235) */\n SpanStatus[\"Unauthenticated\"] = \"unauthenticated\";\n /** 403 Forbidden */\n SpanStatus[\"PermissionDenied\"] = \"permission_denied\";\n /** 404 Not Found. Some requested entity (file or directory) was not found. */\n SpanStatus[\"NotFound\"] = \"not_found\";\n /** 429 Too Many Requests */\n SpanStatus[\"ResourceExhausted\"] = \"resource_exhausted\";\n /** Client specified an invalid argument. 4xx. */\n SpanStatus[\"InvalidArgument\"] = \"invalid_argument\";\n /** 501 Not Implemented */\n SpanStatus[\"Unimplemented\"] = \"unimplemented\";\n /** 503 Service Unavailable */\n SpanStatus[\"Unavailable\"] = \"unavailable\";\n /** Other/generic 5xx. */\n SpanStatus[\"InternalError\"] = \"internal_error\";\n /** Unknown. Any non-standard HTTP status code. */\n SpanStatus[\"UnknownError\"] = \"unknown_error\";\n /** The operation was cancelled (typically by the user). */\n SpanStatus[\"Cancelled\"] = \"cancelled\";\n /** Already exists (409) */\n SpanStatus[\"AlreadyExists\"] = \"already_exists\";\n /** Operation was rejected because the system is not in a state required for the operation's */\n SpanStatus[\"FailedPrecondition\"] = \"failed_precondition\";\n /** The operation was aborted, typically due to a concurrency issue. */\n SpanStatus[\"Aborted\"] = \"aborted\";\n /** Operation was attempted past the valid range. */\n SpanStatus[\"OutOfRange\"] = \"out_of_range\";\n /** Unrecoverable data loss or corruption */\n SpanStatus[\"DataLoss\"] = \"data_loss\";\n})(SpanStatus || (SpanStatus = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (SpanStatus) {\n /**\n * Converts a HTTP status code into a {@link SpanStatus}.\n *\n * @param httpStatus The HTTP response status code.\n * @returns The span status or {@link SpanStatus.UnknownError}.\n */\n function fromHttpCode(httpStatus) {\n if (httpStatus < 400 && httpStatus >= 100) {\n return SpanStatus.Ok;\n }\n if (httpStatus >= 400 && httpStatus < 500) {\n switch (httpStatus) {\n case 401:\n return SpanStatus.Unauthenticated;\n case 403:\n return SpanStatus.PermissionDenied;\n case 404:\n return SpanStatus.NotFound;\n case 409:\n return SpanStatus.AlreadyExists;\n case 413:\n return SpanStatus.FailedPrecondition;\n case 429:\n return SpanStatus.ResourceExhausted;\n default:\n return SpanStatus.InvalidArgument;\n }\n }\n if (httpStatus >= 500 && httpStatus < 600) {\n switch (httpStatus) {\n case 501:\n return SpanStatus.Unimplemented;\n case 503:\n return SpanStatus.Unavailable;\n case 504:\n return SpanStatus.DeadlineExceeded;\n default:\n return SpanStatus.InternalError;\n }\n }\n return SpanStatus.UnknownError;\n }\n SpanStatus.fromHttpCode = fromHttpCode;\n})(SpanStatus || (SpanStatus = {}));\n//# sourceMappingURL=spanstatus.js.map","import { __assign, __extends } from \"tslib\";\nimport { getCurrentHub, Hub } from '@sentry/hub';\nimport { Outcome, } from '@sentry/types';\nimport { dropUndefinedKeys, isInstanceOf, logger } from '@sentry/utils';\nimport { Span as SpanClass, SpanRecorder } from './span';\n/** JSDoc */\nvar Transaction = /** @class */ (function (_super) {\n __extends(Transaction, _super);\n /**\n * This constructor should never be called manually. Those instrumenting tracing should use\n * `Sentry.startTransaction()`, and internal methods should use `hub.startTransaction()`.\n * @internal\n * @hideconstructor\n * @hidden\n */\n function Transaction(transactionContext, hub) {\n var _this = _super.call(this, transactionContext) || this;\n _this._measurements = {};\n /**\n * The reference to the current hub.\n */\n _this._hub = getCurrentHub();\n if (isInstanceOf(hub, Hub)) {\n _this._hub = hub;\n }\n _this.name = transactionContext.name || '';\n _this.metadata = transactionContext.metadata || {};\n _this._trimEnd = transactionContext.trimEnd;\n // this is because transactions are also spans, and spans have a transaction pointer\n _this.transaction = _this;\n return _this;\n }\n /**\n * JSDoc\n */\n Transaction.prototype.setName = function (name) {\n this.name = name;\n };\n /**\n * Attaches SpanRecorder to the span itself\n * @param maxlen maximum number of spans that can be recorded\n */\n Transaction.prototype.initSpanRecorder = function (maxlen) {\n if (maxlen === void 0) { maxlen = 1000; }\n if (!this.spanRecorder) {\n this.spanRecorder = new SpanRecorder(maxlen);\n }\n this.spanRecorder.add(this);\n };\n /**\n * Set observed measurements for this transaction.\n * @hidden\n */\n Transaction.prototype.setMeasurements = function (measurements) {\n this._measurements = __assign({}, measurements);\n };\n /**\n * Set metadata for this transaction.\n * @hidden\n */\n Transaction.prototype.setMetadata = function (newMetadata) {\n this.metadata = __assign(__assign({}, this.metadata), newMetadata);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.finish = function (endTimestamp) {\n var _this = this;\n var _a, _b, _c, _d, _e;\n // This transaction is already finished, so we should not flush it again.\n if (this.endTimestamp !== undefined) {\n return undefined;\n }\n if (!this.name) {\n logger.warn('Transaction has no name, falling back to `<unlabeled transaction>`.');\n this.name = '<unlabeled transaction>';\n }\n // just sets the end timestamp\n _super.prototype.finish.call(this, endTimestamp);\n if (this.sampled !== true) {\n // At this point if `sampled !== true` we want to discard the transaction.\n logger.log('[Tracing] Discarding transaction because its trace was not chosen to be sampled.');\n (_e = (_c = (_a = this._hub\n .getClient()) === null || _a === void 0 ? void 0 : (_b = _a).getTransport) === null || _c === void 0 ? void 0 : (_d = _c.call(_b)).recordLostEvent) === null || _e === void 0 ? void 0 : _e.call(_d, Outcome.SampleRate, 'transaction');\n return undefined;\n }\n var finishedSpans = this.spanRecorder ? this.spanRecorder.spans.filter(function (s) { return s !== _this && s.endTimestamp; }) : [];\n if (this._trimEnd && finishedSpans.length > 0) {\n this.endTimestamp = finishedSpans.reduce(function (prev, current) {\n if (prev.endTimestamp && current.endTimestamp) {\n return prev.endTimestamp > current.endTimestamp ? prev : current;\n }\n return prev;\n }).endTimestamp;\n }\n var transaction = {\n contexts: {\n trace: this.getTraceContext(),\n },\n spans: finishedSpans,\n start_timestamp: this.startTimestamp,\n tags: this.tags,\n timestamp: this.endTimestamp,\n transaction: this.name,\n type: 'transaction',\n debug_meta: this.metadata,\n };\n var hasMeasurements = Object.keys(this._measurements).length > 0;\n if (hasMeasurements) {\n logger.log('[Measurements] Adding measurements to transaction', JSON.stringify(this._measurements, undefined, 2));\n transaction.measurements = this._measurements;\n }\n logger.log(\"[Tracing] Finishing \" + this.op + \" transaction: \" + this.name + \".\");\n return this._hub.captureEvent(transaction);\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.toContext = function () {\n var spanContext = _super.prototype.toContext.call(this);\n return dropUndefinedKeys(__assign(__assign({}, spanContext), { name: this.name, trimEnd: this._trimEnd }));\n };\n /**\n * @inheritDoc\n */\n Transaction.prototype.updateWithContext = function (transactionContext) {\n var _a;\n _super.prototype.updateWithContext.call(this, transactionContext);\n this.name = (_a = transactionContext.name, (_a !== null && _a !== void 0 ? _a : ''));\n this._trimEnd = transactionContext.trimEnd;\n return this;\n };\n return Transaction;\n}(SpanClass));\nexport { Transaction };\n//# sourceMappingURL=transaction.js.map","import { getCurrentHub } from '@sentry/hub';\nexport var TRACEPARENT_REGEXP = new RegExp('^[ \\\\t]*' + // whitespace\n '([0-9a-f]{32})?' + // trace_id\n '-?([0-9a-f]{16})?' + // span_id\n '-?([01])?' + // sampled\n '[ \\\\t]*$');\n/**\n * Determines if tracing is currently enabled.\n *\n * Tracing is enabled when at least one of `tracesSampleRate` and `tracesSampler` is defined in the SDK config.\n */\nexport function hasTracingEnabled(options) {\n if (options === void 0) { options = (_a = getCurrentHub()\n .getClient()) === null || _a === void 0 ? void 0 : _a.getOptions(); }\n var _a;\n return !!options && ('tracesSampleRate' in options || 'tracesSampler' in options);\n}\n/**\n * Extract transaction context data from a `sentry-trace` header.\n *\n * @param traceparent Traceparent string\n *\n * @returns Object containing data from the header, or undefined if traceparent string is malformed\n */\nexport function extractTraceparentData(traceparent) {\n var matches = traceparent.match(TRACEPARENT_REGEXP);\n if (matches) {\n var parentSampled = void 0;\n if (matches[3] === '1') {\n parentSampled = true;\n }\n else if (matches[3] === '0') {\n parentSampled = false;\n }\n return {\n traceId: matches[1],\n parentSampled: parentSampled,\n parentSpanId: matches[2],\n };\n }\n return undefined;\n}\n/** Grabs active transaction off scope, if any */\nexport function getActiveTransaction(hub) {\n if (hub === void 0) { hub = getCurrentHub(); }\n var _a, _b;\n return (_b = (_a = hub) === null || _a === void 0 ? void 0 : _a.getScope()) === null || _b === void 0 ? void 0 : _b.getTransaction();\n}\n/**\n * Converts from milliseconds to seconds\n * @param time time in ms\n */\nexport function msToSec(time) {\n return time / 1000;\n}\n/**\n * Converts from seconds to milliseconds\n * @param time time in seconds\n */\nexport function secToMs(time) {\n return time * 1000;\n}\n// so it can be used in manual instrumentation without necessitating a hard dependency on @sentry/utils\nexport { stripUrlQueryAndFragment } from '@sentry/utils';\n//# sourceMappingURL=utils.js.map","/**\n * Session Status\n */\nexport var SessionStatus;\n(function (SessionStatus) {\n /** JSDoc */\n SessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n SessionStatus[\"Exited\"] = \"exited\";\n /** JSDoc */\n SessionStatus[\"Crashed\"] = \"crashed\";\n /** JSDoc */\n SessionStatus[\"Abnormal\"] = \"abnormal\";\n})(SessionStatus || (SessionStatus = {}));\nexport var RequestSessionStatus;\n(function (RequestSessionStatus) {\n /** JSDoc */\n RequestSessionStatus[\"Ok\"] = \"ok\";\n /** JSDoc */\n RequestSessionStatus[\"Errored\"] = \"errored\";\n /** JSDoc */\n RequestSessionStatus[\"Crashed\"] = \"crashed\";\n})(RequestSessionStatus || (RequestSessionStatus = {}));\n//# sourceMappingURL=session.js.map","export var Outcome;\n(function (Outcome) {\n Outcome[\"BeforeSend\"] = \"before_send\";\n Outcome[\"EventProcessor\"] = \"event_processor\";\n Outcome[\"NetworkError\"] = \"network_error\";\n Outcome[\"QueueOverflow\"] = \"queue_overflow\";\n Outcome[\"RateLimitBackoff\"] = \"ratelimit_backoff\";\n Outcome[\"SampleRate\"] = \"sample_rate\";\n})(Outcome || (Outcome = {}));\n//# sourceMappingURL=transport.js.map","import { getGlobalObject } from './global';\nimport { isString } from './is';\n/**\n * Given a child DOM element, returns a query-selector statement describing that\n * and its ancestors\n * e.g. [HTMLElement] => body > div > input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nexport function htmlTreeAsString(elem, keyAttrs) {\n // try/catch both:\n // - accessing event.target (see getsentry/raven-js#838, #768)\n // - `htmlTreeAsString` because it's complex, and just accessing the DOM incorrectly\n // - can throw an exception in some circumstances.\n try {\n var currentElem = elem;\n var MAX_TRAVERSE_HEIGHT = 5;\n var MAX_OUTPUT_LEN = 80;\n var out = [];\n var height = 0;\n var len = 0;\n var separator = ' > ';\n var sepLength = separator.length;\n var nextStr = void 0;\n // eslint-disable-next-line no-plusplus\n while (currentElem && height++ < MAX_TRAVERSE_HEIGHT) {\n nextStr = _htmlElementAsString(currentElem, keyAttrs);\n // bail out if\n // - nextStr is the 'html' element\n // - the length of the string that would be created exceeds MAX_OUTPUT_LEN\n // (ignore this limit if we are on the first iteration)\n if (nextStr === 'html' || (height > 1 && len + out.length * sepLength + nextStr.length >= MAX_OUTPUT_LEN)) {\n break;\n }\n out.push(nextStr);\n len += nextStr.length;\n currentElem = currentElem.parentNode;\n }\n return out.reverse().join(separator);\n }\n catch (_oO) {\n return '<unknown>';\n }\n}\n/**\n * Returns a simple, query-selector representation of a DOM element\n * e.g. [HTMLElement] => input#foo.btn[name=baz]\n * @returns generated DOM path\n */\nfunction _htmlElementAsString(el, keyAttrs) {\n var _a, _b;\n var elem = el;\n var out = [];\n var className;\n var classes;\n var key;\n var attr;\n var i;\n if (!elem || !elem.tagName) {\n return '';\n }\n out.push(elem.tagName.toLowerCase());\n // Pairs of attribute keys defined in `serializeAttribute` and their values on element.\n var keyAttrPairs = ((_a = keyAttrs) === null || _a === void 0 ? void 0 : _a.length) ? keyAttrs.filter(function (keyAttr) { return elem.getAttribute(keyAttr); }).map(function (keyAttr) { return [keyAttr, elem.getAttribute(keyAttr)]; })\n : null;\n if ((_b = keyAttrPairs) === null || _b === void 0 ? void 0 : _b.length) {\n keyAttrPairs.forEach(function (keyAttrPair) {\n out.push(\"[\" + keyAttrPair[0] + \"=\\\"\" + keyAttrPair[1] + \"\\\"]\");\n });\n }\n else {\n if (elem.id) {\n out.push(\"#\" + elem.id);\n }\n // eslint-disable-next-line prefer-const\n className = elem.className;\n if (className && isString(className)) {\n classes = className.split(/\\s+/);\n for (i = 0; i < classes.length; i++) {\n out.push(\".\" + classes[i]);\n }\n }\n }\n var allowedAttrs = ['type', 'name', 'title', 'alt'];\n for (i = 0; i < allowedAttrs.length; i++) {\n key = allowedAttrs[i];\n attr = elem.getAttribute(key);\n if (attr) {\n out.push(\"[\" + key + \"=\\\"\" + attr + \"\\\"]\");\n }\n }\n return out.join('');\n}\n/**\n * A safe form of location.href\n */\nexport function getLocationHref() {\n var global = getGlobalObject();\n try {\n return global.document.location.href;\n }\n catch (oO) {\n return '';\n }\n}\n//# sourceMappingURL=browser.js.map","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\nimport { isNodeEnv } from './node';\nvar fallbackGlobalObject = {};\n/**\n * Safely get global scope object\n *\n * @returns Global scope object\n */\nexport function getGlobalObject() {\n return (isNodeEnv()\n ? global\n : typeof window !== 'undefined' // eslint-disable-line no-restricted-globals\n ? window // eslint-disable-line no-restricted-globals\n : typeof self !== 'undefined'\n ? self\n : fallbackGlobalObject);\n}\n//# sourceMappingURL=global.js.map","import { __assign, __values } from \"tslib\";\nimport { getGlobalObject } from './global';\nimport { isInstanceOf, isString } from './is';\nimport { logger } from './logger';\nimport { fill } from './object';\nimport { getFunctionName } from './stacktrace';\nimport { supportsHistory, supportsNativeFetch } from './supports';\nvar global = getGlobalObject();\n/**\n * Instrument native APIs to call handlers that can be used to create breadcrumbs, APM spans etc.\n * - Console API\n * - Fetch API\n * - XHR API\n * - History API\n * - DOM API (click/typing)\n * - Error API\n * - UnhandledRejection API\n */\nvar handlers = {};\nvar instrumented = {};\n/** Instruments given API */\nfunction instrument(type) {\n if (instrumented[type]) {\n return;\n }\n instrumented[type] = true;\n switch (type) {\n case 'console':\n instrumentConsole();\n break;\n case 'dom':\n instrumentDOM();\n break;\n case 'xhr':\n instrumentXHR();\n break;\n case 'fetch':\n instrumentFetch();\n break;\n case 'history':\n instrumentHistory();\n break;\n case 'error':\n instrumentError();\n break;\n case 'unhandledrejection':\n instrumentUnhandledRejection();\n break;\n default:\n logger.warn('unknown instrumentation type:', type);\n }\n}\n/**\n * Add handler that will be called when given type of instrumentation triggers.\n * Use at your own risk, this might break without changelog notice, only used internally.\n * @hidden\n */\nexport function addInstrumentationHandler(handler) {\n if (!handler || typeof handler.type !== 'string' || typeof handler.callback !== 'function') {\n return;\n }\n handlers[handler.type] = handlers[handler.type] || [];\n handlers[handler.type].push(handler.callback);\n instrument(handler.type);\n}\n/** JSDoc */\nfunction triggerHandlers(type, data) {\n var e_1, _a;\n if (!type || !handlers[type]) {\n return;\n }\n try {\n for (var _b = __values(handlers[type] || []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var handler = _c.value;\n try {\n handler(data);\n }\n catch (e) {\n logger.error(\"Error while triggering instrumentation handler.\\nType: \" + type + \"\\nName: \" + getFunctionName(handler) + \"\\nError: \" + e);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n/** JSDoc */\nfunction instrumentConsole() {\n if (!('console' in global)) {\n return;\n }\n ['debug', 'info', 'warn', 'error', 'log', 'assert'].forEach(function (level) {\n if (!(level in global.console)) {\n return;\n }\n fill(global.console, level, function (originalConsoleLevel) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n triggerHandlers('console', { args: args, level: level });\n // this fails for some browsers. :(\n if (originalConsoleLevel) {\n Function.prototype.apply.call(originalConsoleLevel, global.console, args);\n }\n };\n });\n });\n}\n/** JSDoc */\nfunction instrumentFetch() {\n if (!supportsNativeFetch()) {\n return;\n }\n fill(global, 'fetch', function (originalFetch) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var handlerData = {\n args: args,\n fetchData: {\n method: getFetchMethod(args),\n url: getFetchUrl(args),\n },\n startTimestamp: Date.now(),\n };\n triggerHandlers('fetch', __assign({}, handlerData));\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return originalFetch.apply(global, args).then(function (response) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), response: response }));\n return response;\n }, function (error) {\n triggerHandlers('fetch', __assign(__assign({}, handlerData), { endTimestamp: Date.now(), error: error }));\n // NOTE: If you are a Sentry user, and you are seeing this stack frame,\n // it means the sentry.javascript SDK caught an error invoking your application code.\n // This is expected behavior and NOT indicative of a bug with sentry.javascript.\n throw error;\n });\n };\n });\n}\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/** Extract `method` from fetch call arguments */\nfunction getFetchMethod(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request) && fetchArgs[0].method) {\n return String(fetchArgs[0].method).toUpperCase();\n }\n if (fetchArgs[1] && fetchArgs[1].method) {\n return String(fetchArgs[1].method).toUpperCase();\n }\n return 'GET';\n}\n/** Extract `url` from fetch call arguments */\nfunction getFetchUrl(fetchArgs) {\n if (fetchArgs === void 0) { fetchArgs = []; }\n if (typeof fetchArgs[0] === 'string') {\n return fetchArgs[0];\n }\n if ('Request' in global && isInstanceOf(fetchArgs[0], Request)) {\n return fetchArgs[0].url;\n }\n return String(fetchArgs[0]);\n}\n/* eslint-enable @typescript-eslint/no-unsafe-member-access */\n/** JSDoc */\nfunction instrumentXHR() {\n if (!('XMLHttpRequest' in global)) {\n return;\n }\n // Poor man's implementation of ES6 `Map`, tracking and keeping in sync key and value separately.\n var requestKeys = [];\n var requestValues = [];\n var xhrproto = XMLHttpRequest.prototype;\n fill(xhrproto, 'open', function (originalOpen) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var url = args[1];\n xhr.__sentry_xhr__ = {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n method: isString(args[0]) ? args[0].toUpperCase() : args[0],\n url: args[1],\n };\n // if Sentry key appears in URL, don't capture it as a request\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (isString(url) && xhr.__sentry_xhr__.method === 'POST' && url.match(/sentry_key/)) {\n xhr.__sentry_own_request__ = true;\n }\n var onreadystatechangeHandler = function () {\n if (xhr.readyState === 4) {\n try {\n // touching statusCode in some platforms throws\n // an exception\n if (xhr.__sentry_xhr__) {\n xhr.__sentry_xhr__.status_code = xhr.status;\n }\n }\n catch (e) {\n /* do nothing */\n }\n try {\n var requestPos = requestKeys.indexOf(xhr);\n if (requestPos !== -1) {\n // Make sure to pop both key and value to keep it in sync.\n requestKeys.splice(requestPos);\n var args_1 = requestValues.splice(requestPos)[0];\n if (xhr.__sentry_xhr__ && args_1[0] !== undefined) {\n xhr.__sentry_xhr__.body = args_1[0];\n }\n }\n }\n catch (e) {\n /* do nothing */\n }\n triggerHandlers('xhr', {\n args: args,\n endTimestamp: Date.now(),\n startTimestamp: Date.now(),\n xhr: xhr,\n });\n }\n };\n if ('onreadystatechange' in xhr && typeof xhr.onreadystatechange === 'function') {\n fill(xhr, 'onreadystatechange', function (original) {\n return function () {\n var readyStateArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n readyStateArgs[_i] = arguments[_i];\n }\n onreadystatechangeHandler();\n return original.apply(xhr, readyStateArgs);\n };\n });\n }\n else {\n xhr.addEventListener('readystatechange', onreadystatechangeHandler);\n }\n return originalOpen.apply(xhr, args);\n };\n });\n fill(xhrproto, 'send', function (originalSend) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n requestKeys.push(this);\n requestValues.push(args);\n triggerHandlers('xhr', {\n args: args,\n startTimestamp: Date.now(),\n xhr: this,\n });\n return originalSend.apply(this, args);\n };\n });\n}\nvar lastHref;\n/** JSDoc */\nfunction instrumentHistory() {\n if (!supportsHistory()) {\n return;\n }\n var oldOnPopState = global.onpopstate;\n global.onpopstate = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var to = global.location.href;\n // keep track of the current URL state, as we always receive only the updated state\n var from = lastHref;\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n if (oldOnPopState) {\n // Apparently this can throw in Firefox when incorrectly implemented plugin is installed.\n // https://github.com/getsentry/sentry-javascript/issues/3344\n // https://github.com/bugsnag/bugsnag-js/issues/469\n try {\n return oldOnPopState.apply(this, args);\n }\n catch (_oO) {\n // no-empty\n }\n }\n };\n /** @hidden */\n function historyReplacementFunction(originalHistoryFunction) {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var url = args.length > 2 ? args[2] : undefined;\n if (url) {\n // coerce to string (this is what pushState does)\n var from = lastHref;\n var to = String(url);\n // keep track of the current URL state, as we always receive only the updated state\n lastHref = to;\n triggerHandlers('history', {\n from: from,\n to: to,\n });\n }\n return originalHistoryFunction.apply(this, args);\n };\n }\n fill(global.history, 'pushState', historyReplacementFunction);\n fill(global.history, 'replaceState', historyReplacementFunction);\n}\nvar debounceDuration = 1000;\nvar debounceTimerID;\nvar lastCapturedEvent;\n/**\n * Decide whether the current event should finish the debounce of previously captured one.\n * @param previous previously captured event\n * @param current event to be captured\n */\nfunction shouldShortcircuitPreviousDebounce(previous, current) {\n // If there was no previous event, it should always be swapped for the new one.\n if (!previous) {\n return true;\n }\n // If both events have different type, then user definitely performed two separate actions. e.g. click + keypress.\n if (previous.type !== current.type) {\n return true;\n }\n try {\n // If both events have the same type, it's still possible that actions were performed on different targets.\n // e.g. 2 clicks on different buttons.\n if (previous.target !== current.target) {\n return true;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n // If both events have the same type _and_ same `target` (an element which triggered an event, _not necessarily_\n // to which an event listener was attached), we treat them as the same action, as we want to capture\n // only one breadcrumb. e.g. multiple clicks on the same button, or typing inside a user input box.\n return false;\n}\n/**\n * Decide whether an event should be captured.\n * @param event event to be captured\n */\nfunction shouldSkipDOMEvent(event) {\n // We are only interested in filtering `keypress` events for now.\n if (event.type !== 'keypress') {\n return false;\n }\n try {\n var target = event.target;\n if (!target || !target.tagName) {\n return true;\n }\n // Only consider keypress events on actual input elements. This will disregard keypresses targeting body\n // e.g.tabbing through elements, hotkeys, etc.\n if (target.tagName === 'INPUT' || target.tagName === 'TEXTAREA' || target.isContentEditable) {\n return false;\n }\n }\n catch (e) {\n // just accessing `target` property can throw an exception in some rare circumstances\n // see: https://github.com/getsentry/sentry-javascript/issues/838\n }\n return true;\n}\n/**\n * Wraps addEventListener to capture UI breadcrumbs\n * @param handler function that will be triggered\n * @param globalListener indicates whether event was captured by the global event listener\n * @returns wrapped breadcrumb events handler\n * @hidden\n */\nfunction makeDOMEventHandler(handler, globalListener) {\n if (globalListener === void 0) { globalListener = false; }\n return function (event) {\n // It's possible this handler might trigger multiple times for the same\n // event (e.g. event propagation through node ancestors).\n // Ignore if we've already captured that event.\n if (!event || lastCapturedEvent === event) {\n return;\n }\n // We always want to skip _some_ events.\n if (shouldSkipDOMEvent(event)) {\n return;\n }\n var name = event.type === 'keypress' ? 'input' : event.type;\n // If there is no debounce timer, it means that we can safely capture the new event and store it for future comparisons.\n if (debounceTimerID === undefined) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // If there is a debounce awaiting, see if the new event is different enough to treat it as a unique one.\n // If that's the case, emit the previous event and store locally the newly-captured DOM event.\n else if (shouldShortcircuitPreviousDebounce(lastCapturedEvent, event)) {\n handler({\n event: event,\n name: name,\n global: globalListener,\n });\n lastCapturedEvent = event;\n }\n // Start a new debounce timer that will prevent us from capturing multiple events that should be grouped together.\n clearTimeout(debounceTimerID);\n debounceTimerID = global.setTimeout(function () {\n debounceTimerID = undefined;\n }, debounceDuration);\n };\n}\n/** JSDoc */\nfunction instrumentDOM() {\n if (!('document' in global)) {\n return;\n }\n // Make it so that any click or keypress that is unhandled / bubbled up all the way to the document triggers our dom\n // handlers. (Normally we have only one, which captures a breadcrumb for each click or keypress.) Do this before\n // we instrument `addEventListener` so that we don't end up attaching this handler twice.\n var triggerDOMHandler = triggerHandlers.bind(null, 'dom');\n var globalDOMEventHandler = makeDOMEventHandler(triggerDOMHandler, true);\n global.document.addEventListener('click', globalDOMEventHandler, false);\n global.document.addEventListener('keypress', globalDOMEventHandler, false);\n // After hooking into click and keypress events bubbled up to `document`, we also hook into user-handled\n // clicks & keypresses, by adding an event listener of our own to any element to which they add a listener. That\n // way, whenever one of their handlers is triggered, ours will be, too. (This is needed because their handler\n // could potentially prevent the event from bubbling up to our global listeners. This way, our handler are still\n // guaranteed to fire at least once.)\n ['EventTarget', 'Node'].forEach(function (target) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (originalAddEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_1 = (el.__sentry_instrumentation_handlers__ = el.__sentry_instrumentation_handlers__ || {});\n var handlerForType = (handlers_1[type] = handlers_1[type] || { refCount: 0 });\n if (!handlerForType.handler) {\n var handler = makeDOMEventHandler(triggerDOMHandler);\n handlerForType.handler = handler;\n originalAddEventListener.call(this, type, handler, options);\n }\n handlerForType.refCount += 1;\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalAddEventListener.call(this, type, listener, options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (type, listener, options) {\n if (type === 'click' || type == 'keypress') {\n try {\n var el = this;\n var handlers_2 = el.__sentry_instrumentation_handlers__ || {};\n var handlerForType = handlers_2[type];\n if (handlerForType) {\n handlerForType.refCount -= 1;\n // If there are no longer any custom handlers of the current type on this element, we can remove ours, too.\n if (handlerForType.refCount <= 0) {\n originalRemoveEventListener.call(this, type, handlerForType.handler, options);\n handlerForType.handler = undefined;\n delete handlers_2[type]; // eslint-disable-line @typescript-eslint/no-dynamic-delete\n }\n // If there are no longer any custom handlers of any type on this element, cleanup everything.\n if (Object.keys(handlers_2).length === 0) {\n delete el.__sentry_instrumentation_handlers__;\n }\n }\n }\n catch (e) {\n // Accessing dom properties is always fragile.\n // Also allows us to skip `addEventListenrs` calls with no proper `this` context.\n }\n }\n return originalRemoveEventListener.call(this, type, listener, options);\n };\n });\n });\n}\nvar _oldOnErrorHandler = null;\n/** JSDoc */\nfunction instrumentError() {\n _oldOnErrorHandler = global.onerror;\n global.onerror = function (msg, url, line, column, error) {\n triggerHandlers('error', {\n column: column,\n error: error,\n line: line,\n msg: msg,\n url: url,\n });\n if (_oldOnErrorHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnErrorHandler.apply(this, arguments);\n }\n return false;\n };\n}\nvar _oldOnUnhandledRejectionHandler = null;\n/** JSDoc */\nfunction instrumentUnhandledRejection() {\n _oldOnUnhandledRejectionHandler = global.onunhandledrejection;\n global.onunhandledrejection = function (e) {\n triggerHandlers('unhandledrejection', e);\n if (_oldOnUnhandledRejectionHandler) {\n // eslint-disable-next-line prefer-rest-params\n return _oldOnUnhandledRejectionHandler.apply(this, arguments);\n }\n return true;\n };\n}\n//# sourceMappingURL=instrument.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Checks whether given value's type is one of a few Error or Error-like\n * {@link isError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isError(wat) {\n switch (Object.prototype.toString.call(wat)) {\n case '[object Error]':\n return true;\n case '[object Exception]':\n return true;\n case '[object DOMException]':\n return true;\n default:\n return isInstanceOf(wat, Error);\n }\n}\n/**\n * Checks whether given value's type is ErrorEvent\n * {@link isErrorEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isErrorEvent(wat) {\n return Object.prototype.toString.call(wat) === '[object ErrorEvent]';\n}\n/**\n * Checks whether given value's type is DOMError\n * {@link isDOMError}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMError(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMError]';\n}\n/**\n * Checks whether given value's type is DOMException\n * {@link isDOMException}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isDOMException(wat) {\n return Object.prototype.toString.call(wat) === '[object DOMException]';\n}\n/**\n * Checks whether given value's type is a string\n * {@link isString}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isString(wat) {\n return Object.prototype.toString.call(wat) === '[object String]';\n}\n/**\n * Checks whether given value's is a primitive (undefined, null, number, boolean, string, bigint, symbol)\n * {@link isPrimitive}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPrimitive(wat) {\n return wat === null || (typeof wat !== 'object' && typeof wat !== 'function');\n}\n/**\n * Checks whether given value's type is an object literal\n * {@link isPlainObject}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isPlainObject(wat) {\n return Object.prototype.toString.call(wat) === '[object Object]';\n}\n/**\n * Checks whether given value's type is an Event instance\n * {@link isEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isEvent(wat) {\n return typeof Event !== 'undefined' && isInstanceOf(wat, Event);\n}\n/**\n * Checks whether given value's type is an Element instance\n * {@link isElement}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isElement(wat) {\n return typeof Element !== 'undefined' && isInstanceOf(wat, Element);\n}\n/**\n * Checks whether given value's type is an regexp\n * {@link isRegExp}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isRegExp(wat) {\n return Object.prototype.toString.call(wat) === '[object RegExp]';\n}\n/**\n * Checks whether given value has a then function.\n * @param wat A value to be checked.\n */\nexport function isThenable(wat) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return Boolean(wat && wat.then && typeof wat.then === 'function');\n}\n/**\n * Checks whether given value's type is a SyntheticEvent\n * {@link isSyntheticEvent}.\n *\n * @param wat A value to be checked.\n * @returns A boolean representing the result.\n */\nexport function isSyntheticEvent(wat) {\n return isPlainObject(wat) && 'nativeEvent' in wat && 'preventDefault' in wat && 'stopPropagation' in wat;\n}\n/**\n * Checks whether given value's type is an instance of provided constructor.\n * {@link isInstanceOf}.\n *\n * @param wat A value to be checked.\n * @param base A constructor to be used in a check.\n * @returns A boolean representing the result.\n */\nexport function isInstanceOf(wat, base) {\n try {\n return wat instanceof base;\n }\n catch (_e) {\n return false;\n }\n}\n//# sourceMappingURL=is.js.map","import { getGlobalObject } from './global';\n// TODO: Implement different loggers for different environments\nvar global = getGlobalObject();\n/** Prefix for logging strings */\nvar PREFIX = 'Sentry Logger ';\n/**\n * Temporarily unwrap `console.log` and friends in order to perform the given callback using the original methods.\n * Restores wrapping after the callback completes.\n *\n * @param callback The function to run against the original `console` messages\n * @returns The results of the callback\n */\nexport function consoleSandbox(callback) {\n var global = getGlobalObject();\n var levels = ['debug', 'info', 'warn', 'error', 'log', 'assert'];\n if (!('console' in global)) {\n return callback();\n }\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var originalConsole = global.console;\n var wrappedLevels = {};\n // Restore all wrapped console methods\n levels.forEach(function (level) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (level in global.console && originalConsole[level].__sentry_original__) {\n wrappedLevels[level] = originalConsole[level];\n originalConsole[level] = originalConsole[level].__sentry_original__;\n }\n });\n // Perform callback manipulations\n var result = callback();\n // Revert restoration to wrapped state\n Object.keys(wrappedLevels).forEach(function (level) {\n originalConsole[level] = wrappedLevels[level];\n });\n return result;\n}\n/** JSDoc */\nvar Logger = /** @class */ (function () {\n /** JSDoc */\n function Logger() {\n this._enabled = false;\n }\n /** JSDoc */\n Logger.prototype.disable = function () {\n this._enabled = false;\n };\n /** JSDoc */\n Logger.prototype.enable = function () {\n this._enabled = true;\n };\n /** JSDoc */\n Logger.prototype.log = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.log(PREFIX + \"[Log]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.warn = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.warn(PREFIX + \"[Warn]: \" + args.join(' '));\n });\n };\n /** JSDoc */\n Logger.prototype.error = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n if (!this._enabled) {\n return;\n }\n consoleSandbox(function () {\n global.console.error(PREFIX + \"[Error]: \" + args.join(' '));\n });\n };\n return Logger;\n}());\n// Ensure we only have a single logger instance, even if multiple versions of @sentry/utils are being used\nglobal.__SENTRY__ = global.__SENTRY__ || {};\nvar logger = global.__SENTRY__.logger || (global.__SENTRY__.logger = new Logger());\nexport { logger };\n//# sourceMappingURL=logger.js.map","import { __assign } from \"tslib\";\nimport { getGlobalObject } from './global';\nimport { snipLine } from './string';\n/**\n * UUID4 generator\n *\n * @returns string Generated UUID4.\n */\nexport function uuid4() {\n var global = getGlobalObject();\n var crypto = global.crypto || global.msCrypto;\n if (!(crypto === void 0) && crypto.getRandomValues) {\n // Use window.crypto API if available\n var arr = new Uint16Array(8);\n crypto.getRandomValues(arr);\n // set 4 in byte 7\n // eslint-disable-next-line no-bitwise\n arr[3] = (arr[3] & 0xfff) | 0x4000;\n // set 2 most significant bits of byte 9 to '10'\n // eslint-disable-next-line no-bitwise\n arr[4] = (arr[4] & 0x3fff) | 0x8000;\n var pad = function (num) {\n var v = num.toString(16);\n while (v.length < 4) {\n v = \"0\" + v;\n }\n return v;\n };\n return (pad(arr[0]) + pad(arr[1]) + pad(arr[2]) + pad(arr[3]) + pad(arr[4]) + pad(arr[5]) + pad(arr[6]) + pad(arr[7]));\n }\n // http://stackoverflow.com/questions/105034/how-to-create-a-guid-uuid-in-javascript/2117523#2117523\n return 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\n // eslint-disable-next-line no-bitwise\n var r = (Math.random() * 16) | 0;\n // eslint-disable-next-line no-bitwise\n var v = c === 'x' ? r : (r & 0x3) | 0x8;\n return v.toString(16);\n });\n}\n/**\n * Parses string form of URL into an object\n * // borrowed from https://tools.ietf.org/html/rfc3986#appendix-B\n * // intentionally using regex and not <a/> href parsing trick because React Native and other\n * // environments where DOM might not be available\n * @returns parsed URL object\n */\nexport function parseUrl(url) {\n if (!url) {\n return {};\n }\n var match = url.match(/^(([^:/?#]+):)?(\\/\\/([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$/);\n if (!match) {\n return {};\n }\n // coerce to undefined values to empty string so we don't get 'undefined'\n var query = match[6] || '';\n var fragment = match[8] || '';\n return {\n host: match[4],\n path: match[5],\n protocol: match[2],\n relative: match[5] + query + fragment,\n };\n}\n/**\n * Extracts either message or type+value from an event that can be used for user-facing logs\n * @returns event's description\n */\nexport function getEventDescription(event) {\n if (event.message) {\n return event.message;\n }\n if (event.exception && event.exception.values && event.exception.values[0]) {\n var exception = event.exception.values[0];\n if (exception.type && exception.value) {\n return exception.type + \": \" + exception.value;\n }\n return exception.type || exception.value || event.event_id || '<unknown>';\n }\n return event.event_id || '<unknown>';\n}\n/**\n * Adds exception values, type and value to an synthetic Exception.\n * @param event The event to modify.\n * @param value Value of the exception.\n * @param type Type of the exception.\n * @hidden\n */\nexport function addExceptionTypeValue(event, value, type) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].value = event.exception.values[0].value || value || '';\n event.exception.values[0].type = event.exception.values[0].type || type || 'Error';\n}\n/**\n * Adds exception mechanism data to a given event. Uses defaults if the second parameter is not passed.\n *\n * @param event The event to modify.\n * @param newMechanism Mechanism data to add to the event.\n * @hidden\n */\nexport function addExceptionMechanism(event, newMechanism) {\n var _a;\n if (!event.exception || !event.exception.values) {\n return;\n }\n var exceptionValue0 = event.exception.values[0];\n var defaultMechanism = { type: 'generic', handled: true };\n var currentMechanism = exceptionValue0.mechanism;\n exceptionValue0.mechanism = __assign(__assign(__assign({}, defaultMechanism), currentMechanism), newMechanism);\n if (newMechanism && 'data' in newMechanism) {\n var mergedData = __assign(__assign({}, (_a = currentMechanism) === null || _a === void 0 ? void 0 : _a.data), newMechanism.data);\n exceptionValue0.mechanism.data = mergedData;\n }\n}\n// https://semver.org/#is-there-a-suggested-regular-expression-regex-to-check-a-semver-string\nvar SEMVER_REGEXP = /^(0|[1-9]\\d*)\\.(0|[1-9]\\d*)\\.(0|[1-9]\\d*)(?:-((?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*)(?:\\.(?:0|[1-9]\\d*|\\d*[a-zA-Z-][0-9a-zA-Z-]*))*))?(?:\\+([0-9a-zA-Z-]+(?:\\.[0-9a-zA-Z-]+)*))?$/;\n/**\n * Parses input into a SemVer interface\n * @param input string representation of a semver version\n */\nexport function parseSemver(input) {\n var match = input.match(SEMVER_REGEXP) || [];\n var major = parseInt(match[1], 10);\n var minor = parseInt(match[2], 10);\n var patch = parseInt(match[3], 10);\n return {\n buildmetadata: match[5],\n major: isNaN(major) ? undefined : major,\n minor: isNaN(minor) ? undefined : minor,\n patch: isNaN(patch) ? undefined : patch,\n prerelease: match[4],\n };\n}\nvar defaultRetryAfter = 60 * 1000; // 60 seconds\n/**\n * Extracts Retry-After value from the request header or returns default value\n * @param now current unix timestamp\n * @param header string representation of 'Retry-After' header\n */\nexport function parseRetryAfterHeader(now, header) {\n if (!header) {\n return defaultRetryAfter;\n }\n var headerDelay = parseInt(\"\" + header, 10);\n if (!isNaN(headerDelay)) {\n return headerDelay * 1000;\n }\n var headerDate = Date.parse(\"\" + header);\n if (!isNaN(headerDate)) {\n return headerDate - now;\n }\n return defaultRetryAfter;\n}\n/**\n * This function adds context (pre/post/line) lines to the provided frame\n *\n * @param lines string[] containing all lines\n * @param frame StackFrame that will be mutated\n * @param linesOfContext number of context lines we want to add pre/post\n */\nexport function addContextToFrame(lines, frame, linesOfContext) {\n if (linesOfContext === void 0) { linesOfContext = 5; }\n var lineno = frame.lineno || 0;\n var maxLines = lines.length;\n var sourceLine = Math.max(Math.min(maxLines, lineno - 1), 0);\n frame.pre_context = lines\n .slice(Math.max(0, sourceLine - linesOfContext), sourceLine)\n .map(function (line) { return snipLine(line, 0); });\n frame.context_line = snipLine(lines[Math.min(maxLines - 1, sourceLine)], frame.colno || 0);\n frame.post_context = lines\n .slice(Math.min(sourceLine + 1, maxLines), sourceLine + 1 + linesOfContext)\n .map(function (line) { return snipLine(line, 0); });\n}\n/**\n * Strip the query string and fragment off of a given URL or path (if present)\n *\n * @param urlPath Full URL or path, including possible query string and/or fragment\n * @returns URL or path without query string or fragment\n */\nexport function stripUrlQueryAndFragment(urlPath) {\n // eslint-disable-next-line no-useless-escape\n return urlPath.split(/[\\?#]/, 1)[0];\n}\n/**\n * Checks whether or not we've already captured the given exception (note: not an identical exception - the very object\n * in question), and marks it captured if not.\n *\n * This is useful because it's possible for an error to get captured by more than one mechanism. After we intercept and\n * record an error, we rethrow it (assuming we've intercepted it before it's reached the top-level global handlers), so\n * that we don't interfere with whatever effects the error might have had were the SDK not there. At that point, because\n * the error has been rethrown, it's possible for it to bubble up to some other code we've instrumented. If it's not\n * caught after that, it will bubble all the way up to the global handlers (which of course we also instrument). This\n * function helps us ensure that even if we encounter the same error more than once, we only record it the first time we\n * see it.\n *\n * Note: It will ignore primitives (always return `false` and not mark them as seen), as properties can't be set on\n * them. {@link: Object.objectify} can be used on exceptions to convert any that are primitives into their equivalent\n * object wrapper forms so that this check will always work. However, because we need to flag the exact object which\n * will get rethrown, and because that rethrowing happens outside of the event processing pipeline, the objectification\n * must be done before the exception captured.\n *\n * @param A thrown exception to check or flag as having been seen\n * @returns `true` if the exception has already been captured, `false` if not (with the side effect of marking it seen)\n */\nexport function checkOrSetAlreadyCaught(exception) {\n var _a;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if ((_a = exception) === null || _a === void 0 ? void 0 : _a.__sentry_captured__) {\n return true;\n }\n try {\n // set it this way rather than by assignment so that it's not ennumerable and therefore isn't recorded by the\n // `ExtraErrorData` integration\n Object.defineProperty(exception, '__sentry_captured__', {\n value: true,\n });\n }\n catch (err) {\n // `exception` is a primitive, so we can't mark it seen\n }\n return false;\n}\n//# sourceMappingURL=misc.js.map","/**\n * NOTE: In order to avoid circular dependencies, if you add a function to this module and it needs to print something,\n * you must either a) use `console.log` rather than the logger, or b) put your function elsewhere.\n */\n/**\n * Checks whether we're in the Node.js or Browser environment\n *\n * @returns Answer to given question\n */\nexport function isNodeEnv() {\n return Object.prototype.toString.call(typeof process !== 'undefined' ? process : 0) === '[object process]';\n}\n/**\n * Requires a module which is protected against bundler minification.\n *\n * @param request The module path to resolve\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function dynamicRequire(mod, request) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return mod.require(request);\n}\n/**\n * Helper for dynamically loading module that should work with linked dependencies.\n * The problem is that we _should_ be using `require(require.resolve(moduleName, { paths: [cwd()] }))`\n * However it's _not possible_ to do that with Webpack, as it has to know all the dependencies during\n * build time. `require.resolve` is also not available in any other way, so we cannot create,\n * a fake helper like we do with `dynamicRequire`.\n *\n * We always prefer to use local package, thus the value is not returned early from each `try/catch` block.\n * That is to mimic the behavior of `require.resolve` exactly.\n *\n * @param moduleName module name to require\n * @returns possibly required module\n */\nexport function loadModule(moduleName) {\n var mod;\n try {\n mod = dynamicRequire(module, moduleName);\n }\n catch (e) {\n // no-empty\n }\n try {\n var cwd = dynamicRequire(module, 'process').cwd;\n mod = dynamicRequire(module, cwd() + \"/node_modules/\" + moduleName);\n }\n catch (e) {\n // no-empty\n }\n return mod;\n}\n//# sourceMappingURL=node.js.map","/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/**\n * Memo class used for decycle json objects. Uses WeakSet if available otherwise array.\n */\nvar Memo = /** @class */ (function () {\n function Memo() {\n this._hasWeakSet = typeof WeakSet === 'function';\n this._inner = this._hasWeakSet ? new WeakSet() : [];\n }\n /**\n * Sets obj to remember.\n * @param obj Object to remember\n */\n Memo.prototype.memoize = function (obj) {\n if (this._hasWeakSet) {\n if (this._inner.has(obj)) {\n return true;\n }\n this._inner.add(obj);\n return false;\n }\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < this._inner.length; i++) {\n var value = this._inner[i];\n if (value === obj) {\n return true;\n }\n }\n this._inner.push(obj);\n return false;\n };\n /**\n * Removes object from internal storage.\n * @param obj Object to forget\n */\n Memo.prototype.unmemoize = function (obj) {\n if (this._hasWeakSet) {\n this._inner.delete(obj);\n }\n else {\n for (var i = 0; i < this._inner.length; i++) {\n if (this._inner[i] === obj) {\n this._inner.splice(i, 1);\n break;\n }\n }\n }\n };\n return Memo;\n}());\nexport { Memo };\n//# sourceMappingURL=memo.js.map","import { __values } from \"tslib\";\nimport { htmlTreeAsString } from './browser';\nimport { isElement, isError, isEvent, isInstanceOf, isPlainObject, isPrimitive, isSyntheticEvent } from './is';\nimport { Memo } from './memo';\nimport { getFunctionName } from './stacktrace';\nimport { truncate } from './string';\n/**\n * Replace a method in an object with a wrapped version of itself.\n *\n * @param source An object that contains a method to be wrapped.\n * @param name The name of the method to be wrapped.\n * @param replacementFactory A higher-order function that takes the original version of the given method and returns a\n * wrapped version. Note: The function returned by `replacementFactory` needs to be a non-arrow function, in order to\n * preserve the correct value of `this`, and the original method must be called using `origMethod.call(this, <other\n * args>)` or `origMethod.apply(this, [<other args>])` (rather than being called directly), again to preserve `this`.\n * @returns void\n */\nexport function fill(source, name, replacementFactory) {\n if (!(name in source)) {\n return;\n }\n var original = source[name];\n var wrapped = replacementFactory(original);\n // Make sure it's a function first, as we need to attach an empty prototype for `defineProperties` to work\n // otherwise it'll throw \"TypeError: Object.defineProperties called on non-object\"\n if (typeof wrapped === 'function') {\n try {\n wrapped.prototype = wrapped.prototype || {};\n Object.defineProperties(wrapped, {\n __sentry_original__: {\n enumerable: false,\n value: original,\n },\n });\n }\n catch (_Oo) {\n // This can throw if multiple fill happens on a global object like XMLHttpRequest\n // Fixes https://github.com/getsentry/sentry-javascript/issues/2043\n }\n }\n source[name] = wrapped;\n}\n/**\n * Encodes given object into url-friendly format\n *\n * @param object An object that contains serializable values\n * @returns string Encoded\n */\nexport function urlEncode(object) {\n return Object.keys(object)\n .map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(object[key]); })\n .join('&');\n}\n/**\n * Transforms any object into an object literal with all its attributes\n * attached to it.\n *\n * @param value Initial source that we have to transform in order for it to be usable by the serializer\n */\nfunction getWalkSource(value) {\n if (isError(value)) {\n var error = value;\n var err = {\n message: error.message,\n name: error.name,\n stack: error.stack,\n };\n for (var i in error) {\n if (Object.prototype.hasOwnProperty.call(error, i)) {\n err[i] = error[i];\n }\n }\n return err;\n }\n if (isEvent(value)) {\n var event_1 = value;\n var source = {};\n // Accessing event attributes can throw (see https://github.com/getsentry/sentry-javascript/issues/768 and\n // https://github.com/getsentry/sentry-javascript/issues/838), but accessing `type` hasn't been wrapped in a\n // try-catch in at least two years and no one's complained, so that's likely not an issue anymore\n source.type = event_1.type;\n try {\n source.target = isElement(event_1.target)\n ? htmlTreeAsString(event_1.target)\n : Object.prototype.toString.call(event_1.target);\n }\n catch (_oO) {\n source.target = '<unknown>';\n }\n try {\n source.currentTarget = isElement(event_1.currentTarget)\n ? htmlTreeAsString(event_1.currentTarget)\n : Object.prototype.toString.call(event_1.currentTarget);\n }\n catch (_oO) {\n source.currentTarget = '<unknown>';\n }\n if (typeof CustomEvent !== 'undefined' && isInstanceOf(value, CustomEvent)) {\n source.detail = event_1.detail;\n }\n for (var attr in event_1) {\n if (Object.prototype.hasOwnProperty.call(event_1, attr)) {\n source[attr] = event_1[attr];\n }\n }\n return source;\n }\n return value;\n}\n/** Calculates bytes size of input string */\nfunction utf8Length(value) {\n // eslint-disable-next-line no-bitwise\n return ~-encodeURI(value).split(/%..|./).length;\n}\n/** Calculates bytes size of input object */\nfunction jsonSize(value) {\n return utf8Length(JSON.stringify(value));\n}\n/** JSDoc */\nexport function normalizeToSize(object, \n// Default Node.js REPL depth\ndepth, \n// 100kB, as 200kB is max payload size, so half sounds reasonable\nmaxSize) {\n if (depth === void 0) { depth = 3; }\n if (maxSize === void 0) { maxSize = 100 * 1024; }\n var serialized = normalize(object, depth);\n if (jsonSize(serialized) > maxSize) {\n return normalizeToSize(object, depth - 1, maxSize);\n }\n return serialized;\n}\n/**\n * Transform any non-primitive, BigInt, or Symbol-type value into a string. Acts as a no-op on strings, numbers,\n * booleans, null, and undefined.\n *\n * @param value The value to stringify\n * @returns For non-primitive, BigInt, and Symbol-type values, a string denoting the value's type, type and value, or\n * type and `description` property, respectively. For non-BigInt, non-Symbol primitives, returns the original value,\n * unchanged.\n */\nfunction serializeValue(value) {\n var type = Object.prototype.toString.call(value);\n // Node.js REPL notation\n if (typeof value === 'string') {\n return value;\n }\n if (type === '[object Object]') {\n return '[Object]';\n }\n if (type === '[object Array]') {\n return '[Array]';\n }\n var normalized = normalizeValue(value);\n return isPrimitive(normalized) ? normalized : type;\n}\n/**\n * normalizeValue()\n *\n * Takes unserializable input and make it serializable friendly\n *\n * - translates undefined/NaN values to \"[undefined]\"/\"[NaN]\" respectively,\n * - serializes Error objects\n * - filter global objects\n */\nfunction normalizeValue(value, key) {\n if (key === 'domain' && value && typeof value === 'object' && value._events) {\n return '[Domain]';\n }\n if (key === 'domainEmitter') {\n return '[DomainEmitter]';\n }\n if (typeof global !== 'undefined' && value === global) {\n return '[Global]';\n }\n // It's safe to use `window` and `document` here in this manner, as we are asserting using `typeof` first\n // which won't throw if they are not present.\n // eslint-disable-next-line no-restricted-globals\n if (typeof window !== 'undefined' && value === window) {\n return '[Window]';\n }\n // eslint-disable-next-line no-restricted-globals\n if (typeof document !== 'undefined' && value === document) {\n return '[Document]';\n }\n // React's SyntheticEvent thingy\n if (isSyntheticEvent(value)) {\n return '[SyntheticEvent]';\n }\n if (typeof value === 'number' && value !== value) {\n return '[NaN]';\n }\n if (value === void 0) {\n return '[undefined]';\n }\n if (typeof value === 'function') {\n return \"[Function: \" + getFunctionName(value) + \"]\";\n }\n // symbols and bigints are considered primitives by TS, but aren't natively JSON-serilaizable\n if (typeof value === 'symbol') {\n return \"[\" + String(value) + \"]\";\n }\n if (typeof value === 'bigint') {\n return \"[BigInt: \" + String(value) + \"]\";\n }\n return value;\n}\n/**\n * Walks an object to perform a normalization on it\n *\n * @param key of object that's walked in current iteration\n * @param value object to be walked\n * @param depth Optional number indicating how deep should walking be performed\n * @param memo Optional Memo class handling decycling\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function walk(key, value, depth, memo) {\n if (depth === void 0) { depth = +Infinity; }\n if (memo === void 0) { memo = new Memo(); }\n // If we reach the maximum depth, serialize whatever has left\n if (depth === 0) {\n return serializeValue(value);\n }\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // If value implements `toJSON` method, call it and return early\n if (value !== null && value !== undefined && typeof value.toJSON === 'function') {\n return value.toJSON();\n }\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n // If normalized value is a primitive, there are no branches left to walk, so we can just bail out, as theres no point in going down that branch any further\n var normalized = normalizeValue(value, key);\n if (isPrimitive(normalized)) {\n return normalized;\n }\n // Create source that we will use for next itterations, either objectified error object (Error type with extracted keys:value pairs) or the input itself\n var source = getWalkSource(value);\n // Create an accumulator that will act as a parent for all future itterations of that branch\n var acc = Array.isArray(value) ? [] : {};\n // If we already walked that branch, bail out, as it's circular reference\n if (memo.memoize(value)) {\n return '[Circular ~]';\n }\n // Walk all keys of the source\n for (var innerKey in source) {\n // Avoid iterating over fields in the prototype if they've somehow been exposed to enumeration.\n if (!Object.prototype.hasOwnProperty.call(source, innerKey)) {\n continue;\n }\n // Recursively walk through all the child nodes\n acc[innerKey] = walk(innerKey, source[innerKey], depth - 1, memo);\n }\n // Once walked through all the branches, remove the parent from memo storage\n memo.unmemoize(value);\n // Return accumulated values\n return acc;\n}\n/**\n * normalize()\n *\n * - Creates a copy to prevent original input mutation\n * - Skip non-enumerablers\n * - Calls `toJSON` if implemented\n * - Removes circular references\n * - Translates non-serializeable values (undefined/NaN/Functions) to serializable format\n * - Translates known global objects/Classes to a string representations\n * - Takes care of Error objects serialization\n * - Optionally limit depth of final output\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function normalize(input, depth) {\n try {\n return JSON.parse(JSON.stringify(input, function (key, value) { return walk(key, value, depth); }));\n }\n catch (_oO) {\n return '**non-serializable**';\n }\n}\n/**\n * Given any captured exception, extract its keys and create a sorted\n * and truncated list that will be used inside the event message.\n * eg. `Non-error exception captured with keys: foo, bar, baz`\n */\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types\nexport function extractExceptionKeysForMessage(exception, maxLength) {\n if (maxLength === void 0) { maxLength = 40; }\n var keys = Object.keys(getWalkSource(exception));\n keys.sort();\n if (!keys.length) {\n return '[object has no keys]';\n }\n if (keys[0].length >= maxLength) {\n return truncate(keys[0], maxLength);\n }\n for (var includedKeys = keys.length; includedKeys > 0; includedKeys--) {\n var serialized = keys.slice(0, includedKeys).join(', ');\n if (serialized.length > maxLength) {\n continue;\n }\n if (includedKeys === keys.length) {\n return serialized;\n }\n return truncate(serialized, maxLength);\n }\n return '';\n}\n/**\n * Given any object, return the new object with removed keys that value was `undefined`.\n * Works recursively on objects and arrays.\n */\nexport function dropUndefinedKeys(val) {\n var e_1, _a;\n if (isPlainObject(val)) {\n var obj = val;\n var rv = {};\n try {\n for (var _b = __values(Object.keys(obj)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n if (typeof obj[key] !== 'undefined') {\n rv[key] = dropUndefinedKeys(obj[key]);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return rv;\n }\n if (Array.isArray(val)) {\n return val.map(dropUndefinedKeys);\n }\n return val;\n}\n/**\n * Ensure that something is an object.\n *\n * Turns `undefined` and `null` into `String`s and all other primitives into instances of their respective wrapper\n * classes (String, Boolean, Number, etc.). Acts as the identity function on non-primitives.\n *\n * @param wat The subject of the objectification\n * @returns A version of `wat` which can safely be used with `Object` class methods\n */\nexport function objectify(wat) {\n var objectified;\n switch (true) {\n case wat === undefined || wat === null:\n objectified = new String(wat);\n break;\n // Though symbols and bigints do have wrapper classes (`Symbol` and `BigInt`, respectively), for whatever reason\n // those classes don't have constructors which can be used with the `new` keyword. We therefore need to cast each as\n // an object in order to wrap it.\n case typeof wat === 'symbol' || typeof wat === 'bigint':\n objectified = Object(wat);\n break;\n // this will catch the remaining primitives: `String`, `Number`, and `Boolean`\n case isPrimitive(wat):\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n objectified = new wat.constructor(wat);\n break;\n // by process of elimination, at this point we know that `wat` must already be an object\n default:\n objectified = wat;\n break;\n }\n return objectified;\n}\n//# sourceMappingURL=object.js.map","var defaultFunctionName = '<anonymous>';\n/**\n * Safely extract function name from itself\n */\nexport function getFunctionName(fn) {\n try {\n if (!fn || typeof fn !== 'function') {\n return defaultFunctionName;\n }\n return fn.name || defaultFunctionName;\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n return defaultFunctionName;\n }\n}\n//# sourceMappingURL=stacktrace.js.map","import { isRegExp, isString } from './is';\n/**\n * Truncates given string to the maximum characters count\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string (0 = unlimited)\n * @returns string Encoded\n */\nexport function truncate(str, max) {\n if (max === void 0) { max = 0; }\n if (typeof str !== 'string' || max === 0) {\n return str;\n }\n return str.length <= max ? str : str.substr(0, max) + \"...\";\n}\n/**\n * This is basically just `trim_line` from\n * https://github.com/getsentry/sentry/blob/master/src/sentry/lang/javascript/processor.py#L67\n *\n * @param str An object that contains serializable values\n * @param max Maximum number of characters in truncated string\n * @returns string Encoded\n */\nexport function snipLine(line, colno) {\n var newLine = line;\n var ll = newLine.length;\n if (ll <= 150) {\n return newLine;\n }\n if (colno > ll) {\n // eslint-disable-next-line no-param-reassign\n colno = ll;\n }\n var start = Math.max(colno - 60, 0);\n if (start < 5) {\n start = 0;\n }\n var end = Math.min(start + 140, ll);\n if (end > ll - 5) {\n end = ll;\n }\n if (end === ll) {\n start = Math.max(end - 140, 0);\n }\n newLine = newLine.slice(start, end);\n if (start > 0) {\n newLine = \"'{snip} \" + newLine;\n }\n if (end < ll) {\n newLine += ' {snip}';\n }\n return newLine;\n}\n/**\n * Join values in array\n * @param input array of values to be joined together\n * @param delimiter string to be placed in-between values\n * @returns Joined values\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function safeJoin(input, delimiter) {\n if (!Array.isArray(input)) {\n return '';\n }\n var output = [];\n // eslint-disable-next-line @typescript-eslint/prefer-for-of\n for (var i = 0; i < input.length; i++) {\n var value = input[i];\n try {\n output.push(String(value));\n }\n catch (e) {\n output.push('[value cannot be serialized]');\n }\n }\n return output.join(delimiter);\n}\n/**\n * Checks if the value matches a regex or includes the string\n * @param value The string value to be checked against\n * @param pattern Either a regex or a string that must be contained in value\n */\nexport function isMatchingPattern(value, pattern) {\n if (!isString(value)) {\n return false;\n }\n if (isRegExp(pattern)) {\n return pattern.test(value);\n }\n if (typeof pattern === 'string') {\n return value.indexOf(pattern) !== -1;\n }\n return false;\n}\n/**\n * Given a string, escape characters which have meaning in the regex grammar, such that the result is safe to feed to\n * `new RegExp()`.\n *\n * Based on https://github.com/sindresorhus/escape-string-regexp. Vendored to a) reduce the size by skipping the runtime\n * type-checking, and b) ensure it gets down-compiled for old versions of Node (the published package only supports Node\n * 12+).\n *\n * @param regexString The string to escape\n * @returns An version of the string with all special regex characters escaped\n */\nexport function escapeStringForRegex(regexString) {\n // escape the hyphen separately so we can also replace it with a unicode literal hyphen, to avoid the problems\n // discussed in https://github.com/sindresorhus/escape-string-regexp/issues/20.\n return regexString.replace(/[|\\\\{}()[\\]^$+*?.]/g, '\\\\$&').replace(/-/g, '\\\\x2d');\n}\n//# sourceMappingURL=string.js.map","import { getGlobalObject } from './global';\nimport { logger } from './logger';\n/**\n * Tells whether current environment supports ErrorEvent objects\n * {@link supportsErrorEvent}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsErrorEvent() {\n try {\n new ErrorEvent('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMError objects\n * {@link supportsDOMError}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMError() {\n try {\n // Chrome: VM89:1 Uncaught TypeError: Failed to construct 'DOMError':\n // 1 argument required, but only 0 present.\n // @ts-ignore It really needs 1 argument, not 0.\n new DOMError('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports DOMException objects\n * {@link supportsDOMException}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsDOMException() {\n try {\n new DOMException('');\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports Fetch API\n * {@link supportsFetch}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsFetch() {\n if (!('fetch' in getGlobalObject())) {\n return false;\n }\n try {\n new Headers();\n new Request('');\n new Response();\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * isNativeFetch checks if the given function is a native implementation of fetch()\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function isNativeFetch(func) {\n return func && /^function fetch\\(\\)\\s+\\{\\s+\\[native code\\]\\s+\\}$/.test(func.toString());\n}\n/**\n * Tells whether current environment supports Fetch API natively\n * {@link supportsNativeFetch}.\n *\n * @returns true if `window.fetch` is natively implemented, false otherwise\n */\nexport function supportsNativeFetch() {\n if (!supportsFetch()) {\n return false;\n }\n var global = getGlobalObject();\n // Fast path to avoid DOM I/O\n // eslint-disable-next-line @typescript-eslint/unbound-method\n if (isNativeFetch(global.fetch)) {\n return true;\n }\n // window.fetch is implemented, but is polyfilled or already wrapped (e.g: by a chrome extension)\n // so create a \"pure\" iframe to see if that has native fetch\n var result = false;\n var doc = global.document;\n // eslint-disable-next-line deprecation/deprecation\n if (doc && typeof doc.createElement === \"function\") {\n try {\n var sandbox = doc.createElement('iframe');\n sandbox.hidden = true;\n doc.head.appendChild(sandbox);\n if (sandbox.contentWindow && sandbox.contentWindow.fetch) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n result = isNativeFetch(sandbox.contentWindow.fetch);\n }\n doc.head.removeChild(sandbox);\n }\n catch (err) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', err);\n }\n }\n return result;\n}\n/**\n * Tells whether current environment supports ReportingObserver API\n * {@link supportsReportingObserver}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReportingObserver() {\n return 'ReportingObserver' in getGlobalObject();\n}\n/**\n * Tells whether current environment supports Referrer Policy API\n * {@link supportsReferrerPolicy}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsReferrerPolicy() {\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n if (!supportsFetch()) {\n return false;\n }\n try {\n new Request('_', {\n referrerPolicy: 'origin',\n });\n return true;\n }\n catch (e) {\n return false;\n }\n}\n/**\n * Tells whether current environment supports History API\n * {@link supportsHistory}.\n *\n * @returns Answer to the given question.\n */\nexport function supportsHistory() {\n // NOTE: in Chrome App environment, touching history.pushState, *even inside\n // a try/catch block*, will cause Chrome to output an error to console.error\n // borrowed from: https://github.com/angular/angular.js/pull/13945/files\n var global = getGlobalObject();\n /* eslint-disable @typescript-eslint/no-unsafe-member-access */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var chrome = global.chrome;\n var isChromePackagedApp = chrome && chrome.app && chrome.app.runtime;\n /* eslint-enable @typescript-eslint/no-unsafe-member-access */\n var hasHistoryApi = 'history' in global && !!global.history.pushState && !!global.history.replaceState;\n return !isChromePackagedApp && hasHistoryApi;\n}\n//# sourceMappingURL=supports.js.map","/* eslint-disable @typescript-eslint/explicit-function-return-type */\n/* eslint-disable @typescript-eslint/typedef */\n/* eslint-disable @typescript-eslint/explicit-module-boundary-types */\n/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { isThenable } from './is';\n/**\n * Thenable class that behaves like a Promise and follows it's interface\n * but is not async internally\n */\nvar SyncPromise = /** @class */ (function () {\n function SyncPromise(executor) {\n var _this = this;\n this._state = \"PENDING\" /* PENDING */;\n this._handlers = [];\n /** JSDoc */\n this._resolve = function (value) {\n _this._setResult(\"RESOLVED\" /* RESOLVED */, value);\n };\n /** JSDoc */\n this._reject = function (reason) {\n _this._setResult(\"REJECTED\" /* REJECTED */, reason);\n };\n /** JSDoc */\n this._setResult = function (state, value) {\n if (_this._state !== \"PENDING\" /* PENDING */) {\n return;\n }\n if (isThenable(value)) {\n void value.then(_this._resolve, _this._reject);\n return;\n }\n _this._state = state;\n _this._value = value;\n _this._executeHandlers();\n };\n // TODO: FIXME\n /** JSDoc */\n this._attachHandler = function (handler) {\n _this._handlers = _this._handlers.concat(handler);\n _this._executeHandlers();\n };\n /** JSDoc */\n this._executeHandlers = function () {\n if (_this._state === \"PENDING\" /* PENDING */) {\n return;\n }\n var cachedHandlers = _this._handlers.slice();\n _this._handlers = [];\n cachedHandlers.forEach(function (handler) {\n if (handler.done) {\n return;\n }\n if (_this._state === \"RESOLVED\" /* RESOLVED */) {\n if (handler.onfulfilled) {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n handler.onfulfilled(_this._value);\n }\n }\n if (_this._state === \"REJECTED\" /* REJECTED */) {\n if (handler.onrejected) {\n handler.onrejected(_this._value);\n }\n }\n handler.done = true;\n });\n };\n try {\n executor(this._resolve, this._reject);\n }\n catch (e) {\n this._reject(e);\n }\n }\n /** JSDoc */\n SyncPromise.resolve = function (value) {\n return new SyncPromise(function (resolve) {\n resolve(value);\n });\n };\n /** JSDoc */\n SyncPromise.reject = function (reason) {\n return new SyncPromise(function (_, reject) {\n reject(reason);\n });\n };\n /** JSDoc */\n SyncPromise.all = function (collection) {\n return new SyncPromise(function (resolve, reject) {\n if (!Array.isArray(collection)) {\n reject(new TypeError(\"Promise.all requires an array as input.\"));\n return;\n }\n if (collection.length === 0) {\n resolve([]);\n return;\n }\n var counter = collection.length;\n var resolvedCollection = [];\n collection.forEach(function (item, index) {\n void SyncPromise.resolve(item)\n .then(function (value) {\n resolvedCollection[index] = value;\n counter -= 1;\n if (counter !== 0) {\n return;\n }\n resolve(resolvedCollection);\n })\n .then(null, reject);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.then = function (onfulfilled, onrejected) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n _this._attachHandler({\n done: false,\n onfulfilled: function (result) {\n if (!onfulfilled) {\n // TODO: ¯\\_(ツ)_/¯\n // TODO: FIXME\n resolve(result);\n return;\n }\n try {\n resolve(onfulfilled(result));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n onrejected: function (reason) {\n if (!onrejected) {\n reject(reason);\n return;\n }\n try {\n resolve(onrejected(reason));\n return;\n }\n catch (e) {\n reject(e);\n return;\n }\n },\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.catch = function (onrejected) {\n return this.then(function (val) { return val; }, onrejected);\n };\n /** JSDoc */\n SyncPromise.prototype.finally = function (onfinally) {\n var _this = this;\n return new SyncPromise(function (resolve, reject) {\n var val;\n var isRejected;\n return _this.then(function (value) {\n isRejected = false;\n val = value;\n if (onfinally) {\n onfinally();\n }\n }, function (reason) {\n isRejected = true;\n val = reason;\n if (onfinally) {\n onfinally();\n }\n }).then(function () {\n if (isRejected) {\n reject(val);\n return;\n }\n resolve(val);\n });\n });\n };\n /** JSDoc */\n SyncPromise.prototype.toString = function () {\n return '[object SyncPromise]';\n };\n return SyncPromise;\n}());\nexport { SyncPromise };\n//# sourceMappingURL=syncpromise.js.map","import { getGlobalObject } from './global';\nimport { dynamicRequire, isNodeEnv } from './node';\n/**\n * A TimestampSource implementation for environments that do not support the Performance Web API natively.\n *\n * Note that this TimestampSource does not use a monotonic clock. A call to `nowSeconds` may return a timestamp earlier\n * than a previously returned value. We do not try to emulate a monotonic behavior in order to facilitate debugging. It\n * is more obvious to explain \"why does my span have negative duration\" than \"why my spans have zero duration\".\n */\nvar dateTimestampSource = {\n nowSeconds: function () { return Date.now() / 1000; },\n};\n/**\n * Returns a wrapper around the native Performance API browser implementation, or undefined for browsers that do not\n * support the API.\n *\n * Wrapping the native API works around differences in behavior from different browsers.\n */\nfunction getBrowserPerformance() {\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n return undefined;\n }\n // Replace performance.timeOrigin with our own timeOrigin based on Date.now().\n //\n // This is a partial workaround for browsers reporting performance.timeOrigin such that performance.timeOrigin +\n // performance.now() gives a date arbitrarily in the past.\n //\n // Additionally, computing timeOrigin in this way fills the gap for browsers where performance.timeOrigin is\n // undefined.\n //\n // The assumption that performance.timeOrigin + performance.now() ~= Date.now() is flawed, but we depend on it to\n // interact with data coming out of performance entries.\n //\n // Note that despite recommendations against it in the spec, browsers implement the Performance API with a clock that\n // might stop when the computer is asleep (and perhaps under other circumstances). Such behavior causes\n // performance.timeOrigin + performance.now() to have an arbitrary skew over Date.now(). In laptop computers, we have\n // observed skews that can be as long as days, weeks or months.\n //\n // See https://github.com/getsentry/sentry-javascript/issues/2590.\n //\n // BUG: despite our best intentions, this workaround has its limitations. It mostly addresses timings of pageload\n // transactions, but ignores the skew built up over time that can aversely affect timestamps of navigation\n // transactions of long-lived web pages.\n var timeOrigin = Date.now() - performance.now();\n return {\n now: function () { return performance.now(); },\n timeOrigin: timeOrigin,\n };\n}\n/**\n * Returns the native Performance API implementation from Node.js. Returns undefined in old Node.js versions that don't\n * implement the API.\n */\nfunction getNodePerformance() {\n try {\n var perfHooks = dynamicRequire(module, 'perf_hooks');\n return perfHooks.performance;\n }\n catch (_) {\n return undefined;\n }\n}\n/**\n * The Performance API implementation for the current platform, if available.\n */\nvar platformPerformance = isNodeEnv() ? getNodePerformance() : getBrowserPerformance();\nvar timestampSource = platformPerformance === undefined\n ? dateTimestampSource\n : {\n nowSeconds: function () { return (platformPerformance.timeOrigin + platformPerformance.now()) / 1000; },\n };\n/**\n * Returns a timestamp in seconds since the UNIX epoch using the Date API.\n */\nexport var dateTimestampInSeconds = dateTimestampSource.nowSeconds.bind(dateTimestampSource);\n/**\n * Returns a timestamp in seconds since the UNIX epoch using either the Performance or Date APIs, depending on the\n * availability of the Performance API.\n *\n * See `usingPerformanceAPI` to test whether the Performance API is used.\n *\n * BUG: Note that because of how browsers implement the Performance API, the clock might stop when the computer is\n * asleep. This creates a skew between `dateTimestampInSeconds` and `timestampInSeconds`. The\n * skew can grow to arbitrary amounts like days, weeks or months.\n * See https://github.com/getsentry/sentry-javascript/issues/2590.\n */\nexport var timestampInSeconds = timestampSource.nowSeconds.bind(timestampSource);\n// Re-exported with an old name for backwards-compatibility.\nexport var timestampWithMs = timestampInSeconds;\n/**\n * A boolean that is true when timestampInSeconds uses the Performance API to produce monotonic timestamps.\n */\nexport var usingPerformanceAPI = platformPerformance !== undefined;\n/**\n * Internal helper to store what is the source of browserPerformanceTimeOrigin below. For debugging only.\n */\nexport var _browserPerformanceTimeOriginMode;\n/**\n * The number of milliseconds since the UNIX epoch. This value is only usable in a browser, and only when the\n * performance API is available.\n */\nexport var browserPerformanceTimeOrigin = (function () {\n // Unfortunately browsers may report an inaccurate time origin data, through either performance.timeOrigin or\n // performance.timing.navigationStart, which results in poor results in performance data. We only treat time origin\n // data as reliable if they are within a reasonable threshold of the current time.\n var performance = getGlobalObject().performance;\n if (!performance || !performance.now) {\n _browserPerformanceTimeOriginMode = 'none';\n return undefined;\n }\n var threshold = 3600 * 1000;\n var performanceNow = performance.now();\n var dateNow = Date.now();\n // if timeOrigin isn't available set delta to threshold so it isn't used\n var timeOriginDelta = performance.timeOrigin\n ? Math.abs(performance.timeOrigin + performanceNow - dateNow)\n : threshold;\n var timeOriginIsReliable = timeOriginDelta < threshold;\n // While performance.timing.navigationStart is deprecated in favor of performance.timeOrigin, performance.timeOrigin\n // is not as widely supported. Namely, performance.timeOrigin is undefined in Safari as of writing.\n // Also as of writing, performance.timing is not available in Web Workers in mainstream browsers, so it is not always\n // a valid fallback. In the absence of an initial time provided by the browser, fallback to the current time from the\n // Date API.\n // eslint-disable-next-line deprecation/deprecation\n var navigationStart = performance.timing && performance.timing.navigationStart;\n var hasNavigationStart = typeof navigationStart === 'number';\n // if navigationStart isn't available set delta to threshold so it isn't used\n var navigationStartDelta = hasNavigationStart ? Math.abs(navigationStart + performanceNow - dateNow) : threshold;\n var navigationStartIsReliable = navigationStartDelta < threshold;\n if (timeOriginIsReliable || navigationStartIsReliable) {\n // Use the more reliable time origin\n if (timeOriginDelta <= navigationStartDelta) {\n _browserPerformanceTimeOriginMode = 'timeOrigin';\n return performance.timeOrigin;\n }\n else {\n _browserPerformanceTimeOriginMode = 'navigationStart';\n return navigationStart;\n }\n }\n // Either both timeOrigin and navigationStart are skewed or neither is available, fallback to Date.\n _browserPerformanceTimeOriginMode = 'dateNow';\n return dateNow;\n})();\n//# sourceMappingURL=time.js.map","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { captureException } from '@sentry/browser';\n/**\n * Creates routing instrumentation for Vue Router v2\n *\n * @param router The Vue Router instance that is used\n */\nexport function vueRouterInstrumentation(router) {\n return function (startTransaction, startTransactionOnPageLoad, startTransactionOnLocationChange) {\n if (startTransactionOnPageLoad === void 0) { startTransactionOnPageLoad = true; }\n if (startTransactionOnLocationChange === void 0) { startTransactionOnLocationChange = true; }\n router.onError(function (error) { return captureException(error); });\n router.beforeEach(function (to, from, next) {\n // According to docs we could use `from === VueRouter.START_LOCATION` but I couldnt get it working for Vue 2\n // https://router.vuejs.org/api/#router-start-location\n // https://next.router.vuejs.org/api/#start-location\n // Vue2 - null\n // Vue3 - undefined\n var isPageLoadNavigation = from.name == null && from.matched.length === 0;\n var tags = {\n 'routing.instrumentation': 'vue-router',\n };\n var data = {\n params: to.params,\n query: to.query,\n };\n if (startTransactionOnPageLoad && isPageLoadNavigation) {\n startTransaction({\n name: to.name || to.path,\n op: 'pageload',\n tags: tags,\n data: data,\n });\n }\n if (startTransactionOnLocationChange && !isPageLoadNavigation) {\n startTransaction({\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n name: to.name || (to.matched[0] && to.matched[0].path) || to.path,\n op: 'navigation',\n tags: tags,\n data: data,\n });\n }\n next();\n });\n };\n}\n//# sourceMappingURL=router.js.map","var originalFunctionToString;\n/** Patch toString calls to return proper name for wrapped functions */\nvar FunctionToString = /** @class */ (function () {\n function FunctionToString() {\n /**\n * @inheritDoc\n */\n this.name = FunctionToString.id;\n }\n /**\n * @inheritDoc\n */\n FunctionToString.prototype.setupOnce = function () {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n originalFunctionToString = Function.prototype.toString;\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Function.prototype.toString = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this.__sentry_original__ || this;\n return originalFunctionToString.apply(context, args);\n };\n };\n /**\n * @inheritDoc\n */\n FunctionToString.id = 'FunctionToString';\n return FunctionToString;\n}());\nexport { FunctionToString };\n//# sourceMappingURL=functiontostring.js.map","export var SDK_VERSION = '6.16.1';\n//# sourceMappingURL=version.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { getEventDescription, isMatchingPattern, logger } from '@sentry/utils';\n// \"Script error.\" is hard coded into browsers for errors that it can't read.\n// this is the result of a script being pulled in from an external domain and CORS.\nvar DEFAULT_IGNORE_ERRORS = [/^Script error\\.?$/, /^Javascript error: Script error\\.? on line 0$/];\n/** Inbound filters configurable by the user */\nvar InboundFilters = /** @class */ (function () {\n function InboundFilters(_options) {\n if (_options === void 0) { _options = {}; }\n this._options = _options;\n /**\n * @inheritDoc\n */\n this.name = InboundFilters.id;\n }\n /**\n * @inheritDoc\n */\n InboundFilters.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var hub = getCurrentHub();\n if (!hub) {\n return event;\n }\n var self = hub.getIntegration(InboundFilters);\n if (self) {\n var client = hub.getClient();\n var clientOptions = client ? client.getOptions() : {};\n // This checks prevents most of the occurrences of the bug linked below:\n // https://github.com/getsentry/sentry-javascript/issues/2622\n // The bug is caused by multiple SDK instances, where one is minified and one is using non-mangled code.\n // Unfortunatelly we cannot fix it reliably (thus reserved property in rollup's terser config),\n // as we cannot force people using multiple instances in their apps to sync SDK versions.\n var options = typeof self._mergeOptions === 'function' ? self._mergeOptions(clientOptions) : {};\n if (typeof self._shouldDropEvent !== 'function') {\n return event;\n }\n return self._shouldDropEvent(event, options) ? null : event;\n }\n return event;\n });\n };\n /** JSDoc */\n InboundFilters.prototype._shouldDropEvent = function (event, options) {\n if (this._isSentryError(event, options)) {\n logger.warn(\"Event dropped due to being internal Sentry Error.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isIgnoredError(event, options)) {\n logger.warn(\"Event dropped due to being matched by `ignoreErrors` option.\\nEvent: \" + getEventDescription(event));\n return true;\n }\n if (this._isDeniedUrl(event, options)) {\n logger.warn(\"Event dropped due to being matched by `denyUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n if (!this._isAllowedUrl(event, options)) {\n logger.warn(\"Event dropped due to not being matched by `allowUrls` option.\\nEvent: \" + getEventDescription(event) + \".\\nUrl: \" + this._getEventFilterUrl(event));\n return true;\n }\n return false;\n };\n /** JSDoc */\n InboundFilters.prototype._isSentryError = function (event, options) {\n if (!options.ignoreInternal) {\n return false;\n }\n try {\n return ((event &&\n event.exception &&\n event.exception.values &&\n event.exception.values[0] &&\n event.exception.values[0].type === 'SentryError') ||\n false);\n }\n catch (_oO) {\n return false;\n }\n };\n /** JSDoc */\n InboundFilters.prototype._isIgnoredError = function (event, options) {\n if (!options.ignoreErrors || !options.ignoreErrors.length) {\n return false;\n }\n return this._getPossibleEventMessages(event).some(function (message) {\n // Not sure why TypeScript complains here...\n return options.ignoreErrors.some(function (pattern) { return isMatchingPattern(message, pattern); });\n });\n };\n /** JSDoc */\n InboundFilters.prototype._isDeniedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.denyUrls || !options.denyUrls.length) {\n return false;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? false : options.denyUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._isAllowedUrl = function (event, options) {\n // TODO: Use Glob instead?\n if (!options.allowUrls || !options.allowUrls.length) {\n return true;\n }\n var url = this._getEventFilterUrl(event);\n return !url ? true : options.allowUrls.some(function (pattern) { return isMatchingPattern(url, pattern); });\n };\n /** JSDoc */\n InboundFilters.prototype._mergeOptions = function (clientOptions) {\n if (clientOptions === void 0) { clientOptions = {}; }\n return {\n allowUrls: __spread((this._options.whitelistUrls || []), (this._options.allowUrls || []), (clientOptions.whitelistUrls || []), (clientOptions.allowUrls || [])),\n denyUrls: __spread((this._options.blacklistUrls || []), (this._options.denyUrls || []), (clientOptions.blacklistUrls || []), (clientOptions.denyUrls || [])),\n ignoreErrors: __spread((this._options.ignoreErrors || []), (clientOptions.ignoreErrors || []), DEFAULT_IGNORE_ERRORS),\n ignoreInternal: typeof this._options.ignoreInternal !== 'undefined' ? this._options.ignoreInternal : true,\n };\n };\n /** JSDoc */\n InboundFilters.prototype._getPossibleEventMessages = function (event) {\n if (event.message) {\n return [event.message];\n }\n if (event.exception) {\n try {\n var _a = (event.exception.values && event.exception.values[0]) || {}, _b = _a.type, type = _b === void 0 ? '' : _b, _c = _a.value, value = _c === void 0 ? '' : _c;\n return [\"\" + value, type + \": \" + value];\n }\n catch (oO) {\n logger.error(\"Cannot extract message for event \" + getEventDescription(event));\n return [];\n }\n }\n return [];\n };\n /** JSDoc */\n InboundFilters.prototype._getLastValidUrl = function (frames) {\n if (frames === void 0) { frames = []; }\n var _a, _b;\n for (var i = frames.length - 1; i >= 0; i--) {\n var frame = frames[i];\n if (((_a = frame) === null || _a === void 0 ? void 0 : _a.filename) !== '<anonymous>' && ((_b = frame) === null || _b === void 0 ? void 0 : _b.filename) !== '[native code]') {\n return frame.filename || null;\n }\n }\n return null;\n };\n /** JSDoc */\n InboundFilters.prototype._getEventFilterUrl = function (event) {\n try {\n if (event.stacktrace) {\n var frames_1 = event.stacktrace.frames;\n return this._getLastValidUrl(frames_1);\n }\n if (event.exception) {\n var frames_2 = event.exception.values && event.exception.values[0].stacktrace && event.exception.values[0].stacktrace.frames;\n return this._getLastValidUrl(frames_2);\n }\n return null;\n }\n catch (oO) {\n logger.error(\"Cannot extract url for event \" + getEventDescription(event));\n return null;\n }\n };\n /**\n * @inheritDoc\n */\n InboundFilters.id = 'InboundFilters';\n return InboundFilters;\n}());\nexport { InboundFilters };\n//# sourceMappingURL=inboundfilters.js.map","import { getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\n/**\n * Internal function to create a new SDK client instance. The client is\n * installed and then bound to the current scope.\n *\n * @param clientClass The client class to instantiate.\n * @param options Options to pass to the client.\n */\nexport function initAndBind(clientClass, options) {\n var _a;\n if (options.debug === true) {\n logger.enable();\n }\n var hub = getCurrentHub();\n (_a = hub.getScope()) === null || _a === void 0 ? void 0 : _a.update(options.initialScope);\n var client = new clientClass(options);\n hub.bindClient(client);\n}\n//# sourceMappingURL=sdk.js.map","export var setPrototypeOf = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array ? setProtoOf : mixinProperties);\n/**\n * setPrototypeOf polyfill using __proto__\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction setProtoOf(obj, proto) {\n // @ts-ignore __proto__ does not exist on obj\n obj.__proto__ = proto;\n return obj;\n}\n/**\n * setPrototypeOf polyfill using mixin\n */\n// eslint-disable-next-line @typescript-eslint/ban-types\nfunction mixinProperties(obj, proto) {\n for (var prop in proto) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) {\n // @ts-ignore typescript complains about indexing so we remove\n obj[prop] = proto[prop];\n }\n }\n return obj;\n}\n//# sourceMappingURL=polyfill.js.map","import { __extends } from \"tslib\";\nimport { setPrototypeOf } from './polyfill';\n/** An error emitted by Sentry SDKs and related utilities. */\nvar SentryError = /** @class */ (function (_super) {\n __extends(SentryError, _super);\n function SentryError(message) {\n var _newTarget = this.constructor;\n var _this = _super.call(this, message) || this;\n _this.message = message;\n _this.name = _newTarget.prototype.constructor.name;\n setPrototypeOf(_this, _newTarget.prototype);\n return _this;\n }\n return SentryError;\n}(Error));\nexport { SentryError };\n//# sourceMappingURL=error.js.map","import { __read } from \"tslib\";\nimport { SentryError } from './error';\n/** Regular expression used to parse a Dsn. */\nvar DSN_REGEX = /^(?:(\\w+):)\\/\\/(?:(\\w+)(?::(\\w+))?@)([\\w.-]+)(?::(\\d+))?\\/(.+)/;\n/** Error message */\nvar ERROR_MESSAGE = 'Invalid Dsn';\n/** The Sentry Dsn, identifying a Sentry instance and project. */\nvar Dsn = /** @class */ (function () {\n /** Creates a new Dsn component */\n function Dsn(from) {\n if (typeof from === 'string') {\n this._fromString(from);\n }\n else {\n this._fromComponents(from);\n }\n this._validate();\n }\n /**\n * Renders the string representation of this Dsn.\n *\n * By default, this will render the public representation without the password\n * component. To get the deprecated private representation, set `withPassword`\n * to true.\n *\n * @param withPassword When set to true, the password will be included.\n */\n Dsn.prototype.toString = function (withPassword) {\n if (withPassword === void 0) { withPassword = false; }\n var _a = this, host = _a.host, path = _a.path, pass = _a.pass, port = _a.port, projectId = _a.projectId, protocol = _a.protocol, publicKey = _a.publicKey;\n return (protocol + \"://\" + publicKey + (withPassword && pass ? \":\" + pass : '') +\n (\"@\" + host + (port ? \":\" + port : '') + \"/\" + (path ? path + \"/\" : path) + projectId));\n };\n /** Parses a string into this Dsn. */\n Dsn.prototype._fromString = function (str) {\n var match = DSN_REGEX.exec(str);\n if (!match) {\n throw new SentryError(ERROR_MESSAGE);\n }\n var _a = __read(match.slice(1), 6), protocol = _a[0], publicKey = _a[1], _b = _a[2], pass = _b === void 0 ? '' : _b, host = _a[3], _c = _a[4], port = _c === void 0 ? '' : _c, lastPath = _a[5];\n var path = '';\n var projectId = lastPath;\n var split = projectId.split('/');\n if (split.length > 1) {\n path = split.slice(0, -1).join('/');\n projectId = split.pop();\n }\n if (projectId) {\n var projectMatch = projectId.match(/^\\d+/);\n if (projectMatch) {\n projectId = projectMatch[0];\n }\n }\n this._fromComponents({ host: host, pass: pass, path: path, projectId: projectId, port: port, protocol: protocol, publicKey: publicKey });\n };\n /** Maps Dsn components into this instance. */\n Dsn.prototype._fromComponents = function (components) {\n // TODO this is for backwards compatibility, and can be removed in a future version\n if ('user' in components && !('publicKey' in components)) {\n components.publicKey = components.user;\n }\n this.user = components.publicKey || '';\n this.protocol = components.protocol;\n this.publicKey = components.publicKey || '';\n this.pass = components.pass || '';\n this.host = components.host;\n this.port = components.port || '';\n this.path = components.path || '';\n this.projectId = components.projectId;\n };\n /** Validates this Dsn and throws on error. */\n Dsn.prototype._validate = function () {\n var _this = this;\n ['protocol', 'publicKey', 'host', 'projectId'].forEach(function (component) {\n if (!_this[component]) {\n throw new SentryError(ERROR_MESSAGE + \": \" + component + \" missing\");\n }\n });\n if (!this.projectId.match(/^\\d+$/)) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid projectId \" + this.projectId);\n }\n if (this.protocol !== 'http' && this.protocol !== 'https') {\n throw new SentryError(ERROR_MESSAGE + \": Invalid protocol \" + this.protocol);\n }\n if (this.port && isNaN(parseInt(this.port, 10))) {\n throw new SentryError(ERROR_MESSAGE + \": Invalid port \" + this.port);\n }\n };\n return Dsn;\n}());\nexport { Dsn };\n//# sourceMappingURL=dsn.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/hub';\nimport { logger } from '@sentry/utils';\nexport var installedIntegrations = [];\n/**\n * @private\n */\nfunction filterDuplicates(integrations) {\n return integrations.reduce(function (acc, integrations) {\n if (acc.every(function (accIntegration) { return integrations.name !== accIntegration.name; })) {\n acc.push(integrations);\n }\n return acc;\n }, []);\n}\n/** Gets integration to install */\nexport function getIntegrationsToSetup(options) {\n var defaultIntegrations = (options.defaultIntegrations && __spread(options.defaultIntegrations)) || [];\n var userIntegrations = options.integrations;\n var integrations = __spread(filterDuplicates(defaultIntegrations));\n if (Array.isArray(userIntegrations)) {\n // Filter out integrations that are also included in user options\n integrations = __spread(integrations.filter(function (integrations) {\n return userIntegrations.every(function (userIntegration) { return userIntegration.name !== integrations.name; });\n }), filterDuplicates(userIntegrations));\n }\n else if (typeof userIntegrations === 'function') {\n integrations = userIntegrations(integrations);\n integrations = Array.isArray(integrations) ? integrations : [integrations];\n }\n // Make sure that if present, `Debug` integration will always run last\n var integrationsNames = integrations.map(function (i) { return i.name; });\n var alwaysLastToRun = 'Debug';\n if (integrationsNames.indexOf(alwaysLastToRun) !== -1) {\n integrations.push.apply(integrations, __spread(integrations.splice(integrationsNames.indexOf(alwaysLastToRun), 1)));\n }\n return integrations;\n}\n/** Setup given integration */\nexport function setupIntegration(integration) {\n if (installedIntegrations.indexOf(integration.name) !== -1) {\n return;\n }\n integration.setupOnce(addGlobalEventProcessor, getCurrentHub);\n installedIntegrations.push(integration.name);\n logger.log(\"Integration installed: \" + integration.name);\n}\n/**\n * Given a list of integration instances this installs them all. When `withDefaults` is set to `true` then all default\n * integrations are added unless they were already provided before.\n * @param integrations array of integration instances\n * @param withDefault should enable default integrations\n */\nexport function setupIntegrations(options) {\n var integrations = {};\n getIntegrationsToSetup(options).forEach(function (integration) {\n integrations[integration.name] = integration;\n setupIntegration(integration);\n });\n // set the `initialized` flag so we don't run through the process again unecessarily; use `Object.defineProperty`\n // because by default it creates a property which is nonenumerable, which we want since `initialized` shouldn't be\n // considered a member of the index the way the actual integrations are\n Object.defineProperty(integrations, 'initialized', { value: true });\n return integrations;\n}\n//# sourceMappingURL=integration.js.map","import { __assign, __read, __spread, __values } from \"tslib\";\n/* eslint-disable max-lines */\nimport { Scope } from '@sentry/hub';\nimport { Outcome, SessionStatus, } from '@sentry/types';\nimport { checkOrSetAlreadyCaught, dateTimestampInSeconds, Dsn, isPlainObject, isPrimitive, isThenable, logger, normalize, SentryError, SyncPromise, truncate, uuid4, } from '@sentry/utils';\nimport { setupIntegrations } from './integration';\nvar ALREADY_SEEN_ERROR = \"Not capturing exception because it's already been captured.\";\n/**\n * Base implementation for all JavaScript SDK clients.\n *\n * Call the constructor with the corresponding backend constructor and options\n * specific to the client subclass. To access these options later, use\n * {@link Client.getOptions}. Also, the Backend instance is available via\n * {@link Client.getBackend}.\n *\n * If a Dsn is specified in the options, it will be parsed and stored. Use\n * {@link Client.getDsn} to retrieve the Dsn at any moment. In case the Dsn is\n * invalid, the constructor will throw a {@link SentryException}. Note that\n * without a valid Dsn, the SDK will not send any events to Sentry.\n *\n * Before sending an event via the backend, it is passed through\n * {@link BaseClient._prepareEvent} to add SDK information and scope data\n * (breadcrumbs and context). To add more custom information, override this\n * method and extend the resulting prepared event.\n *\n * To issue automatically created events (e.g. via instrumentation), use\n * {@link Client.captureEvent}. It will prepare the event and pass it through\n * the callback lifecycle. To issue auto-breadcrumbs, use\n * {@link Client.addBreadcrumb}.\n *\n * @example\n * class NodeClient extends BaseClient<NodeBackend, NodeOptions> {\n * public constructor(options: NodeOptions) {\n * super(NodeBackend, options);\n * }\n *\n * // ...\n * }\n */\nvar BaseClient = /** @class */ (function () {\n /**\n * Initializes this client instance.\n *\n * @param backendClass A constructor function to create the backend.\n * @param options Options for the client.\n */\n function BaseClient(backendClass, options) {\n /** Array of used integrations. */\n this._integrations = {};\n /** Number of calls being processed */\n this._numProcessing = 0;\n this._backend = new backendClass(options);\n this._options = options;\n if (options.dsn) {\n this._dsn = new Dsn(options.dsn);\n }\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseClient.prototype.captureException = function (exception, hint, scope) {\n var _this = this;\n // ensure we haven't captured this very object before\n if (checkOrSetAlreadyCaught(exception)) {\n logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n var eventId = hint && hint.event_id;\n this._process(this._getBackend()\n .eventFromException(exception, hint)\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureMessage = function (message, level, hint, scope) {\n var _this = this;\n var eventId = hint && hint.event_id;\n var promisedEvent = isPrimitive(message)\n ? this._getBackend().eventFromMessage(String(message), level, hint)\n : this._getBackend().eventFromException(message, hint);\n this._process(promisedEvent\n .then(function (event) { return _this._captureEvent(event, hint, scope); })\n .then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureEvent = function (event, hint, scope) {\n var _a;\n // ensure we haven't captured this very object before\n if (((_a = hint) === null || _a === void 0 ? void 0 : _a.originalException) && checkOrSetAlreadyCaught(hint.originalException)) {\n logger.log(ALREADY_SEEN_ERROR);\n return;\n }\n var eventId = hint && hint.event_id;\n this._process(this._captureEvent(event, hint, scope).then(function (result) {\n eventId = result;\n }));\n return eventId;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.captureSession = function (session) {\n if (!this._isEnabled()) {\n logger.warn('SDK not enabled, will not capture session.');\n return;\n }\n if (!(typeof session.release === 'string')) {\n logger.warn('Discarded session because of missing or non-string release');\n }\n else {\n this._sendSession(session);\n // After sending, we set init false to indicate it's not the first occurrence\n session.update({ init: false });\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getDsn = function () {\n return this._dsn;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getOptions = function () {\n return this._options;\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getTransport = function () {\n return this._getBackend().getTransport();\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.flush = function (timeout) {\n var _this = this;\n return this._isClientDoneProcessing(timeout).then(function (clientFinished) {\n return _this.getTransport()\n .close(timeout)\n .then(function (transportFlushed) { return clientFinished && transportFlushed; });\n });\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.close = function (timeout) {\n var _this = this;\n return this.flush(timeout).then(function (result) {\n _this.getOptions().enabled = false;\n return result;\n });\n };\n /**\n * Sets up the integrations\n */\n BaseClient.prototype.setupIntegrations = function () {\n if (this._isEnabled() && !this._integrations.initialized) {\n this._integrations = setupIntegrations(this._options);\n }\n };\n /**\n * @inheritDoc\n */\n BaseClient.prototype.getIntegration = function (integration) {\n try {\n return this._integrations[integration.id] || null;\n }\n catch (_oO) {\n logger.warn(\"Cannot retrieve integration \" + integration.id + \" from the current Client\");\n return null;\n }\n };\n /** Updates existing session based on the provided event */\n BaseClient.prototype._updateSessionFromEvent = function (session, event) {\n var e_1, _a;\n var crashed = false;\n var errored = false;\n var exceptions = event.exception && event.exception.values;\n if (exceptions) {\n errored = true;\n try {\n for (var exceptions_1 = __values(exceptions), exceptions_1_1 = exceptions_1.next(); !exceptions_1_1.done; exceptions_1_1 = exceptions_1.next()) {\n var ex = exceptions_1_1.value;\n var mechanism = ex.mechanism;\n if (mechanism && mechanism.handled === false) {\n crashed = true;\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (exceptions_1_1 && !exceptions_1_1.done && (_a = exceptions_1.return)) _a.call(exceptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n // A session is updated and that session update is sent in only one of the two following scenarios:\n // 1. Session with non terminal status and 0 errors + an error occurred -> Will set error count to 1 and send update\n // 2. Session with non terminal status and 1 error + a crash occurred -> Will set status crashed and send update\n var sessionNonTerminal = session.status === SessionStatus.Ok;\n var shouldUpdateAndSend = (sessionNonTerminal && session.errors === 0) || (sessionNonTerminal && crashed);\n if (shouldUpdateAndSend) {\n session.update(__assign(__assign({}, (crashed && { status: SessionStatus.Crashed })), { errors: session.errors || Number(errored || crashed) }));\n this.captureSession(session);\n }\n };\n /** Deliver captured session to Sentry */\n BaseClient.prototype._sendSession = function (session) {\n this._getBackend().sendSession(session);\n };\n /**\n * Determine if the client is finished processing. Returns a promise because it will wait `timeout` ms before saying\n * \"no\" (resolving to `false`) in order to give the client a chance to potentially finish first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the client is still busy. Passing `0` (or not\n * passing anything) will make the promise wait as long as it takes for processing to finish before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if processing is already done or finishes before the timeout, and\n * `false` otherwise\n */\n BaseClient.prototype._isClientDoneProcessing = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n var ticked = 0;\n var tick = 1;\n var interval = setInterval(function () {\n if (_this._numProcessing == 0) {\n clearInterval(interval);\n resolve(true);\n }\n else {\n ticked += tick;\n if (timeout && ticked >= timeout) {\n clearInterval(interval);\n resolve(false);\n }\n }\n }, tick);\n });\n };\n /** Returns the current backend. */\n BaseClient.prototype._getBackend = function () {\n return this._backend;\n };\n /** Determines whether this SDK is enabled and a valid Dsn is present. */\n BaseClient.prototype._isEnabled = function () {\n return this.getOptions().enabled !== false && this._dsn !== undefined;\n };\n /**\n * Adds common information to events.\n *\n * The information includes release and environment from `options`,\n * breadcrumbs and context (extra, tags and user) from the scope.\n *\n * Information that is already present in the event is never overwritten. For\n * nested objects, such as the context, keys are merged.\n *\n * @param event The original event.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A new event with more information.\n */\n BaseClient.prototype._prepareEvent = function (event, scope, hint) {\n var _this = this;\n var _a = this.getOptions().normalizeDepth, normalizeDepth = _a === void 0 ? 3 : _a;\n var prepared = __assign(__assign({}, event), { event_id: event.event_id || (hint && hint.event_id ? hint.event_id : uuid4()), timestamp: event.timestamp || dateTimestampInSeconds() });\n this._applyClientOptions(prepared);\n this._applyIntegrationsMetadata(prepared);\n // If we have scope given to us, use it as the base for further modifications.\n // This allows us to prevent unnecessary copying of data if `captureContext` is not provided.\n var finalScope = scope;\n if (hint && hint.captureContext) {\n finalScope = Scope.clone(finalScope).update(hint.captureContext);\n }\n // We prepare the result here with a resolved Event.\n var result = SyncPromise.resolve(prepared);\n // This should be the last thing called, since we want that\n // {@link Hub.addEventProcessor} gets the finished prepared event.\n if (finalScope) {\n // In case we have a hub we reassign it.\n result = finalScope.applyToEvent(prepared, hint);\n }\n return result.then(function (evt) {\n if (typeof normalizeDepth === 'number' && normalizeDepth > 0) {\n return _this._normalizeEvent(evt, normalizeDepth);\n }\n return evt;\n });\n };\n /**\n * Applies `normalize` function on necessary `Event` attributes to make them safe for serialization.\n * Normalized keys:\n * - `breadcrumbs.data`\n * - `user`\n * - `contexts`\n * - `extra`\n * @param event Event\n * @returns Normalized event\n */\n BaseClient.prototype._normalizeEvent = function (event, depth) {\n if (!event) {\n return null;\n }\n var normalized = __assign(__assign(__assign(__assign(__assign({}, event), (event.breadcrumbs && {\n breadcrumbs: event.breadcrumbs.map(function (b) { return (__assign(__assign({}, b), (b.data && {\n data: normalize(b.data, depth),\n }))); }),\n })), (event.user && {\n user: normalize(event.user, depth),\n })), (event.contexts && {\n contexts: normalize(event.contexts, depth),\n })), (event.extra && {\n extra: normalize(event.extra, depth),\n }));\n // event.contexts.trace stores information about a Transaction. Similarly,\n // event.spans[] stores information about child Spans. Given that a\n // Transaction is conceptually a Span, normalization should apply to both\n // Transactions and Spans consistently.\n // For now the decision is to skip normalization of Transactions and Spans,\n // so this block overwrites the normalized event to add back the original\n // Transaction information prior to normalization.\n if (event.contexts && event.contexts.trace) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n normalized.contexts.trace = event.contexts.trace;\n }\n var _a = this.getOptions()._experiments, _experiments = _a === void 0 ? {} : _a;\n if (_experiments.ensureNoCircularStructures) {\n return normalize(normalized);\n }\n return normalized;\n };\n /**\n * Enhances event using the client configuration.\n * It takes care of all \"static\" values like environment, release and `dist`,\n * as well as truncating overly long values.\n * @param event event instance to be enhanced\n */\n BaseClient.prototype._applyClientOptions = function (event) {\n var options = this.getOptions();\n var environment = options.environment, release = options.release, dist = options.dist, _a = options.maxValueLength, maxValueLength = _a === void 0 ? 250 : _a;\n if (!('environment' in event)) {\n event.environment = 'environment' in options ? environment : 'production';\n }\n if (event.release === undefined && release !== undefined) {\n event.release = release;\n }\n if (event.dist === undefined && dist !== undefined) {\n event.dist = dist;\n }\n if (event.message) {\n event.message = truncate(event.message, maxValueLength);\n }\n var exception = event.exception && event.exception.values && event.exception.values[0];\n if (exception && exception.value) {\n exception.value = truncate(exception.value, maxValueLength);\n }\n var request = event.request;\n if (request && request.url) {\n request.url = truncate(request.url, maxValueLength);\n }\n };\n /**\n * This function adds all used integrations to the SDK info in the event.\n * @param event The event that will be filled with all integrations.\n */\n BaseClient.prototype._applyIntegrationsMetadata = function (event) {\n var integrationsArray = Object.keys(this._integrations);\n if (integrationsArray.length > 0) {\n event.sdk = event.sdk || {};\n event.sdk.integrations = __spread((event.sdk.integrations || []), integrationsArray);\n }\n };\n /**\n * Tells the backend to send this event\n * @param event The Sentry event to send\n */\n BaseClient.prototype._sendEvent = function (event) {\n this._getBackend().sendEvent(event);\n };\n /**\n * Processes the event and logs an error in case of rejection\n * @param event\n * @param hint\n * @param scope\n */\n BaseClient.prototype._captureEvent = function (event, hint, scope) {\n return this._processEvent(event, hint, scope).then(function (finalEvent) {\n return finalEvent.event_id;\n }, function (reason) {\n logger.error(reason);\n return undefined;\n });\n };\n /**\n * Processes an event (either error or message) and sends it to Sentry.\n *\n * This also adds breadcrumbs and context information to the event. However,\n * platform specific meta data (such as the User's IP address) must be added\n * by the SDK implementor.\n *\n *\n * @param event The event to send to Sentry.\n * @param hint May contain additional information about the original exception.\n * @param scope A scope containing event metadata.\n * @returns A SyncPromise that resolves with the event or rejects in case event was/will not be send.\n */\n BaseClient.prototype._processEvent = function (event, hint, scope) {\n var _this = this;\n var _a, _b;\n // eslint-disable-next-line @typescript-eslint/unbound-method\n var _c = this.getOptions(), beforeSend = _c.beforeSend, sampleRate = _c.sampleRate;\n var transport = this.getTransport();\n if (!this._isEnabled()) {\n return SyncPromise.reject(new SentryError('SDK not enabled, will not capture event.'));\n }\n var isTransaction = event.type === 'transaction';\n // 1.0 === 100% events are sent\n // 0.0 === 0% events are sent\n // Sampling for transaction happens somewhere else\n if (!isTransaction && typeof sampleRate === 'number' && Math.random() > sampleRate) {\n (_b = (_a = transport).recordLostEvent) === null || _b === void 0 ? void 0 : _b.call(_a, Outcome.SampleRate, 'event');\n return SyncPromise.reject(new SentryError(\"Discarding event because it's not included in the random sample (sampling rate = \" + sampleRate + \")\"));\n }\n return this._prepareEvent(event, scope, hint)\n .then(function (prepared) {\n var _a, _b;\n if (prepared === null) {\n (_b = (_a = transport).recordLostEvent) === null || _b === void 0 ? void 0 : _b.call(_a, Outcome.EventProcessor, event.type || 'event');\n throw new SentryError('An event processor returned null, will not send event.');\n }\n var isInternalException = hint && hint.data && hint.data.__sentry__ === true;\n if (isInternalException || isTransaction || !beforeSend) {\n return prepared;\n }\n var beforeSendResult = beforeSend(prepared, hint);\n return _this._ensureBeforeSendRv(beforeSendResult);\n })\n .then(function (processedEvent) {\n var _a, _b;\n if (processedEvent === null) {\n (_b = (_a = transport).recordLostEvent) === null || _b === void 0 ? void 0 : _b.call(_a, Outcome.BeforeSend, event.type || 'event');\n throw new SentryError('`beforeSend` returned `null`, will not send event.');\n }\n var session = scope && scope.getSession && scope.getSession();\n if (!isTransaction && session) {\n _this._updateSessionFromEvent(session, processedEvent);\n }\n _this._sendEvent(processedEvent);\n return processedEvent;\n })\n .then(null, function (reason) {\n if (reason instanceof SentryError) {\n throw reason;\n }\n _this.captureException(reason, {\n data: {\n __sentry__: true,\n },\n originalException: reason,\n });\n throw new SentryError(\"Event processing pipeline threw an error, original event will not be sent. Details have been sent as a new event.\\nReason: \" + reason);\n });\n };\n /**\n * Occupies the client with processing and event\n */\n BaseClient.prototype._process = function (promise) {\n var _this = this;\n this._numProcessing += 1;\n void promise.then(function (value) {\n _this._numProcessing -= 1;\n return value;\n }, function (reason) {\n _this._numProcessing -= 1;\n return reason;\n });\n };\n /**\n * Verifies that return value of configured `beforeSend` is of expected type.\n */\n BaseClient.prototype._ensureBeforeSendRv = function (rv) {\n var nullErr = '`beforeSend` method has to return `null` or a valid event.';\n if (isThenable(rv)) {\n return rv.then(function (event) {\n if (!(isPlainObject(event) || event === null)) {\n throw new SentryError(nullErr);\n }\n return event;\n }, function (e) {\n throw new SentryError(\"beforeSend rejected with \" + e);\n });\n }\n else if (!(isPlainObject(rv) || rv === null)) {\n throw new SentryError(nullErr);\n }\n return rv;\n };\n return BaseClient;\n}());\nexport { BaseClient };\n//# sourceMappingURL=baseclient.js.map","/** The status of an event. */\n// eslint-disable-next-line import/export\nexport var Status;\n(function (Status) {\n /** The status could not be determined. */\n Status[\"Unknown\"] = \"unknown\";\n /** The event was skipped due to configuration or callbacks. */\n Status[\"Skipped\"] = \"skipped\";\n /** The event was sent to Sentry successfully. */\n Status[\"Success\"] = \"success\";\n /** The client is currently rate limited and will try again later. */\n Status[\"RateLimit\"] = \"rate_limit\";\n /** The event could not be processed. */\n Status[\"Invalid\"] = \"invalid\";\n /** A server-side error occurred during submission. */\n Status[\"Failed\"] = \"failed\";\n})(Status || (Status = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Status) {\n /**\n * Converts a HTTP status code into a {@link Status}.\n *\n * @param code The HTTP response status code.\n * @returns The send status or {@link Status.Unknown}.\n */\n function fromHttpCode(code) {\n if (code >= 200 && code < 300) {\n return Status.Success;\n }\n if (code === 429) {\n return Status.RateLimit;\n }\n if (code >= 400 && code < 500) {\n return Status.Invalid;\n }\n if (code >= 500) {\n return Status.Failed;\n }\n return Status.Unknown;\n }\n Status.fromHttpCode = fromHttpCode;\n})(Status || (Status = {}));\n//# sourceMappingURL=status.js.map","import { Status } from '@sentry/types';\nimport { SyncPromise } from '@sentry/utils';\n/** Noop transport */\nvar NoopTransport = /** @class */ (function () {\n function NoopTransport() {\n }\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.sendEvent = function (_) {\n return SyncPromise.resolve({\n reason: \"NoopTransport: Event has been skipped because no Dsn is configured.\",\n status: Status.Skipped,\n });\n };\n /**\n * @inheritDoc\n */\n NoopTransport.prototype.close = function (_) {\n return SyncPromise.resolve(true);\n };\n return NoopTransport;\n}());\nexport { NoopTransport };\n//# sourceMappingURL=noop.js.map","/** JSDoc */\n// eslint-disable-next-line import/export\nexport var Severity;\n(function (Severity) {\n /** JSDoc */\n Severity[\"Fatal\"] = \"fatal\";\n /** JSDoc */\n Severity[\"Error\"] = \"error\";\n /** JSDoc */\n Severity[\"Warning\"] = \"warning\";\n /** JSDoc */\n Severity[\"Log\"] = \"log\";\n /** JSDoc */\n Severity[\"Info\"] = \"info\";\n /** JSDoc */\n Severity[\"Debug\"] = \"debug\";\n /** JSDoc */\n Severity[\"Critical\"] = \"critical\";\n})(Severity || (Severity = {}));\n// eslint-disable-next-line @typescript-eslint/no-namespace, import/export\n(function (Severity) {\n /**\n * Converts a string-based level into a {@link Severity}.\n *\n * @param level string representation of Severity\n * @returns Severity\n */\n function fromString(level) {\n switch (level) {\n case 'debug':\n return Severity.Debug;\n case 'info':\n return Severity.Info;\n case 'warn':\n case 'warning':\n return Severity.Warning;\n case 'error':\n return Severity.Error;\n case 'fatal':\n return Severity.Fatal;\n case 'critical':\n return Severity.Critical;\n case 'log':\n default:\n return Severity.Log;\n }\n }\n Severity.fromString = fromString;\n})(Severity || (Severity = {}));\n//# sourceMappingURL=severity.js.map","import { logger, SentryError } from '@sentry/utils';\nimport { NoopTransport } from './transports/noop';\n/**\n * This is the base implemention of a Backend.\n * @hidden\n */\nvar BaseBackend = /** @class */ (function () {\n /** Creates a new backend instance. */\n function BaseBackend(options) {\n this._options = options;\n if (!this._options.dsn) {\n logger.warn('No DSN provided, backend will not do anything.');\n }\n this._transport = this._setupTransport();\n }\n /**\n * @inheritDoc\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\n BaseBackend.prototype.eventFromException = function (_exception, _hint) {\n throw new SentryError('Backend has to implement `eventFromException` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.eventFromMessage = function (_message, _level, _hint) {\n throw new SentryError('Backend has to implement `eventFromMessage` method');\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendEvent = function (event) {\n void this._transport.sendEvent(event).then(null, function (reason) {\n logger.error(\"Error while sending event: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.sendSession = function (session) {\n if (!this._transport.sendSession) {\n logger.warn(\"Dropping session because custom transport doesn't implement sendSession\");\n return;\n }\n void this._transport.sendSession(session).then(null, function (reason) {\n logger.error(\"Error while sending session: \" + reason);\n });\n };\n /**\n * @inheritDoc\n */\n BaseBackend.prototype.getTransport = function () {\n return this._transport;\n };\n /**\n * Sets up the transport so it can be used later to send requests.\n */\n BaseBackend.prototype._setupTransport = function () {\n return new NoopTransport();\n };\n return BaseBackend;\n}());\nexport { BaseBackend };\n//# sourceMappingURL=basebackend.js.map","/**\n * This was originally forked from https://github.com/occ/TraceKit, but has since been\n * largely modified and is now maintained as part of Sentry JS SDK.\n */\nimport { __assign, __read } from \"tslib\";\n// global reference to slice\nvar UNKNOWN_FUNCTION = '?';\n// Chromium based browsers: Chrome, Brave, new Opera, new Edge\nvar chrome = /^\\s*at (?:(.*?) ?\\()?((?:file|https?|blob|chrome-extension|address|native|eval|webpack|<anonymous>|[-a-z]+:|.*bundle|\\/).*?)(?::(\\d+))?(?::(\\d+))?\\)?\\s*$/i;\n// gecko regex: `(?:bundle|\\d+\\.js)`: `bundle` is for react native, `\\d+\\.js` also but specifically for ram bundles because it\n// generates filenames without a prefix like `file://` the filenames in the stacktrace are just 42.js\n// We need this specific case for now because we want no other regex to match.\nvar gecko = /^\\s*(.*?)(?:\\((.*?)\\))?(?:^|@)?((?:file|https?|blob|chrome|webpack|resource|moz-extension|capacitor).*?:\\/.*?|\\[native code\\]|[^@]*(?:bundle|\\d+\\.js)|\\/[\\w\\-. /=]+)(?::(\\d+))?(?::(\\d+))?\\s*$/i;\nvar winjs = /^\\s*at (?:((?:\\[object object\\])?.+) )?\\(?((?:file|ms-appx|https?|webpack|blob):.*?):(\\d+)(?::(\\d+))?\\)?\\s*$/i;\nvar geckoEval = /(\\S+) line (\\d+)(?: > eval line \\d+)* > eval/i;\nvar chromeEval = /\\((\\S*)(?::(\\d+))(?::(\\d+))\\)/;\n// Based on our own mapping pattern - https://github.com/getsentry/sentry/blob/9f08305e09866c8bd6d0c24f5b0aabdd7dd6c59c/src/sentry/lang/javascript/errormapping.py#L83-L108\nvar reactMinifiedRegexp = /Minified React error #\\d+;/i;\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types\nexport function computeStackTrace(ex) {\n var stack = null;\n var popSize = 0;\n if (ex) {\n if (typeof ex.framesToPop === 'number') {\n popSize = ex.framesToPop;\n }\n else if (reactMinifiedRegexp.test(ex.message)) {\n popSize = 1;\n }\n }\n try {\n // This must be tried first because Opera 10 *destroys*\n // its stacktrace property if you try to access the stack\n // property first!!\n stack = computeStackTraceFromStacktraceProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n try {\n stack = computeStackTraceFromStackProp(ex);\n if (stack) {\n return popFrames(stack, popSize);\n }\n }\n catch (e) {\n // no-empty\n }\n return {\n message: extractMessage(ex),\n name: ex && ex.name,\n stack: [],\n failed: true,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any, complexity\nfunction computeStackTraceFromStackProp(ex) {\n var _a, _b;\n if (!ex || !ex.stack) {\n return null;\n }\n var stack = [];\n var lines = ex.stack.split('\\n');\n var isEval;\n var submatch;\n var parts;\n var element;\n for (var i = 0; i < lines.length; ++i) {\n if ((parts = chrome.exec(lines[i]))) {\n var isNative = parts[2] && parts[2].indexOf('native') === 0; // start of line\n isEval = parts[2] && parts[2].indexOf('eval') === 0; // start of line\n if (isEval && (submatch = chromeEval.exec(parts[2]))) {\n // throw out eval line/column and use top-most line/column number\n parts[2] = submatch[1]; // url\n parts[3] = submatch[2]; // line\n parts[4] = submatch[3]; // column\n }\n // Arpad: Working with the regexp above is super painful. it is quite a hack, but just stripping the `address at `\n // prefix here seems like the quickest solution for now.\n var url = parts[2] && parts[2].indexOf('address at ') === 0 ? parts[2].substr('address at '.length) : parts[2];\n // Kamil: One more hack won't hurt us right? Understanding and adding more rules on top of these regexps right now\n // would be way too time consuming. (TODO: Rewrite whole RegExp to be more readable)\n var func = parts[1] || UNKNOWN_FUNCTION;\n _a = __read(extractSafariExtensionDetails(func, url), 2), func = _a[0], url = _a[1];\n element = {\n url: url,\n func: func,\n args: isNative ? [parts[2]] : [],\n line: parts[3] ? +parts[3] : null,\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = winjs.exec(lines[i]))) {\n element = {\n url: parts[2],\n func: parts[1] || UNKNOWN_FUNCTION,\n args: [],\n line: +parts[3],\n column: parts[4] ? +parts[4] : null,\n };\n }\n else if ((parts = gecko.exec(lines[i]))) {\n isEval = parts[3] && parts[3].indexOf(' > eval') > -1;\n if (isEval && (submatch = geckoEval.exec(parts[3]))) {\n // throw out eval line/column and use top-most line number\n parts[1] = parts[1] || \"eval\";\n parts[3] = submatch[1];\n parts[4] = submatch[2];\n parts[5] = ''; // no column when eval\n }\n else if (i === 0 && !parts[5] && ex.columnNumber !== void 0) {\n // FireFox uses this awesome columnNumber property for its top frame\n // Also note, Firefox's column number is 0-based and everything else expects 1-based,\n // so adding 1\n // NOTE: this hack doesn't work if top-most frame is eval\n stack[0].column = ex.columnNumber + 1;\n }\n var url = parts[3];\n var func = parts[1] || UNKNOWN_FUNCTION;\n _b = __read(extractSafariExtensionDetails(func, url), 2), func = _b[0], url = _b[1];\n element = {\n url: url,\n func: func,\n args: parts[2] ? parts[2].split(',') : [],\n line: parts[4] ? +parts[4] : null,\n column: parts[5] ? +parts[5] : null,\n };\n }\n else {\n continue;\n }\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/** JSDoc */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction computeStackTraceFromStacktraceProp(ex) {\n if (!ex || !ex.stacktrace) {\n return null;\n }\n // Access and store the stacktrace property before doing ANYTHING\n // else to it because Opera is not very good at providing it\n // reliably in other circumstances.\n var stacktrace = ex.stacktrace;\n var opera10Regex = / line (\\d+).*script (?:in )?(\\S+)(?:: in function (\\S+))?$/i;\n var opera11Regex = / line (\\d+), column (\\d+)\\s*(?:in (?:<anonymous function: ([^>]+)>|([^)]+))\\((.*)\\))? in (.*):\\s*$/i;\n var lines = stacktrace.split('\\n');\n var stack = [];\n var parts;\n for (var line = 0; line < lines.length; line += 2) {\n var element = null;\n if ((parts = opera10Regex.exec(lines[line]))) {\n element = {\n url: parts[2],\n func: parts[3],\n args: [],\n line: +parts[1],\n column: null,\n };\n }\n else if ((parts = opera11Regex.exec(lines[line]))) {\n element = {\n url: parts[6],\n func: parts[3] || parts[4],\n args: parts[5] ? parts[5].split(',') : [],\n line: +parts[1],\n column: +parts[2],\n };\n }\n if (element) {\n if (!element.func && element.line) {\n element.func = UNKNOWN_FUNCTION;\n }\n stack.push(element);\n }\n }\n if (!stack.length) {\n return null;\n }\n return {\n message: extractMessage(ex),\n name: ex.name,\n stack: stack,\n };\n}\n/**\n * Safari web extensions, starting version unknown, can produce \"frames-only\" stacktraces.\n * What it means, is that instead of format like:\n *\n * Error: wat\n * at function@url:row:col\n * at function@url:row:col\n * at function@url:row:col\n *\n * it produces something like:\n *\n * function@url:row:col\n * function@url:row:col\n * function@url:row:col\n *\n * Because of that, it won't be captured by `chrome` RegExp and will fall into `Gecko` branch.\n * This function is extracted so that we can use it in both places without duplicating the logic.\n * Unfortunatelly \"just\" changing RegExp is too complicated now and making it pass all tests\n * and fix this case seems like an impossible, or at least way too time-consuming task.\n */\nvar extractSafariExtensionDetails = function (func, url) {\n var isSafariExtension = func.indexOf('safari-extension') !== -1;\n var isSafariWebExtension = func.indexOf('safari-web-extension') !== -1;\n return isSafariExtension || isSafariWebExtension\n ? [\n func.indexOf('@') !== -1 ? func.split('@')[0] : UNKNOWN_FUNCTION,\n isSafariExtension ? \"safari-extension:\" + url : \"safari-web-extension:\" + url,\n ]\n : [func, url];\n};\n/** Remove N number of frames from the stack */\nfunction popFrames(stacktrace, popSize) {\n try {\n return __assign(__assign({}, stacktrace), { stack: stacktrace.stack.slice(popSize) });\n }\n catch (e) {\n return stacktrace;\n }\n}\n/**\n * There are cases where stacktrace.message is an Event object\n * https://github.com/getsentry/sentry-javascript/issues/1949\n * In this specific case we try to extract stacktrace.message.error.message\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nfunction extractMessage(ex) {\n var message = ex && ex.message;\n if (!message) {\n return 'No error message';\n }\n if (message.error && typeof message.error.message === 'string') {\n return message.error.message;\n }\n return message;\n}\n//# sourceMappingURL=tracekit.js.map","import { extractExceptionKeysForMessage, isEvent, normalizeToSize } from '@sentry/utils';\nimport { computeStackTrace } from './tracekit';\nvar STACKTRACE_LIMIT = 50;\n/**\n * This function creates an exception from an TraceKitStackTrace\n * @param stacktrace TraceKitStackTrace that will be converted to an exception\n * @hidden\n */\nexport function exceptionFromStacktrace(stacktrace) {\n var frames = prepareFramesForEvent(stacktrace.stack);\n var exception = {\n type: stacktrace.name,\n value: stacktrace.message,\n };\n if (frames && frames.length) {\n exception.stacktrace = { frames: frames };\n }\n if (exception.type === undefined && exception.value === '') {\n exception.value = 'Unrecoverable error caught';\n }\n return exception;\n}\n/**\n * @hidden\n */\nexport function eventFromPlainObject(exception, syntheticException, rejection) {\n var event = {\n exception: {\n values: [\n {\n type: isEvent(exception) ? exception.constructor.name : rejection ? 'UnhandledRejection' : 'Error',\n value: \"Non-Error \" + (rejection ? 'promise rejection' : 'exception') + \" captured with keys: \" + extractExceptionKeysForMessage(exception),\n },\n ],\n },\n extra: {\n __serialized__: normalizeToSize(exception),\n },\n };\n if (syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromStacktrace(stacktrace) {\n var exception = exceptionFromStacktrace(stacktrace);\n return {\n exception: {\n values: [exception],\n },\n };\n}\n/**\n * @hidden\n */\nexport function prepareFramesForEvent(stack) {\n if (!stack || !stack.length) {\n return [];\n }\n var localStack = stack;\n var firstFrameFunction = localStack[0].func || '';\n var lastFrameFunction = localStack[localStack.length - 1].func || '';\n // If stack starts with one of our API calls, remove it (starts, meaning it's the top of the stack - aka last call)\n if (firstFrameFunction.indexOf('captureMessage') !== -1 || firstFrameFunction.indexOf('captureException') !== -1) {\n localStack = localStack.slice(1);\n }\n // If stack ends with one of our internal API calls, remove it (ends, meaning it's the bottom of the stack - aka top-most call)\n if (lastFrameFunction.indexOf('sentryWrapped') !== -1) {\n localStack = localStack.slice(0, -1);\n }\n // The frame where the crash happened, should be the last entry in the array\n return localStack\n .slice(0, STACKTRACE_LIMIT)\n .map(function (frame) { return ({\n colno: frame.column === null ? undefined : frame.column,\n filename: frame.url || localStack[0].url,\n function: frame.func || '?',\n in_app: true,\n lineno: frame.line === null ? undefined : frame.line,\n }); })\n .reverse();\n}\n//# sourceMappingURL=parsers.js.map","import { __assign } from \"tslib\";\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addExceptionTypeValue, isDOMError, isDOMException, isError, isErrorEvent, isEvent, isPlainObject, SyncPromise, } from '@sentry/utils';\nimport { eventFromPlainObject, eventFromStacktrace, prepareFramesForEvent } from './parsers';\nimport { computeStackTrace } from './tracekit';\n/**\n * Builds and Event from a Exception\n * @hidden\n */\nexport function eventFromException(options, exception, hint) {\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromUnknownInput(exception, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n addExceptionMechanism(event); // defaults to { type: 'generic', handled: true }\n event.level = Severity.Error;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * Builds and Event from a Message\n * @hidden\n */\nexport function eventFromMessage(options, message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n var syntheticException = (hint && hint.syntheticException) || undefined;\n var event = eventFromString(message, syntheticException, {\n attachStacktrace: options.attachStacktrace,\n });\n event.level = level;\n if (hint && hint.event_id) {\n event.event_id = hint.event_id;\n }\n return SyncPromise.resolve(event);\n}\n/**\n * @hidden\n */\nexport function eventFromUnknownInput(exception, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event;\n if (isErrorEvent(exception) && exception.error) {\n // If it is an ErrorEvent with `error` property, extract it to get actual Error\n var errorEvent = exception;\n // eslint-disable-next-line no-param-reassign\n exception = errorEvent.error;\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n // If it is a `DOMError` (which is a legacy API, but still supported in some browsers) then we just extract the name\n // and message, as it doesn't provide anything else. According to the spec, all `DOMExceptions` should also be\n // `Error`s, but that's not the case in IE11, so in that case we treat it the same as we do a `DOMError`.\n //\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMError\n // https://developer.mozilla.org/en-US/docs/Web/API/DOMException\n // https://webidl.spec.whatwg.org/#es-DOMException-specialness\n if (isDOMError(exception) || isDOMException(exception)) {\n var domException = exception;\n if ('stack' in exception) {\n event = eventFromStacktrace(computeStackTrace(exception));\n }\n else {\n var name_1 = domException.name || (isDOMError(domException) ? 'DOMError' : 'DOMException');\n var message = domException.message ? name_1 + \": \" + domException.message : name_1;\n event = eventFromString(message, syntheticException, options);\n addExceptionTypeValue(event, message);\n }\n if ('code' in domException) {\n event.tags = __assign(__assign({}, event.tags), { 'DOMException.code': \"\" + domException.code });\n }\n return event;\n }\n if (isError(exception)) {\n // we have a real Error object, do nothing\n event = eventFromStacktrace(computeStackTrace(exception));\n return event;\n }\n if (isPlainObject(exception) || isEvent(exception)) {\n // If it is plain Object or Event, serialize it manually and extract options\n // This will allow us to group events based on top-level keys\n // which is much better than creating new group when any key/value change\n var objectException = exception;\n event = eventFromPlainObject(objectException, syntheticException, options.rejection);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n }\n // If none of previous checks were valid, then it means that it's not:\n // - an instance of DOMError\n // - an instance of DOMException\n // - an instance of Event\n // - an instance of Error\n // - a valid ErrorEvent (one with an error property)\n // - a plain Object\n //\n // So bail out and capture it as a simple message:\n event = eventFromString(exception, syntheticException, options);\n addExceptionTypeValue(event, \"\" + exception, undefined);\n addExceptionMechanism(event, {\n synthetic: true,\n });\n return event;\n}\n/**\n * @hidden\n */\nexport function eventFromString(input, syntheticException, options) {\n if (options === void 0) { options = {}; }\n var event = {\n message: input,\n };\n if (options.attachStacktrace && syntheticException) {\n var stacktrace = computeStackTrace(syntheticException);\n var frames_1 = prepareFramesForEvent(stacktrace.stack);\n event.stacktrace = {\n frames: frames_1,\n };\n }\n return event;\n}\n//# sourceMappingURL=eventbuilder.js.map","import { __assign, __read, __rest, __spread } from \"tslib\";\n/** Extract sdk info from from the API metadata */\nfunction getSdkMetadataForEnvelopeHeader(api) {\n if (!api.metadata || !api.metadata.sdk) {\n return;\n }\n var _a = api.metadata.sdk, name = _a.name, version = _a.version;\n return { name: name, version: version };\n}\n/**\n * Apply SdkInfo (name, version, packages, integrations) to the corresponding event key.\n * Merge with existing data if any.\n **/\nfunction enhanceEventWithSdkInfo(event, sdkInfo) {\n if (!sdkInfo) {\n return event;\n }\n event.sdk = event.sdk || {};\n event.sdk.name = event.sdk.name || sdkInfo.name;\n event.sdk.version = event.sdk.version || sdkInfo.version;\n event.sdk.integrations = __spread((event.sdk.integrations || []), (sdkInfo.integrations || []));\n event.sdk.packages = __spread((event.sdk.packages || []), (sdkInfo.packages || []));\n return event;\n}\n/** Creates a SentryRequest from a Session. */\nexport function sessionToSentryRequest(session, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var envelopeHeaders = JSON.stringify(__assign(__assign({ sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (api.forceEnvelope() && { dsn: api.getDsn().toString() })));\n // I know this is hacky but we don't want to add `session` to request type since it's never rate limited\n var type = 'aggregates' in session ? 'sessions' : 'session';\n var itemHeaders = JSON.stringify({\n type: type,\n });\n return {\n body: envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + JSON.stringify(session),\n type: type,\n url: api.getEnvelopeEndpointWithUrlEncodedAuth(),\n };\n}\n/** Creates a SentryRequest from an event. */\nexport function eventToSentryRequest(event, api) {\n var sdkInfo = getSdkMetadataForEnvelopeHeader(api);\n var eventType = event.type || 'event';\n var useEnvelope = eventType === 'transaction' || api.forceEnvelope();\n var _a = event.debug_meta || {}, transactionSampling = _a.transactionSampling, metadata = __rest(_a, [\"transactionSampling\"]);\n var _b = transactionSampling || {}, samplingMethod = _b.method, sampleRate = _b.rate;\n if (Object.keys(metadata).length === 0) {\n delete event.debug_meta;\n }\n else {\n event.debug_meta = metadata;\n }\n var req = {\n body: JSON.stringify(sdkInfo ? enhanceEventWithSdkInfo(event, api.metadata.sdk) : event),\n type: eventType,\n url: useEnvelope ? api.getEnvelopeEndpointWithUrlEncodedAuth() : api.getStoreEndpointWithUrlEncodedAuth(),\n };\n // https://develop.sentry.dev/sdk/envelopes/\n // Since we don't need to manipulate envelopes nor store them, there is no\n // exported concept of an Envelope with operations including serialization and\n // deserialization. Instead, we only implement a minimal subset of the spec to\n // serialize events inline here.\n if (useEnvelope) {\n var envelopeHeaders = JSON.stringify(__assign(__assign({ event_id: event.event_id, sent_at: new Date().toISOString() }, (sdkInfo && { sdk: sdkInfo })), (api.forceEnvelope() && { dsn: api.getDsn().toString() })));\n var itemHeaders = JSON.stringify({\n type: eventType,\n // TODO: Right now, sampleRate may or may not be defined (it won't be in the cases of inheritance and\n // explicitly-set sampling decisions). Are we good with that?\n sample_rates: [{ id: samplingMethod, rate: sampleRate }],\n });\n // The trailing newline is optional. We intentionally don't send it to avoid\n // sending unnecessary bytes.\n //\n // const envelope = `${envelopeHeaders}\\n${itemHeaders}\\n${req.body}\\n`;\n var envelope = envelopeHeaders + \"\\n\" + itemHeaders + \"\\n\" + req.body;\n req.body = envelope;\n }\n return req;\n}\n//# sourceMappingURL=request.js.map","import { Dsn, urlEncode } from '@sentry/utils';\nvar SENTRY_API_VERSION = '7';\n/**\n * Helper class to provide urls, headers and metadata that can be used to form\n * different types of requests to Sentry endpoints.\n * Supports both envelopes and regular event requests.\n **/\nvar API = /** @class */ (function () {\n /** Create a new instance of API */\n function API(dsn, metadata, tunnel) {\n if (metadata === void 0) { metadata = {}; }\n this.dsn = dsn;\n this._dsnObject = new Dsn(dsn);\n this.metadata = metadata;\n this._tunnel = tunnel;\n }\n /** Returns the Dsn object. */\n API.prototype.getDsn = function () {\n return this._dsnObject;\n };\n /** Does this transport force envelopes? */\n API.prototype.forceEnvelope = function () {\n return !!this._tunnel;\n };\n /** Returns the prefix to construct Sentry ingestion API endpoints. */\n API.prototype.getBaseApiEndpoint = function () {\n var dsn = this.getDsn();\n var protocol = dsn.protocol ? dsn.protocol + \":\" : '';\n var port = dsn.port ? \":\" + dsn.port : '';\n return protocol + \"//\" + dsn.host + port + (dsn.path ? \"/\" + dsn.path : '') + \"/api/\";\n };\n /** Returns the store endpoint URL. */\n API.prototype.getStoreEndpoint = function () {\n return this._getIngestEndpoint('store');\n };\n /**\n * Returns the store endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getStoreEndpointWithUrlEncodedAuth = function () {\n return this.getStoreEndpoint() + \"?\" + this._encodedAuth();\n };\n /**\n * Returns the envelope endpoint URL with auth in the query string.\n *\n * Sending auth as part of the query string and not as custom HTTP headers avoids CORS preflight requests.\n */\n API.prototype.getEnvelopeEndpointWithUrlEncodedAuth = function () {\n if (this.forceEnvelope()) {\n return this._tunnel;\n }\n return this._getEnvelopeEndpoint() + \"?\" + this._encodedAuth();\n };\n /** Returns only the path component for the store endpoint. */\n API.prototype.getStoreEndpointPath = function () {\n var dsn = this.getDsn();\n return (dsn.path ? \"/\" + dsn.path : '') + \"/api/\" + dsn.projectId + \"/store/\";\n };\n /**\n * Returns an object that can be used in request headers.\n * This is needed for node and the old /store endpoint in sentry\n */\n API.prototype.getRequestHeaders = function (clientName, clientVersion) {\n // CHANGE THIS to use metadata but keep clientName and clientVersion compatible\n var dsn = this.getDsn();\n var header = [\"Sentry sentry_version=\" + SENTRY_API_VERSION];\n header.push(\"sentry_client=\" + clientName + \"/\" + clientVersion);\n header.push(\"sentry_key=\" + dsn.publicKey);\n if (dsn.pass) {\n header.push(\"sentry_secret=\" + dsn.pass);\n }\n return {\n 'Content-Type': 'application/json',\n 'X-Sentry-Auth': header.join(', '),\n };\n };\n /** Returns the url to the report dialog endpoint. */\n API.prototype.getReportDialogEndpoint = function (dialogOptions) {\n if (dialogOptions === void 0) { dialogOptions = {}; }\n var dsn = this.getDsn();\n var endpoint = this.getBaseApiEndpoint() + \"embed/error-page/\";\n var encodedOptions = [];\n encodedOptions.push(\"dsn=\" + dsn.toString());\n for (var key in dialogOptions) {\n if (key === 'dsn') {\n continue;\n }\n if (key === 'user') {\n if (!dialogOptions.user) {\n continue;\n }\n if (dialogOptions.user.name) {\n encodedOptions.push(\"name=\" + encodeURIComponent(dialogOptions.user.name));\n }\n if (dialogOptions.user.email) {\n encodedOptions.push(\"email=\" + encodeURIComponent(dialogOptions.user.email));\n }\n }\n else {\n encodedOptions.push(encodeURIComponent(key) + \"=\" + encodeURIComponent(dialogOptions[key]));\n }\n }\n if (encodedOptions.length) {\n return endpoint + \"?\" + encodedOptions.join('&');\n }\n return endpoint;\n };\n /** Returns the envelope endpoint URL. */\n API.prototype._getEnvelopeEndpoint = function () {\n return this._getIngestEndpoint('envelope');\n };\n /** Returns the ingest API endpoint for target. */\n API.prototype._getIngestEndpoint = function (target) {\n if (this._tunnel) {\n return this._tunnel;\n }\n var base = this.getBaseApiEndpoint();\n var dsn = this.getDsn();\n return \"\" + base + dsn.projectId + \"/\" + target + \"/\";\n };\n /** Returns a URL-encoded string with auth config suitable for a query string. */\n API.prototype._encodedAuth = function () {\n var dsn = this.getDsn();\n var auth = {\n // We send only the minimum set of required information. See\n // https://github.com/getsentry/sentry-javascript/issues/2572.\n sentry_key: dsn.publicKey,\n sentry_version: SENTRY_API_VERSION,\n };\n return urlEncode(auth);\n };\n return API;\n}());\nexport { API };\n//# sourceMappingURL=api.js.map","import { SentryError } from './error';\nimport { SyncPromise } from './syncpromise';\n/** A simple queue that holds promises. */\nvar PromiseBuffer = /** @class */ (function () {\n function PromiseBuffer(_limit) {\n this._limit = _limit;\n /** Internal set of queued Promises */\n this._buffer = [];\n }\n /**\n * Says if the buffer is ready to take more requests\n */\n PromiseBuffer.prototype.isReady = function () {\n return this._limit === undefined || this.length() < this._limit;\n };\n /**\n * Add a promise (representing an in-flight action) to the queue, and set it to remove itself on fulfillment.\n *\n * @param taskProducer A function producing any PromiseLike<T>; In previous versions this used to be `task:\n * PromiseLike<T>`, but under that model, Promises were instantly created on the call-site and their executor\n * functions therefore ran immediately. Thus, even if the buffer was full, the action still happened. By\n * requiring the promise to be wrapped in a function, we can defer promise creation until after the buffer\n * limit check.\n * @returns The original promise.\n */\n PromiseBuffer.prototype.add = function (taskProducer) {\n var _this = this;\n if (!this.isReady()) {\n return SyncPromise.reject(new SentryError('Not adding Promise due to buffer limit reached.'));\n }\n // start the task and add its promise to the queue\n var task = taskProducer();\n if (this._buffer.indexOf(task) === -1) {\n this._buffer.push(task);\n }\n void task\n .then(function () { return _this.remove(task); })\n // Use `then(null, rejectionHandler)` rather than `catch(rejectionHandler)` so that we can use `PromiseLike`\n // rather than `Promise`. `PromiseLike` doesn't have a `.catch` method, making its polyfill smaller. (ES5 didn't\n // have promises, so TS has to polyfill when down-compiling.)\n .then(null, function () {\n return _this.remove(task).then(null, function () {\n // We have to add another catch here because `this.remove()` starts a new promise chain.\n });\n });\n return task;\n };\n /**\n * Remove a promise from the queue.\n *\n * @param task Can be any PromiseLike<T>\n * @returns Removed promise.\n */\n PromiseBuffer.prototype.remove = function (task) {\n var removedTask = this._buffer.splice(this._buffer.indexOf(task), 1)[0];\n return removedTask;\n };\n /**\n * This function returns the number of unresolved promises in the queue.\n */\n PromiseBuffer.prototype.length = function () {\n return this._buffer.length;\n };\n /**\n * Wait for all promises in the queue to resolve or for timeout to expire, whichever comes first.\n *\n * @param timeout The time, in ms, after which to resolve to `false` if the queue is still non-empty. Passing `0` (or\n * not passing anything) will make the promise wait as long as it takes for the queue to drain before resolving to\n * `true`.\n * @returns A promise which will resolve to `true` if the queue is already empty or drains before the timeout, and\n * `false` otherwise\n */\n PromiseBuffer.prototype.drain = function (timeout) {\n var _this = this;\n return new SyncPromise(function (resolve) {\n // wait for `timeout` ms and then resolve to `false` (if not cancelled first)\n var capturedSetTimeout = setTimeout(function () {\n if (timeout && timeout > 0) {\n resolve(false);\n }\n }, timeout);\n // if all promises resolve in time, cancel the timer and resolve to `true`\n void SyncPromise.all(_this._buffer)\n .then(function () {\n clearTimeout(capturedSetTimeout);\n resolve(true);\n })\n .then(null, function () {\n resolve(true);\n });\n });\n };\n return PromiseBuffer;\n}());\nexport { PromiseBuffer };\n//# sourceMappingURL=promisebuffer.js.map","/**\n * Consumes the promise and logs the error when it rejects.\n * @param promise A promise to forget.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function forget(promise) {\n void promise.then(null, function (e) {\n // TODO: Use a better logging mechanism\n // eslint-disable-next-line no-console\n console.error(e);\n });\n}\n//# sourceMappingURL=async.js.map","import { forget, getGlobalObject, isNativeFetch, logger, supportsFetch } from '@sentry/utils';\nvar global = getGlobalObject();\nvar cachedFetchImpl;\n/**\n * A special usecase for incorrectly wrapped Fetch APIs in conjunction with ad-blockers.\n * Whenever someone wraps the Fetch API and returns the wrong promise chain,\n * this chain becomes orphaned and there is no possible way to capture it's rejections\n * other than allowing it bubble up to this very handler. eg.\n *\n * const f = window.fetch;\n * window.fetch = function () {\n * const p = f.apply(this, arguments);\n *\n * p.then(function() {\n * console.log('hi.');\n * });\n *\n * return p;\n * }\n *\n * `p.then(function () { ... })` is producing a completely separate promise chain,\n * however, what's returned is `p` - the result of original `fetch` call.\n *\n * This mean, that whenever we use the Fetch API to send our own requests, _and_\n * some ad-blocker blocks it, this orphaned chain will _always_ reject,\n * effectively causing another event to be captured.\n * This makes a whole process become an infinite loop, which we need to somehow\n * deal with, and break it in one way or another.\n *\n * To deal with this issue, we are making sure that we _always_ use the real\n * browser Fetch API, instead of relying on what `window.fetch` exposes.\n * The only downside to this would be missing our own requests as breadcrumbs,\n * but because we are already not doing this, it should be just fine.\n *\n * Possible failed fetch error messages per-browser:\n *\n * Chrome: Failed to fetch\n * Edge: Failed to Fetch\n * Firefox: NetworkError when attempting to fetch resource\n * Safari: resource blocked by content blocker\n */\nexport function getNativeFetchImplementation() {\n var _a, _b;\n if (cachedFetchImpl) {\n return cachedFetchImpl;\n }\n /* eslint-disable @typescript-eslint/unbound-method */\n // Fast path to avoid DOM I/O\n if (isNativeFetch(global.fetch)) {\n return (cachedFetchImpl = global.fetch.bind(global));\n }\n var document = global.document;\n var fetchImpl = global.fetch;\n // eslint-disable-next-line deprecation/deprecation\n if (typeof ((_a = document) === null || _a === void 0 ? void 0 : _a.createElement) === \"function\") {\n try {\n var sandbox = document.createElement('iframe');\n sandbox.hidden = true;\n document.head.appendChild(sandbox);\n if ((_b = sandbox.contentWindow) === null || _b === void 0 ? void 0 : _b.fetch) {\n fetchImpl = sandbox.contentWindow.fetch;\n }\n document.head.removeChild(sandbox);\n }\n catch (e) {\n logger.warn('Could not create sandbox iframe for pure fetch check, bailing to window.fetch: ', e);\n }\n }\n return (cachedFetchImpl = fetchImpl.bind(global));\n /* eslint-enable @typescript-eslint/unbound-method */\n}\n/**\n * Sends sdk client report using sendBeacon or fetch as a fallback if available\n *\n * @param url report endpoint\n * @param body report payload\n */\nexport function sendReport(url, body) {\n var isRealNavigator = Object.prototype.toString.call(global && global.navigator) === '[object Navigator]';\n var hasSendBeacon = isRealNavigator && typeof global.navigator.sendBeacon === 'function';\n if (hasSendBeacon) {\n // Prevent illegal invocations - https://xgwang.me/posts/you-may-not-know-beacon/#it-may-throw-error%2C-be-sure-to-catch\n var sendBeacon = global.navigator.sendBeacon.bind(global.navigator);\n return sendBeacon(url, body);\n }\n if (supportsFetch()) {\n var fetch_1 = getNativeFetchImplementation();\n return forget(fetch_1(url, {\n body: body,\n method: 'POST',\n credentials: 'omit',\n keepalive: true,\n }));\n }\n}\n//# sourceMappingURL=utils.js.map","import { __assign, __read, __values } from \"tslib\";\nimport { API } from '@sentry/core';\nimport { Status, } from '@sentry/types';\nimport { dateTimestampInSeconds, getGlobalObject, logger, parseRetryAfterHeader, PromiseBuffer, SentryError, } from '@sentry/utils';\nimport { sendReport } from './utils';\nvar CATEGORY_MAPPING = {\n event: 'error',\n transaction: 'transaction',\n session: 'session',\n attachment: 'attachment',\n};\nvar global = getGlobalObject();\n/** Base Transport class implementation */\nvar BaseTransport = /** @class */ (function () {\n function BaseTransport(options) {\n var _this = this;\n this.options = options;\n /** A simple buffer holding all requests. */\n this._buffer = new PromiseBuffer(30);\n /** Locks transport after receiving rate limits in a response */\n this._rateLimits = {};\n this._outcomes = {};\n this._api = new API(options.dsn, options._metadata, options.tunnel);\n // eslint-disable-next-line deprecation/deprecation\n this.url = this._api.getStoreEndpointWithUrlEncodedAuth();\n if (this.options.sendClientReports && global.document) {\n global.document.addEventListener('visibilitychange', function () {\n if (global.document.visibilityState === 'hidden') {\n _this._flushOutcomes();\n }\n });\n }\n }\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.sendEvent = function (_) {\n throw new SentryError('Transport Class has to implement `sendEvent` method');\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.close = function (timeout) {\n return this._buffer.drain(timeout);\n };\n /**\n * @inheritDoc\n */\n BaseTransport.prototype.recordLostEvent = function (reason, category) {\n var _a;\n if (!this.options.sendClientReports) {\n return;\n }\n // We want to track each category (event, transaction, session) separately\n // but still keep the distinction between different type of outcomes.\n // We could use nested maps, but it's much easier to read and type this way.\n // A correct type for map-based implementation if we want to go that route\n // would be `Partial<Record<SentryRequestType, Partial<Record<Outcome, number>>>>`\n var key = CATEGORY_MAPPING[category] + \":\" + reason;\n logger.log(\"Adding outcome: \" + key);\n this._outcomes[key] = (_a = this._outcomes[key], (_a !== null && _a !== void 0 ? _a : 0)) + 1;\n };\n /**\n * Send outcomes as an envelope\n */\n BaseTransport.prototype._flushOutcomes = function () {\n if (!this.options.sendClientReports) {\n return;\n }\n var outcomes = this._outcomes;\n this._outcomes = {};\n // Nothing to send\n if (!Object.keys(outcomes).length) {\n logger.log('No outcomes to flush');\n return;\n }\n logger.log(\"Flushing outcomes:\\n\" + JSON.stringify(outcomes, null, 2));\n var url = this._api.getEnvelopeEndpointWithUrlEncodedAuth();\n // Envelope header is required to be at least an empty object\n var envelopeHeader = JSON.stringify(__assign({}, (this.options.tunnel && { dsn: this._api.getDsn().toString() })));\n var itemHeaders = JSON.stringify({\n type: 'client_report',\n });\n var item = JSON.stringify({\n timestamp: dateTimestampInSeconds(),\n discarded_events: Object.keys(outcomes).map(function (key) {\n var _a = __read(key.split(':'), 2), category = _a[0], reason = _a[1];\n return {\n reason: reason,\n category: category,\n quantity: outcomes[key],\n };\n }),\n });\n var envelope = envelopeHeader + \"\\n\" + itemHeaders + \"\\n\" + item;\n try {\n sendReport(url, envelope);\n }\n catch (e) {\n logger.error(e);\n }\n };\n /**\n * Handle Sentry repsonse for promise-based transports.\n */\n BaseTransport.prototype._handleResponse = function (_a) {\n var requestType = _a.requestType, response = _a.response, headers = _a.headers, resolve = _a.resolve, reject = _a.reject;\n var status = Status.fromHttpCode(response.status);\n /**\n * \"The name is case-insensitive.\"\n * https://developer.mozilla.org/en-US/docs/Web/API/Headers/get\n */\n var limited = this._handleRateLimit(headers);\n if (limited)\n logger.warn(\"Too many \" + requestType + \" requests, backing off until: \" + this._disabledUntil(requestType));\n if (status === Status.Success) {\n resolve({ status: status });\n return;\n }\n reject(response);\n };\n /**\n * Gets the time that given category is disabled until for rate limiting\n */\n BaseTransport.prototype._disabledUntil = function (requestType) {\n var category = CATEGORY_MAPPING[requestType];\n return this._rateLimits[category] || this._rateLimits.all;\n };\n /**\n * Checks if a category is rate limited\n */\n BaseTransport.prototype._isRateLimited = function (requestType) {\n return this._disabledUntil(requestType) > new Date(Date.now());\n };\n /**\n * Sets internal _rateLimits from incoming headers. Returns true if headers contains a non-empty rate limiting header.\n */\n BaseTransport.prototype._handleRateLimit = function (headers) {\n var e_1, _a, e_2, _b;\n var now = Date.now();\n var rlHeader = headers['x-sentry-rate-limits'];\n var raHeader = headers['retry-after'];\n if (rlHeader) {\n try {\n // rate limit headers are of the form\n // <header>,<header>,..\n // where each <header> is of the form\n // <retry_after>: <categories>: <scope>: <reason_code>\n // where\n // <retry_after> is a delay in ms\n // <categories> is the event type(s) (error, transaction, etc) being rate limited and is of the form\n // <category>;<category>;...\n // <scope> is what's being limited (org, project, or key) - ignored by SDK\n // <reason_code> is an arbitrary string like \"org_quota\" - ignored by SDK\n for (var _c = __values(rlHeader.trim().split(',')), _d = _c.next(); !_d.done; _d = _c.next()) {\n var limit = _d.value;\n var parameters = limit.split(':', 2);\n var headerDelay = parseInt(parameters[0], 10);\n var delay = (!isNaN(headerDelay) ? headerDelay : 60) * 1000; // 60sec default\n try {\n for (var _e = (e_2 = void 0, __values(parameters[1].split(';'))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var category = _f.value;\n this._rateLimits[category || 'all'] = new Date(now + delay);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n }\n else if (raHeader) {\n this._rateLimits.all = new Date(now + parseRetryAfterHeader(now, raHeader));\n return true;\n }\n return false;\n };\n return BaseTransport;\n}());\nexport { BaseTransport };\n//# sourceMappingURL=base.js.map","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { Outcome } from '@sentry/types';\nimport { SentryError, supportsReferrerPolicy, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\nimport { getNativeFetchImplementation } from './utils';\n/** `fetch` based transport */\nvar FetchTransport = /** @class */ (function (_super) {\n __extends(FetchTransport, _super);\n function FetchTransport(options, fetchImpl) {\n if (fetchImpl === void 0) { fetchImpl = getNativeFetchImplementation(); }\n var _this = _super.call(this, options) || this;\n _this._fetch = fetchImpl;\n return _this;\n }\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n FetchTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n FetchTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent(Outcome.RateLimitBackoff, sentryRequest.type);\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport for \" + sentryRequest.type + \" requests locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n var options = {\n body: sentryRequest.body,\n method: 'POST',\n // Despite all stars in the sky saying that Edge supports old draft syntax, aka 'never', 'always', 'origin' and 'default\n // https://caniuse.com/#feat=referrer-policy\n // It doesn't. And it throw exception instead of ignoring this parameter...\n // REF: https://github.com/getsentry/raven-js/issues/1233\n referrerPolicy: (supportsReferrerPolicy() ? 'origin' : ''),\n };\n if (this.options.fetchParameters !== undefined) {\n Object.assign(options, this.options.fetchParameters);\n }\n if (this.options.headers !== undefined) {\n options.headers = this.options.headers;\n }\n return this._buffer\n .add(function () {\n return new SyncPromise(function (resolve, reject) {\n void _this._fetch(sentryRequest.url, options)\n .then(function (response) {\n var headers = {\n 'x-sentry-rate-limits': response.headers.get('X-Sentry-Rate-Limits'),\n 'retry-after': response.headers.get('Retry-After'),\n };\n _this._handleResponse({\n requestType: sentryRequest.type,\n response: response,\n headers: headers,\n resolve: resolve,\n reject: reject,\n });\n })\n .catch(reject);\n });\n })\n .then(undefined, function (reason) {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n _this.recordLostEvent(Outcome.QueueOverflow, sentryRequest.type);\n }\n else {\n _this.recordLostEvent(Outcome.NetworkError, sentryRequest.type);\n }\n throw reason;\n });\n };\n return FetchTransport;\n}(BaseTransport));\nexport { FetchTransport };\n//# sourceMappingURL=fetch.js.map","import { __extends } from \"tslib\";\nimport { eventToSentryRequest, sessionToSentryRequest } from '@sentry/core';\nimport { Outcome } from '@sentry/types';\nimport { SentryError, SyncPromise } from '@sentry/utils';\nimport { BaseTransport } from './base';\n/** `XHR` based transport */\nvar XHRTransport = /** @class */ (function (_super) {\n __extends(XHRTransport, _super);\n function XHRTransport() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendEvent = function (event) {\n return this._sendRequest(eventToSentryRequest(event, this._api), event);\n };\n /**\n * @inheritDoc\n */\n XHRTransport.prototype.sendSession = function (session) {\n return this._sendRequest(sessionToSentryRequest(session, this._api), session);\n };\n /**\n * @param sentryRequest Prepared SentryRequest to be delivered\n * @param originalPayload Original payload used to create SentryRequest\n */\n XHRTransport.prototype._sendRequest = function (sentryRequest, originalPayload) {\n var _this = this;\n if (this._isRateLimited(sentryRequest.type)) {\n this.recordLostEvent(Outcome.RateLimitBackoff, sentryRequest.type);\n return Promise.reject({\n event: originalPayload,\n type: sentryRequest.type,\n reason: \"Transport for \" + sentryRequest.type + \" requests locked till \" + this._disabledUntil(sentryRequest.type) + \" due to too many requests.\",\n status: 429,\n });\n }\n return this._buffer\n .add(function () {\n return new SyncPromise(function (resolve, reject) {\n var request = new XMLHttpRequest();\n request.onreadystatechange = function () {\n if (request.readyState === 4) {\n var headers = {\n 'x-sentry-rate-limits': request.getResponseHeader('X-Sentry-Rate-Limits'),\n 'retry-after': request.getResponseHeader('Retry-After'),\n };\n _this._handleResponse({ requestType: sentryRequest.type, response: request, headers: headers, resolve: resolve, reject: reject });\n }\n };\n request.open('POST', sentryRequest.url);\n for (var header in _this.options.headers) {\n if (Object.prototype.hasOwnProperty.call(_this.options.headers, header)) {\n request.setRequestHeader(header, _this.options.headers[header]);\n }\n }\n request.send(sentryRequest.body);\n });\n })\n .then(undefined, function (reason) {\n // It's either buffer rejection or any other xhr/fetch error, which are treated as NetworkError.\n if (reason instanceof SentryError) {\n _this.recordLostEvent(Outcome.QueueOverflow, sentryRequest.type);\n }\n else {\n _this.recordLostEvent(Outcome.NetworkError, sentryRequest.type);\n }\n throw reason;\n });\n };\n return XHRTransport;\n}(BaseTransport));\nexport { XHRTransport };\n//# sourceMappingURL=xhr.js.map","import { __assign, __extends } from \"tslib\";\nimport { BaseBackend } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { supportsFetch } from '@sentry/utils';\nimport { eventFromException, eventFromMessage } from './eventbuilder';\nimport { FetchTransport, XHRTransport } from './transports';\n/**\n * The Sentry Browser SDK Backend.\n * @hidden\n */\nvar BrowserBackend = /** @class */ (function (_super) {\n __extends(BrowserBackend, _super);\n function BrowserBackend() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromException = function (exception, hint) {\n return eventFromException(this._options, exception, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype.eventFromMessage = function (message, level, hint) {\n if (level === void 0) { level = Severity.Info; }\n return eventFromMessage(this._options, message, level, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserBackend.prototype._setupTransport = function () {\n if (!this._options.dsn) {\n // We return the noop transport here in case there is no Dsn.\n return _super.prototype._setupTransport.call(this);\n }\n var transportOptions = __assign(__assign({}, this._options.transportOptions), { dsn: this._options.dsn, tunnel: this._options.tunnel, sendClientReports: this._options.sendClientReports, _metadata: this._options._metadata });\n if (this._options.transport) {\n return new this._options.transport(transportOptions);\n }\n if (supportsFetch()) {\n return new FetchTransport(transportOptions);\n }\n return new XHRTransport(transportOptions);\n };\n return BrowserBackend;\n}(BaseBackend));\nexport { BrowserBackend };\n//# sourceMappingURL=backend.js.map","import { __assign } from \"tslib\";\nimport { API, captureException, withScope } from '@sentry/core';\nimport { addExceptionMechanism, addExceptionTypeValue, getGlobalObject, logger } from '@sentry/utils';\nvar global = getGlobalObject();\nvar ignoreOnError = 0;\n/**\n * @hidden\n */\nexport function shouldIgnoreOnError() {\n return ignoreOnError > 0;\n}\n/**\n * @hidden\n */\nexport function ignoreNextOnError() {\n // onerror should trigger before setTimeout\n ignoreOnError += 1;\n setTimeout(function () {\n ignoreOnError -= 1;\n });\n}\n/**\n * Instruments the given function and sends an event to Sentry every time the\n * function throws an exception.\n *\n * @param fn A function to wrap.\n * @returns The wrapped function.\n * @hidden\n */\nexport function wrap(fn, options, before) {\n if (options === void 0) { options = {}; }\n if (typeof fn !== 'function') {\n return fn;\n }\n try {\n // We don't wanna wrap it twice\n if (fn.__sentry__) {\n return fn;\n }\n // If this has already been wrapped in the past, return that wrapped function\n if (fn.__sentry_wrapped__) {\n return fn.__sentry_wrapped__;\n }\n }\n catch (e) {\n // Just accessing custom props in some Selenium environments\n // can cause a \"Permission denied\" exception (see raven-js#495).\n // Bail on wrapping and return the function as-is (defers to window.onerror).\n return fn;\n }\n /* eslint-disable prefer-rest-params */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var sentryWrapped = function () {\n var args = Array.prototype.slice.call(arguments);\n try {\n if (before && typeof before === 'function') {\n before.apply(this, arguments);\n }\n // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/no-unsafe-member-access\n var wrappedArguments = args.map(function (arg) { return wrap(arg, options); });\n if (fn.handleEvent) {\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return fn.handleEvent.apply(this, wrappedArguments);\n }\n // Attempt to invoke user-land function\n // NOTE: If you are a Sentry user, and you are seeing this stack frame, it\n // means the sentry.javascript SDK caught an error invoking your application code. This\n // is expected behavior and NOT indicative of a bug with sentry.javascript.\n return fn.apply(this, wrappedArguments);\n }\n catch (ex) {\n ignoreNextOnError();\n withScope(function (scope) {\n scope.addEventProcessor(function (event) {\n var processedEvent = __assign({}, event);\n if (options.mechanism) {\n addExceptionTypeValue(processedEvent, undefined, undefined);\n addExceptionMechanism(processedEvent, options.mechanism);\n }\n processedEvent.extra = __assign(__assign({}, processedEvent.extra), { arguments: args });\n return processedEvent;\n });\n captureException(ex);\n });\n throw ex;\n }\n };\n /* eslint-enable prefer-rest-params */\n // Accessing some objects may throw\n // ref: https://github.com/getsentry/sentry-javascript/issues/1168\n try {\n for (var property in fn) {\n if (Object.prototype.hasOwnProperty.call(fn, property)) {\n sentryWrapped[property] = fn[property];\n }\n }\n }\n catch (_oO) { } // eslint-disable-line no-empty\n fn.prototype = fn.prototype || {};\n sentryWrapped.prototype = fn.prototype;\n Object.defineProperty(fn, '__sentry_wrapped__', {\n enumerable: false,\n value: sentryWrapped,\n });\n // Signal that this function has been wrapped/filled already\n // for both debugging and to prevent it to being wrapped/filled twice\n Object.defineProperties(sentryWrapped, {\n __sentry__: {\n enumerable: false,\n value: true,\n },\n __sentry_original__: {\n enumerable: false,\n value: fn,\n },\n });\n // Restore original function name (not all browsers allow that)\n try {\n var descriptor = Object.getOwnPropertyDescriptor(sentryWrapped, 'name');\n if (descriptor.configurable) {\n Object.defineProperty(sentryWrapped, 'name', {\n get: function () {\n return fn.name;\n },\n });\n }\n // eslint-disable-next-line no-empty\n }\n catch (_oO) { }\n return sentryWrapped;\n}\n/**\n * Injects the Report Dialog script\n * @hidden\n */\nexport function injectReportDialog(options) {\n if (options === void 0) { options = {}; }\n if (!global.document) {\n return;\n }\n if (!options.eventId) {\n logger.error(\"Missing eventId option in showReportDialog call\");\n return;\n }\n if (!options.dsn) {\n logger.error(\"Missing dsn option in showReportDialog call\");\n return;\n }\n var script = global.document.createElement('script');\n script.async = true;\n script.src = new API(options.dsn).getReportDialogEndpoint(options);\n if (options.onLoad) {\n // eslint-disable-next-line @typescript-eslint/unbound-method\n script.onload = options.onLoad;\n }\n var injectionPoint = global.document.head || global.document.body;\n if (injectionPoint) {\n injectionPoint.appendChild(script);\n }\n}\n//# sourceMappingURL=helpers.js.map","import { __assign, __read, __spread } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\n/* eslint-disable max-lines */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addInstrumentationHandler, getEventDescription, getGlobalObject, htmlTreeAsString, parseUrl, safeJoin, } from '@sentry/utils';\n/**\n * Default Breadcrumbs instrumentations\n * TODO: Deprecated - with v6, this will be renamed to `Instrument`\n */\nvar Breadcrumbs = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function Breadcrumbs(options) {\n /**\n * @inheritDoc\n */\n this.name = Breadcrumbs.id;\n this._options = __assign({ console: true, dom: true, fetch: true, history: true, sentry: true, xhr: true }, options);\n }\n /**\n * Create a breadcrumb of `sentry` from the events themselves\n */\n Breadcrumbs.prototype.addSentryBreadcrumb = function (event) {\n if (!this._options.sentry) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"sentry.\" + (event.type === 'transaction' ? 'transaction' : 'event'),\n event_id: event.event_id,\n level: event.level,\n message: getEventDescription(event),\n }, {\n event: event,\n });\n };\n /**\n * Instrument browser built-ins w/ breadcrumb capturing\n * - Console API\n * - DOM API (click/typing)\n * - XMLHttpRequest API\n * - Fetch API\n * - History API\n */\n Breadcrumbs.prototype.setupOnce = function () {\n var _this = this;\n if (this._options.console) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._consoleBreadcrumb.apply(_this, __spread(args));\n },\n type: 'console',\n });\n }\n if (this._options.dom) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._domBreadcrumb.apply(_this, __spread(args));\n },\n type: 'dom',\n });\n }\n if (this._options.xhr) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._xhrBreadcrumb.apply(_this, __spread(args));\n },\n type: 'xhr',\n });\n }\n if (this._options.fetch) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._fetchBreadcrumb.apply(_this, __spread(args));\n },\n type: 'fetch',\n });\n }\n if (this._options.history) {\n addInstrumentationHandler({\n callback: function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n _this._historyBreadcrumb.apply(_this, __spread(args));\n },\n type: 'history',\n });\n }\n };\n /**\n * Creates breadcrumbs from console API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._consoleBreadcrumb = function (handlerData) {\n var breadcrumb = {\n category: 'console',\n data: {\n arguments: handlerData.args,\n logger: 'console',\n },\n level: Severity.fromString(handlerData.level),\n message: safeJoin(handlerData.args, ' '),\n };\n if (handlerData.level === 'assert') {\n if (handlerData.args[0] === false) {\n breadcrumb.message = \"Assertion failed: \" + (safeJoin(handlerData.args.slice(1), ' ') || 'console.assert');\n breadcrumb.data.arguments = handlerData.args.slice(1);\n }\n else {\n // Don't capture a breadcrumb for passed assertions\n return;\n }\n }\n getCurrentHub().addBreadcrumb(breadcrumb, {\n input: handlerData.args,\n level: handlerData.level,\n });\n };\n /**\n * Creates breadcrumbs from DOM API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._domBreadcrumb = function (handlerData) {\n var target;\n var keyAttrs = typeof this._options.dom === 'object' ? this._options.dom.serializeAttribute : undefined;\n if (typeof keyAttrs === 'string') {\n keyAttrs = [keyAttrs];\n }\n // Accessing event.target can throw (see getsentry/raven-js#838, #768)\n try {\n target = handlerData.event.target\n ? htmlTreeAsString(handlerData.event.target, keyAttrs)\n : htmlTreeAsString(handlerData.event, keyAttrs);\n }\n catch (e) {\n target = '<unknown>';\n }\n if (target.length === 0) {\n return;\n }\n getCurrentHub().addBreadcrumb({\n category: \"ui.\" + handlerData.name,\n message: target,\n }, {\n event: handlerData.event,\n name: handlerData.name,\n global: handlerData.global,\n });\n };\n /**\n * Creates breadcrumbs from XHR API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._xhrBreadcrumb = function (handlerData) {\n if (handlerData.endTimestamp) {\n // We only capture complete, non-sentry requests\n if (handlerData.xhr.__sentry_own_request__) {\n return;\n }\n var _a = handlerData.xhr.__sentry_xhr__ || {}, method = _a.method, url = _a.url, status_code = _a.status_code, body = _a.body;\n getCurrentHub().addBreadcrumb({\n category: 'xhr',\n data: {\n method: method,\n url: url,\n status_code: status_code,\n },\n type: 'http',\n }, {\n xhr: handlerData.xhr,\n input: body,\n });\n return;\n }\n };\n /**\n * Creates breadcrumbs from fetch API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._fetchBreadcrumb = function (handlerData) {\n // We only capture complete fetch requests\n if (!handlerData.endTimestamp) {\n return;\n }\n if (handlerData.fetchData.url.match(/sentry_key/) && handlerData.fetchData.method === 'POST') {\n // We will not create breadcrumbs for fetch requests that contain `sentry_key` (internal sentry requests)\n return;\n }\n if (handlerData.error) {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: handlerData.fetchData,\n level: Severity.Error,\n type: 'http',\n }, {\n data: handlerData.error,\n input: handlerData.args,\n });\n }\n else {\n getCurrentHub().addBreadcrumb({\n category: 'fetch',\n data: __assign(__assign({}, handlerData.fetchData), { status_code: handlerData.response.status }),\n type: 'http',\n }, {\n input: handlerData.args,\n response: handlerData.response,\n });\n }\n };\n /**\n * Creates breadcrumbs from history API calls\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Breadcrumbs.prototype._historyBreadcrumb = function (handlerData) {\n var global = getGlobalObject();\n var from = handlerData.from;\n var to = handlerData.to;\n var parsedLoc = parseUrl(global.location.href);\n var parsedFrom = parseUrl(from);\n var parsedTo = parseUrl(to);\n // Initial pushState doesn't provide `from` information\n if (!parsedFrom.path) {\n parsedFrom = parsedLoc;\n }\n // Use only the path component of the URL if the URL matches the current\n // document (almost all the time when using pushState)\n if (parsedLoc.protocol === parsedTo.protocol && parsedLoc.host === parsedTo.host) {\n to = parsedTo.relative;\n }\n if (parsedLoc.protocol === parsedFrom.protocol && parsedLoc.host === parsedFrom.host) {\n from = parsedFrom.relative;\n }\n getCurrentHub().addBreadcrumb({\n category: 'navigation',\n data: {\n from: from,\n to: to,\n },\n });\n };\n /**\n * @inheritDoc\n */\n Breadcrumbs.id = 'Breadcrumbs';\n return Breadcrumbs;\n}());\nexport { Breadcrumbs };\n//# sourceMappingURL=breadcrumbs.js.map","import { __assign, __extends } from \"tslib\";\nimport { BaseClient, SDK_VERSION } from '@sentry/core';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { BrowserBackend } from './backend';\nimport { injectReportDialog } from './helpers';\nimport { Breadcrumbs } from './integrations';\n/**\n * The Sentry Browser SDK Client.\n *\n * @see BrowserOptions for documentation on configuration options.\n * @see SentryClient for usage documentation.\n */\nvar BrowserClient = /** @class */ (function (_super) {\n __extends(BrowserClient, _super);\n /**\n * Creates a new Browser SDK instance.\n *\n * @param options Configuration options for this SDK.\n */\n function BrowserClient(options) {\n if (options === void 0) { options = {}; }\n var _this = this;\n options._metadata = options._metadata || {};\n options._metadata.sdk = options._metadata.sdk || {\n name: 'sentry.javascript.browser',\n packages: [\n {\n name: 'npm:@sentry/browser',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n };\n _this = _super.call(this, BrowserBackend, options) || this;\n return _this;\n }\n /**\n * Show a report dialog to the user to send feedback to a specific event.\n *\n * @param options Set individual options for the dialog\n */\n BrowserClient.prototype.showReportDialog = function (options) {\n if (options === void 0) { options = {}; }\n // doesn't work without a document (React Native)\n var document = getGlobalObject().document;\n if (!document) {\n return;\n }\n if (!this._isEnabled()) {\n logger.error('Trying to call showReportDialog with Sentry Client disabled');\n return;\n }\n injectReportDialog(__assign(__assign({}, options), { dsn: options.dsn || this.getDsn() }));\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._prepareEvent = function (event, scope, hint) {\n event.platform = event.platform || 'javascript';\n return _super.prototype._prepareEvent.call(this, event, scope, hint);\n };\n /**\n * @inheritDoc\n */\n BrowserClient.prototype._sendEvent = function (event) {\n var integration = this.getIntegration(Breadcrumbs);\n if (integration) {\n integration.addSentryBreadcrumb(event);\n }\n _super.prototype._sendEvent.call(this, event);\n };\n return BrowserClient;\n}(BaseClient));\nexport { BrowserClient };\n//# sourceMappingURL=client.js.map","import { __assign } from \"tslib\";\nimport { fill, getFunctionName, getGlobalObject } from '@sentry/utils';\nimport { wrap } from '../helpers';\nvar DEFAULT_EVENT_TARGET = [\n 'EventTarget',\n 'Window',\n 'Node',\n 'ApplicationCache',\n 'AudioTrackList',\n 'ChannelMergerNode',\n 'CryptoOperation',\n 'EventSource',\n 'FileReader',\n 'HTMLUnknownElement',\n 'IDBDatabase',\n 'IDBRequest',\n 'IDBTransaction',\n 'KeyOperation',\n 'MediaController',\n 'MessagePort',\n 'ModalWindow',\n 'Notification',\n 'SVGElementInstance',\n 'Screen',\n 'TextTrack',\n 'TextTrackCue',\n 'TextTrackList',\n 'WebSocket',\n 'WebSocketWorker',\n 'Worker',\n 'XMLHttpRequest',\n 'XMLHttpRequestEventTarget',\n 'XMLHttpRequestUpload',\n];\n/** Wrap timer functions and event targets to catch errors and provide better meta data */\nvar TryCatch = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function TryCatch(options) {\n /**\n * @inheritDoc\n */\n this.name = TryCatch.id;\n this._options = __assign({ XMLHttpRequest: true, eventTarget: true, requestAnimationFrame: true, setInterval: true, setTimeout: true }, options);\n }\n /**\n * Wrap timer functions and event targets to catch errors\n * and provide better metadata.\n */\n TryCatch.prototype.setupOnce = function () {\n var global = getGlobalObject();\n if (this._options.setTimeout) {\n fill(global, 'setTimeout', this._wrapTimeFunction.bind(this));\n }\n if (this._options.setInterval) {\n fill(global, 'setInterval', this._wrapTimeFunction.bind(this));\n }\n if (this._options.requestAnimationFrame) {\n fill(global, 'requestAnimationFrame', this._wrapRAF.bind(this));\n }\n if (this._options.XMLHttpRequest && 'XMLHttpRequest' in global) {\n fill(XMLHttpRequest.prototype, 'send', this._wrapXHR.bind(this));\n }\n if (this._options.eventTarget) {\n var eventTarget = Array.isArray(this._options.eventTarget) ? this._options.eventTarget : DEFAULT_EVENT_TARGET;\n eventTarget.forEach(this._wrapEventTarget.bind(this));\n }\n };\n /** JSDoc */\n TryCatch.prototype._wrapTimeFunction = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var originalCallback = args[0];\n args[0] = wrap(originalCallback, {\n mechanism: {\n data: { function: getFunctionName(original) },\n handled: true,\n type: 'instrument',\n },\n });\n return original.apply(this, args);\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n TryCatch.prototype._wrapRAF = function (original) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function (callback) {\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n return original.call(this, wrap(callback, {\n mechanism: {\n data: {\n function: 'requestAnimationFrame',\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n }));\n };\n };\n /** JSDoc */\n TryCatch.prototype._wrapEventTarget = function (target) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var global = getGlobalObject();\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n var proto = global[target] && global[target].prototype;\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, no-prototype-builtins\n if (!proto || !proto.hasOwnProperty || !proto.hasOwnProperty('addEventListener')) {\n return;\n }\n fill(proto, 'addEventListener', function (original) {\n return function (eventName, fn, options) {\n try {\n if (typeof fn.handleEvent === 'function') {\n fn.handleEvent = wrap(fn.handleEvent.bind(fn), {\n mechanism: {\n data: {\n function: 'handleEvent',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n });\n }\n }\n catch (err) {\n // can sometimes get 'Permission denied to access property \"handle Event'\n }\n return original.call(this, eventName, \n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n wrap(fn, {\n mechanism: {\n data: {\n function: 'addEventListener',\n handler: getFunctionName(fn),\n target: target,\n },\n handled: true,\n type: 'instrument',\n },\n }), options);\n };\n });\n fill(proto, 'removeEventListener', function (originalRemoveEventListener) {\n return function (eventName, fn, options) {\n var _a;\n /**\n * There are 2 possible scenarios here:\n *\n * 1. Someone passes a callback, which was attached prior to Sentry initialization, or by using unmodified\n * method, eg. `document.addEventListener.call(el, name, handler). In this case, we treat this function\n * as a pass-through, and call original `removeEventListener` with it.\n *\n * 2. Someone passes a callback, which was attached after Sentry was initialized, which means that it was using\n * our wrapped version of `addEventListener`, which internally calls `wrap` helper.\n * This helper \"wraps\" whole callback inside a try/catch statement, and attached appropriate metadata to it,\n * in order for us to make a distinction between wrapped/non-wrapped functions possible.\n * If a function was wrapped, it has additional property of `__sentry_wrapped__`, holding the handler.\n *\n * When someone adds a handler prior to initialization, and then do it again, but after,\n * then we have to detach both of them. Otherwise, if we'd detach only wrapped one, it'd be impossible\n * to get rid of the initial handler and it'd stick there forever.\n */\n var wrappedEventHandler = fn;\n try {\n var originalEventHandler = (_a = wrappedEventHandler) === null || _a === void 0 ? void 0 : _a.__sentry_wrapped__;\n if (originalEventHandler) {\n originalRemoveEventListener.call(this, eventName, originalEventHandler, options);\n }\n }\n catch (e) {\n // ignore, accessing __sentry_wrapped__ will throw in some Selenium environments\n }\n return originalRemoveEventListener.call(this, eventName, wrappedEventHandler, options);\n };\n });\n };\n /** JSDoc */\n TryCatch.prototype._wrapXHR = function (originalSend) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n var xhr = this;\n var xmlHttpRequestProps = ['onload', 'onerror', 'onprogress', 'onreadystatechange'];\n xmlHttpRequestProps.forEach(function (prop) {\n if (prop in xhr && typeof xhr[prop] === 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n fill(xhr, prop, function (original) {\n var wrapOptions = {\n mechanism: {\n data: {\n function: prop,\n handler: getFunctionName(original),\n },\n handled: true,\n type: 'instrument',\n },\n };\n // If Instrument integration has been called before TryCatch, get the name of original function\n if (original.__sentry_original__) {\n wrapOptions.mechanism.data.handler = getFunctionName(original.__sentry_original__);\n }\n // Otherwise wrap directly\n return wrap(original, wrapOptions);\n });\n }\n });\n return originalSend.apply(this, args);\n };\n };\n /**\n * @inheritDoc\n */\n TryCatch.id = 'TryCatch';\n return TryCatch;\n}());\nexport { TryCatch };\n//# sourceMappingURL=trycatch.js.map","import { __assign } from \"tslib\";\n/* eslint-disable @typescript-eslint/no-unsafe-member-access */\nimport { getCurrentHub } from '@sentry/core';\nimport { Severity } from '@sentry/types';\nimport { addExceptionMechanism, addInstrumentationHandler, getLocationHref, isErrorEvent, isPrimitive, isString, logger, } from '@sentry/utils';\nimport { eventFromUnknownInput } from '../eventbuilder';\nimport { shouldIgnoreOnError } from '../helpers';\n/** Global handlers */\nvar GlobalHandlers = /** @class */ (function () {\n /** JSDoc */\n function GlobalHandlers(options) {\n /**\n * @inheritDoc\n */\n this.name = GlobalHandlers.id;\n /** JSDoc */\n this._onErrorHandlerInstalled = false;\n /** JSDoc */\n this._onUnhandledRejectionHandlerInstalled = false;\n this._options = __assign({ onerror: true, onunhandledrejection: true }, options);\n }\n /**\n * @inheritDoc\n */\n GlobalHandlers.prototype.setupOnce = function () {\n Error.stackTraceLimit = 50;\n if (this._options.onerror) {\n logger.log('Global Handler attached: onerror');\n this._installGlobalOnErrorHandler();\n }\n if (this._options.onunhandledrejection) {\n logger.log('Global Handler attached: onunhandledrejection');\n this._installGlobalOnUnhandledRejectionHandler();\n }\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnErrorHandler = function () {\n var _this = this;\n if (this._onErrorHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (data) {\n var error = data.error;\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return;\n }\n var client = currentHub.getClient();\n var event = error === undefined && isString(data.msg)\n ? _this._eventFromIncompleteOnError(data.msg, data.url, data.line, data.column)\n : _this._enhanceEventWithInitialFrame(eventFromUnknownInput(error || data.msg, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: false,\n }), data.url, data.line, data.column);\n addExceptionMechanism(event, {\n handled: false,\n type: 'onerror',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n },\n type: 'error',\n });\n this._onErrorHandlerInstalled = true;\n };\n /** JSDoc */\n GlobalHandlers.prototype._installGlobalOnUnhandledRejectionHandler = function () {\n var _this = this;\n if (this._onUnhandledRejectionHandlerInstalled) {\n return;\n }\n addInstrumentationHandler({\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n callback: function (e) {\n var error = e;\n // dig the object of the rejection out of known event types\n try {\n // PromiseRejectionEvents store the object of the rejection under 'reason'\n // see https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent\n if ('reason' in e) {\n error = e.reason;\n }\n // something, somewhere, (likely a browser extension) effectively casts PromiseRejectionEvents\n // to CustomEvents, moving the `promise` and `reason` attributes of the PRE into\n // the CustomEvent's `detail` attribute, since they're not part of CustomEvent's spec\n // see https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent and\n // https://github.com/getsentry/sentry-javascript/issues/2380\n else if ('detail' in e && 'reason' in e.detail) {\n error = e.detail.reason;\n }\n }\n catch (_oO) {\n // no-empty\n }\n var currentHub = getCurrentHub();\n var hasIntegration = currentHub.getIntegration(GlobalHandlers);\n var isFailedOwnDelivery = error && error.__sentry_own_request__ === true;\n if (!hasIntegration || shouldIgnoreOnError() || isFailedOwnDelivery) {\n return true;\n }\n var client = currentHub.getClient();\n var event = isPrimitive(error)\n ? _this._eventFromRejectionWithPrimitive(error)\n : eventFromUnknownInput(error, undefined, {\n attachStacktrace: client && client.getOptions().attachStacktrace,\n rejection: true,\n });\n event.level = Severity.Error;\n addExceptionMechanism(event, {\n handled: false,\n type: 'onunhandledrejection',\n });\n currentHub.captureEvent(event, {\n originalException: error,\n });\n return;\n },\n type: 'unhandledrejection',\n });\n this._onUnhandledRejectionHandlerInstalled = true;\n };\n /**\n * This function creates a stack from an old, error-less onerror handler.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._eventFromIncompleteOnError = function (msg, url, line, column) {\n var ERROR_TYPES_RE = /^(?:[Uu]ncaught (?:exception: )?)?(?:((?:Eval|Internal|Range|Reference|Syntax|Type|URI|)Error): )?(.*)$/i;\n // If 'message' is ErrorEvent, get real message from inside\n var message = isErrorEvent(msg) ? msg.message : msg;\n var name;\n var groups = message.match(ERROR_TYPES_RE);\n if (groups) {\n name = groups[1];\n message = groups[2];\n }\n var event = {\n exception: {\n values: [\n {\n type: name || 'Error',\n value: message,\n },\n ],\n },\n };\n return this._enhanceEventWithInitialFrame(event, url, line, column);\n };\n /**\n * Create an event from a promise rejection where the `reason` is a primitive.\n *\n * @param reason: The `reason` property of the promise rejection\n * @returns An Event object with an appropriate `exception` value\n */\n GlobalHandlers.prototype._eventFromRejectionWithPrimitive = function (reason) {\n return {\n exception: {\n values: [\n {\n type: 'UnhandledRejection',\n // String() is needed because the Primitive type includes symbols (which can't be automatically stringified)\n value: \"Non-Error promise rejection captured with value: \" + String(reason),\n },\n ],\n },\n };\n };\n /** JSDoc */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n GlobalHandlers.prototype._enhanceEventWithInitialFrame = function (event, url, line, column) {\n event.exception = event.exception || {};\n event.exception.values = event.exception.values || [];\n event.exception.values[0] = event.exception.values[0] || {};\n event.exception.values[0].stacktrace = event.exception.values[0].stacktrace || {};\n event.exception.values[0].stacktrace.frames = event.exception.values[0].stacktrace.frames || [];\n var colno = isNaN(parseInt(column, 10)) ? undefined : column;\n var lineno = isNaN(parseInt(line, 10)) ? undefined : line;\n var filename = isString(url) && url.length > 0 ? url : getLocationHref();\n if (event.exception.values[0].stacktrace.frames.length === 0) {\n event.exception.values[0].stacktrace.frames.push({\n colno: colno,\n filename: filename,\n function: '?',\n in_app: true,\n lineno: lineno,\n });\n }\n return event;\n };\n /**\n * @inheritDoc\n */\n GlobalHandlers.id = 'GlobalHandlers';\n return GlobalHandlers;\n}());\nexport { GlobalHandlers };\n//# sourceMappingURL=globalhandlers.js.map","import { __read, __spread } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { isInstanceOf } from '@sentry/utils';\nimport { exceptionFromStacktrace } from '../parsers';\nimport { computeStackTrace } from '../tracekit';\nvar DEFAULT_KEY = 'cause';\nvar DEFAULT_LIMIT = 5;\n/** Adds SDK info to an event. */\nvar LinkedErrors = /** @class */ (function () {\n /**\n * @inheritDoc\n */\n function LinkedErrors(options) {\n if (options === void 0) { options = {}; }\n /**\n * @inheritDoc\n */\n this.name = LinkedErrors.id;\n this._key = options.key || DEFAULT_KEY;\n this._limit = options.limit || DEFAULT_LIMIT;\n }\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event, hint) {\n var self = getCurrentHub().getIntegration(LinkedErrors);\n if (self) {\n var handler = self._handler && self._handler.bind(self);\n return typeof handler === 'function' ? handler(event, hint) : event;\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._handler = function (event, hint) {\n if (!event.exception || !event.exception.values || !hint || !isInstanceOf(hint.originalException, Error)) {\n return event;\n }\n var linkedErrors = this._walkErrorTree(hint.originalException, this._key);\n event.exception.values = __spread(linkedErrors, event.exception.values);\n return event;\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.prototype._walkErrorTree = function (error, key, stack) {\n if (stack === void 0) { stack = []; }\n if (!isInstanceOf(error[key], Error) || stack.length + 1 >= this._limit) {\n return stack;\n }\n var stacktrace = computeStackTrace(error[key]);\n var exception = exceptionFromStacktrace(stacktrace);\n return this._walkErrorTree(error[key], key, __spread([exception], stack));\n };\n /**\n * @inheritDoc\n */\n LinkedErrors.id = 'LinkedErrors';\n return LinkedErrors;\n}());\nexport { LinkedErrors };\n//# sourceMappingURL=linkederrors.js.map","import { logger } from '@sentry/utils';\n/** Deduplication filter */\nvar Dedupe = /** @class */ (function () {\n function Dedupe() {\n /**\n * @inheritDoc\n */\n this.name = Dedupe.id;\n }\n /**\n * @inheritDoc\n */\n Dedupe.prototype.setupOnce = function (addGlobalEventProcessor, getCurrentHub) {\n addGlobalEventProcessor(function (currentEvent) {\n var self = getCurrentHub().getIntegration(Dedupe);\n if (self) {\n // Juuust in case something goes wrong\n try {\n if (self._shouldDropEvent(currentEvent, self._previousEvent)) {\n logger.warn(\"Event dropped due to being a duplicate of previously captured event.\");\n return null;\n }\n }\n catch (_oO) {\n return (self._previousEvent = currentEvent);\n }\n return (self._previousEvent = currentEvent);\n }\n return currentEvent;\n });\n };\n /** JSDoc */\n Dedupe.prototype._shouldDropEvent = function (currentEvent, previousEvent) {\n if (!previousEvent) {\n return false;\n }\n if (this._isSameMessageEvent(currentEvent, previousEvent)) {\n return true;\n }\n if (this._isSameExceptionEvent(currentEvent, previousEvent)) {\n return true;\n }\n return false;\n };\n /** JSDoc */\n Dedupe.prototype._isSameMessageEvent = function (currentEvent, previousEvent) {\n var currentMessage = currentEvent.message;\n var previousMessage = previousEvent.message;\n // If neither event has a message property, they were both exceptions, so bail out\n if (!currentMessage && !previousMessage) {\n return false;\n }\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentMessage && !previousMessage) || (!currentMessage && previousMessage)) {\n return false;\n }\n if (currentMessage !== previousMessage) {\n return false;\n }\n if (!this._isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n if (!this._isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._getFramesFromEvent = function (event) {\n var exception = event.exception;\n if (exception) {\n try {\n // @ts-ignore Object could be undefined\n return exception.values[0].stacktrace.frames;\n }\n catch (_oO) {\n return undefined;\n }\n }\n else if (event.stacktrace) {\n return event.stacktrace.frames;\n }\n return undefined;\n };\n /** JSDoc */\n Dedupe.prototype._isSameStacktrace = function (currentEvent, previousEvent) {\n var currentFrames = this._getFramesFromEvent(currentEvent);\n var previousFrames = this._getFramesFromEvent(previousEvent);\n // If neither event has a stacktrace, they are assumed to be the same\n if (!currentFrames && !previousFrames) {\n return true;\n }\n // If only one event has a stacktrace, but not the other one, they are not the same\n if ((currentFrames && !previousFrames) || (!currentFrames && previousFrames)) {\n return false;\n }\n currentFrames = currentFrames;\n previousFrames = previousFrames;\n // If number of frames differ, they are not the same\n if (previousFrames.length !== currentFrames.length) {\n return false;\n }\n // Otherwise, compare the two\n for (var i = 0; i < previousFrames.length; i++) {\n var frameA = previousFrames[i];\n var frameB = currentFrames[i];\n if (frameA.filename !== frameB.filename ||\n frameA.lineno !== frameB.lineno ||\n frameA.colno !== frameB.colno ||\n frameA.function !== frameB.function) {\n return false;\n }\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._getExceptionFromEvent = function (event) {\n return event.exception && event.exception.values && event.exception.values[0];\n };\n /** JSDoc */\n Dedupe.prototype._isSameExceptionEvent = function (currentEvent, previousEvent) {\n var previousException = this._getExceptionFromEvent(previousEvent);\n var currentException = this._getExceptionFromEvent(currentEvent);\n if (!previousException || !currentException) {\n return false;\n }\n if (previousException.type !== currentException.type || previousException.value !== currentException.value) {\n return false;\n }\n if (!this._isSameFingerprint(currentEvent, previousEvent)) {\n return false;\n }\n if (!this._isSameStacktrace(currentEvent, previousEvent)) {\n return false;\n }\n return true;\n };\n /** JSDoc */\n Dedupe.prototype._isSameFingerprint = function (currentEvent, previousEvent) {\n var currentFingerprint = currentEvent.fingerprint;\n var previousFingerprint = previousEvent.fingerprint;\n // If neither event has a fingerprint, they are assumed to be the same\n if (!currentFingerprint && !previousFingerprint) {\n return true;\n }\n // If only one event has a fingerprint, but not the other one, they are not the same\n if ((currentFingerprint && !previousFingerprint) || (!currentFingerprint && previousFingerprint)) {\n return false;\n }\n currentFingerprint = currentFingerprint;\n previousFingerprint = previousFingerprint;\n // Otherwise, compare the two\n try {\n return !!(currentFingerprint.join('') === previousFingerprint.join(''));\n }\n catch (_oO) {\n return false;\n }\n };\n /**\n * @inheritDoc\n */\n Dedupe.id = 'Dedupe';\n return Dedupe;\n}());\nexport { Dedupe };\n//# sourceMappingURL=dedupe.js.map","import { __assign } from \"tslib\";\nimport { addGlobalEventProcessor, getCurrentHub } from '@sentry/core';\nimport { getGlobalObject } from '@sentry/utils';\nvar global = getGlobalObject();\n/** UserAgent */\nvar UserAgent = /** @class */ (function () {\n function UserAgent() {\n /**\n * @inheritDoc\n */\n this.name = UserAgent.id;\n }\n /**\n * @inheritDoc\n */\n UserAgent.prototype.setupOnce = function () {\n addGlobalEventProcessor(function (event) {\n var _a, _b, _c;\n if (getCurrentHub().getIntegration(UserAgent)) {\n // if none of the information we want exists, don't bother\n if (!global.navigator && !global.location && !global.document) {\n return event;\n }\n // grab as much info as exists and add it to the event\n var url = ((_a = event.request) === null || _a === void 0 ? void 0 : _a.url) || ((_b = global.location) === null || _b === void 0 ? void 0 : _b.href);\n var referrer = (global.document || {}).referrer;\n var userAgent = (global.navigator || {}).userAgent;\n var headers = __assign(__assign(__assign({}, (_c = event.request) === null || _c === void 0 ? void 0 : _c.headers), (referrer && { Referer: referrer })), (userAgent && { 'User-Agent': userAgent }));\n var request = __assign(__assign({}, (url && { url: url })), { headers: headers });\n return __assign(__assign({}, event), { request: request });\n }\n return event;\n });\n };\n /**\n * @inheritDoc\n */\n UserAgent.id = 'UserAgent';\n return UserAgent;\n}());\nexport { UserAgent };\n//# sourceMappingURL=useragent.js.map","import { __assign } from \"tslib\";\nimport { getCurrentHub, initAndBind, Integrations as CoreIntegrations } from '@sentry/core';\nimport { addInstrumentationHandler, getGlobalObject, logger, SyncPromise } from '@sentry/utils';\nimport { BrowserClient } from './client';\nimport { wrap as internalWrap } from './helpers';\nimport { Breadcrumbs, Dedupe, GlobalHandlers, LinkedErrors, TryCatch, UserAgent } from './integrations';\nexport var defaultIntegrations = [\n new CoreIntegrations.InboundFilters(),\n new CoreIntegrations.FunctionToString(),\n new TryCatch(),\n new Breadcrumbs(),\n new GlobalHandlers(),\n new LinkedErrors(),\n new Dedupe(),\n new UserAgent(),\n];\n/**\n * The Sentry Browser SDK Client.\n *\n * To use this SDK, call the {@link init} function as early as possible when\n * loading the web page. To set context information or send manual events, use\n * the provided methods.\n *\n * @example\n *\n * ```\n *\n * import { init } from '@sentry/browser';\n *\n * init({\n * dsn: '__DSN__',\n * // ...\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { configureScope } from '@sentry/browser';\n * configureScope((scope: Scope) => {\n * scope.setExtra({ battery: 0.7 });\n * scope.setTag({ user_mode: 'admin' });\n * scope.setUser({ id: '4711' });\n * });\n * ```\n *\n * @example\n * ```\n *\n * import { addBreadcrumb } from '@sentry/browser';\n * addBreadcrumb({\n * message: 'My Breadcrumb',\n * // ...\n * });\n * ```\n *\n * @example\n *\n * ```\n *\n * import * as Sentry from '@sentry/browser';\n * Sentry.captureMessage('Hello, world!');\n * Sentry.captureException(new Error('Good bye'));\n * Sentry.captureEvent({\n * message: 'Manual',\n * stacktrace: [\n * // ...\n * ],\n * });\n * ```\n *\n * @see {@link BrowserOptions} for documentation on configuration options.\n */\nexport function init(options) {\n if (options === void 0) { options = {}; }\n if (options.defaultIntegrations === undefined) {\n options.defaultIntegrations = defaultIntegrations;\n }\n if (options.release === undefined) {\n var window_1 = getGlobalObject();\n // This supports the variable that sentry-webpack-plugin injects\n if (window_1.SENTRY_RELEASE && window_1.SENTRY_RELEASE.id) {\n options.release = window_1.SENTRY_RELEASE.id;\n }\n }\n if (options.autoSessionTracking === undefined) {\n options.autoSessionTracking = true;\n }\n if (options.sendClientReports === undefined) {\n options.sendClientReports = true;\n }\n initAndBind(BrowserClient, options);\n if (options.autoSessionTracking) {\n startSessionTracking();\n }\n}\n/**\n * Present the user with a report dialog.\n *\n * @param options Everything is optional, we try to fetch all info need from the global scope.\n */\nexport function showReportDialog(options) {\n if (options === void 0) { options = {}; }\n var hub = getCurrentHub();\n var scope = hub.getScope();\n if (scope) {\n options.user = __assign(__assign({}, scope.getUser()), options.user);\n }\n if (!options.eventId) {\n options.eventId = hub.lastEventId();\n }\n var client = hub.getClient();\n if (client) {\n client.showReportDialog(options);\n }\n}\n/**\n * This is the getter for lastEventId.\n *\n * @returns The last event id of a captured event.\n */\nexport function lastEventId() {\n return getCurrentHub().lastEventId();\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function forceLoad() {\n // Noop\n}\n/**\n * This function is here to be API compatible with the loader.\n * @hidden\n */\nexport function onLoad(callback) {\n callback();\n}\n/**\n * Call `flush()` on the current client, if there is one. See {@link Client.flush}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue. Omitting this parameter will cause\n * the client to wait until all events are sent before resolving the promise.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function flush(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.flush(timeout);\n }\n logger.warn('Cannot flush events. No client defined.');\n return SyncPromise.resolve(false);\n}\n/**\n * Call `close()` on the current client, if there is one. See {@link Client.close}.\n *\n * @param timeout Maximum time in ms the client should wait to flush its event queue before shutting down. Omitting this\n * parameter will cause the client to wait until all events are sent before disabling itself.\n * @returns A promise which resolves to `true` if the queue successfully drains before the timeout, or `false` if it\n * doesn't (or if there's no client defined).\n */\nexport function close(timeout) {\n var client = getCurrentHub().getClient();\n if (client) {\n return client.close(timeout);\n }\n logger.warn('Cannot flush events and disable SDK. No client defined.');\n return SyncPromise.resolve(false);\n}\n/**\n * Wrap code within a try/catch block so the SDK is able to capture errors.\n *\n * @param fn A function to wrap.\n *\n * @returns The result of wrapped function call.\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport function wrap(fn) {\n return internalWrap(fn)();\n}\n/**\n * Enable automatic Session Tracking for the initial page load.\n */\nfunction startSessionTracking() {\n var window = getGlobalObject();\n var document = window.document;\n if (typeof document === 'undefined') {\n logger.warn('Session tracking in non-browser environment with @sentry/browser is not supported.');\n return;\n }\n var hub = getCurrentHub();\n // The only way for this to be false is for there to be a version mismatch between @sentry/browser (>= 6.0.0) and\n // @sentry/hub (< 5.27.0). In the simple case, there won't ever be such a mismatch, because the two packages are\n // pinned at the same version in package.json, but there are edge cases where it's possible. See\n // https://github.com/getsentry/sentry-javascript/issues/3207 and\n // https://github.com/getsentry/sentry-javascript/issues/3234 and\n // https://github.com/getsentry/sentry-javascript/issues/3278.\n if (typeof hub.startSession !== 'function' || typeof hub.captureSession !== 'function') {\n return;\n }\n // The session duration for browser sessions does not track a meaningful\n // concept that can be used as a metric.\n // Automatically captured sessions are akin to page views, and thus we\n // discard their duration.\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n // We want to create a session for every navigation as well\n addInstrumentationHandler({\n callback: function (_a) {\n var from = _a.from, to = _a.to;\n // Don't create an additional session for the initial route or if the location did not change\n if (from === undefined || from === to) {\n return;\n }\n hub.startSession({ ignoreDuration: true });\n hub.captureSession();\n },\n type: 'history',\n });\n}\n//# sourceMappingURL=sdk.js.map","export var DEFAULT_HOOKS = ['activate', 'mount', 'update'];\n//# sourceMappingURL=constants.js.map","// Vendored directly from https://github.com/vuejs/vue/blob/master/src/core/util/debug.js with types only changes.\nvar classifyRE = /(?:^|[-_])(\\w)/g;\nvar classify = function (str) { return str.replace(classifyRE, function (c) { return c.toUpperCase(); }).replace(/[-_]/g, ''); };\nvar ROOT_COMPONENT_NAME = '<Root>';\nvar ANONYMOUS_COMPONENT_NAME = '<Anonymous>';\nvar repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) {\n res += str;\n }\n if (n > 1) {\n str += str; // eslint-disable-line no-param-reassign\n }\n n >>= 1; // eslint-disable-line no-bitwise, no-param-reassign\n }\n return res;\n};\nexport var formatComponentName = function (vm, includeFile) {\n if (!vm) {\n return ANONYMOUS_COMPONENT_NAME;\n }\n if (vm.$root === vm) {\n return ROOT_COMPONENT_NAME;\n }\n var options = vm.$options;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n if (match) {\n name = match[1];\n }\n }\n return ((name ? \"<\" + classify(name) + \">\" : ANONYMOUS_COMPONENT_NAME) + (file && includeFile !== false ? \" at \" + file : \"\"));\n};\nexport var generateComponentTrace = function (vm) {\n var _a, _b;\n if (((_a = vm) === null || _a === void 0 ? void 0 : _a._isVue) && ((_b = vm) === null || _b === void 0 ? void 0 : _b.$parent)) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n var last = tree[tree.length - 1];\n // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence += 1;\n vm = vm.$parent; // eslint-disable-line no-param-reassign\n continue;\n }\n else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent; // eslint-disable-line no-param-reassign\n }\n var formattedTree = tree\n .map(function (vm, i) {\n return \"\" + ((i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) +\n (Array.isArray(vm)\n ? formatComponentName(vm[0]) + \"... (\" + vm[1] + \" recursive calls)\"\n : formatComponentName(vm)));\n })\n .join('\\n');\n return \"\\n\\nfound in\\n\\n\" + formattedTree;\n }\n return \"\\n\\n(found in \" + formatComponentName(vm) + \")\";\n};\n//# sourceMappingURL=components.js.map","import { getCurrentHub } from '@sentry/browser';\nimport { formatComponentName, generateComponentTrace } from './components';\nexport var attachErrorHandler = function (app, options) {\n var _a = app.config, errorHandler = _a.errorHandler, warnHandler = _a.warnHandler, silent = _a.silent;\n app.config.errorHandler = function (error, vm, lifecycleHook) {\n var componentName = formatComponentName(vm, false);\n var trace = vm ? generateComponentTrace(vm) : '';\n var metadata = {\n componentName: componentName,\n lifecycleHook: lifecycleHook,\n trace: trace,\n };\n if (vm && options.attachProps) {\n // Vue2 - $options.propsData\n // Vue3 - $props\n metadata.propsData = vm.$options.propsData || vm.$props;\n }\n // Capture exception in the next event loop, to make sure that all breadcrumbs are recorded in time.\n setTimeout(function () {\n getCurrentHub().withScope(function (scope) {\n scope.setContext('vue', metadata);\n getCurrentHub().captureException(error);\n });\n });\n if (typeof errorHandler === 'function') {\n errorHandler.call(app, error, vm, lifecycleHook);\n }\n if (options.logErrors) {\n var hasConsole = typeof console !== 'undefined';\n var message = \"Error in \" + lifecycleHook + \": \\\"\" + (error && error.toString()) + \"\\\"\";\n if (warnHandler) {\n warnHandler.call(null, message, vm, trace);\n }\n else if (hasConsole && !silent) {\n // eslint-disable-next-line no-console\n console.error(\"[Vue warn]: \" + message + trace);\n }\n }\n };\n};\n//# sourceMappingURL=errorhandler.js.map","import { __values } from \"tslib\";\nimport { getCurrentHub } from '@sentry/browser';\nimport { logger, timestampInSeconds } from '@sentry/utils';\nimport { formatComponentName } from './components';\nimport { DEFAULT_HOOKS } from './constants';\nvar VUE_OP = 'ui.vue';\n// Mappings from operation to corresponding lifecycle hook.\nvar HOOKS = {\n activate: ['activated', 'deactivated'],\n create: ['beforeCreate', 'created'],\n destroy: ['beforeDestroy', 'destroyed'],\n mount: ['beforeMount', 'mounted'],\n update: ['beforeUpdate', 'updated'],\n};\n/** Grabs active transaction off scope, if any */\nfunction getActiveTransaction() {\n var _a;\n return (_a = getCurrentHub()\n .getScope()) === null || _a === void 0 ? void 0 : _a.getTransaction();\n}\n/** Finish top-level span and activity with a debounce configured using `timeout` option */\nfunction finishRootSpan(vm, timestamp, timeout) {\n if (vm.$_sentryRootSpanTimer) {\n clearTimeout(vm.$_sentryRootSpanTimer);\n }\n vm.$_sentryRootSpanTimer = setTimeout(function () {\n var _a;\n if ((_a = vm.$root) === null || _a === void 0 ? void 0 : _a.$_sentryRootSpan) {\n vm.$root.$_sentryRootSpan.finish(timestamp);\n vm.$root.$_sentryRootSpan = undefined;\n }\n }, timeout);\n}\nexport var createTracingMixins = function (options) {\n var e_1, _a;\n var hooks = (options.hooks || [])\n .concat(DEFAULT_HOOKS)\n // Removing potential duplicates\n .filter(function (value, index, self) { return self.indexOf(value) === index; });\n var mixins = {};\n var _loop_1 = function (operation) {\n var e_2, _a;\n // Retrieve corresponding hooks from Vue lifecycle.\n // eg. mount => ['beforeMount', 'mounted']\n var internalHooks = HOOKS[operation];\n if (!internalHooks) {\n logger.warn(\"Unknown hook: \" + operation);\n return \"continue\";\n }\n try {\n for (var internalHooks_1 = (e_2 = void 0, __values(internalHooks)), internalHooks_1_1 = internalHooks_1.next(); !internalHooks_1_1.done; internalHooks_1_1 = internalHooks_1.next()) {\n var internalHook = internalHooks_1_1.value;\n mixins[internalHook] = function () {\n var _a;\n var isRoot = this.$root === this;\n if (isRoot) {\n var activeTransaction = getActiveTransaction();\n if (activeTransaction) {\n this.$_sentryRootSpan =\n this.$_sentryRootSpan ||\n activeTransaction.startChild({\n description: 'Application Render',\n op: VUE_OP,\n });\n }\n }\n // Skip components that we don't want to track to minimize the noise and give a more granular control to the user\n var name = formatComponentName(this, false);\n var shouldTrack = Array.isArray(options.trackComponents)\n ? options.trackComponents.includes(name)\n : options.trackComponents;\n // We always want to track root component\n if (!isRoot && !shouldTrack) {\n return;\n }\n this.$_sentrySpans = this.$_sentrySpans || {};\n // On the first handler call (before), it'll be undefined, as `$once` will add it in the future.\n // However, on the second call (after), it'll be already in place.\n var span = this.$_sentrySpans[operation];\n if (span) {\n span.finish();\n finishRootSpan(this, timestampInSeconds(), options.timeout);\n }\n else {\n var activeTransaction = ((_a = this.$root) === null || _a === void 0 ? void 0 : _a.$_sentryRootSpan) || getActiveTransaction();\n if (activeTransaction) {\n this.$_sentrySpans[operation] = activeTransaction.startChild({\n description: \"Vue <\" + name + \">\",\n op: VUE_OP + \".\" + operation,\n });\n }\n }\n };\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (internalHooks_1_1 && !internalHooks_1_1.done && (_a = internalHooks_1.return)) _a.call(internalHooks_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n try {\n for (var hooks_1 = __values(hooks), hooks_1_1 = hooks_1.next(); !hooks_1_1.done; hooks_1_1 = hooks_1.next()) {\n var operation = hooks_1_1.value;\n _loop_1(operation);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (hooks_1_1 && !hooks_1_1.done && (_a = hooks_1.return)) _a.call(hooks_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return mixins;\n};\n//# sourceMappingURL=tracing.js.map","import { __assign } from \"tslib\";\nimport { init as browserInit, SDK_VERSION } from '@sentry/browser';\nimport { getGlobalObject, logger } from '@sentry/utils';\nimport { DEFAULT_HOOKS } from './constants';\nimport { attachErrorHandler } from './errorhandler';\nimport { createTracingMixins } from './tracing';\nvar DEFAULT_CONFIG = {\n Vue: getGlobalObject().Vue,\n attachProps: true,\n logErrors: false,\n hooks: DEFAULT_HOOKS,\n timeout: 2000,\n trackComponents: false,\n _metadata: {\n sdk: {\n name: 'sentry.javascript.vue',\n packages: [\n {\n name: 'npm:@sentry/vue',\n version: SDK_VERSION,\n },\n ],\n version: SDK_VERSION,\n },\n },\n};\n/**\n * Inits the Vue SDK\n */\nexport function init(config) {\n if (config === void 0) { config = {}; }\n var options = __assign(__assign({}, DEFAULT_CONFIG), config);\n browserInit(options);\n if (!options.Vue && !options.app) {\n logger.warn('Misconfigured SDK. Vue specific errors will not be captured.\\n' +\n 'Update your `Sentry.init` call with an appropriate config option:\\n' +\n '`app` (Application Instance - Vue 3) or `Vue` (Vue Constructor - Vue 2).');\n return;\n }\n if (options.Vue) {\n vueInit(options.Vue, options);\n }\n else if (options.app) {\n var apps = Array.isArray(options.app) ? options.app : [options.app];\n apps.forEach(function (app) { return vueInit(app, options); });\n }\n}\nvar vueInit = function (app, options) {\n attachErrorHandler(app, options);\n if ('tracesSampleRate' in options || 'tracesSampler' in options) {\n app.mixin(createTracingMixins(__assign(__assign({}, options), options.tracingOptions)));\n }\n};\n//# sourceMappingURL=sdk.js.map","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `/*!\nThis file is kept for backward compatibility.\nIt is no longer required.\n*/`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___ from \"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/noSourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/api.js\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../@vue/cli-service/node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"icons/dxicons.woff2\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"icons/dxicons.woff\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"icons/dxicons.ttf\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAABkCAQAAABebbrxAAABD0lEQVRo3u2XvQ3CMBCFLbmjYYGsAA2wA1X2gAbEAEwB2eIKflagh6zACJAuUihASUic+M5GNH56dT7J8efTPUXKkDkzrS8LpQAEMBygcwAss2UGQADDBmLa+AMvzAAIYNhATBt/YMEMgACGDcS0wbQBEEAAAQQQwD8CEzaiL7sKqOnojTuQrh95SKkX7kqD5j+M6O6Mu1NkupQJZU64B426bjmmXIzLKe7TZiUGLmweyhTa28XWdJKpYn8pXIVub1U4T4+jUKkKbyWeWhR6Vqpwd+w+hb5U4S/ta54qkhZgVihxrxWaznZVZD2lqVDaVkVafOoKGVWRN6nZR6GMxr+qZjHl3aq4db0NLXld7wVjuu7NS9f7yAAAAABJRU5ErkJggg==\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"data:image/gif;base64,R0lGODlhFAAUAKECADI6RTI6Rv///////yH/C05FVFNDQVBFMi4wAwEAAAAh+QQJCQABACwAAAAAFAAUAAACI4yPqZsADM+LcNJlb9Mq8+B8iCeWBqmFJnqpJUu5ojzDplIAACH5BAkJAAEALAAAAAAUABQAAAIhjI+py+3gXmxwrmoRzgZ4fnxgIIIl523o2KmZ+7KdTIMFACH5BAkJAAIALAAAAAAUABQAAAIflI+py+0Po4zAgDptFhXP60ngNmYdyaGBiYXbC8dwAQAh+QQJCQADACwAAAAAFAAUAAACIpyPqcsL3cCDSlJ368xnc+Nx1geG2Uiin3mpIlnC7gnXTAEAIfkECQkAAwAsAAAAABQAFAAAAiKcD6e74AxRivHRenGGc6vuIWEzluaJbuC4eq36XlboxGUBACH5BAkJAAMALAAAAAAUABQAAAIjnA8Jx226nBxp2mpnzG7z5n3iSJbmiaaqFIrt93LYOMP1UQAAIfkECQkAAwAsAAAAABQAFAAAAh2cD6l53eyiA7Iii7PevPsPhuJIluZpUB6ELWxTAAAh+QQJCQADACwAAAAAFAAUAAACHZx/oMit/5p0a9oBrt68+w+G4kiW5rllYbRCLFIAACH5BAkJAAMALAAAAAAUABQAAAIenH+ggO24noRq2molzo3xD4biSJbmSXqpuYlR2ToFACH5BAkJAAMALAAAAAAUABQAAAIhnI+pi+AMzYsQ0HrXzI2n7Q1WSJbMSKIh6Kmty7GtKWUFACH5BAkJAAMALAAAAAAUABQAAAIinI+py+3gXmxwKlAtytpgrmHdIY5DOX6mt56t24Kd/NZMAQAh+QQJCQADACwAAAAAFAAUAAACIZyPqcvtD6OMwIA6w8Czcnl91DVZW3mKkIeqK+ai8kyXBQAh+QQJCQADACwAAAAAFAAUAAACI5yPqcsL3cCDSlJ368xn82F9RiiSn8l5pziqmXuhMUzR7F0AACH5BAkJAAMALAAAAAAUABQAAAIfnI+pB70/HFxyKmBp1rv7D4aMiIXld6KmmW6V+7pKAQAh+QQJCQADACwAAAAAFAAUAAACIZw/oMi9Dc2LEVBqL8y6+w+G4kiWJBein+pNK4sp8CY3BQAh+QQJCQADACwAAAAAFAAUAAACHZw/oIt96iICstqLs968+w+G4kh+VHdukLW06VEAACH5BAkJAAMALAAAAAAUABQAAAIbnI+pCu29InKygoqz3rz7D4biSJbZ9VHpoyIFACH5BAkJAAMALAAAAAAUABQAAAIfnI8AyM26nDxq2hGvy7r7D4biSJYg51WiGkKju8JOAQA7\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"data:image/gif;base64,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\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 style=%27enable-background:new 0 0 24 24%27 xml:space=%27preserve%27%3E%3Cpath style=%27fill:%23333%27 d=%27M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm6 11H6v-2h12v2z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 width=%2724%27 height=%2724%27 style=%27enable-background:new 0 0 24 24%27 xml:space=%27preserve%27%3E%3Cpath style=%27fill:%23fff%27 d=%27M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm6 11H6v-2h12v2z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_8___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABYAAAAWCAYAAADEtGw7AAAAm0lEQVRIx7XVwQnAIAwF0ExSdBF1a6Er9dIRqsVAazWJmh4+iuBT4YMQ4w4pWxk1clt5YlOOFKeAumJZXAgKOKIBb6yBv9AansU/aAsexZtoD5biXZSCOZxEObiHs6gErnERKoURP0uCZM9IpRB2WvDz+eIqzvRUhMNkT1mcQz1xsKfwWZTFV1ASX0W7uAbaxPOCUUBr3MBfn+kF3CNLT2/yky4AAAAASUVORK5CYII=\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_9___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%27182%27 height=%27182%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Cg filter=%27url%28%23a%29%27%3E%3Ccircle cx=%2791%27 cy=%2791%27 r=%2785%27 fill=%27%23fff%27/%3E%3Cpath d=%27M88.835 15.442v7.828h-1.682v-5.927c-.093.082-.203.16-.331.235a3.796 3.796 0 0 1-.4.198c-.143.056-.29.106-.444.15-.153.038-.304.067-.454.085v-1.42c.438-.129.851-.293 1.24-.492.387-.2.738-.418 1.051-.657h1.02ZM92.973 21.871h3.247v1.4h-5.094v-.578c0-.391.066-.742.197-1.052.132-.313.298-.592.497-.838.2-.249.416-.468.651-.657.239-.192.465-.364.678-.518.225-.16.42-.313.588-.459.17-.146.313-.29.427-.432.117-.146.205-.292.262-.438.057-.15.085-.308.085-.475 0-.328-.093-.575-.278-.743-.185-.167-.468-.25-.849-.25-.658 0-1.288.261-1.89.784v-1.484c.666-.43 1.417-.646 2.254-.646.387 0 .735.052 1.04.155.31.1.572.244.786.432.213.189.375.419.486.689.114.267.17.566.17.897a2.5 2.5 0 0 1-.165.94c-.107.274-.251.523-.433.747-.178.225-.384.431-.619.62-.235.185-.479.365-.732.54-.17.12-.336.241-.496.362a4.299 4.299 0 0 0-.417.353 1.841 1.841 0 0 0-.288.336.585.585 0 0 0-.107.315ZM93.337 165.802c0 .377-.066.729-.198 1.057a2.616 2.616 0 0 1-.55.854 2.595 2.595 0 0 1-1.9.769c-.431 0-.817-.08-1.16-.24a2.354 2.354 0 0 1-.859-.694 3.286 3.286 0 0 1-.54-1.122 5.522 5.522 0 0 1-.186-1.5c0-.659.08-1.255.24-1.789.164-.537.395-.997.694-1.378a3.131 3.131 0 0 1 2.537-1.196c.59 0 1.05.07 1.377.209v1.409a2.534 2.534 0 0 0-1.27-.331c-.285 0-.543.055-.775.166-.231.11-.43.267-.598.47a2.333 2.333 0 0 0-.39.737 3.294 3.294 0 0 0-.15.955h.033c.363-.502.899-.753 1.607-.753.317 0 .604.057.86.171.256.114.475.276.657.486.181.207.322.456.421.748.1.292.15.616.15.972Zm-1.65.106c0-.822-.336-1.233-1.01-1.233a.99.99 0 0 0-.416.085.92.92 0 0 0-.32.241 1.129 1.129 0 0 0-.208.368c-.047.139-.07.294-.07.465 0 .188.025.365.075.528.05.164.12.308.208.433.093.121.201.217.326.288a.827.827 0 0 0 .416.107.9.9 0 0 0 .412-.091.934.934 0 0 0 .315-.261c.089-.114.156-.25.203-.406.046-.16.069-.335.069-.524ZM125.714 155.329c0 .374-.065.712-.193 1.015a2.196 2.196 0 0 1-.55.779 2.399 2.399 0 0 1-.854.502 3.341 3.341 0 0 1-1.116.177c-.712 0-1.241-.107-1.586-.321v-.929c.52.335 1.052.502 1.597.502.277 0 .527-.041.747-.123.224-.082.415-.196.572-.342.156-.146.275-.322.357-.528a1.75 1.75 0 0 0 .128-.678c0-.499-.167-.889-.501-1.17-.335-.285-.821-.427-1.458-.427a12.509 12.509 0 0 0-.668.021 6.259 6.259 0 0 0-.63.043l.262-3.839h3.54v.79h-2.782l-.155 2.248c.114-.007.235-.012.363-.016a6.41 6.41 0 0 1 .342-.011c.406 0 .769.054 1.089.161.321.106.591.26.812.459.224.196.393.438.507.726.118.285.177.605.177.961ZM124.405 33.95h-.875v-6.615a2.152 2.152 0 0 1-.299.235c-.129.085-.275.17-.438.256-.16.086-.331.166-.513.24a3.605 3.605 0 0 1-.523.177v-.887c.192-.053.395-.124.609-.213a7.948 7.948 0 0 0 1.228-.657c.185-.125.345-.246.48-.363h.331v7.828ZM152.67 123.309v5.057h.982v.801h-.982v1.799h-.865v-1.799h-3.599v-.758a28.127 28.127 0 0 0 1.992-2.515c.313-.442.601-.881.865-1.319.267-.442.491-.863.672-1.266h.935Zm-3.476 5.057h2.611v-3.748a24.073 24.073 0 0 1-2.056 3.059l-.555.689ZM152.253 52.333c0-.235-.037-.44-.112-.614a1.148 1.148 0 0 0-.299-.433 1.174 1.174 0 0 0-.443-.261 1.832 1.832 0 0 0-1.057-.016c-.164.046-.324.11-.481.192a3.13 3.13 0 0 0-.849.673v-.94c.246-.239.52-.42.822-.545.307-.128.679-.192 1.116-.192.314 0 .604.046.871.139.267.089.498.22.694.395.196.174.349.39.459.646.114.256.171.55.171.881 0 .303-.036.577-.107.822a2.407 2.407 0 0 1-.315.695 3.29 3.29 0 0 1-.528.624c-.214.2-.465.402-.753.609-.36.256-.657.475-.892.657a3.991 3.991 0 0 0-.555.512 1.496 1.496 0 0 0-.289.476c-.053.156-.08.338-.08.544h3.813v.785h-4.726v-.379c0-.327.036-.616.107-.865.071-.25.189-.486.352-.71.164-.224.378-.449.641-.673.267-.224.593-.477.977-.758.278-.2.509-.39.694-.572.189-.181.34-.363.454-.544.114-.182.194-.365.241-.55a2.37 2.37 0 0 0 .074-.598ZM162.324 96.004v-1.469c.513.374 1.111.56 1.794.56.431 0 .766-.092 1.004-.277.242-.185.363-.443.363-.774a.879.879 0 0 0-.448-.79c-.296-.186-.703-.278-1.223-.278h-.71v-1.292h.657c.996 0 1.495-.331 1.495-.993 0-.624-.383-.935-1.148-.935-.513 0-1.011.166-1.496.497v-1.378c.538-.27 1.165-.406 1.88-.406.783 0 1.392.176 1.826.529.438.352.657.81.657 1.372 0 1-.507 1.627-1.522 1.88v.026c.541.068.968.266 1.282.593.313.324.47.723.47 1.196 0 .716-.262 1.282-.785 1.698-.524.417-1.246.625-2.168.625-.791 0-1.433-.128-1.928-.385ZM19.815 92.057c0 .68-.075 1.29-.225 1.827-.149.534-.368.986-.656 1.356a2.89 2.89 0 0 1-1.047.854 3.239 3.239 0 0 1-1.404.294c-.627 0-1.166-.1-1.618-.3v-1.387c.402.263.886.395 1.452.395.58 0 1.034-.198 1.362-.593.327-.395.493-.966.497-1.714l-.033-.01c-.338.501-.852.752-1.543.752-.313 0-.603-.059-.87-.176a2.143 2.143 0 0 1-.689-.486 2.322 2.322 0 0 1-.454-.748 2.717 2.717 0 0 1-.16-.95c0-.402.066-.769.198-1.1.131-.331.315-.616.55-.854.238-.239.523-.422.854-.55a2.951 2.951 0 0 1 1.1-.198c.416 0 .79.082 1.121.246.331.16.613.393.844.7.235.305.413.681.534 1.126.124.445.187.95.187 1.516Zm-1.704-.897c0-.195-.024-.379-.074-.55a1.45 1.45 0 0 0-.209-.448.987.987 0 0 0-.325-.294.875.875 0 0 0-.828-.016.98.98 0 0 0-.315.267c-.089.11-.158.244-.208.4-.05.157-.075.326-.075.508 0 .2.025.377.075.534.05.153.119.283.208.39a.937.937 0 0 0 .331.245 1.1 1.1 0 0 0 .833-.005.979.979 0 0 0 .31-.24c.089-.1.156-.217.203-.353.05-.135.074-.281.074-.438ZM26.062 127.941c0-.203.032-.406.096-.609.064-.207.155-.399.272-.577.121-.178.269-.34.443-.486.178-.146.38-.261.604-.347a2.282 2.282 0 0 1-.79-.71 1.699 1.699 0 0 1-.294-.967c0-.281.053-.541.16-.779.11-.239.262-.445.454-.62.192-.174.42-.309.683-.405.264-.1.548-.15.855-.15.31 0 .596.05.86.15a2.1 2.1 0 0 1 .683.411 1.845 1.845 0 0 1 .608 1.393c0 .353-.097.675-.293.967a2.31 2.31 0 0 1-.78.71c.221.086.418.201.593.347.174.146.32.308.438.486a2.153 2.153 0 0 1 .374 1.186c0 .334-.06.64-.182.918a2.054 2.054 0 0 1-.513.715 2.352 2.352 0 0 1-.784.46 2.92 2.92 0 0 1-1.004.165c-.364 0-.696-.055-.999-.165a2.425 2.425 0 0 1-.785-.46 2.116 2.116 0 0 1-.518-.715 2.276 2.276 0 0 1-.181-.918Zm.95-.075c0 .238.036.454.107.646.075.192.178.356.31.491.135.135.297.24.486.315.192.071.404.107.635.107.224 0 .43-.037.62-.112.188-.075.35-.18.485-.315.14-.135.246-.299.32-.491.079-.193.118-.406.118-.641 0-.214-.037-.413-.112-.598a1.467 1.467 0 0 0-.31-.497 1.474 1.474 0 0 0-.486-.336 1.579 1.579 0 0 0-.635-.123c-.22 0-.425.039-.614.117a1.447 1.447 0 0 0-.806.812 1.616 1.616 0 0 0-.118.625Zm.273-3.551c0 .181.032.351.096.507.067.153.158.289.272.406a1.261 1.261 0 0 0 .897.368 1.294 1.294 0 0 0 .897-.373c.114-.118.205-.253.272-.406.068-.157.102-.324.102-.502 0-.185-.034-.356-.102-.513a1.229 1.229 0 0 0-.267-.406 1.249 1.249 0 0 0-.405-.267 1.225 1.225 0 0 0-.497-.101c-.189 0-.361.034-.518.101a1.278 1.278 0 0 0-.4.278c-.11.114-.196.249-.257.406-.06.157-.09.324-.09.502ZM56.786 152.298a28.493 28.493 0 0 0-.95 1.778 35.01 35.01 0 0 0-.567 1.218c-.192.434-.372.883-.539 1.346-.167.462-.315.932-.443 1.409-.125.474-.216.94-.273 1.399h-.94c.065-.455.163-.92.294-1.393.136-.477.287-.944.454-1.399.171-.46.35-.901.54-1.325.188-.423.371-.813.55-1.169a28.662 28.662 0 0 1 .844-1.581h-3.84v-.79h4.87v.507ZM29.447 60.652h-.876v-6.616a2.087 2.087 0 0 1-.299.235 5.733 5.733 0 0 1-.95.497 3.617 3.617 0 0 1-.523.176v-.886c.192-.054.395-.125.608-.214a8.022 8.022 0 0 0 1.228-.657c.185-.124.346-.245.481-.363h.331v7.828ZM36.923 56.792c0 .64-.06 1.208-.177 1.703-.114.495-.28.913-.502 1.255a2.261 2.261 0 0 1-.806.774 2.21 2.21 0 0 1-1.084.262c-.384 0-.728-.084-1.03-.251-.3-.171-.552-.418-.759-.742a3.75 3.75 0 0 1-.47-1.191 7.416 7.416 0 0 1-.16-1.623c0-.67.056-1.26.166-1.773.114-.513.28-.942.496-1.287.218-.349.486-.61.807-.785a2.268 2.268 0 0 1 1.11-.267c1.606 0 2.409 1.308 2.409 3.925Zm-.898.085c0-2.178-.517-3.268-1.553-3.268-1.093 0-1.64 1.11-1.64 3.327 0 2.068.536 3.102 1.608 3.102 1.057 0 1.586-1.053 1.586-3.16ZM57.039 33.95h-.876v-6.615a2.087 2.087 0 0 1-.299.235 5.665 5.665 0 0 1-.95.497 3.613 3.613 0 0 1-.524.176v-.887c.193-.053.395-.124.609-.213a8.009 8.009 0 0 0 1.228-.657 4.94 4.94 0 0 0 .48-.363h.332v7.828ZM62.934 33.95h-.876v-6.615a2.087 2.087 0 0 1-.299.235 5.665 5.665 0 0 1-.95.497 3.613 3.613 0 0 1-.524.176v-.887c.193-.053.395-.124.609-.213a8.023 8.023 0 0 0 1.228-.657c.185-.125.345-.246.48-.363h.332v7.828Z%27 fill=%27%23959595%27/%3E%3C/g%3E%3Cdefs%3E%3Cfilter id=%27a%27 x=%272%27 y=%274%27 width=%27178%27 height=%27178%27 filterUnits=%27userSpaceOnUse%27 color-interpolation-filters=%27sRGB%27%3E%3CfeFlood flood-opacity=%270%27 result=%27BackgroundImageFix%27/%3E%3CfeColorMatrix in=%27SourceAlpha%27 values=%270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0%27 result=%27hardAlpha%27/%3E%3CfeOffset dy=%272%27/%3E%3CfeGaussianBlur stdDeviation=%272%27/%3E%3CfeComposite in2=%27hardAlpha%27 operator=%27out%27/%3E%3CfeColorMatrix values=%270 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.05 0%27/%3E%3CfeBlend in2=%27BackgroundImageFix%27 result=%27effect1_dropShadow%27/%3E%3CfeBlend in=%27SourceGraphic%27 in2=%27effect1_dropShadow%27 result=%27shape%27/%3E%3C/filter%3E%3C/defs%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_10___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%276%27 height=%2748%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Crect width=%276%27 height=%2744%27 rx=%273%27 fill=%27%23337ab7%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_11___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg width=%2710%27 height=%2766%27 fill=%27none%27 xmlns=%27http://www.w3.org/2000/svg%27%3E%3Crect x=%273%27 width=%274%27 height=%2764%27 rx=%272%27 fill=%27%23337ab7%27/%3E%3Ccircle cx=%275%27 cy=%2761%27 r=%273.5%27 fill=%27%23fff%27 stroke=%27%23337ab7%27 stroke-width=%273%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_12___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAQAAAC00HvSAAABoklEQVRIx63WPUvDQBjA8QMFsZNLlgpxtINjBsFVqINghm4dRAe/Rpdm6UcQHERwUYdAJ8HvkKHEQdrPEBQUrf7PoabtveSSSrit3PPjeve8RCCsyyMkIiYlAzJSYiJCPPt+248BfRKkdSX0CcoZnx7jAiJfY3r4LqbNsITI15B2EdNlVBGRSEZ0bUyXyQqIRDJZQIu/M1oRmZ2ovcz4zjt558NxR/6C6Vk2fHLPOXtsIhA0aHHGA1/Gvl7OBMYT/3BF05poTS5Be/5gxvQ15JWjgtyerWPelP19hMDTMvabQyciEJwoJ0rwBKF2lutSRCC4UWJCQaQx+5WYAyUmEsQas1WJ2VJiYkGqMTuVmG0lJhVkGnNaiblQYjKhZYHkmY1SpMGLEoN5Gskt605kjTstIjPvRiJ50tuSksePxv7UfKm8HAe0DGKXgZbB85eKHLWdKkjHUpjzvAmdHaUKIgnNmrIzLiTBs1W4ybiQvwq39RuV6TB1jpvA1f1yxo0sdT9XLy5DlF5cPBmmq0yG2uZUbVOzthle2xdFbd83//za+gXw/JH9LjmoAgAAAABJRU5ErkJggg==\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_13___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAQAAAC00HvSAAABJklEQVRIx62WvW2EQBBGpwlSArdgSrBESuKIQhySLJJbcAuXrXTZteCAAG3GlWBRwVsHB+Ykw8zeafVlaPSY/1lBdlXQ0OMJzMBMwNPTUOzb732scAzEXQ04KhtT0jEdIFZNdJQapuZsIFadqY8wLWMiJBIZafcwLdcHIJHIdQNt4YwPQm4e1feYMjkn/3NUbpjuSUgk0q2YSinx5xL0SSl/dcM45V8r5qLYOEQoDjs2FTNQCI0a+deC+VatGqFPwugD0gs+A8YLQTW4LJgf1SoIcxJG751ZIAMGy5sp1ZuQgHkxMMGqVJq81Tdp6q0unnhFeDMK3lgz9b6k+MOaKX3CUzDO3jd2UH/7JtP2y7aLM12GbHcq29XMdsOzvSiyvW+efG39AmPXSbHWZjgLAAAAAElFTkSuQmCC\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_14___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAQAAAC00HvSAAABeklEQVRIx62WMWrDQBBFx01I5zQinQ5hdINA3Kp3mUNEnSBIdwgEcgeBC18gVRojjDr7BklUxAE3b1NYihVrdmWbZbpl9FjN/zOzgqgREJNTUFEDNRUFOTGBnq8dRmQsMWosyYiGMSEpawuijTUpoQszZT6AaGPO1IaZsToRYjCsmGmYGZszIAbD5gA6/M7qTMj+RtMuJjy5Jv0ahQdMeiHEYEhbTKRK/KN+9K3IH+0xmZK+4Jb33mnChM/eaYYIgeLYBdcI4yNQgiBM+Oo5OxBi5S5l0ztdUNJoGrPr5cdCrtbgGOSCGHKhsCjQBbkhhkKorFK2oKsBiKESaocnys58sUMMtYDTXA8NZMSbIwv3bZJO/48VH3VuY6/NYwO4V+Tv1aYYgMTsVB8dKZUPQmyG/OcbzcUvijot6IYPzcVaT225UyQuCRjxrGyLwNbhW54Un5S8KrmZa96cGn/zxtP08zaLPW0Gb3vK29b0tsO9vSi8vW8ufG39AnvvGenmMu5AAAAAAElFTkSuQmCC\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_15___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACMAAAAjCAQAAAC00HvSAAABlklEQVRIx62Wv0rDUBSHTxE6uHTKGhDEzS2jg4vUMeBmX8BR8AFiJQEfwck3cAh2cxBcXEup3VoHF3UxS1FBvuvQhPy5N0lTwplyknz33HN+95wriNEsXAJCZkRAxIyQABfL/L3J6eAzRhltjI9Tj7HxmJcgEpvjYVdh+oxqEImN6JdhBkzXhCgUUwYmzIBFA4hCsUhB6XamDSGriPpZjL12TvQc2SnG2xCiUHgJxqktcdbe+SmU31lh/AaQJQ4HfOR8PiJYpYrVDU4RhD1+c8q2BLdBLNdxXW8KflcI1obcs4UgnGlvAiE0/DDhW/O90EMQDnMbWlkozDTnMz2OC6AvdhGEHT4Ny86EqOB6i1fNgv44QhC2mRi3Gwlozqs4kSnoHEHocFdWQT0ahWKYA93GT5elyY9MucmDHukiCCeGuDO5CUteJaAOgrDPskIKYZVuhpkG/1qpqKBaxRcIQpeHGmG6dWfKM0hfnxZW/Ql/qj0k/ib9Rh83Tqvdr7Ve3NJkaG1OtTY1W5vhrd0oWrvfbHjb+gdn1DPEHv9HmQAAAABJRU5ErkJggg==\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_16___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABEAAAARCAQAAACRZI9xAAAAdElEQVQoU4XR0Q3AIAgFQCarie7UrToMc3QIiyIFFGNe5INcgETAegpQefFCCFPwYZI2qFA/M4EQMQAhKxJgiEcKHFFkwUQY3Q4sBAhUerYzkbaiTUk7Ije0dYoMyeYGi35igUeDzMCiTiKgaPx0BAR1csgHXJxUKOJqsbEAAAAASUVORK5CYII=\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_17___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAACqCAYAAABbAOqQAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA39pVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuNi1jMTQyIDc5LjE2MDkyNCwgMjAxNy8wNy8xMy0wMTowNjozOSAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDpjYWQ2ODE5MS00ZDMxLWRjNGYtOTU0NC1jNjJkMTIxMjY2M2IiIHhtcE1NOkRvY3VtZW50SUQ9InhtcC5kaWQ6MjY1RUVFQzAzRDYzMTFFODlFNThCOUJBQjU4Q0EzRDgiIHhtcE1NOkluc3RhbmNlSUQ9InhtcC5paWQ6MjY1RUVFQkYzRDYzMTFFODlFNThCOUJBQjU4Q0EzRDgiIHhtcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENDIChXaW5kb3dzKSI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOjVlMjM1Y2U0LTc5ZWUtNGI0NC05ZjlkLTk2NTZmZGFjNjhhNCIgc3RSZWY6ZG9jdW1lbnRJRD0iYWRvYmU6ZG9jaWQ6cGhvdG9zaG9wOjk1OTQ2MjBiLTUyMTQtYTM0Yy04Nzc5LTEwMmEyMTY4MTlhOSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gPD94cGFja2V0IGVuZD0iciI/PvLbJKYAAADrSURBVHja7N3BDYBACABBsQn7L48q0BoMD5SZxAZuc74gF1V1MMfpCARBEEEQRBAEEQRBdovnuxxDq3RD/LIQRBAEQRBBEEQQBBEEQQQBAAAAAAAAABhi8gZVbgxi6kQQBBEEQQRBEEEQRBAEQRBBAAAAAAAAAAAabX2Daux2lqkTQRBEEAQRBEEEQRBBEARBBAEAAAAAAAAAaLR1g2osUyeCIIggCCIIggiCIIIgCIIIAgAAAAAAAADQ6KsbVPnXIKZOBEEQQRBEEAQRBEEEQRAEEYRXoqqcghuCIIIgiCAIIgiCCMIUtwADALYCCr92l++TAAAAAElFTkSuQmCC\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_18___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAJElEQVQoz2P8z4AfsDAwJELVzGfExmIiYAAD5QoYRx1JL0cCAJeiFh8Qq9chAAAAAElFTkSuQmCC\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_19___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAWElEQVQoz83RsQqAMAxF0fepFxzEQRz8e1sah0JTamhXeVtyCCSRaR6ZTGQsSHJgcRyk1YQ7aBcuB+KkDO0D9UDsHcmARiC2BqiVEfg2+jOoF30+YPnNWV4jV/jo04VE6gAAAABJRU5ErkJggg==\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_20___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAI0lEQVQoz2P4z4AfAlHCfwjEzqKPAsKObIBA7Cz6KBgGIQkAQ8IdQJKOGQIAAAAASUVORK5CYII=\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_21___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAIElEQVQoz2P4z4AfAlHCfwgEshogEFmMPgpGHUkfRwIAQ8IdQALkrHMAAAAASUVORK5CYII=\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_22___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAARElEQVQoz2P4z4AfMhClIOE/NkiSAl+ooG8CQwKIzwChEQpQlGBXgKYEwxeoSrB6k7ACfFYkYPgDXQGKdAItQpKi2AQAaDQFJxj4SdQAAAAASUVORK5CYII=\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_23___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAH0lEQVQoz2P4z4AfMlBHQcJ/MESjqasAKxx5bqAosgCZ3QSYpC33dQAAAABJRU5ErkJggg==\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_24___ = new URL(\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAAAMUlEQVQoz2P4z4AfMlBXQcJ/EKShggQoxKEAojsBwxQqKUjACpEVoOhGNYVKCiiKLAATcARoA49V5wAAAABJRU5ErkJggg==\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_25___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x30_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 22 22%27 style=%27enable-background:new 0 0 22 22%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill:%23333}%3C/style%3E%3Cg id=%27_x31_%27%3E%3Cpath id=%27_x33_%27 class=%27st0%27 d=%27M11 4c2.45 0 4.59 1.26 5.84 3.16L15 9l6 1-1-6-1.73 1.73A8.934 8.934 0 0 0 11 2a9 9 0 0 0-9 9h2c0-3.87 3.13-7 7-7z%27/%3E%3Cpath id=%27_x32_%27 class=%27st0%27 d=%27M17.92 12c-.49 3.39-3.39 6-6.92 6-2.19 0-4.13-1.01-5.41-2.59L7 14l-6-1 1 6 2.17-2.17C5.82 18.76 8.26 20 11 20c4.63 0 8.44-3.5 8.94-8h-2.02z%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_26___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 22 22%27 style=%27enable-background:new 0 0 22 22%27 xml:space=%27preserve%27%3E%3Cpath d=%27m21 10-6-1 1.87-1.87A7.064 7.064 0 0 0 11 4c-3.87 0-7 3.13-7 7H2a9 9 0 0 1 9-9c3.02 0 5.7 1.42 7.35 3.65L20 4l1 6zM5.6 15.4C6.88 16.98 8.81 18 11 18c.4 0 .78-.05 1.15-.12.15.69.42 1.32.77 1.91-.62.13-1.26.21-1.92.21-2.74 0-5.17-1.24-6.82-3.18L2 19l-1-6 6 1-1.4 1.4z%27 style=%27fill-rule:evenodd;clip-rule:evenodd;fill:%23333%27/%3E%3Cpath d=%27M17.5 12c2.49 0 4.5 2.01 4.5 4.5S19.99 21 17.5 21 13 18.99 13 16.5s2.01-4.5 4.5-4.5z%27 style=%27fill-rule:evenodd;clip-rule:evenodd;fill:%235cb85c%27/%3E%3Cpath d=%27m21.35 14.35-4.71 5-3-3 .71-.71 2.15 2.15 4.15-4.15.7.71z%27 style=%27fill-rule:evenodd;clip-rule:evenodd;fill:%23fff%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_27___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 22 22%27 style=%27enable-background:new 0 0 22 22%27 xml:space=%27preserve%27%3E%3Cpath d=%27m21 10-6-1 1.87-1.87A7.064 7.064 0 0 0 11 4c-3.87 0-7 3.13-7 7H2a9 9 0 0 1 9-9c3.02 0 5.7 1.42 7.35 3.65L20 4l1 6zM5.6 15.4C6.88 16.98 8.81 18 11 18c.4 0 .78-.05 1.15-.12.15.69.42 1.32.77 1.91-.62.13-1.26.21-1.92.21-2.74 0-5.17-1.24-6.82-3.18L2 19l-1-6 6 1-1.4 1.4z%27 style=%27fill-rule:evenodd;clip-rule:evenodd;fill:%23333%27/%3E%3Cpath d=%27M17.5 12c2.49 0 4.5 2.01 4.5 4.5S19.99 21 17.5 21 13 18.99 13 16.5s2.01-4.5 4.5-4.5z%27 style=%27fill-rule:evenodd;clip-rule:evenodd;fill:%23d9534f%27/%3E%3Cpath d=%27M17 20v-1h1v1h-1zm0-7h1v5h-1v-5z%27 style=%27fill-rule:evenodd;clip-rule:evenodd;fill:%23fff%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_28___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 style=%27enable-background:new 0 0 16 16%27 xml:space=%27preserve%27%3E%3Cpath fill=%27%23333%27 d=%27M8 0c4.42 0 8 3.58 8 8s-3.58 8-8 8-8-3.58-8-8 3.58-8 8-8m2.87 4L8 6.87 5.13 4 4 5.13 6.87 8 4 10.87 5.13 12 8 9.13 10.87 12 12 10.87 9.13 8 12 5.13 10.87 4z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_29___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27Layer_1%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27/%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_30___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27m1 13 9-9 1 1-9 9-1-1z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd;fill:red%27/%3E%3Cpath d=%27M12 8V3H0v12h12v-5h16V8H12zm-2 5H2V5h8v8z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_31___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 16%27 style=%27enable-background:new 0 0 28 16%27 xml:space=%27preserve%27%3E%3Cpath d=%27m8 9 4 3 1 2L0 8l13-6-1 2-4 3h20v2H8z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_32___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27m0 9 13 6v-5h15V8H13V3L0 9zm11 3L3.9 9 11 6v6z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_33___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M13 10v5L0 9l13-6v5h15v2H13z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_34___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27m17 13 9-9 1 1-9 9-1-1z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd;fill:red%27/%3E%3Cpath d=%27M0 8v2h16v5h12V3H16v5H0zm18-3h8v8h-8V5z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_35___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M0 10V8h20l-4-3-1-2 13 6-13 6 1-2 4-3H0z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_36___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 16%27 style=%27enable-background:new 0 0 28 16%27 xml:space=%27preserve%27%3E%3Cpath d=%27M28 8 15 2v5H0v2h15v5l13-6zM17 5l7.1 3-7.1 3V5z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_37___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M0 10V8h15V3l13 6-13 6v-5H0z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_38___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M20 18v-8h3V5H8v3H0V0h8v3h17v7h3v8h-8zM6 2H2v4h4V2zm20 10h-4v4h4v-4z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_39___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M20 10v2.2L8 2.8V0H0v8h8V5.8l12 9.3V18h8v-8h-8zM6 6H2V2h4v4zm20 10h-4v-4h4v4z%27 fill=%27%23333%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_40___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cpath fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27 d=%27M3 8h22v2H3z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_41___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cpath id=%27_x32__2_%27 class=%27st0%27 fill=%27%23333%27 d=%27M3 8h2v2H3z%27/%3E%3Cpath id=%27_x32__1_%27 class=%27st0%27 fill=%27%23333%27 d=%27M7 8h2v2H7z%27/%3E%3Cpath id=%27_x32__3_%27 class=%27st0%27 fill=%27%23333%27 d=%27M11 8h2v2h-2z%27/%3E%3Cpath id=%27_x32__4_%27 class=%27st0%27 fill=%27%23333%27 d=%27M15 8h2v2h-2z%27/%3E%3Cpath id=%27_x32__5_%27 class=%27st0%27 fill=%27%23333%27 d=%27M19 8h2v2h-2z%27/%3E%3Cpath id=%27_x32__6_%27 class=%27st0%27 fill=%27%23333%27 d=%27M23 8h2v2h-2z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_42___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 28 18%27 style=%27enable-background:new 0 0 28 18%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cpath id=%27_x32__1_%27 class=%27st0%27 fill=%27%23333%27 d=%27M3 8h6v2H3z%27/%3E%3Cpath id=%27_x32__4_%27 class=%27st0%27 fill=%27%23333%27 d=%27M11 8h6v2h-6z%27/%3E%3Cpath id=%27_x32__5_%27 class=%27st0%27 fill=%27%23333%27 d=%27M19 8h6v2h-6z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_43___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27m7.6 1-.9.9 1.9 1.9L3 9.4 9.5 16 16 9.4 7.6 1zM5 9l4.5-4.5L14 9H5z%27 fill=%27%23333%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_44___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath fill=%27%23333%27 d=%27M0 6h2V2h4V0H0zM2 12H0v6h6v-2H2zM12 0v2h4v4h2V0zM16 16h-4v2h6v-6h-2z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_45___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M14 5c0-2.8-2.2-5-5-5S4 2.2 4 5c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h10c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm-5 8c-1.1 0-2-.9-2-2s.9-2 2-2 2 .9 2 2-.9 2-2 2zM6 5c0-1.7 1.3-3 3-3s3 1.3 3 3H6z%27 fill=%27%23333%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_46___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M14 17H4c-1.1 0-2-.9-2-2V7c0-1.1.9-2 2-2h8c0-1.7-1.3-3-3-3-.9 0-1.7.4-2.2 1H4.4C5.2 1.2 7 0 9 0c2.8 0 5 2.2 5 5 1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zM9 9c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_47___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M8 0h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2H8c-1.1 0-2-.9-2-2V2c0-1.1.9-2 2-2z%27 fill=%27%23333%27 style=%27opacity:.35;fill-rule:evenodd;clip-rule:evenodd%27/%3E%3Cpath d=%27M8 12c-1.1 0-2-.9-2-2V4H4c-1.1 0-2 .9-2 2v8c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2v-2H8z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_48___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M8 0h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2H8c-1.1 0-2-.9-2-2V2c0-1.1.9-2 2-2z%27 fill=%27%23333%27 style=%27opacity:.35;fill-rule:evenodd;clip-rule:evenodd%27/%3E%3Cpath d=%27M4 4h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_49___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x32_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cpath id=%27_x31_%27 class=%27st0%27 d=%27M8.5 6c.1 0 .3 0 .4.1l6.8 5.3c.3.2.3.5.1.8-.1.1-.1.2-.3.2l-1.9.3 1.3 2.6c.2.3 0 .6-.3.7l-2.1.9c-.1 0-.2.1-.3.1-.2 0-.4-.1-.5-.3l-1.3-2.6-1.5 1.1c-.1.1-.2.1-.4.1-.3 0-.6-.2-.6-.5V6.6c0-.3.3-.6.6-.6z%27 fill=%27%23333%27/%3E%3Cg id=%27_x33_%27 style=%27opacity:.75%27%3E%3Cpath id=%27_x31__1_%27 class=%27st0%27 fill=%27%23333%27 d=%27m12 6 2 2h2V6z%27/%3E%3Cpath id=%27_x32__1_%27 transform=%27rotate%28-45.001 13 3%29%27 class=%27st0%27 fill=%27%23333%27 d=%27M11.6 2h2.8v2h-2.8z%27/%3E%3Cpath id=%27_x33__1_%27 class=%27st0%27 fill=%27%23333%27 d=%27M8 1h2v4H8z%27/%3E%3Cpath id=%27_x34_%27 transform=%27rotate%28-45.001 5 11%29%27 class=%27st0%27 fill=%27%23333%27 d=%27M3.6 10h2.8v2H3.6z%27/%3E%3Cpath id=%27_x35_%27 transform=%27rotate%28-45.001 5 3%29%27 class=%27st0%27 fill=%27%23333%27 d=%27M4 1.6h2v2.8H4z%27/%3E%3Cpath id=%27_x36_%27 class=%27st0%27 fill=%27%23333%27 d=%27M2 6h4v2H2z%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_50___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M17 15.4 15.5 17l-2-2-2 2-1.5-1.6 2-2-2-2 1.5-1.4 2 2 2-2 1.5 1.5-2 2 2 1.9zM12 6l-4 6-2-2-3 5h5v2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v4l-2 2-3-3zM5.5 5C4.7 5 4 5.6 4 6.5S4.7 8 5.5 8 7 7.3 7 6.5 6.3 5 5.5 5z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_51___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27m15 9-3-3-4 6-2-2-3 5h6v2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v4l-2 2zM5.5 5C4.7 5 4 5.7 4 6.5S4.7 8 5.5 8 7 7.3 7 6.5 6.3 5 5.5 5zM17 12.5 12.5 17H11v-1.5l4.5-4.5 1.5 1.5z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_52___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27m15 9-3-3-4 7-2-3-3 5h6v2H3c-1.1 0-2-.9-2-2V3c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v4l-2 2zM5.5 5C4.7 5 4 5.7 4 6.5S4.7 8 5.5 8 7 7.3 7 6.5 6.3 5 5.5 5zm7.5 6h2v2h2v2h-2v2h-2v-2h-2v-2h2v-2z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_53___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 64 64%27 style=%27enable-background:new 0 0 64 64%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cg id=%27_x34_%27%3E%3Cpath id=%27_x35_%27 class=%27st0%27 d=%27M60 20v8c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2zm-2 0h-8v8h8v-8zM46 6v8c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2zm-2 0h-8v8h8V6zm2 28v8c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2zm-2 0h-8v8h8v-8zm2 16v8c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2zm-2 0h-8v8h8v-8zM32 20v8c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2zm-2 0h-8v8h8v-8zM12 4l6 6h-5v50h-2V10H6l6-6z%27 fill=%27%23333%27/%3E%3C/g%3E%3Cg id=%27_x32_%27 style=%27opacity:.5%27%3E%3Cpath id=%27_x33_%27 class=%27st0%27 d=%27M55 9v9h-2v-7h-7V9h9zm-2 21h2v9h-9v-2h7v-7zM39 44h2v4h-2v-4zM27 9h7v2h-7v7h-2V9h2zm0 28h7v2h-9v-9h2v7z%27 fill=%27%23333%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_54___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 64 64%27 style=%27enable-background:new 0 0 64 64%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cg id=%27_x34_%27%3E%3Cpath id=%27_x35_%27 class=%27st0%27 d=%27M45 59h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zm0-2v-8h-8v8h8zm14-12h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zm0-2v-8h-8v8h8zm-28 2h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zm0-2v-8h-8v8h8zm-16 2H7c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zm0-2v-8H7v8h8zm30-12h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zm0-2v-8h-8v8h8zm16-18-6 6v-5H5v-2h50V5l6 6z%27 fill=%27%23333%27/%3E%3C/g%3E%3Cg id=%27_x32_%27 style=%27opacity:.5%27%3E%3Cpath id=%27_x33_%27 class=%27st0%27 d=%27M56 54h-9v-2h7v-7h2v9zm-21-2v2h-9v-9h2v7h7zM21 38v2h-4v-2h4zm35-12v7h-2v-7h-7v-2h9v2zm-28 0v7h-2v-9h9v2h-7z%27 fill=%27%23333%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_55___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 64 64%27 style=%27enable-background:new 0 0 64 64%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cg id=%27_x34_%27%3E%3Cpath id=%27_x35_%27 class=%27st0%27 d=%27M19 57v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2zm10 0v-8h-8v8h8zM5 43v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2H7c-1.1 0-2-.9-2-2zm10 0v-8H7v8h8zm18 0v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2zm10 0v-8h-8v8h8zm6 0v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2zm10 0v-8h-8v8h8zM19 29v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2h-8c-1.1 0-2-.9-2-2zm10 0v-8h-8v8h8zM11 5v5h50v2H11v5l-6-6 6-6z%27 fill=%27%23333%27/%3E%3C/g%3E%3Cg id=%27_x32_%27 style=%27opacity:.5%27%3E%3Cpath id=%27_x33_%27 class=%27st0%27 d=%27M10 52v-7h2v7h7v2h-9v-2zm28 0v-7h2v9h-9v-2h7zm11-14v2h-4v-2h4zM10 24h9v2h-7v7h-2v-9zm21 2v-2h9v9h-2v-7h-7z%27 fill=%27%23333%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_56___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 64 64%27 style=%27enable-background:new 0 0 64 64%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cg id=%27_x34_%27%3E%3Cpath id=%27_x35_%27 class=%27st0%27 d=%27M58 46h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zm0-10h-8v8h8v-8zM44 60h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zm0-10h-8v8h8v-8zm0-18h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zm0-10h-8v8h8v-8zm0-6h-8c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zm0-10h-8v8h8V6zM30 46h-8c-1.1 0-2-.9-2-2v-8c0-1.1.9-2 2-2h8c1.1 0 2 .9 2 2v8c0 1.1-.9 2-2 2zm0-10h-8v8h8v-8zM6 54h5V4h2v50h5l-6 6-6-6z%27 fill=%27%23333%27/%3E%3C/g%3E%3Cg id=%27_x32_%27 style=%27opacity:.5%27%3E%3Cpath id=%27_x33_%27 class=%27st0%27 d=%27M53 55h-7v-2h7v-7h2v9h-2zm0-28h-7v-2h9v9h-2v-7zM39 16h2v4h-2v-4zM25 55v-9h2v7h7v2h-9zm2-21h-2v-9h9v2h-7v7z%27 fill=%27%23333%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_57___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 64 64%27 style=%27enable-background:new 0 0 64 64%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cg id=%27_x34_%27%3E%3Cpath id=%27_x35_%27 class=%27st0%27 d=%27M59 6v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-2 0h-6v6h6V6zm2 20v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-2 0h-6v6h6v-6zm-8 12v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-2 0h-6v6h6v-6zm2 14v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-2 0h-6v6h6v-6zm-8-20c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6zm-2-6h-6v6h6v-6zm-7-12h-6c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2zm-6-2h6V6h-6v6zm-7-2h-5v50h-2V10H5l6-6 6 6zm19 2V6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2zm2 0h6V6h-6v6z%27 fill=%27%23333%27/%3E%3C/g%3E%3Cg id=%27_x32_%27 style=%27opacity:.5%27%3E%3Cpath id=%27_x33_%27 class=%27st0%27 d=%27M55 14v10h-2V14h2zm-2 20h2v8h-6v-2h4v-6zM43 46h2v4h-2v-4zm-3-32h2v6h-7v4h-2v-4h-7v-6h2v4h11.9l.1-4zm-5 26h4v2h-6v-8h2v6z%27 fill=%27%23333%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_58___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 64 64%27 style=%27enable-background:new 0 0 64 64%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cg id=%27_x34_%27%3E%3Cpath id=%27_x35_%27 class=%27st0%27 d=%27M58 59h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2zm0-2v-6h-6v6h6zm-20 2h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2zm0-2v-6h-6v6h6zm-12-8h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2zm0-2v-6h-6v6h6zm-14 2H6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2zm0-2v-6H6v6h6zm20-8c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-6zm6-2v-6h-6v6h6zm12-7v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2zm2-6v6h6v-6h-6zm2-7v-5H4v-2h50V5l6 6-6 6zm-2 19h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2zm0 2v6h6v-6h-6z%27 fill=%27%23333%27/%3E%3C/g%3E%3Cg id=%27_x32_%27 style=%27opacity:.5%27%3E%3Cpath id=%27_x33_%27 class=%27st0%27 d=%27M50 55H40v-2h10v2zm-20-2v2h-8v-6h2v4h6zM18 43v2h-4v-2h4zm32-3v2h-6v-7h-4v-2h4v-7h6v2h-4v11.9l4 .1zm-26-5v4h-2v-6h8v2h-6z%27 fill=%27%23333%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_59___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 64 64%27 style=%27enable-background:new 0 0 64 64%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cg id=%27_x34_%27%3E%3Cpath id=%27_x35_%27 class=%27st0%27 d=%27M4 57v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2zm8 0v-6H6v6h6zm12 0v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2zm8 0v-6h-6v6h6zm4-10v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2zm8 0v-6h-6v6h6zm6 0v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2zm8 0v-6h-6v6h6zm-32-8c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-6zm6-2v-6h-6v6h6zm-20-5H6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2zm-6-8v6h6v-6H6zM4 11l6-6v5h50v2H10v5l-6-6zm10 27v6c0 1.1-.9 2-2 2H6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-8 0v6h6v-6H6z%27 fill=%27%23333%27/%3E%3C/g%3E%3Cg id=%27_x32_%27 style=%27opacity:.5%27%3E%3Cpath id=%27_x33_%27 class=%27st0%27 d=%27M14 53h10v2H14v-2zm26 0v-4h2v6h-8v-2h6zm10-10v2h-4v-2h4zm-32-3.1V28h-4v-2h6v7h4v2h-4v7h-6v-2l4-.1zM34 35v-2h8v6h-2v-4h-6z%27 fill=%27%23333%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_60___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M13.5 17c-1.9 0-3.5-1.6-3.5-3.5s1.6-3.5 3.5-3.5 3.5 1.6 3.5 3.5-1.6 3.5-3.5 3.5zM9 1l5 7H4l5-7zM8 17H1v-7h7v7z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_61___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M8 14v-2h8v2H8zm-1.3-1.7-1.4 1.4L1 9l4.3-4.7 1.4 1.4L4.4 8H16v2H4.4l2.3 2.3zM8 4h8v2H8V4z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_62___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 64 64%27 style=%27enable-background:new 0 0 64 64%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cg id=%27_x34_%27%3E%3Cpath id=%27_x35_%27 class=%27st0%27 d=%27M57 60h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2zm0-8h-6v6h6v-6zm0-12h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2zm0-8h-6v6h6v-6zm-10-4h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2zm0-8h-6v6h6v-6zm0-6h-6c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2zm0-8h-6v6h6V6zm-8 32c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2v6zm-2-6h-6v6h6v-6zm-5 20v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2h6c1.1 0 2 .9 2 2zm-8 6h6v-6h-6v6zm-13 2-6-6h5V4h2v50h5l-6 6zm27-10h6c1.1 0 2 .9 2 2v6c0 1.1-.9 2-2 2h-6c-1.1 0-2-.9-2-2v-6c0-1.1.9-2 2-2zm0 8h6v-6h-6v6z%27 fill=%27%23333%27/%3E%3C/g%3E%3Cg id=%27_x32_%27 style=%27opacity:.5%27%3E%3Cpath id=%27_x33_%27 class=%27st0%27 d=%27M53 50V40h2v10h-2zm0-26h-4v-2h6v8h-2v-6zM43 14h2v4h-2v-4zm-3.1 32H28v4h-2v-6h7v-4h2v4h7v6h-2l-.1-4zM35 30h-2v-8h6v2h-4v6z%27 fill=%27%23333%27/%3E%3C/g%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_63___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 12 12%27 style=%27enable-background:new 0 0 12 12%27 xml:space=%27preserve%27%3E%3Cpath d=%27M0 8h1V3H0v5zm2 0h1V3H2v5zm2 0h1V3H4v5zm2 0h1V3H6v5zm2 0h1V3H8v5zm2-5v5h1V3h-1z%27 fill=%27%23333%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_64___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27m17.8 10.3-1 1-2.1-2.1 1-1c.1-.1.2-.2.4-.2.1 0 .3.1.4.2l1.3 1.3c.2.2.2.6 0 .8zM14 2H4v13h2v2H4c-1.1 0-2-.9-2-2V2c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2v3l-2 2V2zm2.1 9.9-6 6.1H8v-2.1l6.1-6.1 2 2.1z%27 fill=%27%23fff%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3Cpath d=%27M5 3h8v5l-6 6H5V3z%27 fill=%27%23fff%27 style=%27opacity:.35;fill-rule:evenodd;clip-rule:evenodd;enable-background:new%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_65___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M17 15h-3v3h-2v-3H9v-2h3v-3h2v3h3v2zM12 4l-2-2H3v12h4v2H1V0h10l3 3v5h-2V4z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_66___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M14 6H6v3h2.3c.3-.6 1-1 1.7-1h5c1.1 0 2 .9 2 2s-.9 2-2 2h-5c-.7 0-1.4-.4-1.7-1H6v4h2.3c.3-.6 1-1 1.7-1h5c1.1 0 2 .9 2 2s-.9 2-2 2h-5c-.7 0-1.4-.4-1.7-1H4V6C2.3 6 1 4.7 1 3s1.3-3 3-3h10c1.7 0 3 1.3 3 3s-1.3 3-3 3zm0-4H4c-.6 0-1 .4-1 1s.4 1 1 1h10c.6 0 1-.4 1-1s-.4-1-1-1z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_67___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st0{fill-rule:evenodd;clip-rule:evenodd}%3C/style%3E%3Cpath class=%27st0%27 d=%27M10 13H8v-3H5V8h3V5h2v3h3v2h-3v3z%27 fill=%27%23666%27/%3E%3Cpath class=%27st0%27 d=%27M9 1.1c-4.4 0-8 3.6-8 8s3.6 8 8 8 8-3.6 8-8c0-4.5-3.6-8-8-8zM9 15c-3.3 0-6-2.7-6-6s2.7-6 6-6 6 2.7 6 6-2.7 6-6 6z%27 fill=%27%23666%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_68___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27m9 7 7 6.8-1.2 1.2L9 9.3 3.2 15 2 13.8 9 7zm-5.8 3L2 8.8 9 2l7 6.8-1.2 1.2L9 4.3 3.2 10z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_69___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M17 10H9c-.6 0-1-.4-1-1s.4-1 1-1h2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1h2c.6 0 1 .4 1 1s-.4 1-1 1zm-5-6-2-2H3v12h4v2H1V0h10l3 3v3h-2V4zm5 12c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2v-5h8v5z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_70___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M17 10H9c-.6 0-1-.4-1-1s.4-1 1-1h2c0-.6.4-1 1-1h2c.6 0 1 .4 1 1h2c.6 0 1 .4 1 1s-.4 1-1 1zm-9 3H5V5H3.7c-.3.6-1 1-1.7 1-1.1 0-2-.9-2-2s.9-2 2-2c.7 0 1.4.4 1.7 1H7v8h1v2zm9 3c0 1.1-.9 2-2 2h-4c-1.1 0-2-.9-2-2v-5h8v5z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_71___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M2 3.2 3.2 2 9 7.7 14.8 2 16 3.2 9 10 2 3.2zm7 9.5L14.8 7 16 8.2 9 15 2 8.2 3.2 7 9 12.7z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_72___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27Layer_1%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cstyle%3E%3C/style%3E%3Cpath id=%27_x34_%27 class=%27st0%27 fill=%27%23666%27 d=%27M1 7h2V3h4V1H1z%27/%3E%3Cpath id=%27_x33_%27 class=%27st0%27 fill=%27%23666%27 d=%27M3 11H1v6h6v-2H3z%27/%3E%3Cpath id=%27_x32_%27 class=%27st0%27 fill=%27%23666%27 d=%27M11 1v2h4v4h2V1z%27/%3E%3Cpath id=%27_x31_%27 class=%27st0%27 fill=%27%23666%27 d=%27M15 15h-4v2h6v-6h-2z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_73___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M1 9c0-4.4 3.6-8 8-8 2.2 0 4.2.9 5.6 2.4L17 1v6h-6l2.2-2.2C12.1 3.7 10.7 3 9 3 5.7 3 3 5.7 3 9s2.7 6 6 6v2c-4.4 0-8-3.6-8-8z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_74___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M12.5 18C10 18 7.9 15.5 7 13.5c.9-2 3-4.5 5.5-4.5s4.6 2.5 5.5 4.5c-.9 2-3 4.5-5.5 4.5zm0-7c-1.4 0-2.5 1.1-2.5 2.5s1.1 2.5 2.5 2.5 2.5-1.1 2.5-2.5-1.1-2.5-2.5-2.5zm0 4c-.8 0-1.5-.7-1.5-1.5s.7-1.5 1.5-1.5 1.5.7 1.5 1.5-.7 1.5-1.5 1.5zM12 4l-2-2H3v12h2l1 2H1V0h10l3 3v4h-2V4z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_75___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M9 17v-2c3.3 0 6-2.7 6-6s-2.7-6-6-6c-1.7 0-3.1.7-4.2 1.8L7 7H1V1l2.4 2.4C4.8 1.9 6.8 1 9 1c4.4 0 8 3.6 8 8s-3.6 8-8 8z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_76___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27m17.7 16.3-1.4 1.4-4.1-4.1C11 14.5 9.6 15 8 15c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7c0 1.6-.5 3-1.4 4.2l4.1 4.1zM8 3C5.2 3 3 5.2 3 8s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zm1 8H7V9H5V7h2V5h2v2h2v2H9v2z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_77___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27m17.7 16.3-1.4 1.4-4.1-4.1C11 14.5 9.6 15 8 15c-3.9 0-7-3.1-7-7s3.1-7 7-7 7 3.1 7 7c0 1.6-.5 3-1.4 4.2l4.1 4.1zM8 3C5.2 3 3 5.2 3 8s2.2 5 5 5 5-2.2 5-5-2.2-5-5-5zM5 9V7h6v2H5z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_78___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 16 16%27 style=%27enable-background:new 0 0 16 16%27 xml:space=%27preserve%27%3E%3Cpath d=%27M12 9h4v4h-4M8 5H0v2h8m4-2h4V1h-4M0 1v2h10V1M0 15h8v-2H0m0-2h10V9H0%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_79___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns=%27http://www.w3.org/2000/svg%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cpath d=%27M14 15H2c-1.1 0-2-.9-2-2v-2c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v2c0 1.1-.9 2-2 2zm-5-4H2v2h7v-2zm5-4H2C.9 7 0 6.1 0 5V3c0-1.1.9-2 2-2h12c1.1 0 2 .9 2 2v2c0 1.1-.9 2-2 2zm-2-4H2v2h10V3z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_80___ = new URL(\"data:image/svg+xml;charset=utf-8,%3Csvg version=%271.1%27 id=%27_x31_%27 xmlns=%27http://www.w3.org/2000/svg%27 x=%270%27 y=%270%27 viewBox=%270 0 18 18%27 style=%27enable-background:new 0 0 18 18%27 xml:space=%27preserve%27%3E%3Cstyle%3E.st1{opacity:.5}%3C/style%3E%3Cpath id=%27_x32_%27 d=%27M7 11c-2.3 0-4.2-1.7-5-4 .8-2.3 2.7-4 5-4s4.2 1.7 5 4c-.8 2.3-2.7 4-5 4zm0-6c-1.1 0-2 .9-2 2s.9 2 2 2 2-.9 2-2-.9-2-2-2zm0 3c-.6 0-1-.4-1-1s.4-1 1-1 1 .4 1 1-.4 1-1 1z%27 fill=%27%23666%27 style=%27fill-rule:evenodd;clip-rule:evenodd%27/%3E%3Cpath class=%27st1%27 fill=%27%23666%27 d=%27M6 10v4h7v2l3-3-3-3v2H8v-2zM6 4V2H0V0h8v4z%27/%3E%3Cpath transform=%27rotate%28-45.001 11.5 3.5%29%27 class=%27st2%27 fill=%27%23666%27 d=%27M9.4 2.1h4.2v2.8H9.4z%27/%3E%3Cpath transform=%27rotate%28-45.001 4 11%29%27 class=%27st2%27 fill=%27%23666%27 d=%27M1.2 9.6h5.7v2.8H1.2z%27/%3E%3C/svg%3E\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_NO_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\nvar ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___);\nvar ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___);\nvar ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___);\nvar ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___);\nvar ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___);\nvar ___CSS_LOADER_URL_REPLACEMENT_19___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_19___);\nvar ___CSS_LOADER_URL_REPLACEMENT_20___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_20___);\nvar ___CSS_LOADER_URL_REPLACEMENT_21___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_21___);\nvar ___CSS_LOADER_URL_REPLACEMENT_22___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_22___);\nvar ___CSS_LOADER_URL_REPLACEMENT_23___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_23___);\nvar ___CSS_LOADER_URL_REPLACEMENT_24___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_24___);\nvar ___CSS_LOADER_URL_REPLACEMENT_25___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_25___);\nvar ___CSS_LOADER_URL_REPLACEMENT_26___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_26___);\nvar ___CSS_LOADER_URL_REPLACEMENT_27___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_27___);\nvar ___CSS_LOADER_URL_REPLACEMENT_28___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_28___);\nvar ___CSS_LOADER_URL_REPLACEMENT_29___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_29___);\nvar ___CSS_LOADER_URL_REPLACEMENT_30___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_30___);\nvar ___CSS_LOADER_URL_REPLACEMENT_31___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_31___);\nvar ___CSS_LOADER_URL_REPLACEMENT_32___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_32___);\nvar ___CSS_LOADER_URL_REPLACEMENT_33___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_33___);\nvar ___CSS_LOADER_URL_REPLACEMENT_34___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_34___);\nvar ___CSS_LOADER_URL_REPLACEMENT_35___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_35___);\nvar ___CSS_LOADER_URL_REPLACEMENT_36___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_36___);\nvar ___CSS_LOADER_URL_REPLACEMENT_37___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_37___);\nvar ___CSS_LOADER_URL_REPLACEMENT_38___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_38___);\nvar ___CSS_LOADER_URL_REPLACEMENT_39___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_39___);\nvar ___CSS_LOADER_URL_REPLACEMENT_40___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_40___);\nvar ___CSS_LOADER_URL_REPLACEMENT_41___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_41___);\nvar ___CSS_LOADER_URL_REPLACEMENT_42___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_42___);\nvar ___CSS_LOADER_URL_REPLACEMENT_43___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_43___);\nvar ___CSS_LOADER_URL_REPLACEMENT_44___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_44___);\nvar ___CSS_LOADER_URL_REPLACEMENT_45___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_45___);\nvar ___CSS_LOADER_URL_REPLACEMENT_46___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_46___);\nvar ___CSS_LOADER_URL_REPLACEMENT_47___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_47___);\nvar ___CSS_LOADER_URL_REPLACEMENT_48___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_48___);\nvar ___CSS_LOADER_URL_REPLACEMENT_49___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_49___);\nvar ___CSS_LOADER_URL_REPLACEMENT_50___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_50___);\nvar ___CSS_LOADER_URL_REPLACEMENT_51___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_51___);\nvar ___CSS_LOADER_URL_REPLACEMENT_52___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_52___);\nvar ___CSS_LOADER_URL_REPLACEMENT_53___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_53___);\nvar ___CSS_LOADER_URL_REPLACEMENT_54___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_54___);\nvar ___CSS_LOADER_URL_REPLACEMENT_55___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_55___);\nvar ___CSS_LOADER_URL_REPLACEMENT_56___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_56___);\nvar ___CSS_LOADER_URL_REPLACEMENT_57___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_57___);\nvar ___CSS_LOADER_URL_REPLACEMENT_58___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_58___);\nvar ___CSS_LOADER_URL_REPLACEMENT_59___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_59___);\nvar ___CSS_LOADER_URL_REPLACEMENT_60___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_60___);\nvar ___CSS_LOADER_URL_REPLACEMENT_61___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_61___);\nvar ___CSS_LOADER_URL_REPLACEMENT_62___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_62___);\nvar ___CSS_LOADER_URL_REPLACEMENT_63___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_63___);\nvar ___CSS_LOADER_URL_REPLACEMENT_64___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_64___);\nvar ___CSS_LOADER_URL_REPLACEMENT_65___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_65___);\nvar ___CSS_LOADER_URL_REPLACEMENT_66___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_66___);\nvar ___CSS_LOADER_URL_REPLACEMENT_67___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_67___);\nvar ___CSS_LOADER_URL_REPLACEMENT_68___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_68___);\nvar ___CSS_LOADER_URL_REPLACEMENT_69___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_69___);\nvar ___CSS_LOADER_URL_REPLACEMENT_70___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_70___);\nvar ___CSS_LOADER_URL_REPLACEMENT_71___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_71___);\nvar ___CSS_LOADER_URL_REPLACEMENT_72___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_72___);\nvar ___CSS_LOADER_URL_REPLACEMENT_73___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_73___);\nvar ___CSS_LOADER_URL_REPLACEMENT_74___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_74___);\nvar ___CSS_LOADER_URL_REPLACEMENT_75___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_75___);\nvar ___CSS_LOADER_URL_REPLACEMENT_76___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_76___);\nvar ___CSS_LOADER_URL_REPLACEMENT_77___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_77___);\nvar ___CSS_LOADER_URL_REPLACEMENT_78___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_78___);\nvar ___CSS_LOADER_URL_REPLACEMENT_79___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_79___);\nvar ___CSS_LOADER_URL_REPLACEMENT_80___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_80___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `@charset \"UTF-8\";.dx-validationsummary-item{cursor:pointer}.dx-invalid-message.dx-overlay{position:relative}.dx-invalid-message.dx-overlay-wrapper{width:100%;visibility:hidden;pointer-events:none}.dx-invalid-message>.dx-overlay-content{display:inline-block;border-width:0;padding:10px;font-size:.85em;line-height:normal;word-wrap:break-word}.dx-dropdownbox.dx-dropdowneditor-active .dx-invalid-message-auto,.dx-invalid-message-visible.dx-invalid .dx-invalid-message-auto,.dx-invalid-message.dx-invalid-message-always,.dx-lookup.dx-dropdowneditor-active .dx-invalid-message-auto,.dx-state-focused.dx-invalid .dx-invalid-message-auto{visibility:visible}.dx-validationsummary-item-content{border-bottom:1px dashed;display:inline-block;line-height:normal}@-webkit-keyframes dx-valid-badge-frames{0%{opacity:0;-webkit-transform:scale(.1);transform:scale(.1)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}@keyframes dx-valid-badge-frames{0%{opacity:0;-webkit-transform:scale(.1);transform:scale(.1)}to{opacity:1;-webkit-transform:scale(1);transform:scale(1)}}.dx-theme-generic-typography{background-color:#fff;color:#333;font-weight:400;font-size:14px}.dx-theme-generic-typography,.dx-theme-generic-typography input,.dx-theme-generic-typography textarea{font-family:Helvetica Neue,Segoe UI,helvetica,verdana,sans-serif;line-height:1.35715}.dx-theme-generic-typography .dx-font-xl,.dx-theme-generic-typography h1{font-weight:200;font-size:34px}.dx-theme-generic-typography .dx-font-l,.dx-theme-generic-typography h2{font-weight:400;font-size:28px}.dx-theme-generic-typography h3{font-weight:400;font-size:22px}.dx-theme-generic-typography .dx-font-m{font-weight:400;font-size:20px}.dx-theme-generic-typography .dx-font-s,.dx-theme-generic-typography h4{font-weight:500;font-size:18px}.dx-theme-generic-typography h5{font-weight:700;font-size:16px}.dx-theme-generic-typography .dx-font-xs,.dx-theme-generic-typography h6,.dx-theme-generic-typography small{font-weight:800;font-size:12px}.dx-theme-generic-typography a{color:#337ab7}.dx-icon-add,.dx-icon-addcolumnleft,.dx-icon-addcolumnright,.dx-icon-addrowabove,.dx-icon-addrowbelow,.dx-icon-addtable,.dx-icon-airplane,.dx-icon-aligncenter,.dx-icon-alignjustify,.dx-icon-alignleft,.dx-icon-alignright,.dx-icon-arrowdown,.dx-icon-arrowleft,.dx-icon-arrowright,.dx-icon-arrowup,.dx-icon-background,.dx-icon-bell,.dx-icon-blockquote,.dx-icon-bold,.dx-icon-bookmark,.dx-icon-box,.dx-icon-bulletlist,.dx-icon-car,.dx-icon-card,.dx-icon-cart,.dx-icon-cellproperties,.dx-icon-chart,.dx-icon-checklist,.dx-icon-clear,.dx-icon-clearformat,.dx-icon-clock,.dx-icon-close,.dx-icon-codeblock,.dx-icon-color,.dx-icon-columnproperties,.dx-icon-comment,.dx-icon-decreaseindent,.dx-icon-doc,.dx-icon-download,.dx-icon-edit,.dx-icon-email,.dx-icon-event,.dx-icon-eventall,.dx-icon-favorites,.dx-icon-find,.dx-icon-folder,.dx-icon-fontsize,.dx-icon-food,.dx-icon-formula,.dx-icon-gift,.dx-icon-globe,.dx-icon-group,.dx-icon-growfont,.dx-icon-header,.dx-icon-help,.dx-icon-home,.dx-icon-image,.dx-icon-increaseindent,.dx-icon-indent,.dx-icon-info,.dx-icon-italic,.dx-icon-key,.dx-icon-like,.dx-icon-link,.dx-icon-map,.dx-icon-mention,.dx-icon-menu,.dx-icon-mergecells,.dx-icon-money,.dx-icon-music,.dx-icon-orderedlist,.dx-icon-overflow,.dx-icon-percent,.dx-icon-photo,.dx-icon-plus,.dx-icon-preferences,.dx-icon-product,.dx-icon-redo,.dx-icon-refresh,.dx-icon-remove,.dx-icon-removecolumn,.dx-icon-removerow,.dx-icon-removetable,.dx-icon-rowproperties,.dx-icon-runner,.dx-icon-save,.dx-icon-search,.dx-icon-shrinkfont,.dx-icon-splitcells,.dx-icon-strike,.dx-icon-subscript,.dx-icon-superscript,.dx-icon-tableproperties,.dx-icon-tags,.dx-icon-tel,.dx-icon-tips,.dx-icon-todo,.dx-icon-toolbox,.dx-icon-underline,.dx-icon-undo,.dx-icon-user,.dx-icon-variable,.dx-icon-verticalalignbottom,.dx-icon-verticalaligncenter,.dx-icon-verticalaligntop,.dx-icon-video{background-position:0 0;background-repeat:no-repeat}.dx-icon{background-position:50% 50%;display:inline-block;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.dx-svg-icon svg{pointer-events:none}.dx-rtl .dx-icon-spinnext:before{content:\"\\\\f04f\"}.dx-rtl .dx-icon-spinprev:before{content:\"\\\\f04e\"}.dx-rtl .dx-icon-chevronnext:before{content:\"\\\\f012\"}.dx-rtl .dx-icon-back:before,.dx-rtl .dx-icon-chevronprev:before{content:\"\\\\f010\"}.dx-rtl .dx-icon-undo:before{content:\"\\\\f093\"}.dx-rtl .dx-icon-redo:before{content:\"\\\\f04c\"}.dx-rtl .dx-icon-hidepanel:before{content:\"\\\\f11d\"}.dx-rtl .dx-icon-showpanel:before{content:\"\\\\f11c\"}@font-face{font-family:DXIcons;src:local(\"DevExtreme Generic Icons\"),local(\"devextreme_generic_icons\"),url(${___CSS_LOADER_URL_REPLACEMENT_0___}) format(\"woff2\"),url(${___CSS_LOADER_URL_REPLACEMENT_1___}) format(\"woff\"),url(${___CSS_LOADER_URL_REPLACEMENT_2___}) format(\"truetype\");font-weight:400;font-style:normal}.dx-icon-add{font:14px/1 DXIcons}.dx-icon-add:before{content:\"\\\\f00b\"}.dx-icon-airplane{font:14px/1 DXIcons}.dx-icon-airplane:before{content:\"\\\\f000\"}.dx-icon-bookmark{font:14px/1 DXIcons}.dx-icon-bookmark:before{content:\"\\\\f017\"}.dx-icon-box{font:14px/1 DXIcons}.dx-icon-box:before{content:\"\\\\f018\"}.dx-icon-car{font:14px/1 DXIcons}.dx-icon-car:before{content:\"\\\\f01b\"}.dx-icon-card{font:14px/1 DXIcons}.dx-icon-card:before{content:\"\\\\f019\"}.dx-icon-cart{font:14px/1 DXIcons}.dx-icon-cart:before{content:\"\\\\f01a\"}.dx-icon-chart{font:14px/1 DXIcons}.dx-icon-chart:before{content:\"\\\\f01c\"}.dx-icon-check{font:14px/1 DXIcons}.dx-icon-check:before{content:\"\\\\f005\"}.dx-icon-clear{font:14px/1 DXIcons}.dx-icon-clear:before{content:\"\\\\f008\"}.dx-icon-clock{font:14px/1 DXIcons}.dx-icon-clock:before{content:\"\\\\f01d\"}.dx-icon-close{font:14px/1 DXIcons}.dx-icon-close:before{content:\"\\\\f00a\"}.dx-icon-coffee{font:14px/1 DXIcons}.dx-icon-coffee:before{content:\"\\\\f02a\"}.dx-icon-comment{font:14px/1 DXIcons}.dx-icon-comment:before{content:\"\\\\f01e\"}.dx-icon-doc{font:14px/1 DXIcons}.dx-icon-doc:before{content:\"\\\\f021\"}.dx-icon-file{font:14px/1 DXIcons}.dx-icon-file:before{content:\"\\\\f021\"}.dx-icon-download{font:14px/1 DXIcons}.dx-icon-download:before{content:\"\\\\f022\"}.dx-icon-dragvertical{font:14px/1 DXIcons}.dx-icon-dragvertical:before{content:\"\\\\f038\"}.dx-icon-edit{font:14px/1 DXIcons}.dx-icon-edit:before{content:\"\\\\f023\"}.dx-icon-email{font:14px/1 DXIcons}.dx-icon-email:before{content:\"\\\\f024\"}.dx-icon-event{font:14px/1 DXIcons}.dx-icon-event:before{content:\"\\\\f026\"}.dx-icon-eventall{font:14px/1 DXIcons}.dx-icon-eventall:before{content:\"\\\\f043\"}.dx-icon-favorites{font:14px/1 DXIcons}.dx-icon-favorites:before{content:\"\\\\f025\"}.dx-icon-find{font:14px/1 DXIcons}.dx-icon-find:before{content:\"\\\\f027\"}.dx-icon-filter{font:14px/1 DXIcons}.dx-icon-filter:before{content:\"\\\\f050\"}.dx-icon-folder{font:14px/1 DXIcons}.dx-icon-folder:before{content:\"\\\\f028\"}.dx-icon-activefolder{font:14px/1 DXIcons}.dx-icon-activefolder:before{content:\"\\\\f028\"}.dx-icon-food{font:14px/1 DXIcons}.dx-icon-food:before{content:\"\\\\f029\"}.dx-icon-gift{font:14px/1 DXIcons}.dx-icon-gift:before{content:\"\\\\f02b\"}.dx-icon-globe{font:14px/1 DXIcons}.dx-icon-globe:before{content:\"\\\\f02c\"}.dx-icon-group{font:14px/1 DXIcons}.dx-icon-group:before{content:\"\\\\f02e\"}.dx-icon-help{font:14px/1 DXIcons}.dx-icon-help:before{content:\"\\\\f02f\"}.dx-icon-home{font:14px/1 DXIcons}.dx-icon-home:before{content:\"\\\\f030\"}.dx-icon-image{font:14px/1 DXIcons}.dx-icon-image:before{content:\"\\\\f031\"}.dx-icon-info{font:14px/1 DXIcons}.dx-icon-info:before{content:\"\\\\f032\"}.dx-icon-key{font:14px/1 DXIcons}.dx-icon-key:before{content:\"\\\\f033\"}.dx-icon-like{font:14px/1 DXIcons}.dx-icon-like:before{content:\"\\\\f034\"}.dx-icon-map{font:14px/1 DXIcons}.dx-icon-map:before{content:\"\\\\f035\"}.dx-icon-menu{font:14px/1 DXIcons}.dx-icon-menu:before{content:\"\\\\f00c\"}.dx-icon-message{font:14px/1 DXIcons}.dx-icon-message:before{content:\"\\\\f024\"}.dx-icon-money{font:14px/1 DXIcons}.dx-icon-money:before{content:\"\\\\f036\"}.dx-icon-music{font:14px/1 DXIcons}.dx-icon-music:before{content:\"\\\\f037\"}.dx-icon-overflow{font:14px/1 DXIcons}.dx-icon-overflow:before{content:\"\\\\f00d\"}.dx-icon-percent{font:14px/1 DXIcons}.dx-icon-percent:before{content:\"\\\\f039\"}.dx-icon-photo{font:14px/1 DXIcons}.dx-icon-photo:before{content:\"\\\\f03a\"}.dx-icon-plus{font:14px/1 DXIcons}.dx-icon-plus:before{content:\"\\\\f00b\"}.dx-icon-minus{font:14px/1 DXIcons}.dx-icon-minus:before{content:\"\\\\f074\"}.dx-icon-preferences{font:14px/1 DXIcons}.dx-icon-preferences:before{content:\"\\\\f03b\"}.dx-icon-product{font:14px/1 DXIcons}.dx-icon-product:before{content:\"\\\\f03c\"}.dx-icon-pulldown{font:14px/1 DXIcons}.dx-icon-pulldown:before{content:\"\\\\f062\"}.dx-icon-refresh{font:14px/1 DXIcons}.dx-icon-refresh:before{content:\"\\\\f03d\"}.dx-icon-remove{font:14px/1 DXIcons}.dx-icon-remove:before{content:\"\\\\f00a\"}.dx-icon-revert{font:14px/1 DXIcons}.dx-icon-revert:before{content:\"\\\\f04c\"}.dx-icon-runner{font:14px/1 DXIcons}.dx-icon-runner:before{content:\"\\\\f040\"}.dx-icon-save{font:14px/1 DXIcons}.dx-icon-save:before{content:\"\\\\f041\"}.dx-icon-search{font:14px/1 DXIcons}.dx-icon-search:before{content:\"\\\\f027\"}.dx-icon-tags{font:14px/1 DXIcons}.dx-icon-tags:before{content:\"\\\\f009\"}.dx-icon-tel{font:14px/1 DXIcons}.dx-icon-tel:before{content:\"\\\\f003\"}.dx-icon-tips{font:14px/1 DXIcons}.dx-icon-tips:before{content:\"\\\\f004\"}.dx-icon-todo{font:14px/1 DXIcons}.dx-icon-todo:before{content:\"\\\\f005\"}.dx-icon-toolbox{font:14px/1 DXIcons}.dx-icon-toolbox:before{content:\"\\\\f007\"}.dx-icon-trash{font:14px/1 DXIcons}.dx-icon-trash:before{content:\"\\\\f03e\"}.dx-icon-user{font:14px/1 DXIcons}.dx-icon-user:before{content:\"\\\\f02d\"}.dx-icon-upload{font:14px/1 DXIcons}.dx-icon-upload:before{content:\"\\\\f006\"}.dx-icon-floppy{font:14px/1 DXIcons}.dx-icon-floppy:before{content:\"\\\\f073\"}.dx-icon-arrowleft{font:14px/1 DXIcons}.dx-icon-arrowleft:before{content:\"\\\\f011\"}.dx-icon-arrowdown{font:14px/1 DXIcons}.dx-icon-arrowdown:before{content:\"\\\\f015\"}.dx-icon-arrowright{font:14px/1 DXIcons}.dx-icon-arrowright:before{content:\"\\\\f00e\"}.dx-icon-arrowup{font:14px/1 DXIcons}.dx-icon-arrowup:before{content:\"\\\\f013\"}.dx-icon-spinleft{font:14px/1 DXIcons}.dx-icon-spinleft:before{content:\"\\\\f04f\"}.dx-icon-spinprev{font:14px/1 DXIcons}.dx-icon-spinprev:before{content:\"\\\\f04f\"}.dx-icon-spinright{font:14px/1 DXIcons}.dx-icon-spinright:before{content:\"\\\\f04e\"}.dx-icon-spinnext{font:14px/1 DXIcons}.dx-icon-spinnext:before{content:\"\\\\f04e\"}.dx-icon-spindown{font:14px/1 DXIcons}.dx-icon-spindown:before{content:\"\\\\f001\"}.dx-icon-spinup{font:14px/1 DXIcons}.dx-icon-spinup:before{content:\"\\\\f002\"}.dx-icon-chevronleft{font:14px/1 DXIcons}.dx-icon-chevronleft:before{content:\"\\\\f012\"}.dx-icon-chevronprev{font:14px/1 DXIcons}.dx-icon-chevronprev:before{content:\"\\\\f012\"}.dx-icon-back{font:14px/1 DXIcons}.dx-icon-back:before{content:\"\\\\f012\"}.dx-icon-chevronright{font:14px/1 DXIcons}.dx-icon-chevronright:before{content:\"\\\\f010\"}.dx-icon-chevronnext{font:14px/1 DXIcons}.dx-icon-chevronnext:before{content:\"\\\\f010\"}.dx-icon-chevrondown{font:14px/1 DXIcons}.dx-icon-chevrondown:before{content:\"\\\\f016\"}.dx-icon-chevronup{font:14px/1 DXIcons}.dx-icon-chevronup:before{content:\"\\\\f014\"}.dx-icon-chevrondoubleleft{font:14px/1 DXIcons}.dx-icon-chevrondoubleleft:before{content:\"\\\\f042\"}.dx-icon-chevrondoubleright{font:14px/1 DXIcons}.dx-icon-chevrondoubleright:before{content:\"\\\\f03f\"}.dx-icon-equal{font:14px/1 DXIcons}.dx-icon-equal:before{content:\"\\\\f044\"}.dx-icon-notequal{font:14px/1 DXIcons}.dx-icon-notequal:before{content:\"\\\\f045\"}.dx-icon-less{font:14px/1 DXIcons}.dx-icon-less:before{content:\"\\\\f046\"}.dx-icon-greater{font:14px/1 DXIcons}.dx-icon-greater:before{content:\"\\\\f047\"}.dx-icon-lessorequal{font:14px/1 DXIcons}.dx-icon-lessorequal:before{content:\"\\\\f048\"}.dx-icon-greaterorequal{font:14px/1 DXIcons}.dx-icon-greaterorequal:before{content:\"\\\\f049\"}.dx-icon-isblank{font:14px/1 DXIcons}.dx-icon-isblank:before{content:\"\\\\f075\"}.dx-icon-isnotblank{font:14px/1 DXIcons}.dx-icon-isnotblank:before{content:\"\\\\f076\"}.dx-icon-sortup{font:14px/1 DXIcons}.dx-icon-sortup:before{content:\"\\\\f051\"}.dx-icon-sortdown{font:14px/1 DXIcons}.dx-icon-sortdown:before{content:\"\\\\f052\"}.dx-icon-sortuptext{font:14px/1 DXIcons}.dx-icon-sortuptext:before{content:\"\\\\f053\"}.dx-icon-sortdowntext{font:14px/1 DXIcons}.dx-icon-sortdowntext:before{content:\"\\\\f054\"}.dx-icon-sorted{font:14px/1 DXIcons}.dx-icon-sorted:before{content:\"\\\\f055\"}.dx-icon-expand{font:14px/1 DXIcons}.dx-icon-expand:before{content:\"\\\\f04a\"}.dx-icon-collapse{font:14px/1 DXIcons}.dx-icon-collapse:before{content:\"\\\\f04b\"}.dx-icon-columnfield{font:14px/1 DXIcons}.dx-icon-columnfield:before{content:\"\\\\f057\"}.dx-icon-rowfield{font:14px/1 DXIcons}.dx-icon-rowfield:before{content:\"\\\\f058\"}.dx-icon-datafield{font:14px/1 DXIcons}.dx-icon-datafield:before{content:\"\\\\f101\"}.dx-icon-fields{font:14px/1 DXIcons}.dx-icon-fields:before{content:\"\\\\f059\"}.dx-icon-fieldchooser{font:14px/1 DXIcons}.dx-icon-fieldchooser:before{content:\"\\\\f05a\"}.dx-icon-columnchooser{font:14px/1 DXIcons}.dx-icon-columnchooser:before{content:\"\\\\f04d\"}.dx-icon-pin{font:14px/1 DXIcons}.dx-icon-pin:before{content:\"\\\\f05b\"}.dx-icon-unpin{font:14px/1 DXIcons}.dx-icon-unpin:before{content:\"\\\\f05c\"}.dx-icon-pinleft{font:14px/1 DXIcons}.dx-icon-pinleft:before{content:\"\\\\f05d\"}.dx-icon-pinright{font:14px/1 DXIcons}.dx-icon-pinright:before{content:\"\\\\f05e\"}.dx-icon-contains{font:14px/1 DXIcons}.dx-icon-contains:before{content:\"\\\\f063\"}.dx-icon-startswith{font:14px/1 DXIcons}.dx-icon-startswith:before{content:\"\\\\f064\"}.dx-icon-endswith{font:14px/1 DXIcons}.dx-icon-endswith:before{content:\"\\\\f065\"}.dx-icon-doesnotcontain{font:14px/1 DXIcons}.dx-icon-doesnotcontain:before{content:\"\\\\f066\"}.dx-icon-range{font:14px/1 DXIcons}.dx-icon-range:before{content:\"\\\\f06a\"}.dx-icon-export{font:14px/1 DXIcons}.dx-icon-export:before{content:\"\\\\f05f\"}.dx-icon-exportxlsx{font:14px/1 DXIcons}.dx-icon-exportxlsx:before{content:\"\\\\f060\"}.dx-icon-exportpdf{font:14px/1 DXIcons}.dx-icon-exportpdf:before{content:\"\\\\f061\"}.dx-icon-exportselected{font:14px/1 DXIcons}.dx-icon-exportselected:before{content:\"\\\\f06d\"}.dx-icon-warning{font:14px/1 DXIcons}.dx-icon-warning:before{content:\"\\\\f06b\"}.dx-icon-more{font:14px/1 DXIcons}.dx-icon-more:before{content:\"\\\\f06c\"}.dx-icon-square{font:14px/1 DXIcons}.dx-icon-square:before{content:\"\\\\f067\"}.dx-icon-clearsquare{font:14px/1 DXIcons}.dx-icon-clearsquare:before{content:\"\\\\f068\"}.dx-icon-repeat{font:14px/1 DXIcons}.dx-icon-repeat:before{content:\"\\\\f069\"}.dx-icon-selectall{font:14px/1 DXIcons}.dx-icon-selectall:before{content:\"\\\\f070\"}.dx-icon-unselectall{font:14px/1 DXIcons}.dx-icon-unselectall:before{content:\"\\\\f071\"}.dx-icon-print{font:14px/1 DXIcons}.dx-icon-print:before{content:\"\\\\f072\"}.dx-icon-bold{font:14px/1 DXIcons}.dx-icon-bold:before{content:\"\\\\f077\"}.dx-icon-italic{font:14px/1 DXIcons}.dx-icon-italic:before{content:\"\\\\f078\"}.dx-icon-underline{font:14px/1 DXIcons}.dx-icon-underline:before{content:\"\\\\f079\"}.dx-icon-strike{font:14px/1 DXIcons}.dx-icon-strike:before{content:\"\\\\f07a\"}.dx-icon-indent{font:14px/1 DXIcons}.dx-icon-indent:before{content:\"\\\\f07b\"}.dx-icon-increaselinespacing{font:14px/1 DXIcons}.dx-icon-increaselinespacing:before{content:\"\\\\f07b\"}.dx-icon-font{font:14px/1 DXIcons}.dx-icon-font:before{content:\"\\\\f11b\"}.dx-icon-fontsize{font:14px/1 DXIcons}.dx-icon-fontsize:before{content:\"\\\\f07c\"}.dx-icon-shrinkfont{font:14px/1 DXIcons}.dx-icon-shrinkfont:before{content:\"\\\\f07d\"}.dx-icon-growfont{font:14px/1 DXIcons}.dx-icon-growfont:before{content:\"\\\\f07e\"}.dx-icon-color{font:14px/1 DXIcons}.dx-icon-color:before{content:\"\\\\f07f\"}.dx-icon-background{font:14px/1 DXIcons}.dx-icon-background:before{content:\"\\\\f080\"}.dx-icon-fill{font:14px/1 DXIcons}.dx-icon-fill:before{content:\"\\\\f10d\"}.dx-icon-palette{font:14px/1 DXIcons}.dx-icon-palette:before{content:\"\\\\f120\"}.dx-icon-superscript{font:14px/1 DXIcons}.dx-icon-superscript:before{content:\"\\\\f081\"}.dx-icon-subscript{font:14px/1 DXIcons}.dx-icon-subscript:before{content:\"\\\\f082\"}.dx-icon-header{font:14px/1 DXIcons}.dx-icon-header:before{content:\"\\\\f083\"}.dx-icon-blockquote{font:14px/1 DXIcons}.dx-icon-blockquote:before{content:\"\\\\f084\"}.dx-icon-formula{font:14px/1 DXIcons}.dx-icon-formula:before{content:\"\\\\f056\"}.dx-icon-codeblock{font:14px/1 DXIcons}.dx-icon-codeblock:before{content:\"\\\\f085\"}.dx-icon-orderedlist{font:14px/1 DXIcons}.dx-icon-orderedlist:before{content:\"\\\\f086\"}.dx-icon-bulletlist{font:14px/1 DXIcons}.dx-icon-bulletlist:before{content:\"\\\\f087\"}.dx-icon-increaseindent{font:14px/1 DXIcons}.dx-icon-increaseindent:before{content:\"\\\\f088\"}.dx-icon-decreaseindent{font:14px/1 DXIcons}.dx-icon-decreaseindent:before{content:\"\\\\f089\"}.dx-icon-decreaselinespacing{font:14px/1 DXIcons}.dx-icon-decreaselinespacing:before{content:\"\\\\f106\"}.dx-icon-alignleft{font:14px/1 DXIcons}.dx-icon-alignleft:before{content:\"\\\\f08a\"}.dx-icon-alignright{font:14px/1 DXIcons}.dx-icon-alignright:before{content:\"\\\\f08b\"}.dx-icon-aligncenter{font:14px/1 DXIcons}.dx-icon-aligncenter:before{content:\"\\\\f08c\"}.dx-icon-alignjustify{font:14px/1 DXIcons}.dx-icon-alignjustify:before{content:\"\\\\f08d\"}.dx-icon-link{font:14px/1 DXIcons}.dx-icon-link:before{content:\"\\\\f08e\"}.dx-icon-video{font:14px/1 DXIcons}.dx-icon-video:before{content:\"\\\\f08f\"}.dx-icon-mention{font:14px/1 DXIcons}.dx-icon-mention:before{content:\"\\\\f090\"}.dx-icon-variable{font:14px/1 DXIcons}.dx-icon-variable:before{content:\"\\\\f091\"}.dx-icon-clearformat{font:14px/1 DXIcons}.dx-icon-clearformat:before{content:\"\\\\f092\"}.dx-icon-fullscreen{font:14px/1 DXIcons}.dx-icon-fullscreen:before{content:\"\\\\f11a\"}.dx-icon-hierarchy{font:14px/1 DXIcons}.dx-icon-hierarchy:before{content:\"\\\\f124\"}.dx-icon-docfile{font:14px/1 DXIcons}.dx-icon-docfile:before{content:\"\\\\f111\"}.dx-icon-docxfile{font:14px/1 DXIcons}.dx-icon-docxfile:before{content:\"\\\\f110\"}.dx-icon-pdffile{font:14px/1 DXIcons}.dx-icon-pdffile:before{content:\"\\\\f118\"}.dx-icon-pptfile{font:14px/1 DXIcons}.dx-icon-pptfile:before{content:\"\\\\f114\"}.dx-icon-pptxfile{font:14px/1 DXIcons}.dx-icon-pptxfile:before{content:\"\\\\f115\"}.dx-icon-rtffile{font:14px/1 DXIcons}.dx-icon-rtffile:before{content:\"\\\\f112\"}.dx-icon-txtfile{font:14px/1 DXIcons}.dx-icon-txtfile:before{content:\"\\\\f113\"}.dx-icon-xlsfile{font:14px/1 DXIcons}.dx-icon-xlsfile:before{content:\"\\\\f116\"}.dx-icon-xlsxfile{font:14px/1 DXIcons}.dx-icon-xlsxfile:before{content:\"\\\\f117\"}.dx-icon-copy{font:14px/1 DXIcons}.dx-icon-copy:before{content:\"\\\\f107\"}.dx-icon-cut{font:14px/1 DXIcons}.dx-icon-cut:before{content:\"\\\\f10a\"}.dx-icon-paste{font:14px/1 DXIcons}.dx-icon-paste:before{content:\"\\\\f108\"}.dx-icon-share{font:14px/1 DXIcons}.dx-icon-share:before{content:\"\\\\f11f\"}.dx-icon-inactivefolder{font:14px/1 DXIcons}.dx-icon-inactivefolder:before{content:\"\\\\f105\"}.dx-icon-newfolder{font:14px/1 DXIcons}.dx-icon-newfolder:before{content:\"\\\\f123\"}.dx-icon-movetofolder{font:14px/1 DXIcons}.dx-icon-movetofolder:before{content:\"\\\\f121\"}.dx-icon-parentfolder{font:14px/1 DXIcons}.dx-icon-parentfolder:before{content:\"\\\\f122\"}.dx-icon-rename{font:14px/1 DXIcons}.dx-icon-rename:before{content:\"\\\\f109\"}.dx-icon-detailslayout{font:14px/1 DXIcons}.dx-icon-detailslayout:before{content:\"\\\\f10b\"}.dx-icon-contentlayout{font:14px/1 DXIcons}.dx-icon-contentlayout:before{content:\"\\\\f11e\"}.dx-icon-smalliconslayout{font:14px/1 DXIcons}.dx-icon-smalliconslayout:before{content:\"\\\\f119\"}.dx-icon-mediumiconslayout{font:14px/1 DXIcons}.dx-icon-mediumiconslayout:before{content:\"\\\\f10c\"}.dx-icon-undo{font:14px/1 DXIcons}.dx-icon-undo:before{content:\"\\\\f04c\"}.dx-icon-redo{font:14px/1 DXIcons}.dx-icon-redo:before{content:\"\\\\f093\"}.dx-icon-hidepanel{font:14px/1 DXIcons}.dx-icon-hidepanel:before{content:\"\\\\f11c\"}.dx-icon-showpanel{font:14px/1 DXIcons}.dx-icon-showpanel:before{content:\"\\\\f11d\"}.dx-icon-checklist{font:14px/1 DXIcons}.dx-icon-checklist:before{content:\"\\\\f141\"}.dx-icon-verticalaligntop{font:14px/1 DXIcons}.dx-icon-verticalaligntop:before{content:\"\\\\f14f\"}.dx-icon-verticalaligncenter{font:14px/1 DXIcons}.dx-icon-verticalaligncenter:before{content:\"\\\\f14e\"}.dx-icon-verticalalignbottom{font:14px/1 DXIcons}.dx-icon-verticalalignbottom:before{content:\"\\\\f14d\"}.dx-icon-rowproperties{font:14px/1 DXIcons}.dx-icon-rowproperties:before{content:\"\\\\f14c\"}.dx-icon-columnproperties{font:14px/1 DXIcons}.dx-icon-columnproperties:before{content:\"\\\\f14b\"}.dx-icon-cellproperties{font:14px/1 DXIcons}.dx-icon-cellproperties:before{content:\"\\\\f14a\"}.dx-icon-tableproperties{font:14px/1 DXIcons}.dx-icon-tableproperties:before{content:\"\\\\f140\"}.dx-icon-splitcells{font:14px/1 DXIcons}.dx-icon-splitcells:before{content:\"\\\\f139\"}.dx-icon-mergecells{font:14px/1 DXIcons}.dx-icon-mergecells:before{content:\"\\\\f138\"}.dx-icon-deleterow{font:14px/1 DXIcons}.dx-icon-deleterow:before{content:\"\\\\f137\"}.dx-icon-deletecolumn{font:14px/1 DXIcons}.dx-icon-deletecolumn:before{content:\"\\\\f136\"}.dx-icon-insertrowabove{font:14px/1 DXIcons}.dx-icon-insertrowabove:before{content:\"\\\\f135\"}.dx-icon-insertrowbelow{font:14px/1 DXIcons}.dx-icon-insertrowbelow:before{content:\"\\\\f134\"}.dx-icon-insertcolumnleft{font:14px/1 DXIcons}.dx-icon-insertcolumnleft:before{content:\"\\\\f133\"}.dx-icon-insertcolumnright{font:14px/1 DXIcons}.dx-icon-insertcolumnright:before{content:\"\\\\f132\"}.dx-icon-inserttable{font:14px/1 DXIcons}.dx-icon-inserttable:before{content:\"\\\\f130\"}.dx-icon-deletetable{font:14px/1 DXIcons}.dx-icon-deletetable:before{content:\"\\\\f131\"}.dx-icon-edittableheader{font:14px/1 DXIcons}.dx-icon-edittableheader:before{content:\"\\\\f142\"}.dx-icon-addtableheader{font:14px/1 DXIcons}.dx-icon-addtableheader:before{content:\"\\\\f143\"}.dx-icon-pasteplaintext{font:14px/1 DXIcons}.dx-icon-pasteplaintext:before{content:\"\\\\f144\"}.dx-icon-importselected{font:14px/1 DXIcons}.dx-icon-importselected:before{content:\"\\\\f145\"}.dx-icon-import{font:14px/1 DXIcons}.dx-icon-import:before{content:\"\\\\f146\"}.dx-icon-textdocument{font:14px/1 DXIcons}.dx-icon-textdocument:before{content:\"\\\\f147\"}.dx-icon-jpgfile{font:14px/1 DXIcons}.dx-icon-jpgfile:before{content:\"\\\\f148\"}.dx-icon-bmpfile{font:14px/1 DXIcons}.dx-icon-bmpfile:before{content:\"\\\\f149\"}.dx-icon-svgfile{font:14px/1 DXIcons}.dx-icon-svgfile:before{content:\"\\\\f150\"}.dx-icon-attach{font:14px/1 DXIcons}.dx-icon-attach:before{content:\"\\\\f151\"}.dx-icon-return{font:14px/1 DXIcons}.dx-icon-return:before{content:\"\\\\f152\"}.dx-icon-indeterminatestate{font:14px/1 DXIcons}.dx-icon-indeterminatestate:before{content:\"\\\\f153\"}.dx-icon-lock{font:14px/1 DXIcons}.dx-icon-lock:before{content:\"\\\\f154\"}.dx-icon-unlock{font:14px/1 DXIcons}.dx-icon-unlock:before{content:\"\\\\f155\"}.dx-icon-imgarlock{font:14px/1 DXIcons}.dx-icon-imgarlock:before{content:\"\\\\f156\"}.dx-icon-imgarunlock{font:14px/1 DXIcons}.dx-icon-imgarunlock:before{content:\"\\\\f157\"}.dx-icon-bell{font:14px/1 DXIcons}.dx-icon-bell:before{content:\"\\\\f158\"}.dx-tab .dx-icon,.dx-tab.dx-tab-selected .dx-icon{background-size:100% 100%;background-position:50% 50%}.dx-scrollview-pulldown{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_3___});background-position:0 0;background-repeat:no-repeat}.dx-loadindicator-image-small{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_4___});background-position:50%;background-repeat:no-repeat}.dx-loadindicator-image-large{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_5___});background-position:50%;background-repeat:no-repeat}.dx-color-scheme{font-family:\\\\#}.dx-widget{display:block;-ms-content-zooming:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:none;-webkit-touch-callout:none;padding:0;outline:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;color:#333;font-weight:400;font-size:14px;font-family:Helvetica Neue,Segoe UI,helvetica,verdana,sans-serif;line-height:1.35715}.dx-widget,.dx-widget *,.dx-widget :after,.dx-widget :before,.dx-widget:after,.dx-widget:before{-webkit-box-sizing:border-box;box-sizing:border-box}.dx-item{outline:0}.dx-rtl{direction:rtl;unicode-bidi:embed}.dx-state-disabled{pointer-events:none}.dx-widget input,.dx-widget textarea{font-family:Helvetica Neue,Segoe UI,helvetica,verdana,sans-serif;line-height:1.35715}.dx-state-disabled .dx-widget,.dx-state-disabled.dx-widget{opacity:.5;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:default}.dx-state-disabled .dx-widget .dx-widget,.dx-state-disabled.dx-widget .dx-widget{opacity:1}.dx-card{overflow:hidden;border:1px solid #ddd;border-radius:4px;background-color:#fff}.dx-fieldset .dx-field-value{margin:0}.dx-fieldset,.dx-fieldset *{-webkit-box-sizing:border-box;box-sizing:border-box}.dx-fieldset-header:empty{display:none}.dx-field:after,.dx-field:before{display:table;content:\"\";line-height:0}.dx-field:after{clear:both}.dx-field-label{float:left;width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333;cursor:default;padding:8px 15px 9px 0}.dx-field-value,.dx-field-value-static{float:right}.dx-field-value.dx-datebox{min-width:60%}.dx-field-value:not(.dx-widget)>.dx-datebox{min-width:100%}.dx-field-value .dx-selectbox-tag-container{white-space:normal}.dx-field-value:not(.dx-widget)>.dx-selectbox.dx-selectbox-multiselect.dx-widget{position:relative;width:auto;text-align:left}.dx-fieldset.dx-rtl .dx-field-label,.dx-rtl .dx-fieldset .dx-field-label{float:right}.dx-fieldset.dx-rtl .dx-field-value,.dx-rtl .dx-fieldset .dx-field-value{float:left}.dx-field{position:relative;color:#333;font-weight:400;font-size:14px;min-height:36px;padding:0}.dx-field,.dx-field input,.dx-field textarea{font-family:Helvetica Neue,Segoe UI,helvetica,verdana,sans-serif;line-height:1.35715}.dx-field-value.dx-attention{color:#d9534f;padding:8px 10px 9px 28px;position:relative}.dx-field-value.dx-attention:before{pointer-events:none;font-weight:700;position:absolute;top:50%;margin-top:-9px;width:18px;height:18px;text-align:center;line-height:18px;font-size:13px;background-color:#d9534f;color:#fff;content:\"!\";border-radius:50%;left:0}.dx-field-value-static,.dx-field-value:not(.dx-switch):not(.dx-checkbox):not(.dx-button){width:60%}.dx-field-value.dx-widget,.dx-field-value:not(.dx-widget)>.dx-widget{margin:0}.dx-field-value:not(.dx-widget)>.dx-button,.dx-field-value:not(.dx-widget)>.dx-checkbox,.dx-field-value:not(.dx-widget)>.dx-switch{float:right}.dx-field-value.dx-checkbox,.dx-field-value:not(.dx-widget)>.dx-checkbox{margin:7px 0}.dx-field-value.dx-switch,.dx-field-value:not(.dx-widget)>.dx-switch{margin:6px 0}.dx-field-value.dx-slider,.dx-field-value:not(.dx-widget)>.dx-slider{margin:4px 0}.dx-field-value.dx-radiogroup,.dx-field-value:not(.dx-widget)>.dx-radiogroup{margin:5px 0}.dx-field-value-static{white-space:normal;padding:8px 10px 9px}.dx-fieldset{margin:30px 20px;padding:0}.dx-rtl .dx-fieldset .dx-field-value:not(.dx-widget)>.dx-button,.dx-rtl .dx-fieldset .dx-field-value:not(.dx-widget)>.dx-checkbox,.dx-rtl .dx-fieldset .dx-field-value:not(.dx-widget)>.dx-switch,.dx-rtl.dx-fieldset .dx-field-value:not(.dx-widget)>.dx-button,.dx-rtl.dx-fieldset .dx-field-value:not(.dx-widget)>.dx-checkbox,.dx-rtl.dx-fieldset .dx-field-value:not(.dx-widget)>.dx-switch{float:left}.dx-fieldset-header{margin:0 0 20px;font-weight:500;font-size:18px}.dx-field{margin:0 0 10px}.dx-field:last-of-type{margin:0}.dx-theme-marker{font-family:\"dx.generic.light\"}.dx-theme-accent-as-text-color{color:#337ab7!important}.dx-theme-text-color{color:#333!important}.dx-theme-background-color-as-text-color{color:#fff!important}.dx-theme-border-color-as-text-color{color:#ddd!important}.dx-theme-accent-as-background-color{background-color:#337ab7!important;fill:#337ab7!important}.dx-theme-text-color-as-background-color{background-color:#333!important;fill:#333!important}.dx-theme-background-color{background-color:#fff!important;fill:#fff!important}.dx-theme-border-color-as-background-color{background-color:#ddd!important;fill:#ddd!important}.dx-theme-accent-as-border-color{border-color:#337ab7!important}.dx-theme-text-color-as-border-color{border-color:#333!important}.dx-theme-background-color-as-border-color{border-color:#fff!important}.dx-theme-border-color{border-color:#ddd!important}.dx-resizable{display:block;position:relative}.dx-resizable-handle{position:absolute;z-index:50}.dx-state-disabled .dx-resizable-handle{cursor:default}.dx-resizable-handle-left,.dx-resizable-handle-right{top:0;height:100%;width:3px}.dx-resizable-handle-left{left:0;cursor:e-resize}.dx-resizable-handle-right{right:0;cursor:e-resize}.dx-resizable-handle-bottom,.dx-resizable-handle-top{left:0;width:100%;height:3px}.dx-resizable-handle-top{top:0;cursor:s-resize}.dx-resizable-handle-bottom{bottom:0;cursor:s-resize}.dx-resizable-handle-corner-bottom-left,.dx-resizable-handle-corner-bottom-right,.dx-resizable-handle-corner-top-left,.dx-resizable-handle-corner-top-right{width:6px;height:6px}.dx-resizable-handle-corner-bottom-right,.dx-resizable-handle-corner-top-left{cursor:se-resize}.dx-resizable-handle-corner-bottom-left,.dx-resizable-handle-corner-top-right{cursor:ne-resize}.dx-resizable-handle-corner-bottom-left,.dx-resizable-handle-corner-top-left{left:0;border-bottom-right-radius:100%}.dx-resizable-handle-corner-bottom-right,.dx-resizable-handle-corner-top-right{right:0;border-bottom-left-radius:100%}.dx-resizable-handle-corner-top-left,.dx-resizable-handle-corner-top-right{top:0}.dx-resizable-handle-corner-bottom-left,.dx-resizable-handle-corner-bottom-right{bottom:0}.dx-draggable{left:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.dx-draggable.dx-state-disabled,.dx-state-disabled .dx-draggable{cursor:default}.dx-draggable-clone{position:absolute;top:0;left:0;z-index:2147483647}.dx-clearfix:after,.dx-clearfix:before{display:table;content:\"\";line-height:0}.dx-clearfix:after{clear:both}.dx-translate-disabled{-webkit-transform:none!important;transform:none!important}.dx-hidden-input{position:fixed;top:-10px;left:-10px;width:0;height:0}.dx-user-select{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.dx-hidden,.dx-state-invisible{display:none!important}.dx-gesture-cover{-webkit-transform:translateZ(0);transform:translateZ(0);position:fixed;top:0;right:0;left:0;bottom:0;opacity:0;z-index:2147483647}.dx-animating{pointer-events:none}.dx-fade-animation.dx-enter,.dx-fade-animation.dx-leave.dx-leave-active,.dx-no-direction.dx-enter,.dx-no-direction.dx-leave.dx-leave-active{opacity:0}.dx-fade-animation.dx-enter.dx-enter-active,.dx-fade-animation.dx-leave,.dx-no-direction.dx-enter.dx-enter-active,.dx-no-direction.dx-leave{opacity:1}.dx-overflow-animation.dx-enter.dx-forward{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);z-index:2}.dx-overflow-animation.dx-enter.dx-enter-active.dx-forward{-webkit-transform:translateZ(0);transform:translateZ(0);z-index:2}.dx-overflow-animation.dx-enter.dx-backward,.dx-overflow-animation.dx-enter.dx-enter-active.dx-backward,.dx-overflow-animation.dx-leave.dx-forward,.dx-overflow-animation.dx-leave.dx-leave-active.dx-forward{-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1}.dx-overflow-animation.dx-leave.dx-backward{-webkit-transform:translateZ(0);transform:translateZ(0);z-index:2}.dx-overflow-animation.dx-leave.dx-leave-active.dx-backward{z-index:2}.dx-overflow-animation.dx-leave.dx-leave-active.dx-backward,.dx-slide-animation.dx-enter.dx-forward{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.dx-slide-animation.dx-enter.dx-enter-active.dx-forward{-webkit-transform:translateZ(0);transform:translateZ(0)}.dx-slide-animation.dx-enter.dx-backward{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.dx-slide-animation.dx-enter.dx-enter-active.dx-backward,.dx-slide-animation.dx-leave.dx-forward{-webkit-transform:translateZ(0);transform:translateZ(0)}.dx-slide-animation.dx-leave.dx-leave-active.dx-forward{-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.dx-slide-animation.dx-leave.dx-backward{-webkit-transform:translateZ(0);transform:translateZ(0)}.dx-slide-animation.dx-leave.dx-leave-active.dx-backward{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.dx-opendoor-animation.dx-enter.dx-forward{-webkit-transform:matrix3d(.71,0,.71,.001,0,1,0,0,-.71,0,.71,0,0,0,0,1);transform:matrix3d(.71,0,.71,.001,0,1,0,0,-.71,0,.71,0,0,0,0,1);-webkit-transform-origin:center left 0;transform-origin:center left 0;opacity:0}.dx-opendoor-animation.dx-enter.dx-enter-active.dx-backward,.dx-opendoor-animation.dx-enter.dx-enter-active.dx-forward{-webkit-transform:none;transform:none;opacity:1}.dx-opendoor-animation.dx-leave.dx-backward,.dx-opendoor-animation.dx-leave.dx-forward{-webkit-transform:none;transform:none;-webkit-transform-origin:center left 0;transform-origin:center left 0;opacity:1}.dx-opendoor-animation.dx-enter.dx-backward,.dx-opendoor-animation.dx-leave.dx-leave-active.dx-forward{-webkit-transform:matrix3d(.5,0,.87,-.001,0,1,0,0,-.87,0,.5,0,0,0,0,1);transform:matrix3d(.5,0,.87,-.001,0,1,0,0,-.87,0,.5,0,0,0,0,1);-webkit-transform-origin:center left 0;transform-origin:center left 0;opacity:0}.dx-opendoor-animation.dx-leave.dx-leave-active.dx-backward{-webkit-transform:matrix3d(.71,0,.71,.001,0,1,0,0,-.71,0,.71,0,0,0,0,1);transform:matrix3d(.71,0,.71,.001,0,1,0,0,-.71,0,.71,0,0,0,0,1);opacity:0}.dx-win-pop-animation.dx-enter.dx-forward{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}.dx-win-pop-animation.dx-enter.dx-enter-active.dx-forward{-webkit-transform:scale(1);transform:scale(1);opacity:1}.dx-win-pop-animation.dx-enter.dx-backward,.dx-win-pop-animation.dx-leave.dx-leave-active.dx-forward{-webkit-transform:scale(1.5);transform:scale(1.5);opacity:0}.dx-win-pop-animation.dx-enter.dx-enter-active.dx-backward{-webkit-transform:scale(1);transform:scale(1);opacity:1}.dx-win-pop-animation.dx-leave.dx-leave-active.dx-backward{-webkit-transform:scale(.5);transform:scale(.5);opacity:0}.dx-android-pop-animation.dx-enter.dx-forward,.dx-android-pop-animation.dx-leave.dx-leave-active.dx-backward{-webkit-transform:translate3d(0,150px,0);transform:translate3d(0,150px,0);opacity:0}.dx-android-pop-animation.dx-enter.dx-enter-active.dx-forward,.dx-android-pop-animation.dx-leave.dx-backward{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}.dx-android-pop-animation.dx-enter.dx-forward,.dx-android-pop-animation.dx-leave.dx-backward{z-index:1}.dx-ios7-slide-animation.dx-enter.dx-forward{z-index:2;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.dx-ios7-slide-animation.dx-enter.dx-enter-active.dx-forward{z-index:2;-webkit-transform:translateZ(0);transform:translateZ(0)}.dx-ios7-slide-animation.dx-enter.dx-backward{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);z-index:1}.dx-ios7-slide-animation.dx-enter.dx-enter-active.dx-backward,.dx-ios7-slide-animation.dx-leave.dx-forward{-webkit-transform:translateZ(0);transform:translateZ(0);z-index:1}.dx-ios7-slide-animation.dx-leave.dx-leave-active.dx-forward{-webkit-transform:translate3d(-20%,0,0);transform:translate3d(-20%,0,0);z-index:1}.dx-ios7-slide-animation.dx-leave.dx-backward{z-index:2}.dx-ios7-slide-animation.dx-leave.dx-leave-active.dx-backward{-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0);z-index:2}.dx-ios7-toolbar-animation.dx-enter.dx-forward{-webkit-transform:translate3d(40%,0,0);transform:translate3d(40%,0,0);opacity:0;z-index:2}.dx-ios7-toolbar-animation.dx-enter.dx-enter-active.dx-forward{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1;z-index:2}.dx-ios7-toolbar-animation.dx-enter.dx-backward{-webkit-transform:translate3d(-40%,0,0);transform:translate3d(-40%,0,0);opacity:0;z-index:1}.dx-ios7-toolbar-animation.dx-enter.dx-enter-active.dx-backward,.dx-ios7-toolbar-animation.dx-leave.dx-forward{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1;z-index:1}.dx-ios7-toolbar-animation.dx-leave.dx-leave-active.dx-forward{-webkit-transform:translate3d(-40%,0,0);transform:translate3d(-40%,0,0);opacity:0;z-index:1}.dx-ios7-toolbar-animation.dx-leave.dx-backward{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1;z-index:2}.dx-ios7-toolbar-animation.dx-leave.dx-leave-active.dx-backward{-webkit-transform:translate3d(40%,0,0);transform:translate3d(40%,0,0);opacity:0;z-index:2}.dx-drop-animation.dx-enter,.dx-drop-animation.dx-leave.dx-leave-active{-webkit-transform:translate3d(0,-120%,0);transform:translate3d(0,-120%,0)}.dx-drop-animation.dx-enter.dx-enter-active,.dx-drop-animation.dx-leave{-webkit-transform:translateZ(0);transform:translateZ(0)}.dx-3d-drop-animation.dx-enter,.dx-3d-drop-animation.dx-leave.dx-leave-active{-webkit-transform:rotateX(10deg) translate3d(0,-10px,0) scale3d(1.1,1.1,1.1);transform:rotateX(10deg) translate3d(0,-10px,0) scale3d(1.1,1.1,1.1);opacity:0}.dx-3d-drop-animation.dx-enter.dx-enter-active,.dx-3d-drop-animation.dx-leave{-webkit-transform:rotateX(0) translateZ(0) scaleX(1);transform:rotateX(0) translateZ(0) scaleX(1);opacity:1}.dx-fade-drop-animation.dx-enter,.dx-fade-drop-animation.dx-leave.dx-leave-active{-webkit-transform:translate3d(0,-10px,0) scale3d(1.1,1.1,1.1);transform:translate3d(0,-10px,0) scale3d(1.1,1.1,1.1);opacity:0}.dx-fade-drop-animation.dx-enter.dx-enter-active,.dx-fade-drop-animation.dx-leave{-webkit-transform:translateZ(0) scaleX(1);transform:translateZ(0) scaleX(1);opacity:1}.dx-fade-rise-animation.dx-enter,.dx-fade-rise-animation.dx-leave.dx-leave-active{-webkit-transform:translate3d(0,10px,0) scale3d(1.1,1.1,1.1);transform:translate3d(0,10px,0) scale3d(1.1,1.1,1.1);opacity:0}.dx-fade-rise-animation.dx-enter.dx-enter-active,.dx-fade-rise-animation.dx-leave{-webkit-transform:translateZ(0) scaleX(1);transform:translateZ(0) scaleX(1);opacity:1}.dx-fade-slide-animation.dx-enter,.dx-fade-slide-animation.dx-leave.dx-leave-active{-webkit-transform:translate3d(40%,0,0);transform:translate3d(40%,0,0);opacity:0}.dx-fade-slide-animation.dx-enter.dx-enter-active,.dx-fade-slide-animation.dx-leave{-webkit-transform:translateZ(0);transform:translateZ(0);opacity:1}.dx-fade-zoom-animation.dx-enter,.dx-fade-zoom-animation.dx-leave.dx-leave-active{-webkit-transform:scale3d(.3,.3,.3);transform:scale3d(.3,.3,.3);opacity:0}.dx-fade-zoom-animation.dx-enter.dx-enter-active,.dx-fade-zoom-animation.dx-leave{-webkit-transform:scaleX(1);transform:scaleX(1);opacity:1}.dx-box-item-content{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;max-width:100%;font-size:14px}.dx-button-disabled{cursor:default}.dx-button{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;cursor:pointer;text-align:center;vertical-align:middle;max-width:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}.dx-button .dx-icon{-webkit-user-drag:none;-ms-flex-align:center;-ms-flex-pack:center;width:18px;height:18px;font-size:18px;margin-right:0;margin-left:0}.dx-button .dx-icon,.dx-button-content{display:inherit;-webkit-box-align:center;align-items:center;-webkit-box-pack:center;justify-content:center;vertical-align:middle}.dx-button-content{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;height:100%;max-height:100%;-ms-flex-align:center;-ms-flex-pack:center}.dx-button-has-text .dx-button-content,.dx-button-has-text .dx-button-content .dx-button-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-button-content>.dx-inkripple{display:none}.dx-button-link{text-decoration:none}.dx-button-submit-input{padding:0;margin:0;border:0;height:0;width:0;font-size:0;opacity:0}.dx-state-disabled .dx-button,.dx-state-disabled.dx-button{cursor:default}.dx-button-text{line-height:1.2858}.dx-button a{text-decoration:none}.dx-button .dx-button-content{padding:8px}.dx-button .dx-icon.dx-icon-right,.dx-rtl .dx-button .dx-icon,.dx-rtl .dx-button .dx-icon.dx-icon-right,.dx-rtl.dx-button .dx-icon,.dx-rtl.dx-button .dx-icon.dx-icon-right{margin-left:0;margin-right:0}.dx-button-has-icon .dx-button-content{padding:8px}.dx-button-has-icon .dx-icon{width:18px;height:18px;font-size:18px;margin-right:0;margin-left:0}.dx-button-has-icon .dx-icon.dx-icon-right,.dx-rtl .dx-button-has-icon .dx-icon,.dx-rtl .dx-button-has-icon .dx-icon.dx-icon-right,.dx-rtl.dx-button-has-icon .dx-icon,.dx-rtl.dx-button-has-icon .dx-icon.dx-icon-right{margin-left:0;margin-right:0}.dx-button-has-text .dx-button-content{padding:8px 18px}.dx-button-has-text .dx-icon{width:18px;height:18px;font-size:18px;margin-right:9px;margin-left:0}.dx-button-has-text .dx-icon.dx-icon-right,.dx-rtl .dx-button-has-text .dx-icon,.dx-rtl.dx-button-has-text .dx-icon{margin-left:9px;margin-right:0}.dx-rtl .dx-button-has-text .dx-icon.dx-icon-right,.dx-rtl.dx-button-has-text .dx-icon.dx-icon-right{margin-right:9px;margin-left:0}.dx-button-back .dx-button-content{padding:8px}.dx-button-back .dx-icon{width:18px;height:18px;font-size:18px}.dx-button-back .dx-icon,.dx-button-back .dx-icon.dx-icon-right,.dx-rtl .dx-button-back .dx-icon,.dx-rtl .dx-button-back .dx-icon.dx-icon-right,.dx-rtl.dx-button-back .dx-icon,.dx-rtl.dx-button-back .dx-icon.dx-icon-right{margin-right:0;margin-left:0}.dx-button-back .dx-button-text{display:none}.dx-button{border-radius:4px;border-width:1px;border-style:solid}.dx-state-disabled .dx-button .dx-icon,.dx-state-disabled.dx-button .dx-icon{opacity:.6}.dx-state-disabled .dx-button .dx-button-text,.dx-state-disabled.dx-button .dx-button-text{opacity:.5}.dx-button-mode-contained{background-color:#fff;border-color:#ddd;color:#333}.dx-button-mode-contained .dx-icon{color:#333}.dx-button-mode-contained.dx-state-hover{background-color:#f5f5f5;border-color:#ddd}.dx-button-mode-contained.dx-state-focused{background-color:#ebebeb;border-color:#ddd}.dx-button-mode-contained.dx-state-active{background-color:#c2c2c2;border-color:#ddd;color:#333}.dx-button-mode-contained.dx-button-danger{background-color:#d9534f;border-color:#0000;color:#fff}.dx-button-mode-contained.dx-button-danger .dx-icon{color:#fff}.dx-button-mode-contained.dx-button-danger.dx-state-hover{background-color:#ce312c;border-color:#0000}.dx-button-mode-contained.dx-button-danger.dx-state-focused{background-color:#c12e2a;border-color:#0000}.dx-button-mode-contained.dx-button-danger.dx-state-active{background-color:#932320;border-color:#0000;color:#fff}.dx-button-mode-contained.dx-button-success{background-color:#5cb85c;border-color:#0000;color:#fff}.dx-button-mode-contained.dx-button-success .dx-icon{color:#fff}.dx-button-mode-contained.dx-button-success.dx-state-hover{background-color:#46a046;border-color:#0000}.dx-button-mode-contained.dx-button-success.dx-state-focused{background-color:#419641;border-color:#0000}.dx-button-mode-contained.dx-button-success.dx-state-active{background-color:#306f30;border-color:#0000;color:#fff}.dx-button-mode-contained.dx-button-default{background-color:#337ab7;border-color:#0000;color:#fff}.dx-button-mode-contained.dx-button-default .dx-icon{color:#fff}.dx-button-mode-contained.dx-button-default.dx-state-hover{background-color:#296293;border-color:#0000}.dx-button-mode-contained.dx-button-default.dx-state-focused{background-color:#265a87;border-color:#0000}.dx-button-mode-contained.dx-button-default.dx-state-active{background-color:#193d5b;border-color:#0000;color:#fff}.dx-button-mode-outlined{background-color:initial;border-color:#ddd;color:#333}.dx-button-mode-outlined .dx-icon{color:#333}.dx-button-mode-outlined.dx-state-hover{background-color:#0000000a;border-color:#ddd}.dx-button-mode-outlined.dx-state-focused{background-color:#00000014;border-color:#ddd}.dx-button-mode-outlined.dx-state-active{background-color:#0000003d;border-color:#ddd;color:#333}.dx-button-mode-outlined.dx-button-danger{background-color:initial;border-color:#d43f3a;color:#d43f3a}.dx-button-mode-outlined.dx-button-danger .dx-icon{color:#d43f3a}.dx-button-mode-outlined.dx-button-danger.dx-state-focused,.dx-button-mode-outlined.dx-button-danger.dx-state-hover{background-color:#d43f3a1a;border-color:#d43f3a}.dx-button-mode-outlined.dx-button-danger.dx-state-active{background-color:#d43f3a66;border-color:#d43f3a;color:#d43f3a}.dx-button-mode-outlined.dx-button-success{background-color:initial;border-color:#4cae4c;color:#4cae4c}.dx-button-mode-outlined.dx-button-success .dx-icon{color:#4cae4c}.dx-button-mode-outlined.dx-button-success.dx-state-focused,.dx-button-mode-outlined.dx-button-success.dx-state-hover{background-color:#4cae4c1a;border-color:#4cae4c}.dx-button-mode-outlined.dx-button-success.dx-state-active{background-color:#4cae4c66;border-color:#4cae4c;color:#4cae4c}.dx-button-mode-outlined.dx-button-default{background-color:initial;border-color:#2d6da3;color:#2d6da3}.dx-button-mode-outlined.dx-button-default .dx-icon{color:#2d6da3}.dx-button-mode-outlined.dx-button-default.dx-state-focused,.dx-button-mode-outlined.dx-button-default.dx-state-hover{background-color:#2d6da31a;border-color:#2d6da3}.dx-button-mode-outlined.dx-button-default.dx-state-active{background-color:#2d6da366;border-color:#2d6da3;color:#2d6da3}.dx-button-mode-text{background-color:initial;border-color:#0000;color:#333}.dx-button-mode-text .dx-icon{color:#333}.dx-button-mode-text.dx-state-hover{background-color:#0000000a;border-color:#0000}.dx-button-mode-text.dx-state-focused{background-color:#00000014;border-color:#0000}.dx-button-mode-text.dx-state-active{background-color:#0000003d;border-color:#0000;color:#333}.dx-button-mode-text.dx-button-danger{background-color:initial;border-color:#0000;color:#d43f3a}.dx-button-mode-text.dx-button-danger .dx-icon{color:#d43f3a}.dx-button-mode-text.dx-button-danger.dx-state-focused,.dx-button-mode-text.dx-button-danger.dx-state-hover{background-color:#d43f3a1a;border-color:#0000}.dx-button-mode-text.dx-button-danger.dx-state-active{background-color:#d43f3a66;border-color:#0000;color:#d43f3a}.dx-button-mode-text.dx-button-success{background-color:initial;border-color:#0000;color:#4cae4c}.dx-button-mode-text.dx-button-success .dx-icon{color:#4cae4c}.dx-button-mode-text.dx-button-success.dx-state-focused,.dx-button-mode-text.dx-button-success.dx-state-hover{background-color:#4cae4c1a;border-color:#0000}.dx-button-mode-text.dx-button-success.dx-state-active{background-color:#4cae4c66;border-color:#0000;color:#4cae4c}.dx-button-mode-text.dx-button-default{background-color:initial;border-color:#0000;color:#2d6da3}.dx-button-mode-text.dx-button-default .dx-icon{color:#2d6da3}.dx-button-mode-text.dx-button-default.dx-state-focused,.dx-button-mode-text.dx-button-default.dx-state-hover{background-color:#2d6da31a;border-color:#0000}.dx-button-mode-text.dx-button-default.dx-state-active{background-color:#2d6da366;border-color:#0000;color:#2d6da3}.dx-button-back.dx-state-hover .dx-button-content,.dx-button-normal.dx-state-hover .dx-button-content{background-color:initial;border-radius:4px}.dx-texteditor-buttons-container>.dx-button{margin:1px}.dx-texteditor-buttons-container>.dx-button>.dx-button-content{padding-top:5px;padding-bottom:6px}.dx-texteditor-buttons-container>.dx-button.dx-button-has-icon:not(.dx-button-has-text)>.dx-button-content{padding:6px}.dx-buttongroup{display:inline-block}.dx-buttongroup-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;height:100%;width:100%}.dx-buttongroup-item{-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.dx-buttongroup-item.dx-button-mode-contained,.dx-buttongroup-item.dx-button-mode-outlined{border-left-width:0}.dx-buttongroup-item.dx-button-mode-contained.dx-button,.dx-buttongroup-item.dx-button-mode-outlined.dx-button{border-radius:0}.dx-buttongroup-item.dx-button-mode-text{margin-left:1px}.dx-buttongroup-item-has-width{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.dx-button-mode-contained.dx-buttongroup-item,.dx-button-mode-outlined.dx-buttongroup-item{padding-left:1px;padding-right:1px}.dx-button-mode-contained.dx-buttongroup-item.dx-state-hover .dx-button-content,.dx-button-mode-outlined.dx-buttongroup-item.dx-state-hover .dx-button-content{border-radius:0}.dx-button-mode-contained.dx-buttongroup-first-item,.dx-button-mode-outlined.dx-buttongroup-first-item{padding-left:0;border-left-width:1px}.dx-button-mode-contained.dx-buttongroup-first-item.dx-button,.dx-button-mode-contained.dx-buttongroup-first-item.dx-state-hover .dx-button-content,.dx-button-mode-outlined.dx-buttongroup-first-item.dx-button,.dx-button-mode-outlined.dx-buttongroup-first-item.dx-state-hover .dx-button-content{border-top-left-radius:4px;border-bottom-left-radius:4px}.dx-button-mode-contained.dx-buttongroup-last-item,.dx-button-mode-outlined.dx-buttongroup-last-item{padding-right:0}.dx-button-mode-contained.dx-buttongroup-last-item.dx-button,.dx-button-mode-contained.dx-buttongroup-last-item.dx-state-hover .dx-button-content,.dx-button-mode-outlined.dx-buttongroup-last-item.dx-button,.dx-button-mode-outlined.dx-buttongroup-last-item.dx-state-hover .dx-button-content{border-top-right-radius:4px;border-bottom-right-radius:4px}.dx-button-mode-text.dx-buttongroup-first-item{margin-left:0}.dx-buttongroup-item.dx-button.dx-button-mode-contained.dx-state-disabled,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-state-disabled{opacity:1}.dx-buttongroup-item.dx-button.dx-button-mode-contained.dx-state-disabled .dx-button-content,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-state-disabled .dx-button-content{opacity:.6}.dx-buttongroup-item.dx-button.dx-button-mode-contained.dx-button-normal{background-color:#fff}.dx-buttongroup-item.dx-button.dx-button-mode-contained.dx-button-normal.dx-state-hover{background-color:#f5f5f5}.dx-buttongroup-item.dx-button.dx-button-mode-contained.dx-button-normal.dx-state-focused{background-color:#ebebeb}.dx-buttongroup-item.dx-button.dx-button-mode-contained.dx-button-normal.dx-item-selected{background-color:#d4d4d4}.dx-buttongroup-item.dx-button.dx-button-mode-contained.dx-button-normal.dx-item-selected.dx-state-hover{background-color:#e3e3e3}.dx-buttongroup-item.dx-button.dx-button-mode-contained.dx-button-normal.dx-item-selected.dx-state-focused{background-color:#dbdbdb}.dx-buttongroup-item.dx-button.dx-button-mode-contained.dx-button-normal.dx-item-selected,.dx-buttongroup-item.dx-button.dx-button-mode-contained.dx-button-normal.dx-item-selected .dx-icon{color:#333}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected){background-color:#fff}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-default{border-color:#2d6da3}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-default.dx-state-hover{background-color:#f5f5f5}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-default.dx-state-focused{background-color:#ebebeb}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-default,.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-default .dx-icon{color:#2d6da3}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-success{border-color:#4cae4c}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-success.dx-state-hover{background-color:#f5f5f5}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-success.dx-state-focused{background-color:#ebebeb}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-success,.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-success .dx-icon{color:#4cae4c}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-danger{border-color:#d43f3a}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-danger.dx-state-hover{background-color:#f5f5f5}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-danger.dx-state-focused{background-color:#ebebeb}.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-danger,.dx-buttongroup-item.dx-button.dx-button-mode-contained:not(.dx-item-selected).dx-button-danger .dx-icon{color:#d43f3a}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-state-hover{background-color:#0000000a}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-state-focused{background-color:#00000014}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-button-default.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-button-default.dx-state-hover{background-color:#2d6da31a}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-button-success.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-button-success.dx-state-hover{background-color:#4cae4c1a}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-button-danger.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-button-danger.dx-state-hover{background-color:#d43f3a1a}.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-state-hover{background-color:#0000000a}.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-state-focused{background-color:#00000014}.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-button-default.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-button-default.dx-state-hover{background-color:#2d6da31a}.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-button-success.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-button-success.dx-state-hover{background-color:#4cae4c1a}.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-button-danger.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-button-danger.dx-state-hover{background-color:#d43f3a1a}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-normal,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-normal{background-color:#0000002b}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-normal.dx-state-hover,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-normal.dx-state-hover{background-color:#0000001c}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-normal.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-normal.dx-state-focused{background-color:#00000024}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-normal,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-normal .dx-icon,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-normal,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-normal .dx-icon{color:#333}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-success,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-success{background-color:#5cb85c4d}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-success.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-success.dx-state-hover,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-success.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-success.dx-state-hover{background-color:#5cb85c33}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-default,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-default{background-color:#337ab74d}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-default.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-default.dx-state-hover,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-default.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-default.dx-state-hover{background-color:#337ab733}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-danger,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-danger{background-color:#d9534f4d}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-danger.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-danger.dx-state-hover,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-danger.dx-state-focused,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-danger.dx-state-hover{background-color:#d9534f33}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-success,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-success .dx-icon,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-success,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-success .dx-icon{color:#5cb85c}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-default,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-default .dx-icon,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-default,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-default .dx-icon{color:#337ab7}.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-danger,.dx-buttongroup-item.dx-button.dx-button-mode-outlined.dx-item-selected.dx-button-danger .dx-icon,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-danger,.dx-buttongroup-item.dx-button.dx-button-mode-text.dx-item-selected.dx-button-danger .dx-icon{color:#d9534f}.dx-rtl.dx-button-mode-contained.dx-buttongroup-first-item,.dx-rtl.dx-button-mode-outlined.dx-buttongroup-first-item{border-left-width:0;padding-left:1px;padding-right:0}.dx-rtl.dx-button-mode-contained.dx-buttongroup-first-item.dx-button,.dx-rtl.dx-button-mode-contained.dx-buttongroup-first-item.dx-state-hover .dx-button-content,.dx-rtl.dx-button-mode-outlined.dx-buttongroup-first-item.dx-button,.dx-rtl.dx-button-mode-outlined.dx-buttongroup-first-item.dx-state-hover .dx-button-content{border-radius:0 4px 4px 0}.dx-rtl.dx-button-mode-contained.dx-buttongroup-last-item,.dx-rtl.dx-button-mode-outlined.dx-buttongroup-last-item{border-left-width:1px;padding-right:1px;padding-left:0}.dx-rtl.dx-button-mode-contained.dx-buttongroup-last-item.dx-button,.dx-rtl.dx-button-mode-contained.dx-buttongroup-last-item.dx-state-hover .dx-button-content,.dx-rtl.dx-button-mode-outlined.dx-buttongroup-last-item.dx-button,.dx-rtl.dx-button-mode-outlined.dx-buttongroup-last-item.dx-state-hover .dx-button-content{border-radius:4px 0 0 4px}.dx-rtl.dx-button-mode-contained.dx-buttongroup-last-item.dx-buttongroup-first-item.dx-button,.dx-rtl.dx-button-mode-contained.dx-buttongroup-last-item.dx-buttongroup-first-item.dx-state-hover .dx-button-content,.dx-rtl.dx-button-mode-outlined.dx-buttongroup-last-item.dx-buttongroup-first-item.dx-button,.dx-rtl.dx-button-mode-outlined.dx-buttongroup-last-item.dx-buttongroup-first-item.dx-state-hover .dx-button-content{border-radius:4px}.dx-rtl.dx-button-mode-text.dx-buttongroup-first-item{margin-left:1px}.dx-rtl.dx-button-mode-text.dx-buttongroup-last-item{margin-left:0}.dx-scrollable-scrollbar-simulated{position:relative}.dx-scrollable{display:block;height:100%;min-height:0}.dx-scrollable:focus{outline:0}.dx-scrollable-native{-ms-overflow-style:-ms-autohiding-scrollbar;-ms-scroll-snap-type:proximity}.dx-scrollable-native.dx-scrollable-wrapper>.dx-scrollable-container>.dx-scrollable-scrollbar{display:none}.dx-scrollable-native.dx-scrollable-scrollbar-simulated .dx-scrollable-scrollbar{display:block}.dx-scrollable-native.dx-scrollable-wrapper>.dx-scrollable-container,.dx-scrollable-native>div.dx-scrollable-wrapper>.dx-scrollable-container{-webkit-overflow-scrolling:touch;position:relative;height:100%}.dx-scrollable-native.dx-scrollable-vertical,.dx-scrollable-native.dx-scrollable-vertical>.dx-scrollable-wrapper>.dx-scrollable-container{-ms-touch-action:pan-y;touch-action:pan-y;overflow-x:hidden;overflow-y:auto}.dx-scrollable-native.dx-scrollable-horizontal,.dx-scrollable-native.dx-scrollable-horizontal>.dx-scrollable-wrapper>.dx-scrollable-container{-ms-touch-action:pan-x;touch-action:pan-x;float:none;overflow-x:auto;overflow-y:hidden}.dx-scrollable-native.dx-scrollable-both,.dx-scrollable-native.dx-scrollable-both>.dx-scrollable-wrapper>.dx-scrollable-container{-ms-touch-action:pan-y pan-x;touch-action:pan-y pan-x;float:none;overflow-x:auto;overflow-y:auto}.dx-scrollable-native.dx-scrollable-disabled,.dx-scrollable-native.dx-scrollable-disabled .dx-scrollable-container{-ms-touch-action:auto;touch-action:auto}.dx-scrollable-native.dx-scrollable-scrollbars-hidden>.dx-scrollable-wrapper>.dx-scrollable-container{overflow:hidden}.dx-scrollable-native.dx-scrollable-native-ios .dx-scrollable-content{min-height:101%;-webkit-box-sizing:content-box;box-sizing:initial}.dx-scrollable-native.dx-scrollable-native-ios.dx-scrollable-horizontal .dx-scrollable-content{min-height:0;padding:0}.dx-scrollable-native.dx-scrollable-native-generic{-ms-overflow-style:auto;overflow:hidden}.dx-scrollable-native.dx-scrollable-native-generic .dx-scrollable-content{height:auto}.dx-scrollable-native.dx-scrollable-native-android .dx-scrollable-content{-webkit-transform:none;transform:none;z-index:0}.dx-scrollable-scrollbar-simulated,.dx-scrollable-scrollbar-simulated .dx-scrollable-container{scrollbar-width:none;-ms-overflow-style:none}.dx-scrollable-scrollbar-simulated .dx-scrollable-container ::-webkit-scrollbar,.dx-scrollable-scrollbar-simulated ::-webkit-scrollbar{display:none}.dx-scrollable-container{-webkit-tap-highlight-color:transparent;overflow:hidden;width:100%;height:100%}.dx-scrollable-container:focus{outline:0}.dx-scrollable-wrapper{position:relative;width:100%;height:100%}.dx-scrollable-content{position:relative;min-height:100%;-webkit-box-sizing:border-box;box-sizing:border-box}.dx-scrollable-content:after{display:block;content:\"\";clear:both}.dx-scrollable-both .dx-scrollable-content,.dx-scrollable-horizontal .dx-scrollable-content{display:block;float:left;min-width:100%}.dx-scrollable-scrollbar{position:absolute;pointer-events:auto}.dx-scrollbar-vertical{top:0;right:0;height:100%}.dx-scrollbar-horizontal{bottom:0;left:0;width:100%}.dx-scrollable-scroll{position:relative;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transform:translate(0);padding:2px;background-color:initial;opacity:1;overflow:hidden;-webkit-transition:opacity linear;transition:opacity linear}.dx-scrollable-scroll.dx-state-invisible{display:block!important;background-color:#0000;opacity:0;-webkit-transition:opacity .5s linear 1s;transition:opacity .5s linear 1s}.dx-rtl .dx-scrollable,.dx-rtl .dx-scrollable .dx-scrollable-container,.dx-rtl .dx-scrollable .dx-scrollable-content,.dx-rtl.dx-scrollable,.dx-rtl.dx-scrollable .dx-scrollable-container,.dx-rtl.dx-scrollable .dx-scrollable-content{direction:ltr}.dx-scrollable-native.dx-rtl .dx-scrollable .dx-scrollable-container,.dx-scrollable-native.dx-rtl .dx-scrollable .dx-scrollable-content,.dx-scrollable-native.dx-rtl.dx-scrollable .dx-scrollable-container,.dx-scrollable-native.dx-rtl.dx-scrollable .dx-scrollable-content{direction:rtl}.dx-scrollable-native.dx-rtl .dx-scrollable .dx-scrollable-content,.dx-scrollable-native.dx-rtl.dx-scrollable .dx-scrollable-content{float:right}.dx-rtl .dx-scrollable .dx-scrollable-content>*,.dx-rtl.dx-scrollable .dx-scrollable-content>*{direction:rtl}.dx-rtl .dx-scrollable .dx-scrollable-scrollbar.dx-scrollbar-vertical,.dx-rtl.dx-scrollable .dx-scrollable-scrollbar.dx-scrollbar-vertical{right:auto;left:0}.dx-rtl .dx-scrollable .dx-scrollable-scrollbar.dx-scrollbar-horizontal,.dx-rtl.dx-scrollable .dx-scrollable-scrollbar.dx-scrollbar-horizontal{direction:ltr}.dx-scrollable-simulated .dx-scrollable-content{overflow-anchor:none}.dx-scrollable-simulated.dx-scrollable-disabled .dx-scrollable-scrollbar{pointer-events:none}.dx-scrollable-content{-webkit-transform:none}.dx-scrollable-scroll-content{width:100%;height:100%;background-color:#bfbfbfb3;-webkit-box-shadow:0 0 0 1px #0000;box-shadow:0 0 0 1px #0000}.dx-scrollbar-hoverable{background-color:initial}.dx-scrollbar-hoverable.dx-scrollable-scrollbar-active,.dx-scrollbar-hoverable.dx-state-hover{background-color:#bfbfbf33}.dx-scrollbar-hoverable.dx-scrollable-scrollbar-active .dx-scrollable-scroll-content{background-color:#bfbfbf}.dx-scrollbar-hoverable .dx-scrollable-scroll.dx-state-invisible{opacity:1}.dx-scrollbar-hoverable .dx-scrollable-scroll.dx-state-invisible .dx-scrollable-scroll-content{background-color:#0000;-webkit-box-shadow:0 0 0 1px #0000;box-shadow:0 0 0 1px #0000}.dx-scrollbar-vertical .dx-scrollable-scroll{float:right;width:8px}.dx-scrollbar-vertical.dx-scrollbar-hoverable{width:8px;-webkit-transition:width .2s linear .15s,background-color .2s linear .15s;transition:width .2s linear .15s,background-color .2s linear .15s}.dx-scrollbar-vertical.dx-scrollbar-hoverable .dx-scrollable-scroll{-webkit-transition:background-color .5s linear 1s,width .2s linear .15s;transition:background-color .5s linear 1s,width .2s linear .15s}.dx-scrollbar-vertical.dx-scrollbar-hoverable .dx-scrollable-scroll .dx-scrollable-scroll-content{-webkit-transition:background-color .15s linear .15s,-webkit-box-shadow .15s linear .15s;transition:box-shadow .15s linear .15s,background-color .15s linear .15s,-webkit-box-shadow .15s linear .15s}.dx-scrollbar-vertical.dx-scrollbar-hoverable .dx-scrollable-scroll.dx-state-invisible{-webkit-transition:background-color .5s linear 1s,width .2s linear .15s;transition:background-color .5s linear 1s,width .2s linear .15s}.dx-scrollbar-vertical.dx-scrollbar-hoverable .dx-scrollable-scroll.dx-state-invisible .dx-scrollable-scroll-content{-webkit-transition:background-color .5s linear 1s,-webkit-box-shadow .5s linear 1s;transition:box-shadow .5s linear 1s,background-color .5s linear 1s,-webkit-box-shadow .5s linear 1s}.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-scrollable-scrollbar-active,.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-scrollable-scrollbar-active .dx-scrollable-scroll,.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover,.dx-scrollbar-vertical.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{width:15px}.dx-scrollbar-horizontal .dx-scrollable-scroll{height:8px}.dx-scrollbar-horizontal.dx-scrollbar-hoverable{height:8px;-webkit-transition:height .2s linear .15s,background-color .2s linear .15s;transition:height .2s linear .15s,background-color .2s linear .15s}.dx-scrollbar-horizontal.dx-scrollbar-hoverable .dx-scrollable-scroll{-webkit-transition:background-color .5s linear 1s,height .2s linear .15s;transition:background-color .5s linear 1s,height .2s linear .15s}.dx-scrollbar-horizontal.dx-scrollbar-hoverable .dx-scrollable-scroll .dx-scrollable-scroll-content{-webkit-transition:background-color .15s linear .15s,-webkit-box-shadow .15s linear .15s;transition:box-shadow .15s linear .15s,background-color .15s linear .15s,-webkit-box-shadow .15s linear .15s}.dx-scrollbar-horizontal.dx-scrollbar-hoverable .dx-scrollable-scroll.dx-state-invisible{-webkit-transition:background-color .5s linear 1s,height .2s linear .15s;transition:background-color .5s linear 1s,height .2s linear .15s}.dx-scrollbar-horizontal.dx-scrollbar-hoverable .dx-scrollable-scroll.dx-state-invisible .dx-scrollable-scroll-content{-webkit-transition:background-color .5s linear 1s,-webkit-box-shadow .5s linear 1s;transition:box-shadow .5s linear 1s,background-color .5s linear 1s,-webkit-box-shadow .5s linear 1s}.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-scrollable-scrollbar-active,.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-scrollable-scrollbar-active .dx-scrollable-scroll,.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover,.dx-scrollbar-horizontal.dx-scrollbar-hoverable.dx-state-hover .dx-scrollable-scroll{height:15px}.dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-both>.dx-scrollable-wrapper>.dx-scrollable-container>.dx-scrollable-content,.dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-vertical>.dx-scrollable-wrapper>.dx-scrollable-container>.dx-scrollable-content{padding-right:8px}.dx-rtl .dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-both>.dx-scrollable-wrapper>.dx-scrollable-container>.dx-scrollable-content,.dx-rtl .dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-vertical>.dx-scrollable-wrapper>.dx-scrollable-container>.dx-scrollable-content,.dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-both.dx-rtl>.dx-scrollable-wrapper>.dx-scrollable-container>.dx-scrollable-content,.dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-vertical.dx-rtl>.dx-scrollable-wrapper>.dx-scrollable-container>.dx-scrollable-content{padding-right:0;padding-left:8px}.dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-both>.dx-scrollable-wrapper>.dx-scrollable-container>.dx-scrollable-content,.dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-horizontal>.dx-scrollable-wrapper>.dx-scrollable-container>.dx-scrollable-content{padding-bottom:8px}.dx-rtl .dx-scrollable .dx-scrollable-scroll,.dx-rtl.dx-scrollable .dx-scrollable-scroll{float:left}.dx-scrollable-native.dx-scrollable-native-generic .dx-scrollview-top-pocket{position:absolute;display:none}.dx-scrollable-native.dx-scrollable-native-android .dx-scrollview-top-pocket{width:40px;height:40px;left:50%;position:absolute;z-index:1}.dx-scrollable-native.dx-scrollable-native-android .dx-scrollview-pull-down{background-image:none;position:static;height:100%;width:100%;left:-50%;margin-left:-20px;padding:0;border-radius:50%;background-color:#fff;-webkit-box-shadow:0 1px 4px 0 #0000005e;box-shadow:0 1px 4px 0 #0000005e}.dx-scrollable-native.dx-scrollable-native-android .dx-scrollview-pull-down.dx-scrollview-pull-down-loading{-webkit-transition:-webkit-transform .1s linear;transition:-webkit-transform .1s linear;transition:transform .1s linear;transition:transform .1s linear,-webkit-transform .1s linear}.dx-scrollable-native.dx-scrollable-native-android .dx-scrollview-pull-down .dx-scrollview-pull-down-indicator{position:relative;top:0;padding:4px;margin:0;height:100%;width:100%;float:left;-webkit-box-sizing:border-box;box-sizing:border-box}.dx-scrollable-native.dx-scrollable-native-android .dx-scrollview-pull-down .dx-scrollview-pull-down-indicator .dx-loadindicator{float:left}.dx-scrollable-native.dx-scrollable-native-android .dx-icon-pulldown{width:100%;height:100%;padding:8px;font-size:24px;-webkit-box-sizing:border-box;box-sizing:border-box;-webkit-transition:opacity .2s;transition:opacity .2s}.dx-scrollable-native.dx-scrollable-native-android .dx-scrollview-pull-down-loading.dx-scrollview-pull-down{-webkit-transition:top .2s ease-out;transition:top .2s ease-out}.dx-scrollable-native.dx-scrollable-native-android .dx-scrollview-pull-down-image{position:absolute;margin:0;width:100%;height:100%;top:0;left:0;background-size:contain;-webkit-transition:opacity .2s;transition:opacity .2s}.dx-scrollable-native.dx-scrollable-native-android .dx-scrollview-pull-down-loading .dx-icon-pulldown{display:none}.dx-scrollable-native.dx-scrollable-native-ios .dx-scrollview-top-pocket{position:absolute;left:0;width:100%;overflow-y:auto;-webkit-transform:translate(0);transform:translate(0)}.dx-scrollable-native.dx-scrollable-native-ios .dx-scrollview-content,.dx-scrollable-native.dx-scrollable-native-ios .dx-scrollview-top-pocket{-webkit-transition:-webkit-transform .4s;transition:-webkit-transform .4s;transition:transform .4s;transition:transform .4s,-webkit-transform .4s}.dx-scrollable-native.dx-scrollable-native-ios .dx-scrollview-content{-webkit-transform:none;transform:none}.dx-scrollable-native.dx-scrollable-native-win8.dx-scrollable-disabled{overflow-y:auto}.dx-scrollable-native.dx-scrollable-native-win8.dx-scrollable-disabled .dx-scrollable-container{overflow-y:auto;overflow-x:hidden}.dx-scrollable-native.dx-scrollable-native-win8.dx-scrollable-disabled .dx-scrollable-content,.dx-scrollable-native.dx-scrollable-native-win8.dx-scrollable-disabled .dx-scrollview-content{overflow-y:hidden}.dx-scrollable-native.dx-scrollable-native-win8 .dx-scrollable-container{-ms-overflow-style:-ms-autohiding-scrollbar}.dx-scrollable-native.dx-scrollable-native-win8 .dx-scrollview-bottom-pocket{width:100%;text-align:center}.dx-device-android-4 .dx-scrollable-native.dx-scrollable-native-android .dx-scrollview-pull-down-loading .dx-icon-pulldown{display:block}.dx-scrollview-content{position:static}.dx-scrollview-content:after,.dx-scrollview-content:before{display:table;content:\"\";line-height:0}.dx-scrollview-content:after{clear:both}.dx-scrollview-pull-down{width:100%;height:50px;padding:15px 0;top:-80px;overflow:hidden;-webkit-transform:translate(0);transform:translate(0);-webkit-user-drag:none;-webkit-box-sizing:content-box;box-sizing:initial}.dx-scrollview-pull-down-container{display:inline-block;width:49%;text-align:right}.dx-scrollview-pull-down-indicator{opacity:0;position:absolute;left:0;top:50%;display:inline-block;margin:-15px 20px 0 15px;width:20px;-webkit-user-drag:none}.dx-scrollview-pull-down-image{display:inline-block;vertical-align:middle;margin:0 20px;width:20px;height:50px;-webkit-user-drag:none;-webkit-transform:translate(0) rotate(0);transform:translate(0) rotate(0);-webkit-transition:-webkit-transform .2s linear;transition:transform .2s linear,-webkit-transform .2s linear;background:url(${___CSS_LOADER_URL_REPLACEMENT_3___}) 0 0/100% no-repeat}.dx-scrollview-pull-down-text{display:inline;vertical-align:middle;position:relative;overflow:visible;-webkit-user-drag:none}.dx-scrollview-pull-down-text div{position:absolute;left:0;top:0;white-space:nowrap;overflow:visible;opacity:0}.dx-scrollview-pull-down-text div.dx-scrollview-pull-down-text-visible{opacity:1}.dx-scrollview-pull-down-ready .dx-scrollview-pull-down-image{-webkit-transform:translate(0) rotate(-180deg);transform:translate(0) rotate(-180deg)}.dx-scrollview-pull-down-loading .dx-scrollview-pull-down-image{opacity:0}.dx-scrollview-pull-down-loading .dx-scrollview-pull-down-indicator{opacity:1}.dx-scrollview-scrollbottom{width:100%;padding:10px 0;overflow:hidden;text-align:center;-webkit-transform:translate(0);transform:translate(0)}.dx-scrollview-scrollbottom:before{content:\"\";display:inline-block;height:100%;vertical-align:middle}.dx-scrollview-scrollbottom-indicator{display:inline-block;margin:0 10px 0 0;-webkit-user-drag:none}.dx-scrollview-scrollbottom-text{display:inline-block;margin-top:-20px;vertical-align:middle;-webkit-user-drag:none}.dx-scrollview-scrollbottom-end{opacity:0}.dx-rtl .dx-scrollable-native.dx-scrollable-native-ios .dx-scrollview-top-pocket,.dx-scrollable-native.dx-rtl.dx-scrollable-native-ios .dx-scrollview-top-pocket{left:auto;right:0}.dx-rtl .dx-scrollview-pull-down-container{text-align:left}.dx-rtl .dx-scrollview-pull-down-indicator,.dx-rtl .dx-scrollview-pull-down-text div{left:auto;right:0}.dx-rtl .dx-scrollview-scrollbottom-indicator{margin:0 0 0 10px}.dx-scrollview-scrollbottom-loading .dx-scrollview-scrollbottom-image{width:24px;height:24px}.dx-checkbox{display:inline-block;cursor:pointer;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.dx-checkbox.dx-state-readonly{cursor:default}.dx-checkbox-icon{-ms-flex-negative:0;flex-shrink:0;position:relative;background-position:0 0;background-size:cover;background-repeat:no-repeat}.dx-checkbox-container{overflow:hidden;white-space:nowrap;height:100%;width:100%;vertical-align:middle;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;text-overflow:clip}.dx-checkbox-text{text-align:left;white-space:pre-wrap;word-wrap:break-word;line-height:normal;padding-left:5px}.dx-rtl .dx-checkbox-text,.dx-rtl.dx-checkbox-text{margin:0;padding:0 5px 0 0;text-align:right}.dx-state-disabled .dx-checkbox,.dx-state-disabled.dx-checkbox{cursor:default;opacity:1}.dx-checkbox{line-height:0}.dx-checkbox.dx-state-readonly .dx-checkbox-icon{border-color:#f4f4f4;background-color:#fff}.dx-checkbox.dx-state-hover .dx-checkbox-icon{border:1px solid #265a87}.dx-checkbox.dx-state-focused .dx-checkbox-icon{border:1px solid #337ab7}.dx-checkbox.dx-state-active .dx-checkbox-icon{background-color:#60606033}.dx-checkbox-icon{width:22px;height:22px;border-radius:2px;border:1px solid #ddd;background-color:#fff}.dx-checkbox-checked .dx-checkbox-icon{font:16px/1em DXIcons;color:#337ab7;text-align:center}.dx-checkbox-checked .dx-checkbox-icon:before{content:\"\\\\f005\";position:relative;display:block;width:1em;top:50%;margin-top:-.5em;left:50%;margin-left:-.5em}.dx-rtl .dx-checkbox-checked .dx-checkbox-icon:before,.dx-rtl.dx-checkbox-checked .dx-checkbox-icon:before{left:0;margin-left:0;right:50%;margin-right:-.5em}.dx-checkbox-indeterminate .dx-checkbox-icon{color:#337ab7;text-align:center;line-height:1em;font-size:12px}.dx-checkbox-indeterminate .dx-checkbox-icon:before{position:relative;display:block;width:1em;top:50%;margin-top:-.5em;left:50%;margin-left:-.5em;content:\"\";background-color:#337ab7;border-radius:2px;height:1em}.dx-rtl .dx-checkbox-indeterminate .dx-checkbox-icon:before,.dx-rtl.dx-checkbox-indeterminate .dx-checkbox-icon:before{left:0;margin-left:0;right:50%;margin-right:-.5em}.dx-state-disabled .dx-checkbox .dx-checkbox-icon,.dx-state-disabled .dx-checkbox-text,.dx-state-disabled.dx-checkbox .dx-checkbox-icon{opacity:.4}.dx-invalid .dx-checkbox-container .dx-checkbox-icon{border:1px solid #d9534f66}.dx-invalid.dx-state-focused .dx-checkbox-container .dx-checkbox-icon{border-color:#d9534f}.dx-switch{display:inline-block;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}.dx-switch .dx-switch-wrapper{display:inline-block;text-align:left;height:100%;width:100%}.dx-switch .dx-switch-wrapper:before{display:inline-block;height:100%;content:\"\";vertical-align:middle}.dx-switch-inner{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-transform:translateX(-50%);transform:translateX(-50%)}.dx-switch-container{display:inline-block;width:100%;vertical-align:middle;overflow:hidden;margin:0 -6px 0 0;padding:0 2px;height:24px;border:1px solid #ddd;background:#fff;border-radius:2px}.dx-state-disabled .dx-switch,.dx-state-disabled.dx-switch{cursor:default}.dx-switch-handle,.dx-switch-on-value .dx-switch-inner{-webkit-transform:translateX(0);transform:translateX(0)}.dx-switch-on-value .dx-switch-handle{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.dx-rtl .dx-switch-wrapper,.dx-rtl.dx-switch-wrapper{text-align:right}.dx-rtl .dx-switch-inner{-webkit-transform:translateX(50%);transform:translateX(50%)}.dx-rtl .dx-switch-handle{-webkit-transform:translateX(-100%);transform:translateX(-100%)}.dx-rtl.dx-switch-on-value .dx-switch-handle{-webkit-transform:translateX(0);transform:translateX(0)}.dx-switch{width:44px;height:24px}.dx-switch.dx-state-readonly .dx-switch-container{border-color:#f4f4f4;background-color:#fff}.dx-switch.dx-state-active .dx-switch-handle:before{background-color:#204d73}.dx-switch.dx-state-active .dx-switch-container{border-color:#337ab7;background-color:#60606033}.dx-switch.dx-state-hover .dx-switch-handle:before{background-color:#337ab7}.dx-switch.dx-state-hover .dx-switch-container{background-color:initial;border-color:#337ab7}.dx-switch.dx-state-focused .dx-switch-container{border-color:#337ab7}.dx-switch.dx-state-focused .dx-switch-handle:before{background-color:#337ab7}.dx-switch.dx-state-focused.dx-state-active .dx-switch-handle:before{background-color:#204d73}.dx-switch-inner{width:200%;height:100%}.dx-switch-off,.dx-switch-on{float:left;-ms-flex-negative:0;flex-shrink:0;width:50%;padding-right:16px;line-height:22px;text-align:center;font-size:9px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;-webkit-box-sizing:border-box;box-sizing:border-box}.dx-switch-off{padding-left:2px;color:#999}.dx-switch-on{color:#333}.dx-switch-handle{position:relative;float:left;-ms-flex-preferred-size:14px;flex-basis:14px;-ms-flex-negative:0;flex-shrink:0;width:14px;height:18px;margin-top:2px;-webkit-box-sizing:border-box;box-sizing:border-box}.dx-switch-handle:before{display:block;content:\" \";width:100%;height:100%;background-color:#63a0d4;border-radius:2px}.dx-switch-on-value .dx-switch-handle:before{background-color:#337ab7}.dx-rtl .dx-switch .dx-switch-off,.dx-rtl .dx-switch .dx-switch-on,.dx-switch.dx-rtl .dx-switch-off,.dx-switch.dx-rtl .dx-switch-on{float:right}.dx-rtl .dx-switch .dx-switch-on,.dx-switch.dx-rtl .dx-switch-on{padding-left:16px;padding-right:2px}.dx-rtl .dx-switch .dx-switch-off,.dx-switch.dx-rtl .dx-switch-off{margin-left:0}.dx-rtl .dx-switch .dx-switch-handle,.dx-switch.dx-rtl .dx-switch-handle{float:right;margin-left:0;margin-right:-14px}.dx-rtl .dx-switch .dx-switch-container,.dx-switch.dx-rtl .dx-switch-container{margin:0 0 0 -6px}.dx-invalid.dx-switch .dx-switch-container{border-color:#d9534f66}.dx-invalid.dx-state-focused .dx-switch-container,.dx-invalid.dx-state-hover .dx-switch-container{border-color:#d9534f}.dx-invalid.dx-state-focused .dx-switch-handle:before,.dx-invalid.dx-state-hover .dx-switch-handle:before,.dx-invalid.dx-switch-on-value .dx-switch-handle:before{background-color:#d9534f}.dx-invalid .dx-switch-handle:before{background-color:#d9534f66}.dx-tabs{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;display:inline-block;width:100%;text-align:center;table-layout:fixed;position:relative}.dx-tabs.dx-tabs-stretched{table-layout:auto}.dx-tabs.dx-overflow-hidden{overflow:hidden}.dx-tabs-wrapper{display:table-row}.dx-tabs-scrollable .dx-tabs-wrapper{display:block;white-space:nowrap;height:100%}.dx-tabs-scrollable .dx-tab{height:100%;display:inline-block}.dx-tabs-scrollable .dx-tab:before{content:\"\";height:100%;display:inline-block;vertical-align:middle}.dx-tabs-scrollable .dx-scrollable-content{height:100%}.dx-tabs-nav-buttons .dx-tabs-scrollable{margin-right:25px;margin-left:25px}.dx-tabs-nav-button{width:25px;padding:0;height:100%;position:absolute;top:0}.dx-tabs-nav-button-left{left:0}.dx-tabs-nav-button-right{right:0}.dx-tabs-expanded{display:table}.dx-tab{position:relative;display:table-cell;vertical-align:middle;cursor:pointer;white-space:nowrap}.dx-tab a{position:absolute;top:0;left:0;width:100%;height:100%;background-color:#fff;color:#fff;text-decoration:none;opacity:.001}.dx-tab .dx-icon{margin:0 9px 0 0;-webkit-user-drag:none;color:#333;display:inline-block;vertical-align:middle;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;font-size:18px;text-align:center;line-height:18px}.dx-tab-content,.dx-tab-text{display:inline-block;max-width:100%}.dx-tab-text{margin:0 auto;text-align:center;-webkit-user-drag:none;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-tabs-item-badge{display:inline-block;vertical-align:top}.dx-badge{padding:0 6px 2px;border-radius:14px;background-color:#337ab7;color:#fff;font-size:13px;line-height:normal}.dx-tabs{border:1px solid #ddd}.dx-tabs-scrollable{margin:-1px;height:calc(100% + 2px)}.dx-tabs-scrollable .dx-tabs-wrapper{border:1px solid #ddd}.dx-tabs-nav-buttons .dx-tabs-scrollable .dx-tabs-wrapper{border-left:1px solid #f7f7f7;border-right:1px solid #f7f7f7}.dx-tabs-nav-button{border:none;background-color:#f7f7f7;border-radius:0;-webkit-box-shadow:none;box-shadow:none}.dx-tabs-nav-button .dx-button-content{padding:0}.dx-tabs-nav-button.dx-state-active{border:none}.dx-tabs-nav-button.dx-state-disabled{opacity:1}.dx-tabs-nav-button.dx-state-disabled .dx-button-content{opacity:.6}.dx-tab{padding:9px;background-color:#f7f7f7;color:#333}.dx-rtl .dx-tab .dx-icon,.dx-rtl.dx-tab .dx-icon,.dx-tab .dx-icon.dx-icon-right{margin-left:9px;margin-right:0}.dx-rtl .dx-tab .dx-icon.dx-icon-right,.dx-rtl.dx-tab .dx-icon.dx-icon-right{margin-right:9px;margin-left:0}.dx-tab.dx-state-hover{background-color:#fff}.dx-tab.dx-state-active{background-color:#58585833;color:#333}.dx-tab.dx-state-focused:after{content:\"\";pointer-events:none;position:absolute;top:-1px;bottom:-1px;right:-1px;left:-1px;border-right:1px solid #337ab7;border-left:1px solid #337ab7;border-top:1px solid #337ab7;border-bottom:1px solid #337ab7;z-index:1}.dx-tab.dx-tab-selected{background-color:#fff;color:#333}.dx-tab-selected:after{content:\"\";pointer-events:none;position:absolute;top:-1px;bottom:-1px;right:-1px;left:-1px;border-right:1px solid #ddd;border-left:1px solid #ddd;border-top:none;border-bottom:none;z-index:1}.dx-tab-selected .dx-icon{color:#333}.dx-tab-selected:not(.dx-state-focused)+.dx-tab-selected:not(.dx-state-focused):after{border-left:1px solid #f7f7f7}.dx-rtl .dx-tab-selected:not(.dx-state-focused)+.dx-tab-selected:not(.dx-state-focused):after{border-left:1px solid #ddd;border-right:1px solid #f7f7f7}.dx-tab-text{vertical-align:middle;line-height:25px}.dx-state-disabled.dx-tabs{opacity:1}.dx-state-disabled .dx-tab-content{opacity:.3}.dx-overlay-wrapper{top:0;pointer-events:none;width:100%;height:100%;left:0;z-index:1000;color:#333;font-weight:400;font-size:14px;font-family:Helvetica Neue,Segoe UI,helvetica,verdana,sans-serif;line-height:1.35715}.dx-overlay-wrapper,.dx-overlay-wrapper *,.dx-overlay-wrapper :after,.dx-overlay-wrapper :before,.dx-overlay-wrapper:after,.dx-overlay-wrapper:before{-webkit-box-sizing:border-box;box-sizing:border-box}.dx-overlay-shader{pointer-events:auto;background-color:#fffc}.dx-overlay-content{position:absolute;pointer-events:auto;z-index:1000;outline:0;overflow:hidden}.dx-overlay-content>.dx-template-wrapper{height:100%;width:100%}.dx-device-android .dx-overlay-content{-webkit-backface-visibility:hidden;backface-visibility:hidden}.dx-device-android .dx-scrollable-native .dx-overlay-content{-webkit-backface-visibility:visible;backface-visibility:visible}.dx-overlay-wrapper input,.dx-overlay-wrapper textarea{font-family:Helvetica Neue,Segoe UI,helvetica,verdana,sans-serif;line-height:1.35715}.dx-popup-wrapper .dx-state-focused.dx-overlay-content{border:1px solid #ddd}.dx-validationsummary-item{color:#d9534f}.dx-invalid-message>.dx-overlay-content{color:#fff;background-color:#d9534f;border-radius:4px}.dx-editor-underlined .dx-invalid-message>.dx-overlay-content{border-radius:0}.dx-searchbox .dx-icon-search{display:block;pointer-events:none}.dx-searchbox .dx-icon-search:before{display:inline-block;overflow:hidden;-webkit-box-sizing:content-box;box-sizing:initial;position:static;text-indent:0}.dx-texteditor{display:block}.dx-texteditor input::-ms-clear{display:none}.dx-placeholder{position:absolute;top:0;left:0;max-width:100%;width:auto;height:100%;text-align:left;cursor:text;pointer-events:none;color:#999}.dx-placeholder:before{display:inline-block;vertical-align:middle;max-width:100%;text-overflow:ellipsis;overflow:hidden;content:attr(DATA-DX_PLACEHOLDER);pointer-events:none;white-space:nowrap}.dx-placeholder:after{content:\" \";display:inline-block;height:100%;vertical-align:middle}.dx-texteditor-container{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;overflow:hidden;width:100%;height:100%}.dx-texteditor-buttons-container{display:-webkit-box;display:-ms-flexbox;display:flex;width:auto;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;-ms-flex-preferred-size:content;flex-basis:content;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dx-texteditor-input-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;position:relative;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.dx-texteditor-input{-webkit-appearance:none;width:100%;height:100%;outline:0;border:0;-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.dx-texteditor-input:-webkit-autofill+.dx-placeholder{display:none!important}.dx-texteditor-input:autofill+.dx-placeholder{display:none!important}.dx-texteditor-input:-moz-ui-invalid{box-shadow:none}.dx-show-clear-button{position:relative}.dx-clear-button-area{height:100%;width:34px;position:relative;cursor:pointer;text-align:justify}.dx-clear-button-area .dx-icon-clear{position:absolute;display:inline-block;background-size:contain}.dx-texteditor-empty .dx-clear-button-area{display:none}.dx-state-disabled .dx-placeholder{cursor:auto}.dx-state-disabled .dx-clear-button-area{display:none}.dx-state-disabled .dx-texteditor-input{opacity:1}.dx-rtl .dx-texteditor .dx-placeholder,.dx-rtl.dx-texteditor .dx-placeholder{text-align:right;left:auto;right:0}.dx-device-android .dx-texteditor-input{-webkit-user-modify:read-write-plaintext-only}.dx-texteditor.dx-editor-outlined{background:#fff;border:1px solid #ddd;border-radius:4px}.dx-texteditor.dx-editor-underlined{background:0 0;border-bottom:1px solid #ddd;border-radius:0}.dx-texteditor.dx-editor-filled{background:#3333330d;border:1px solid #0000;border-radius:4px}.dx-texteditor.dx-state-readonly{border-style:dashed}.dx-texteditor.dx-state-readonly.dx-editor-filled{border-color:#0000;background-color:#33333308}.dx-texteditor.dx-state-readonly.dx-editor-filled.dx-state-focused{background-color:#33333308}.dx-texteditor.dx-state-readonly.dx-editor-filled.dx-state-hover{background-color:#337ab712}.dx-texteditor.dx-state-readonly.dx-editor-underlined{border-style:none none dashed}.dx-texteditor.dx-state-hover{border-color:#337ab766}.dx-texteditor.dx-state-hover.dx-editor-filled{border-color:#0000;background-color:#337ab71a}.dx-texteditor.dx-state-focused .dx-texteditor-label,.dx-texteditor.dx-state-focused.dx-state-hover .dx-texteditor-label{color:#337ab7}.dx-texteditor.dx-state-focused.dx-invalid .dx-texteditor-label,.dx-texteditor.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label{color:#d9534f}.dx-texteditor.dx-state-active.dx-editor-filled,.dx-texteditor.dx-state-active.dx-editor-outlined,.dx-texteditor.dx-state-active.dx-editor-underlined,.dx-texteditor.dx-state-focused.dx-editor-filled,.dx-texteditor.dx-state-focused.dx-editor-outlined,.dx-texteditor.dx-state-focused.dx-editor-underlined{border-color:#337ab7}.dx-texteditor.dx-state-active.dx-editor-filled,.dx-texteditor.dx-state-focused.dx-editor-filled{background-color:initial}.dx-texteditor.dx-invalid .dx-texteditor-input,.dx-texteditor.dx-valid .dx-texteditor-input{padding-right:34px}.dx-texteditor.dx-invalid.dx-rtl .dx-texteditor-input,.dx-texteditor.dx-valid.dx-rtl .dx-texteditor-input{padding-left:34px;padding-right:0}.dx-texteditor.dx-invalid .dx-texteditor-input-container:after,.dx-texteditor.dx-valid .dx-texteditor-input-container:after{right:4px}.dx-rtl .dx-texteditor.dx-invalid .dx-texteditor-input-container:after,.dx-rtl .dx-texteditor.dx-valid .dx-texteditor-input-container:after,.dx-rtl.dx-texteditor.dx-invalid .dx-texteditor-input-container:after,.dx-rtl.dx-texteditor.dx-valid .dx-texteditor-input-container:after{left:4px;right:auto}.dx-texteditor.dx-validation-pending .dx-texteditor-input{padding-right:34px}.dx-texteditor.dx-validation-pending.dx-rtl .dx-texteditor-input{padding-left:34px;padding-right:0}.dx-texteditor.dx-validation-pending .dx-texteditor-input-container .dx-pending-indicator{right:4px}.dx-rtl .dx-texteditor.dx-validation-pending .dx-texteditor-input-container .dx-pending-indicator,.dx-rtl.dx-texteditor.dx-validation-pending .dx-texteditor-input-container .dx-pending-indicator{left:4px;right:auto}.dx-show-clear-button .dx-clear-button-area{width:34px;min-width:34px;right:0}.dx-show-clear-button .dx-icon-clear{color:#999;position:absolute;top:50%;margin-top:-17px;padding:8px;width:34px;height:34px;background-position:8px 8px;background-size:18px 18px;font-size:18px;text-align:center;line-height:18px}.dx-placeholder:before{padding:7px 9px 8px}.dx-editor-underlined .dx-placeholder:before{padding-left:0}.dx-rtl .dx-editor-underlined .dx-placeholder:before{padding-right:0}.dx-texteditor-input{margin:0;padding:7px 9px 8px;background:#0000;color:#333;font-size:1em;border-radius:4px;min-height:34px}.dx-editor-underlined .dx-texteditor-input{background:0 0;padding-left:0;padding-right:0}.dx-editor-filled .dx-texteditor-input{background:0 0}.dx-texteditor-label{position:absolute;font-size:12px;color:#999;white-space:nowrap;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none;cursor:text;width:100%;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;top:0;left:0}.dx-texteditor-label,.dx-texteditor-label .dx-label{display:-webkit-box;display:-ms-flexbox;display:flex}.dx-texteditor-label .dx-label span{text-overflow:ellipsis;width:auto;max-width:100%;overflow:hidden;display:block}.dx-invalid .dx-texteditor-label{color:#d9534f}.dx-rtl .dx-texteditor-label{left:auto;right:0}.dx-editor-filled .dx-texteditor-label .dx-label-after,.dx-editor-filled .dx-texteditor-label .dx-label-before{display:block;-webkit-box-sizing:border-box;box-sizing:border-box;min-width:9px}.dx-editor-filled.dx-texteditor-with-floating-label,.dx-editor-filled.dx-texteditor-with-label{position:relative}.dx-editor-filled.dx-texteditor-with-floating-label .dx-texteditor-input,.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup .dx-lookup-field,.dx-editor-filled.dx-texteditor-with-label .dx-texteditor-input,.dx-editor-filled.dx-texteditor-with-label.dx-lookup .dx-lookup-field{padding-top:13px;padding-bottom:2px}.dx-editor-filled.dx-texteditor-with-floating-label .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-label .dx-texteditor-label{font-size:12px;height:19px;line-height:1.35715;top:0;margin-top:0}.dx-editor-filled.dx-texteditor-with-floating-label .dx-placeholder:before,.dx-editor-filled.dx-texteditor-with-floating-label.dx-textarea .dx-texteditor-container,.dx-editor-filled.dx-texteditor-with-label .dx-placeholder:before,.dx-editor-filled.dx-texteditor-with-label.dx-textarea .dx-texteditor-container{padding-top:13px}.dx-editor-filled.dx-texteditor-with-floating-label.dx-textarea .dx-placeholder:before,.dx-editor-filled.dx-texteditor-with-floating-label.dx-textarea .dx-texteditor-input,.dx-editor-filled.dx-texteditor-with-label.dx-textarea .dx-placeholder:before,.dx-editor-filled.dx-texteditor-with-label.dx-textarea .dx-texteditor-input{padding-top:0}.dx-editor-filled.dx-texteditor-with-floating-label.dx-textarea .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-label.dx-textarea .dx-texteditor-label{top:0}.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup-empty .dx-placeholder,.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-placeholder,.dx-editor-filled.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-placeholder,.dx-editor-filled.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-placeholder{display:none}.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup-empty .dx-lookup-field,.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-lookup-field,.dx-editor-filled.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-lookup-field,.dx-editor-filled.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-lookup-field{font-size:0}.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup-empty .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-texteditor-label{-webkit-transition:font-size .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);transition:font-size .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);font-size:14px;height:19px;line-height:1.35715;top:50%;margin-top:-9.5px}.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup-empty.dx-textarea .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-textarea .dx-texteditor-label{font-size:14px;top:13px;margin-top:0;height:19px;line-height:1.35715}.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea .dx-placeholder,.dx-editor-filled.dx-texteditor-with-floating-label.dx-lookup-empty.dx-textarea .dx-placeholder,.dx-editor-filled.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea .dx-placeholder,.dx-editor-filled.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-textarea .dx-placeholder{display:none}.dx-editor-filled.dx-texteditor-with-floating-label.dx-dropdowneditor-active .dx-placeholder,.dx-editor-filled.dx-texteditor-with-floating-label.dx-state-focused .dx-placeholder,.dx-editor-filled.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-placeholder{display:block}.dx-editor-filled.dx-texteditor-with-floating-label.dx-dropdowneditor-active .dx-lookup-field,.dx-editor-filled.dx-texteditor-with-floating-label.dx-state-focused .dx-lookup-field,.dx-editor-filled.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-lookup-field{font-size:14px}.dx-editor-filled.dx-texteditor-with-floating-label.dx-dropdowneditor-active .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-floating-label.dx-state-focused .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-texteditor-label{font-size:12px;top:0;margin-top:0;height:19px;line-height:1.35715}.dx-editor-filled.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-textarea .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-floating-label.dx-state-focused.dx-textarea .dx-texteditor-label,.dx-editor-filled.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-textarea .dx-texteditor-label{top:0}.dx-editor-outlined .dx-texteditor-label{top:0;left:0;right:0}.dx-editor-outlined .dx-texteditor-label .dx-label{padding:0}.dx-editor-outlined .dx-texteditor-label .dx-label span{position:relative;font-size:14px;top:0;margin-top:0}.dx-editor-outlined .dx-texteditor-label .dx-label-after,.dx-editor-outlined .dx-texteditor-label .dx-label-before{display:block;-webkit-box-sizing:border-box;box-sizing:border-box}.dx-editor-outlined .dx-texteditor-label .dx-label-before{min-width:9px;border-radius:4px 0 0 4px}.dx-editor-outlined .dx-texteditor-label .dx-label-after{min-width:9px;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;border-radius:0 4px 4px 0}.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label{-webkit-clip-path:inset(-12px -1px -1px 1px);clip-path:inset(-12px -1px -1px 1px)}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty{border:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-texteditor-label .dx-label{border-bottom:1px solid #ddd;border-top:1px solid #ddd}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-texteditor-label .dx-label span{-webkit-transition:font-size .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);transition:font-size .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);-webkit-transform:translate(0);transform:translate(0);font-size:14px;top:50%;height:19px;margin-top:-9.5px;line-height:1.35715}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-texteditor-label .dx-label-before{border-color:#ddd;border-style:solid;height:100%;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-textarea .dx-texteditor-label .dx-label span{top:7px;margin-top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-lookup-field{font-size:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-placeholder{display:none}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-invalid,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-invalid{border:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-invalid .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-invalid .dx-texteditor-label .dx-label{border-bottom:1px solid #d9534f66;border-top:1px solid #d9534f66}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-invalid .dx-texteditor-label .dx-label span{-webkit-transition:font-size .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);transition:font-size .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);-webkit-transform:translate(0);transform:translate(0);font-size:14px;top:50%;height:19px;margin-top:-9.5px;line-height:1.35715}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-invalid .dx-texteditor-label .dx-label-before{border-color:#d9534f66;border-style:solid;height:100%;border-top:1px solid #d9534f66;border-bottom:1px solid #d9534f66}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-invalid.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-invalid.dx-textarea .dx-texteditor-label .dx-label span{top:7px;margin-top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-invalid .dx-lookup-field{font-size:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-invalid .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-invalid .dx-placeholder{display:none}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover{border:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover .dx-texteditor-label .dx-label{border-bottom:1px solid #337ab766;border-top:1px solid #337ab766}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover .dx-texteditor-label .dx-label span{-webkit-transition:font-size .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);transition:font-size .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);-webkit-transform:translate(0);transform:translate(0);font-size:14px;top:50%;height:19px;margin-top:-9.5px;line-height:1.35715}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover .dx-texteditor-label .dx-label-before{border-color:#337ab766;border-style:solid;height:100%;border-top:1px solid #337ab766;border-bottom:1px solid #337ab766}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span{top:7px;margin-top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover .dx-lookup-field{font-size:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover .dx-placeholder{display:none}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-dropdowneditor-active,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-dropdowneditor-active{border:0;outline:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-dropdowneditor-active .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-dropdowneditor-active .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-dropdowneditor-active .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-dropdowneditor-active .dx-texteditor-label .dx-label{height:100%;border-bottom:1px solid #337ab766;border-top:0;border-left:1px solid #0000;margin-left:-1px;-webkit-clip-path:inset(-12px -1px -1px 1px);clip-path:inset(-12px -1px -1px 1px);padding:0 2px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-dropdowneditor-active .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-dropdowneditor-active .dx-texteditor-label .dx-label span{-webkit-transform:translateY(-7.5px);transform:translateY(-7.5px);font-size:12px;line-height:1.35715;height:19px;margin-top:0;top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-dropdowneditor-active .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-dropdowneditor-active .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-dropdowneditor-active .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-dropdowneditor-active .dx-texteditor-label .dx-label-before{border-color:#337ab766;border-style:solid;border-top:1px solid #337ab766;border-bottom:1px solid #337ab766;height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-dropdowneditor-active .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-dropdowneditor-active .dx-lookup-field{font-size:14px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-dropdowneditor-active.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-dropdowneditor-active.dx-rtl .dx-texteditor-label .dx-label-before{border-right:1px solid #337ab766;border-radius:0 4px 4px 0;border-left:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-dropdowneditor-active.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-dropdowneditor-active.dx-rtl .dx-texteditor-label .dx-label-after{border-left:1px solid #337ab766;border-radius:4px 0 0 4px;border-right:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-invalid,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-invalid{border:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-invalid .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label{border-bottom:1px solid #d9534f;border-top:1px solid #d9534f}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label span{-webkit-transition:font-size .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);transition:font-size .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);-webkit-transform:translate(0);transform:translate(0);font-size:14px;top:50%;height:19px;margin-top:-9.5px;line-height:1.35715}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-before{border-color:#d9534f;border-style:solid;height:100%;border-top:1px solid #d9534f;border-bottom:1px solid #d9534f}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-invalid.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-invalid.dx-textarea .dx-texteditor-label .dx-label span{top:7px;margin-top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-invalid .dx-lookup-field{font-size:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-hover.dx-invalid .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-hover.dx-invalid .dx-placeholder{display:none}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-dropdowneditor-active,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-dropdowneditor-active{border:0;outline:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-dropdowneditor-active .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-dropdowneditor-active .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-dropdowneditor-active .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-dropdowneditor-active .dx-texteditor-label .dx-label{height:100%;border-bottom:1px solid #ddd;border-top:0;border-left:1px solid #0000;margin-left:-1px;-webkit-clip-path:inset(-12px -1px -1px 1px);clip-path:inset(-12px -1px -1px 1px);padding:0 2px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-dropdowneditor-active .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-dropdowneditor-active .dx-texteditor-label .dx-label span{-webkit-transform:translateY(-7.5px);transform:translateY(-7.5px);font-size:12px;line-height:1.35715;height:19px;margin-top:0;top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-dropdowneditor-active .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-dropdowneditor-active .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-dropdowneditor-active .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-dropdowneditor-active .dx-texteditor-label .dx-label-before{border-color:#ddd;border-style:solid;border-top:1px solid #ddd;border-bottom:1px solid #ddd;height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-dropdowneditor-active .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-dropdowneditor-active .dx-lookup-field{font-size:14px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-dropdowneditor-active.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-dropdowneditor-active.dx-rtl .dx-texteditor-label .dx-label-before{border-right:1px solid #ddd;border-radius:0 4px 4px 0;border-left:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-dropdowneditor-active.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-dropdowneditor-active.dx-rtl .dx-texteditor-label .dx-label-after{border-left:1px solid #ddd;border-radius:4px 0 0 4px;border-right:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly{border:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-texteditor-label .dx-label{border-bottom:1px dashed #ddd;border-top:1px dashed #ddd}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-texteditor-label .dx-label span{-webkit-transition:font-size .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);transition:font-size .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);-webkit-transform:translate(0);transform:translate(0);font-size:14px;top:50%;height:19px;margin-top:-9.5px;line-height:1.35715}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-texteditor-label .dx-label-before{border-color:#ddd;border-style:dashed;height:100%;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea .dx-texteditor-label .dx-label span{top:7px;margin-top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-lookup-field{font-size:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-placeholder{display:none}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-readonly.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-readonly.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-readonly.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-readonly.dx-state-hover{border:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label{border-bottom:1px dashed #337ab766;border-top:1px dashed #337ab766}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label span{-webkit-transition:font-size .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);transition:font-size .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);-webkit-transform:translate(0);transform:translate(0);font-size:14px;top:50%;height:19px;margin-top:-9.5px;line-height:1.35715}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-before{border-color:#337ab766;border-style:dashed;height:100%;border-top:1px dashed #337ab766;border-bottom:1px dashed #337ab766}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-readonly.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-readonly.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-readonly.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-readonly.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span{top:7px;margin-top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-lookup-field{font-size:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-readonly.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-readonly.dx-state-hover .dx-placeholder{display:none}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover{border:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label{border-bottom:1px dashed #337ab7;border-top:1px dashed #337ab7}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span{-webkit-transition:font-size .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);transition:font-size .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);-webkit-transform:translate(0);transform:translate(0);font-size:14px;top:50%;height:19px;margin-top:-9.5px;line-height:1.35715}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before{border-color:#337ab7;border-style:dashed;height:100%;border-top:1px dashed #337ab7;border-bottom:1px dashed #337ab7}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover.dx-textarea .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-textarea .dx-texteditor-label .dx-label span{top:7px;margin-top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-lookup-field{font-size:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-disabled.dx-textarea.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea.dx-state-focused.dx-state-hover .dx-placeholder{display:none}.dx-editor-outlined.dx-texteditor-with-floating-label,.dx-editor-outlined.dx-texteditor-with-label{border:0;outline:0;position:relative;margin-top:7.5px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea .dx-texteditor-input-container,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea .dx-texteditor-input-container{padding-top:7px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea .dx-texteditor-input-container .dx-texteditor-input,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea .dx-texteditor-input-container .dx-texteditor-input{padding-top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-invalid,.dx-editor-outlined.dx-texteditor-with-label.dx-invalid{border:0;outline:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-invalid .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-invalid .dx-texteditor-label .dx-label{height:100%;border-bottom:1px solid #d9534f66;border-top:0;border-left:1px solid #0000;margin-left:-1px;-webkit-clip-path:inset(-12px -1px -1px 1px);clip-path:inset(-12px -1px -1px 1px);padding:0 2px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-invalid .dx-texteditor-label .dx-label span{-webkit-transform:translateY(-7.5px);transform:translateY(-7.5px);font-size:12px;line-height:1.35715;height:19px;margin-top:0;top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-invalid .dx-texteditor-label .dx-label-before{border-color:#d9534f66;border-style:solid;border-top:1px solid #d9534f66;border-bottom:1px solid #d9534f66;height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-invalid .dx-lookup-field{font-size:14px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before{border-right:1px solid #d9534f66;border-radius:0 4px 4px 0;border-left:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after{border-left:1px solid #d9534f66;border-radius:4px 0 0 4px;border-right:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-state-hover{border:0;outline:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-state-hover .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label{height:100%;border-bottom:1px dashed #337ab766;border-top:0;border-left:1px dashed #0000;margin-left:-1px;-webkit-clip-path:inset(-12px -1px -1px 1px);clip-path:inset(-12px -1px -1px 1px);padding:0 2px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label span{-webkit-transform:translateY(-7.5px);transform:translateY(-7.5px);font-size:12px;line-height:1.35715;height:19px;margin-top:0;top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-state-hover .dx-texteditor-label .dx-label-before{border-color:#337ab766;border-style:dashed;border-top:1px dashed #337ab766;border-bottom:1px dashed #337ab766;height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-state-hover .dx-lookup-field{font-size:14px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-before{border-right:1px dashed #337ab766;border-radius:0 4px 4px 0;border-left:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-after{border-left:1px dashed #337ab766;border-radius:4px 0 0 4px;border-right:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-disabled,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly,.dx-editor-outlined.dx-texteditor-with-label.dx-state-disabled,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly{border:0;outline:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-disabled .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-disabled .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-disabled .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-disabled .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly .dx-texteditor-label .dx-label{height:100%;border-bottom:1px dashed #ddd;border-top:0;border-left:1px dashed #0000;margin-left:-1px;-webkit-clip-path:inset(-12px -1px -1px 1px);clip-path:inset(-12px -1px -1px 1px);padding:0 2px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-disabled .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-state-disabled .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly .dx-texteditor-label .dx-label span{-webkit-transform:translateY(-7.5px);transform:translateY(-7.5px);font-size:12px;line-height:1.35715;height:19px;margin-top:0;top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-disabled .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-disabled .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-disabled .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-disabled .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly .dx-texteditor-label .dx-label-before{border-color:#ddd;border-style:dashed;border-top:1px dashed #ddd;border-bottom:1px dashed #ddd;height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-disabled .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-state-disabled .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly .dx-lookup-field{font-size:14px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-disabled.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-disabled.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-rtl .dx-texteditor-label .dx-label-before{border-right:1px dashed #ddd;border-radius:0 4px 4px 0;border-left:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-disabled.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-readonly.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-disabled.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-readonly.dx-rtl .dx-texteditor-label .dx-label-after{border-left:1px dashed #ddd;border-radius:4px 0 0 4px;border-right:0}.dx-editor-outlined.dx-texteditor-with-floating-label .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label .dx-texteditor-label .dx-label{padding:0 2px;border-bottom:1px solid #ddd}.dx-editor-outlined.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label .dx-texteditor-label .dx-label span{-webkit-transform:translateY(-7.5px);transform:translateY(-7.5px);font-size:12px;line-height:1.35715;height:19px;top:0;margin-top:0}.dx-editor-outlined.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label .dx-texteditor-label .dx-label-before{border-left-width:1px;border-right-width:0;border-color:#ddd;border-style:solid}.dx-editor-outlined.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label .dx-texteditor-label .dx-label-after{border-right-width:1px;border-left-width:0;border-color:#ddd;border-style:solid}.dx-editor-outlined.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label .dx-texteditor-label .dx-label-before{height:100%;border-top:1px solid #ddd;border-bottom:1px solid #ddd}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-rtl .dx-texteditor-label .dx-label-before,.dx-rtl .dx-editor-outlined.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label-before,.dx-rtl .dx-editor-outlined.dx-texteditor-with-label .dx-texteditor-label .dx-label-before{border-right-width:1px;border-radius:0 4px 4px 0;border-left-width:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-rtl .dx-texteditor-label .dx-label-after,.dx-rtl .dx-editor-outlined.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label-after,.dx-rtl .dx-editor-outlined.dx-texteditor-with-label .dx-texteditor-label .dx-label-after{border-left-width:1px;border-radius:4px 0 0 4px;border-right-width:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover{border:0;outline:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover .dx-texteditor-label .dx-label{height:100%;border-bottom:1px solid #337ab766;border-top:0;border-left:1px solid #0000;margin-left:-1px;-webkit-clip-path:inset(-12px -1px -1px 1px);clip-path:inset(-12px -1px -1px 1px);padding:0 2px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover .dx-texteditor-label .dx-label span{-webkit-transform:translateY(-7.5px);transform:translateY(-7.5px);font-size:12px;line-height:1.35715;height:19px;margin-top:0;top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover .dx-texteditor-label .dx-label-before{border-color:#337ab766;border-style:solid;border-top:1px solid #337ab766;border-bottom:1px solid #337ab766;height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover .dx-lookup-field{font-size:14px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-before{border-right:1px solid #337ab766;border-radius:0 4px 4px 0;border-left:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-after{border-left:1px solid #337ab766;border-radius:4px 0 0 4px;border-right:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-invalid,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-invalid{border:0;outline:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-invalid .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label{height:100%;border-bottom:1px solid #d9534f;border-top:0;border-left:1px solid #0000;margin-left:-1px;-webkit-clip-path:inset(-12px -1px -1px 1px);clip-path:inset(-12px -1px -1px 1px);padding:0 2px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label span{-webkit-transform:translateY(-7.5px);transform:translateY(-7.5px);font-size:12px;line-height:1.35715;height:19px;margin-top:0;top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-before{border-color:#d9534f;border-style:solid;border-top:1px solid #d9534f;border-bottom:1px solid #d9534f;height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-invalid .dx-lookup-field{font-size:14px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before{border-right:1px solid #d9534f;border-radius:0 4px 4px 0;border-left:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after{border-left:1px solid #d9534f;border-radius:4px 0 0 4px;border-right:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover{border:0;outline:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label{height:100%;border-bottom:1px solid #337ab7;border-top:0;border-left:1px solid #0000;margin-left:-1px;-webkit-clip-path:inset(-12px -1px -1px 1px);clip-path:inset(-12px -1px -1px 1px);padding:0 2px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label span{-webkit-transform:translateY(-7.5px);transform:translateY(-7.5px);font-size:12px;line-height:1.35715;height:19px;margin-top:0;top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover .dx-texteditor-label .dx-label-before{border-color:#337ab7;border-style:solid;border-top:1px solid #337ab7;border-bottom:1px solid #337ab7;height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover .dx-lookup-field{font-size:14px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-before{border-right:1px solid #337ab7;border-radius:0 4px 4px 0;border-left:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-rtl .dx-texteditor-label .dx-label-after{border-left:1px solid #337ab7;border-radius:4px 0 0 4px;border-right:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-invalid,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-invalid,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-invalid,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-invalid,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-invalid,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-invalid,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid{border:0;outline:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-invalid .dx-texteditor-label,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label{height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label{height:100%;border-bottom:1px solid #d9534f;border-top:0;border-left:1px solid #0000;margin-left:-1px;-webkit-clip-path:inset(-12px -1px -1px 1px);clip-path:inset(-12px -1px -1px 1px);padding:0 2px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label span,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label span{-webkit-transform:translateY(-7.5px);transform:translateY(-7.5px);font-size:12px;line-height:1.35715;height:19px;margin-top:0;top:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-invalid .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-texteditor-label .dx-label-before{border-color:#d9534f;border-style:solid;border-top:1px solid #d9534f;border-bottom:1px solid #d9534f;height:100%}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-invalid .dx-lookup-field,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid .dx-lookup-field{font-size:14px}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-before{border-right:1px solid #d9534f;border-radius:0 4px 4px 0;border-left:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover.dx-invalid.dx-rtl .dx-texteditor-label .dx-label-after{border-left:1px solid #d9534f;border-radius:4px 0 0 4px;border-right:0}.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-label.dx-dropdowneditor-active.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-label.dx-state-focused.dx-state-hover .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused .dx-placeholder,.dx-editor-outlined.dx-texteditor-with-label.dx-textarea.dx-state-focused.dx-state-hover .dx-placeholder{display:block}.dx-editor-underlined.dx-texteditor-with-floating-label,.dx-editor-underlined.dx-texteditor-with-label{position:relative}.dx-editor-underlined.dx-texteditor-with-floating-label .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-label .dx-texteditor-label{-webkit-transform:translate(0);transform:translate(0);top:0;margin-top:0;height:19px;line-height:1.35715}.dx-editor-underlined.dx-texteditor-with-floating-label .dx-placeholder:before,.dx-editor-underlined.dx-texteditor-with-label .dx-placeholder:before{padding-top:11px}.dx-editor-underlined.dx-texteditor-with-floating-label .dx-texteditor-input,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup .dx-lookup-field,.dx-editor-underlined.dx-texteditor-with-label .dx-texteditor-input,.dx-editor-underlined.dx-texteditor-with-label.dx-lookup .dx-lookup-field{padding-top:11px;padding-bottom:4px}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-textarea .dx-texteditor-container,.dx-editor-underlined.dx-texteditor-with-label.dx-textarea .dx-texteditor-container{padding-top:11px}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-textarea .dx-placeholder:before,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-textarea .dx-texteditor-input,.dx-editor-underlined.dx-texteditor-with-label.dx-textarea .dx-placeholder:before,.dx-editor-underlined.dx-texteditor-with-label.dx-textarea .dx-texteditor-input{padding-top:0}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-textarea .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-label.dx-textarea .dx-texteditor-label{top:0}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup-empty .dx-placeholder,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-placeholder,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-placeholder,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-placeholder{display:none}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup-empty .dx-lookup-field,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-lookup-field,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-lookup-field,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-lookup-field{font-size:0}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup-empty .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-texteditor-empty .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly .dx-texteditor-label{-webkit-transition:font-size .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);transition:font-size .2s cubic-bezier(0,0,.2,1),transform .2s cubic-bezier(0,0,.2,1),top .2s cubic-bezier(0,0,.2,1),-webkit-transform .2s cubic-bezier(0,0,.2,1);-webkit-transform:translate(0);transform:translate(0);font-size:14px;top:50%;height:19px;margin-top:-9.5px;line-height:1.35715}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-textarea .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-textarea .dx-texteditor-label{top:11px;margin-top:0;-webkit-transform:translate(0);transform:translate(0);font-size:14px;line-height:1.35715;height:19px}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-state-readonly.dx-textarea .dx-placeholder,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-lookup-empty.dx-textarea .dx-placeholder,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-state-readonly.dx-textarea .dx-placeholder,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-texteditor-empty.dx-textarea .dx-placeholder{display:none}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active .dx-placeholder,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-state-focused .dx-placeholder,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-placeholder{display:block}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active .dx-lookup-field,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-state-focused .dx-lookup-field,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-lookup-field{font-size:14px}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-state-focused .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused .dx-texteditor-label{-webkit-transform:translate(0);transform:translate(0);font-size:12px;top:0;margin-top:0;height:19px;line-height:1.35715}.dx-editor-underlined.dx-texteditor-with-floating-label.dx-dropdowneditor-active.dx-textarea .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-state-focused.dx-textarea .dx-texteditor-label,.dx-editor-underlined.dx-texteditor-with-floating-label.dx-textarea.dx-state-focused.dx-textarea .dx-texteditor-label{top:0}.dx-editor-underlined.dx-texteditor-with-before-buttons .dx-texteditor-input-container .dx-texteditor-input{padding-left:9px}.dx-rtl.dx-editor-underlined.dx-texteditor-with-before-buttons .dx-texteditor-input-container .dx-texteditor-input{padding-left:0;padding-right:9px}.dx-editor-underlined.dx-texteditor-with-before-buttons .dx-texteditor-input-container .dx-placeholder{left:9px}.dx-rtl.dx-editor-underlined.dx-texteditor-with-before-buttons .dx-texteditor-input-container .dx-placeholder{left:0;right:9px}.dx-editor-underlined.dx-texteditor-with-before-buttons .dx-texteditor-label .dx-label{padding-left:9px}.dx-editor-underlined.dx-texteditor-with-before-buttons.dx-rtl .dx-texteditor-label .dx-label{padding-left:0;padding-right:9px}.dx-editor-underlined.dx-texteditor-with-before-buttons .dx-texteditor-buttons-container>.dx-button:first-child{margin-left:0}.dx-editor-underlined.dx-texteditor-with-before-buttons .dx-texteditor-buttons-container>.dx-button:last-child{margin-right:0}.dx-rtl.dx-editor-underlined.dx-texteditor-with-before-buttons .dx-texteditor-buttons-container>.dx-button:first-child{margin-left:1px;margin-right:0}.dx-rtl.dx-editor-underlined.dx-texteditor-with-before-buttons .dx-texteditor-buttons-container>.dx-button:last-child{margin-left:0;margin-right:1px}.dx-rtl.dx-editor-underlined.dx-texteditor-with-before-buttons .dx-texteditor-buttons-container>.dx-button:first-child:last-child{margin-left:0;margin-right:0}.dx-invalid.dx-texteditor{border-color:#d9534f66}.dx-invalid.dx-texteditor.dx-editor-filled.dx-state-focused,.dx-invalid.dx-texteditor.dx-editor-outlined.dx-state-focused,.dx-invalid.dx-texteditor.dx-editor-underlined.dx-state-focused{border-color:#d9534f}.dx-invalid.dx-texteditor.dx-editor-filled.dx-show-invalid-badge .dx-texteditor-input-container:after,.dx-invalid.dx-texteditor.dx-editor-outlined.dx-show-invalid-badge .dx-texteditor-input-container:after,.dx-invalid.dx-texteditor.dx-editor-underlined.dx-show-invalid-badge .dx-texteditor-input-container:after{pointer-events:none;font-weight:700;position:absolute;top:50%;margin-top:-9px;width:18px;height:18px;text-align:center;line-height:18px;font-size:13px;background-color:#d9534f;color:#fff;content:\"!\";border-radius:50%}.dx-invalid.dx-texteditor.dx-editor-filled{background-color:#d9534f1a;border-color:#0000}.dx-invalid.dx-texteditor.dx-editor-filled.dx-state-focused{background:0 0}.dx-editor-filled .dx-texteditor-buttons-container:first-child>.dx-button:last-child,.dx-editor-outlined .dx-texteditor-buttons-container:first-child>.dx-button:last-child{margin-right:0}.dx-editor-filled .dx-texteditor-buttons-container:last-child>.dx-button:first-child,.dx-editor-outlined .dx-texteditor-buttons-container:last-child>.dx-button:first-child{margin-left:0}.dx-rtl.dx-editor-filled .dx-texteditor-buttons-container:first-child>.dx-button:first-child,.dx-rtl.dx-editor-outlined .dx-texteditor-buttons-container:first-child>.dx-button:first-child{margin-left:1px;margin-right:1px}.dx-rtl.dx-editor-filled .dx-texteditor-buttons-container:first-child>.dx-button:first-child:last-child,.dx-rtl.dx-editor-filled .dx-texteditor-buttons-container:first-child>.dx-button:last-child,.dx-rtl.dx-editor-outlined .dx-texteditor-buttons-container:first-child>.dx-button:first-child:last-child,.dx-rtl.dx-editor-outlined .dx-texteditor-buttons-container:first-child>.dx-button:last-child{margin-left:0;margin-right:1px}.dx-rtl.dx-editor-filled .dx-texteditor-buttons-container:last-child>.dx-button:first-child,.dx-rtl.dx-editor-outlined .dx-texteditor-buttons-container:last-child>.dx-button:first-child{margin-left:1px;margin-right:0}.dx-rtl.dx-editor-filled .dx-texteditor-buttons-container:last-child>.dx-button:last-child,.dx-rtl.dx-editor-outlined .dx-texteditor-buttons-container:last-child>.dx-button:last-child{margin-left:1px;margin-right:1px}.dx-valid.dx-texteditor.dx-editor-filled .dx-texteditor-input-container:after,.dx-valid.dx-texteditor.dx-editor-outlined .dx-texteditor-input-container:after,.dx-valid.dx-texteditor.dx-editor-underlined .dx-texteditor-input-container:after{pointer-events:none;font-weight:700;position:absolute;top:50%;margin-top:-9px;width:18px;height:18px;text-align:center;line-height:18px;font-size:13px;font-family:DXIcons,sans-serif;color:#5cb85c;content:\"\\\\f005\";opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-animation:dx-valid-badge-frames .3s cubic-bezier(1,.008,.565,1.65) .1s forwards;animation:dx-valid-badge-frames .3s cubic-bezier(1,.008,.565,1.65) .1s forwards}.dx-validation-pending.dx-texteditor.dx-editor-filled .dx-texteditor-input-container .dx-pending-indicator,.dx-validation-pending.dx-texteditor.dx-editor-outlined .dx-texteditor-input-container .dx-pending-indicator,.dx-validation-pending.dx-texteditor.dx-editor-underlined .dx-texteditor-input-container .dx-pending-indicator{pointer-events:none;position:absolute;top:50%;margin-top:-11px;width:22px;height:22px}.dx-rtl .dx-placeholder,.dx-rtl .dx-placeholder:before{right:0;left:auto}.dx-editor-underlined.dx-rtl .dx-placeholder,.dx-editor-underlined.dx-rtl .dx-placeholder:before{padding-right:0}.dx-searchbox .dx-icon-search{font:17px/18px DXIcons;position:absolute;top:50%;margin-top:-17px;width:34px;height:34px;background-position:8px 8px;background-size:18px 18px;padding:8px;text-align:center;color:#999}.dx-searchbox .dx-icon-search:before{content:\"\\\\f027\";color:#999}.dx-searchbox .dx-placeholder:before,.dx-searchbox .dx-texteditor-input{padding-left:34px}.dx-rtl .dx-searchbox .dx-placeholder:before,.dx-rtl .dx-searchbox .dx-texteditor-input,.dx-rtl.dx-searchbox .dx-placeholder:before,.dx-rtl.dx-searchbox .dx-texteditor-input{padding-right:34px;padding-left:0}.dx-searchbox.dx-editor-underlined .dx-texteditor-buttons-container+.dx-texteditor-input-container .dx-texteditor-input,.dx-searchbox.dx-editor-underlined .dx-texteditor-input{padding-left:34px}.dx-rtl .dx-searchbox.dx-editor-underlined .dx-texteditor-buttons-container+.dx-texteditor-input-container .dx-texteditor-input,.dx-rtl .dx-searchbox.dx-editor-underlined .dx-texteditor-input,.dx-rtl.dx-searchbox.dx-editor-underlined .dx-texteditor-buttons-container+.dx-texteditor-input-container .dx-texteditor-input,.dx-rtl.dx-searchbox.dx-editor-underlined .dx-texteditor-input{padding-right:34px;padding-left:0}.dx-searchbox.dx-editor-filled .dx-texteditor-label .dx-label-before,.dx-searchbox.dx-editor-outlined .dx-texteditor-label .dx-label-before,.dx-searchbox.dx-editor-underlined .dx-texteditor-label .dx-label-before{min-width:0}.dx-searchbar{padding-bottom:5px}.dx-searchbar .dx-texteditor{margin:0}.dx-dropdowneditor{position:relative}.dx-dropdowneditor.dx-dropdowneditor-field-clickable,.dx-dropdowneditor.dx-dropdowneditor-field-clickable .dx-texteditor-input{cursor:pointer}.dx-dropdowneditor.dx-dropdowneditor-field-clickable .dx-texteditor-buttons-container .dx-state-disabled .dx-button,.dx-dropdowneditor.dx-dropdowneditor-field-clickable .dx-texteditor-buttons-container .dx-state-disabled.dx-button{pointer-events:auto}.dx-dropdowneditor-input-wrapper{-webkit-tap-highlight-color:transparent;overflow:hidden;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.dx-dropdowneditor-input-wrapper .dx-texteditor{border:none;margin:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dx-dropdowneditor-input-wrapper .dx-texteditor-input{text-overflow:ellipsis}.dx-dropdowneditor-input-wrapper .dx-texteditor-input::-ms-clear{width:0;height:0}.dx-dropdowneditor-field-template-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;position:relative;-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.dx-dropdowneditor-field-template-wrapper,.dx-dropdowneditor-field-template-wrapper>*{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dx-dropdowneditor-active .dx-dropdowneditor-icon{opacity:.35}.dx-dropdowneditor-button{position:relative;float:right;height:100%;cursor:pointer;width:34px;min-width:34px;padding:1px;border-radius:4px}.dx-dropdowneditor-button .dx-button-content{text-align:center;white-space:nowrap}.dx-rtl .dx-dropdowneditor-button,.dx-rtl.dx-dropdowneditor-button{float:left}.dx-dropdowneditor-button.dx-dropdowneditor-readonly{cursor:default}.dx-dropdowneditor-icon{background-position:50%;background-repeat:no-repeat;border:1px solid #0000;color:#333;font:18px/18px DXIcons;width:32px;height:100%;text-align:center;border-radius:3px}.dx-state-disabled .dx-dropdowneditor,.dx-state-disabled.dx-dropdowneditor{cursor:default}.dx-state-disabled .dx-dropdowneditor-button{cursor:inherit}.dx-state-disabled .dx-dropdowneditor-icon{opacity:.2}.dx-dropdowneditor-button.dx-button-mode-contained,.dx-dropdowneditor-button.dx-button-mode-outlined,.dx-dropdowneditor-button.dx-button-mode-text{background:0 0}.dx-state-disabled .dx-dropdowneditor-button .dx-dropdowneditor-icon,.dx-state-readonly .dx-dropdowneditor-button .dx-dropdowneditor-icon{opacity:1}.dx-dropdowneditor-icon:before{content:\"\\\\f001\";position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-dropdowneditor-input-wrapper .dx-texteditor.dx-editor-filled,.dx-dropdowneditor-input-wrapper .dx-texteditor.dx-editor-outlined,.dx-dropdowneditor-input-wrapper .dx-texteditor.dx-editor-underlined{border:none;background:0 0}.dx-dropdowneditor-input-wrapper .dx-texteditor.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label,.dx-dropdowneditor-input-wrapper .dx-texteditor.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label-after,.dx-dropdowneditor-input-wrapper .dx-texteditor.dx-texteditor-with-floating-label .dx-texteditor-label .dx-label-before,.dx-dropdowneditor-input-wrapper .dx-texteditor.dx-texteditor-with-label .dx-texteditor-label .dx-label,.dx-dropdowneditor-input-wrapper .dx-texteditor.dx-texteditor-with-label .dx-texteditor-label .dx-label-after,.dx-dropdowneditor-input-wrapper .dx-texteditor.dx-texteditor-with-label .dx-texteditor-label .dx-label-before{border:none}.dx-dropdowneditor-button-visible .dx-texteditor-input{padding-right:0}.dx-rtl .dx-dropdowneditor-button-visible .dx-texteditor-input,.dx-rtl.dx-dropdowneditor-button-visible .dx-texteditor-input{padding-right:9px;padding-left:0}.dx-rtl .dx-dropdowneditor-button-visible.dx-editor-underlined .dx-texteditor-input,.dx-rtl.dx-dropdowneditor-button-visible.dx-editor-underlined .dx-texteditor-input{padding-right:0}.dx-invalid .dx-texteditor-input,.dx-valid .dx-texteditor-input,.dx-validation-pending .dx-texteditor-input{padding-right:26px}.dx-invalid.dx-rtl .dx-texteditor-input,.dx-valid.dx-rtl .dx-texteditor-input,.dx-validation-pending.dx-rtl .dx-texteditor-input{padding-right:9px;padding-left:26px}.dx-dropdowneditor.dx-state-active .dx-dropdowneditor-icon,.dx-dropdowneditor.dx-state-hover:not(.dx-custom-button-hovered) .dx-dropdowneditor-icon{background-color:#e6e6e6;border-color:#0000}.dx-editor-filled.dx-dropdowneditor.dx-state-active .dx-dropdowneditor-icon,.dx-editor-filled.dx-dropdowneditor.dx-state-hover:not(.dx-custom-button-hovered) .dx-dropdowneditor-icon{background-color:#337ab733}.dx-dropdowneditor-button.dx-state-active .dx-dropdowneditor-icon,.dx-dropdowneditor.dx-dropdowneditor-active .dx-dropdowneditor-icon{background-color:#b3b3b3;border-color:#0000;color:#333;opacity:1}.dx-editor-filled .dx-dropdowneditor-button.dx-state-active .dx-dropdowneditor-icon,.dx-editor-filled .dx-dropdowneditor.dx-dropdowneditor-active .dx-dropdowneditor-icon,.dx-editor-filled.dx-dropdowneditor-button.dx-state-active .dx-dropdowneditor-icon,.dx-editor-filled.dx-dropdowneditor.dx-dropdowneditor-active .dx-dropdowneditor-icon{background-color:#337ab74d}.dx-invalid.dx-dropdowneditor .dx-texteditor-container:after{right:38px}.dx-rtl .dx-invalid.dx-dropdowneditor .dx-texteditor-container:after,.dx-rtl.dx-invalid.dx-dropdowneditor .dx-texteditor-container:after{right:auto;left:38px}.dx-invalid.dx-dropdowneditor.dx-show-clear-button:not(.dx-texteditor-empty) .dx-texteditor-container:after{right:68px}.dx-rtl .dx-invalid.dx-dropdowneditor.dx-show-clear-button:not(.dx-texteditor-empty) .dx-texteditor-container:after,.dx-rtl.dx-invalid.dx-dropdowneditor.dx-show-clear-button:not(.dx-texteditor-empty) .dx-texteditor-container:after{right:auto;left:68px}.dx-state-hover.dx-invalid.dx-dropdowneditor.dx-editor-filled .dx-dropdowneditor-icon{background-color:#d9534f33}.dx-dropdowneditor-active.dx-invalid.dx-dropdowneditor.dx-editor-filled .dx-dropdowneditor-icon,.dx-state-active.dx-invalid.dx-dropdowneditor.dx-editor-filled .dx-dropdowneditor-icon{background-color:#d9534f4d}.dx-valid.dx-dropdowneditor .dx-texteditor-container:after{right:38px}.dx-rtl .dx-valid.dx-dropdowneditor .dx-texteditor-container:after,.dx-rtl.dx-valid.dx-dropdowneditor .dx-texteditor-container:after{right:auto;left:38px}.dx-valid.dx-dropdowneditor.dx-show-clear-button:not(.dx-texteditor-empty) .dx-texteditor-container:after{right:68px}.dx-rtl .dx-valid.dx-dropdowneditor.dx-show-clear-button:not(.dx-texteditor-empty) .dx-texteditor-container:after,.dx-rtl.dx-valid.dx-dropdowneditor.dx-show-clear-button:not(.dx-texteditor-empty) .dx-texteditor-container:after{right:auto;left:68px}.dx-list{margin:0;min-height:3em}.dx-list .dx-scrollview-content:focus{outline:0}.dx-wrap-item-text>.dx-list-group>.dx-list-group-body>.dx-list-item>.dx-list-item-content,.dx-wrap-item-text>.dx-list-item>.dx-list-item-content{white-space:normal}.dx-empty-collection .dx-list-select-all{display:none}.dx-list-group-header:before{width:0;height:0;display:block;float:right;margin-top:6px;border-style:solid;border-color:#0000;border-width:5px 5px 0}.dx-list-collapsible-groups .dx-list-group-header{cursor:pointer}.dx-list-collapsible-groups .dx-list-group-header:before{content:\" \"}.dx-list-group-collapsed .dx-list-group-header:before{border-width:0 5px 5px}.dx-list-group-body{overflow:hidden}.dx-list-item{position:static;cursor:pointer;display:table;table-layout:fixed}.dx-list-item,.dx-list-item-content{width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-list-item-content{display:table-cell}.dx-list-item-content:before{content:\"_\";color:#0000;display:inline-block;width:0;float:left}.dx-list .dx-empty-message{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-height:3em;text-align:left}.dx-list-item-badge-container{display:table-cell;width:20px;text-align:right;vertical-align:middle;padding-right:10px}.dx-list-item-badge{float:right;position:relative}.dx-list-item-chevron-container{display:table-cell;vertical-align:middle}.dx-list-item-icon-container{display:inline-block}.dx-list-item-chevron{border-width:2px 0 0 2px;opacity:.3}.dx-list-item-response-wait{opacity:.5;-webkit-transition:opacity .2s linear;transition:opacity .2s linear}.dx-list-slide-menu-content{display:table;width:100%;table-layout:fixed}.dx-list-item-after-bag,.dx-list-item-before-bag{display:table-cell;width:0;height:100%;vertical-align:middle}.dx-list-item-before-bag .dx-list-toggle-delete-switch{display:block;float:left;padding:3px 0}.dx-list-item-before-bag .dx-icon-toggle-delete,.dx-list-item-before-bag .dx-list-select-checkbox{-webkit-transition:.1s linear;transition:.1s linear}.dx-list-item-before-bag .dx-list-select-checkbox{float:left}.dx-list-select-all-label{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-list-item-after-bag .dx-list-reorder-handle{cursor:move;background-repeat:no-repeat;-ms-touch-action:manipulation;touch-action:manipulation}.dx-state-disabled .dx-list-item-after-bag .dx-list-reorder-handle{cursor:default}.dx-list-switchable-menu-shield-positioning{position:relative;-webkit-transform:translateZ(0);transform:translateZ(0)}.dx-list-switchable-delete-bottom-shield,.dx-list-switchable-delete-top-shield{position:absolute;right:0;left:0;cursor:pointer}.dx-list-switchable-delete-top-shield{top:0}.dx-list-switchable-delete-bottom-shield{bottom:0}.dx-list-switchable-delete-item-content-shield{position:absolute;top:0;right:0;bottom:0;left:0}.dx-list-switchable-delete-button-container{position:absolute;top:0;bottom:0;overflow:hidden}.dx-list-switchable-delete-button-wrapper{display:table;height:100%}.dx-list-switchable-delete-button-inner-wrapper{display:table-cell;padding-left:1px;height:100%;vertical-align:middle}.dx-list-switchable-menu-item-shield-positioning,.dx-list-switchable-menu-item-shield-positioning .dx-list-item-content,.dx-list-switchable-menu-item-shield-positioning .dx-list-slide-menu-content{position:relative}.dx-list-switchable-delete-ready .dx-icon-toggle-delete{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}.dx-list-slide-menu-buttons-container{position:absolute;width:100%;top:0;bottom:0;left:0;overflow:hidden}.dx-device-ios .dx-list-slide-menu-buttons-container{-webkit-mask-image:-webkit-radial-gradient(#fff,#000)}.dx-list-slide-menu-buttons{position:relative;top:0;left:0;bottom:0;display:table;height:100%}.dx-list-slide-menu-button{display:table-cell;padding:0 10px;vertical-align:middle;bottom:1px}.dx-list-static-delete-button .dx-button-content{overflow:visible}.dx-list-next-button{padding:5px;text-align:center}.dx-list-next-button .dx-button{padding:0 3em}.dx-state-disabled .dx-list-item,.dx-state-disabled .dx-list-switchable-delete-button,.dx-state-disabled .dx-list-toggle-delete-switch,.dx-state-disabled.dx-list-item{cursor:default}.dx-list-context-menuitem{cursor:pointer}.dx-rtl .dx-list .dx-list-item-badge-container,.dx-rtl.dx-list .dx-list-item-badge-container{padding-left:10px;padding-right:0}.dx-rtl .dx-list .dx-list-item-badge,.dx-rtl.dx-list .dx-list-item-badge{float:left}.dx-rtl .dx-list .dx-list-item-before-bag .dx-list-select-checkbox,.dx-rtl .dx-list .dx-list-item-before-bag .dx-list-toggle-delete-switch,.dx-rtl.dx-list .dx-list-item-before-bag .dx-list-select-checkbox,.dx-rtl.dx-list .dx-list-item-before-bag .dx-list-toggle-delete-switch{float:right}.dx-rtl .dx-list .dx-list-switchable-delete-button-inner-wrapper,.dx-rtl.dx-list .dx-list-switchable-delete-button-inner-wrapper{padding-right:1px;padding-left:0}.dx-rtl .dx-list .dx-list-slide-item-delete-button-container,.dx-rtl.dx-list .dx-list-slide-item-delete-button-container{right:100%;left:0}.dx-rtl .dx-list .dx-list-slide-item-delete-button,.dx-rtl.dx-list .dx-list-slide-item-delete-button{right:auto;left:0}.dx-rtl .dx-list .dx-list-group-header:before,.dx-rtl.dx-list .dx-list-group-header:before{float:left}.dx-list-item-chevron{-webkit-transform:rotate(0);transform:rotate(0);border:none;opacity:1;font:18px/18px DXIcons;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center;margin-left:-5px;color:#333}.dx-rtl .dx-list-item-chevron{margin-left:auto;margin-right:-6px;-webkit-transform:rotate(0);transform:rotate(0)}.dx-list-item-chevron:before{content:\"\\\\f010\"}.dx-list-item-icon-container{width:28px;height:18px;vertical-align:top}.dx-list-item-icon{width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;font-size:18px;text-align:center;line-height:18px}.dx-list-search{margin-bottom:5px}.dx-list{border:none}.dx-list.dx-list-with-search .dx-scrollable-wrapper{height:calc(100% - 41px)}.dx-list.dx-list-select-decorator-enabled .dx-list-item.dx-state-hover .dx-checkbox-icon,.dx-list.dx-list-select-decorator-enabled .dx-list-item.dx-state-hover .dx-radiobutton-icon:before,.dx-list.dx-list-select-decorator-enabled .dx-list-select-all.dx-state-hover .dx-checkbox-icon,.dx-list.dx-list-select-decorator-enabled .dx-list-select-all.dx-state-hover .dx-radiobutton-icon:before{border-color:#265a87}.dx-list.dx-list-select-decorator-enabled .dx-list-item.dx-state-focused .dx-checkbox-icon,.dx-list.dx-list-select-decorator-enabled .dx-list-item.dx-state-focused .dx-radiobutton-icon:before,.dx-list.dx-list-select-decorator-enabled .dx-list-select-all.dx-state-focused .dx-checkbox-icon,.dx-list.dx-list-select-decorator-enabled .dx-list-select-all.dx-state-focused .dx-radiobutton-icon:before{border:1px solid #337ab7}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-hover{background-color:#0000000a;color:#333}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-hover .dx-icon{color:#333}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-hover .dx-icon-toggle-delete{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_6___})}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-list-item-selected{background-color:#0000001a;color:#333}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-list-item-selected .dx-icon{color:#333}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-list-item-selected.dx-state-hover:not(.dx-state-focused){background-color:#00000012;color:#333}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-list-item-selected .dx-icon-toggle-delete{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_6___})}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-focused{background-color:#337ab7;color:#fff}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-focused .dx-icon{color:#fff}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-focused .dx-list-item-chevron{border-color:#fff}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-focused .dx-icon-toggle-delete{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_7___})}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-focused.dx-list-item-selected{background-color:#337ab7b3;color:#fff}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-active{background-color:#337ab7;color:#fff}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-active .dx-icon{color:#fff}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-active .dx-list-slide-item-content{background-color:#337ab7;color:#fff}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-active .dx-icon-toggle-delete{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_7___})}.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item .dx-icon,.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-active .dx-button .dx-icon,.dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item.dx-state-focused .dx-button .dx-icon{color:#333}.dx-list-group-header{font-weight:700;padding:20px 10px 10px;border-top:1px solid #ddd;border-bottom:2px solid #ddd;background:#eeeeee0d;color:#333}.dx-list-group:first-of-type .dx-list-group-header{border-top:none}.dx-list-group-header:before{border-top-color:#333}.dx-list-group-collapsed .dx-list-group-header:before{border-bottom-color:#333}.dx-list-item:first-of-type{border-top:none}.dx-list-item:last-of-type{border-bottom:none}.dx-list-item .dx-icon-toggle-delete{background-size:100%;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_6___})}.dx-list-item.dx-list-item-ghost-reordering.dx-state-focused.dx-state-hover{color:#959595;background:#fff;border-top:1px solid #337ab780;border-bottom:1px solid #337ab780;-webkit-box-shadow:0 0 1px #0000001a,0 1px 3px #0003;box-shadow:0 0 1px #0000001a,0 1px 3px #0003}.dx-list .dx-empty-message,.dx-list-item{border-top:1px solid #ddd;color:#333}.dx-list-item-separator-hidden .dx-list .dx-empty-message,.dx-list-item-separator-hidden .dx-list-item{border-top:none;border-bottom:none}.dx-list .dx-empty-message,.dx-list-item-content{padding:10px}.dx-list-next-button .dx-button .dx-button-content{padding:8px 18px}.dx-list-next-button .dx-button .dx-icon{width:18px;height:18px;font-size:18px;margin-right:9px;margin-left:0}.dx-list-next-button .dx-button .dx-icon.dx-icon-right,.dx-rtl .dx-list-next-button .dx-button .dx-icon,.dx-rtl.dx-list-next-button .dx-button .dx-icon{margin-left:9px;margin-right:0}.dx-rtl .dx-list-next-button .dx-button .dx-icon.dx-icon-right,.dx-rtl.dx-list-next-button .dx-button .dx-icon.dx-icon-right{margin-right:9px;margin-left:0}.dx-list-item-chevron-container{width:16px}.dx-list-border-visible{border:1px solid #ddd}.dx-list-border-visible .dx-list-select-all{border-bottom:1px solid #ddd}.dx-list-item-before-bag.dx-list-toggle-delete-switch-container{width:29px}.dx-list-item-before-bag.dx-list-select-checkbox-container,.dx-list-item-before-bag.dx-list-select-radiobutton-container{width:31px}.dx-list-item-before-bag .dx-button.dx-list-toggle-delete-switch{border:none;background:0 0;-webkit-box-shadow:none;box-shadow:none}.dx-list-item-before-bag .dx-button.dx-list-toggle-delete-switch .dx-button-content{padding:0}.dx-list-item-before-bag .dx-icon-toggle-delete{margin:5px 5px 5px 10px;width:19px;height:19px}.dx-list-item-before-bag .dx-list-select-checkbox,.dx-list-item-before-bag .dx-list-select-radiobutton{margin-top:-1px;margin-bottom:-3px;margin-left:10px}.dx-list-select-all{white-space:nowrap;padding:9px 0 8px}.dx-list-select-all-checkbox{float:left;margin:-1px 0 -3px 10px}.dx-list-select-all-label{line-height:17px;padding:0 10px;margin-top:1px}.dx-list-item-after-bag.dx-list-static-delete-button-container{width:36px}.dx-list-item-after-bag.dx-list-reorder-handle-container{width:33.4px}.dx-list-item-after-bag .dx-list-reorder-handle{font:18px/18px DXIcons;width:28.8px;height:28.8px;background-position:5px 5px;background-size:18px 18px;padding:5px;text-align:center}.dx-list-item-after-bag .dx-list-reorder-handle:before{content:\"\\\\f038\"}.dx-list-slide-menu-button-delete{border:1px solid #0000;color:#fff;background-color:#d9534f}.dx-list-slide-menu-button-menu{border:1px solid #0000;color:#fff;background-color:#337ab7}.dx-list-static-delete-button,.dx-list-switchable-delete-button{margin-right:10px;padding:0}.dx-list-static-delete-button .dx-button-content,.dx-list-switchable-delete-button .dx-button-content{padding:3px}.dx-list-context-menucontent{background-color:#fff;border:1px solid #ddd;border-radius:0;-webkit-box-shadow:0 3px 10px #0000001a;box-shadow:0 3px 10px #0000001a}.dx-state-disabled .dx-list-item,.dx-state-disabled.dx-list-item{background-color:initial;opacity:.6}.dx-rtl .dx-list .dx-empty-message,.dx-rtl.dx-list .dx-empty-message{text-align:right}.dx-rtl .dx-list .dx-list-item-before-bag .dx-icon-toggle-delete,.dx-rtl.dx-list .dx-list-item-before-bag .dx-icon-toggle-delete{margin:5px 10px 5px 5px}.dx-rtl .dx-list .dx-list-item-before-bag .dx-list-select-checkbox,.dx-rtl .dx-list .dx-list-item-before-bag .dx-list-select-radiobutton,.dx-rtl.dx-list .dx-list-item-before-bag .dx-list-select-checkbox,.dx-rtl.dx-list .dx-list-item-before-bag .dx-list-select-radiobutton{margin-right:10px;margin-left:1px}.dx-rtl .dx-list .dx-list-select-all-checkbox,.dx-rtl.dx-list .dx-list-select-all-checkbox{float:right;margin-right:10px;margin-left:1px}.dx-rtl .dx-list .dx-list-switchable-delete-button,.dx-rtl.dx-list .dx-list-switchable-delete-button{margin-left:10px;margin-right:0}.dx-textarea .dx-texteditor-input-container{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.dx-textarea .dx-texteditor-input{resize:none;font-family:inherit;display:block;overflow:auto;white-space:pre-wrap;margin:0}.dx-textarea .dx-texteditor-input-auto-resize{overflow-y:hidden}.dx-textarea .dx-placeholder{height:auto}.dx-textarea .dx-placeholder:before{white-space:normal}.dx-textarea{height:auto}.dx-textarea .dx-icon-clear{top:0;margin-top:0}.dx-textarea.dx-invalid .dx-texteditor-container:after{top:7px;margin-top:0}.dx-numberbox{position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.dx-numberbox input[type=number]{-moz-appearance:textfield}.dx-numberbox input[type=number]::-webkit-inner-spin-button,.dx-numberbox input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.dx-numberbox-spin-container{height:100%}.dx-numberbox-spin-down,.dx-numberbox-spin-up{position:relative;width:100%;height:50%;cursor:pointer}.dx-numberbox-spin-touch-friendly .dx-numberbox-spin-down,.dx-numberbox-spin-touch-friendly .dx-numberbox-spin-up{width:50%;height:100%;display:inline-block}.dx-numberbox-spin-down-icon,.dx-numberbox-spin-up-icon{width:100%;height:100%}.dx-state-disabled .dx-numberbox-spin-container{opacity:.2}.dx-numberbox-spin-container{overflow:hidden;width:34px;border-radius:4px}.dx-numberbox-spin-up-icon{font:14px/1 DXIcons;color:#333}.dx-numberbox-spin-up-icon:before{content:\"\\\\f002\"}.dx-numberbox-spin-down-icon{font:14px/1 DXIcons;color:#333}.dx-numberbox-spin-down-icon:before{content:\"\\\\f001\"}.dx-numberbox-spin-down-icon,.dx-numberbox-spin-up-icon{font-size:18px;text-align:center;line-height:18px;border-radius:3px}.dx-numberbox-spin-down-icon:before,.dx-numberbox-spin-up-icon:before{position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-numberbox-spin-button{padding:1px}.dx-editor-underlined .dx-numberbox-spin-button{background:0 0}.dx-state-hover.dx-numberbox-spin-button .dx-numberbox-spin-down-icon,.dx-state-hover.dx-numberbox-spin-button .dx-numberbox-spin-up-icon{-webkit-box-shadow:inset 0 0 0 1px #0000;box-shadow:inset 0 0 0 1px #0000;background-color:#e6e6e6}.dx-state-active.dx-numberbox-spin-button .dx-numberbox-spin-down-icon,.dx-state-active.dx-numberbox-spin-button .dx-numberbox-spin-up-icon{background-color:#b3b3b3;color:#333}.dx-numberbox-spin-touch-friendly .dx-numberbox-spin-container{width:74px;border-left:none}.dx-numberbox-spin-touch-friendly .dx-numberbox-spin-down-icon,.dx-numberbox-spin-touch-friendly .dx-numberbox-spin-up-icon{background-position:50%}.dx-numberbox.dx-rtl.dx-numberbox-spin-touch-friendly .dx-numberbox-spin-container,.dx-rtl .dx-numberbox.dx-numberbox-spin-touch-friendly .dx-numberbox-spin-container{border-right:none}.dx-numberbox.dx-rtl.dx-numberbox-spin .dx-texteditor-input,.dx-rtl .dx-numberbox.dx-numberbox-spin .dx-texteditor-input{padding-left:9px}.dx-calendar{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;position:relative;display:block}.dx-calendar.dx-calendar-with-footer .dx-calendar-footer{position:absolute;bottom:0;text-align:center;height:45px;width:100%}.dx-calendar-views-wrapper{height:100%}.dx-calendar-navigator,.dx-calendar-views-wrapper{width:100%;position:relative}.dx-calendar-navigator .dx-calendar-caption-button{text-decoration:none;font-size:16px;font-weight:700;text-transform:uppercase;right:36px;left:36px}.dx-calendar-navigator-next-view,.dx-calendar-navigator-previous-view{background:0 0}.dx-calendar-navigator-next-view.dx-button,.dx-calendar-navigator-previous-view.dx-button{margin:0 1px}.dx-calendar-navigator-next-view .dx-button-content,.dx-calendar-navigator-previous-view .dx-button-content{padding:0}.dx-calendar-navigator-previous-view{left:0}.dx-calendar-navigator-next-view{right:0}.dx-calendar-body{overflow:hidden;position:absolute;left:0;right:0;bottom:0;top:52px}.dx-calendar-body .dx-widget,.dx-calendar-body table{position:absolute;width:100%;height:100%}.dx-calendar-body table{direction:ltr;table-layout:fixed;border-spacing:0}.dx-calendar-body table .dx-calendar-week-number-cell{text-align:center;cursor:default;padding:1px 8px 2px;color:#337ab7;font-size:12px;width:39px}.dx-calendar-body td{cursor:pointer;-webkit-box-sizing:content-box;box-sizing:initial}.dx-calendar-body thead th{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-calendar-contoured-date{outline-offset:-1px}.dx-rtl.dx-calendar .dx-calendar-body table{left:0}.dx-rtl.dx-calendar .dx-calendar-body .dx-widget{direction:ltr}.dx-calendar{width:282px;min-width:282px;height:268.6px;min-height:268.6px;background-color:#fff;-webkit-tap-highlight-color:transparent;outline:0;border:1px solid #0000}.dx-calendar.dx-calendar-with-footer{height:323.6px;min-height:293.6px}.dx-calendar.dx-calendar-with-footer .dx-calendar-body{bottom:55px}.dx-calendar.dx-calendar-with-footer .dx-calendar-footer .dx-button{background:0 0}.dx-calendar.dx-calendar-with-footer .dx-calendar-footer .dx-button.dx-state-active{background-color:#d4d4d4}.dx-calendar-navigator{height:36px}.dx-calendar-navigator .dx-button{position:absolute;height:100%;border-radius:0;border-color:#ddd}.dx-calendar-navigator .dx-button.dx-calendar-disabled-navigator-link{visibility:visible;opacity:1}.dx-calendar-navigator .dx-button.dx-calendar-disabled-navigator-link .dx-button-content{opacity:.5}.dx-calendar-navigator .dx-button.dx-state-active:not(.dx-calendar-disabled-navigator-link){z-index:1}.dx-calendar-navigator .dx-button.dx-state-hover:not(.dx-calendar-disabled-navigator-link){z-index:1;border-color:#ddd}.dx-calendar-navigator .dx-calendar-caption-button.dx-button.dx-state-active{background-color:#d4d4d4}.dx-calendar-navigator .dx-calendar-caption-button.dx-button .dx-button-content{color:#337ab7}.dx-calendar-navigator-next-view,.dx-calendar-navigator-previous-view{width:36px}.dx-calendar-navigator-next-view.dx-button .dx-icon,.dx-calendar-navigator-previous-view.dx-button .dx-icon{color:#337ab7}.dx-calendar-navigator-previous-view.dx-button{border-radius:4px 0 0 4px}.dx-calendar-navigator-next-view.dx-button{border-radius:0 4px 4px 0}.dx-calendar-body thead{font-size:10px;font-weight:700;text-transform:uppercase;line-height:1.2}.dx-calendar-body thead tr{height:25px;padding-bottom:10px}.dx-calendar-body thead tr th{-webkit-box-shadow:inset 0 -1px 0 #ddd;box-shadow:inset 0 -1px 0 #ddd;color:#999}.dx-calendar-body table th{color:#999;text-align:center;font-size:12px;padding:1px 0 6px}.dx-calendar-body table .dx-week-number-header{color:#337ab7}.dx-calendar-cell{white-space:normal;text-align:center;padding:1px 8px 2px;color:#333;font-size:15px;border:1px double #0000;width:39px;border-radius:4px}.dx-calendar-cell.dx-calendar-today{font-weight:700}.dx-calendar-cell.dx-state-hover{-webkit-box-shadow:inset 0 -1px 0 1000px #0000000a;box-shadow:inset 0 -1px 0 1000px #0000000a;color:#333}.dx-calendar-cell.dx-calendar-empty-cell:not(.dx-calendar-selected-date),.dx-calendar-cell.dx-calendar-empty-cell:not(.dx-calendar-selected-date).dx-state-active,.dx-calendar-cell.dx-calendar-empty-cell:not(.dx-calendar-selected-date).dx-state-hover,.dx-calendar-cell.dx-calendar-other-view:not(.dx-calendar-selected-date),.dx-calendar-cell.dx-calendar-other-view:not(.dx-calendar-selected-date).dx-state-active,.dx-calendar-cell.dx-calendar-other-view:not(.dx-calendar-selected-date).dx-state-hover{color:#b0b0b0}.dx-calendar-cell.dx-calendar-empty-cell{cursor:default;background:url(${___CSS_LOADER_URL_REPLACEMENT_8___}) 50% no-repeat}.dx-calendar-cell.dx-calendar-empty-cell.dx-state-hover:not(.dx-calendar-selected-date){-webkit-box-shadow:none;box-shadow:none}.dx-calendar-cell.dx-state-active:not(.dx-calendar-empty-cell):not(.dx-calendar-selected-date){-webkit-box-shadow:inset 0 -1px 0 1000px #60606033;box-shadow:inset 0 -1px 0 1000px #60606033}.dx-calendar-cell.dx-calendar-contoured-date:not(.dx-calendar-empty-cell){-webkit-box-shadow:inset 0 0 0 1px #bebebe;box-shadow:inset 0 0 0 1px #bebebe}.dx-calendar-cell.dx-calendar-selected-date,.dx-calendar-cell.dx-calendar-selected-date.dx-calendar-today{color:#fff;-webkit-box-shadow:inset 0 0 0 1000px #337ab7;box-shadow:inset 0 0 0 1000px #337ab7;font-weight:400}.dx-calendar-cell.dx-calendar-selected-date.dx-calendar-contoured-date,.dx-calendar-cell.dx-calendar-selected-date.dx-calendar-today.dx-calendar-contoured-date{-webkit-box-shadow:inset 0 0 0 1px #bebebe,inset 0 0 0 1000px #337ab7;box-shadow:inset 0 0 0 1px #bebebe,inset 0 0 0 1000px #337ab7}.dx-invalid.dx-calendar{border-color:#d9534f66}.dx-invalid.dx-calendar.dx-state-focused{border-color:#d9534f}.dx-popup-wrapper .dx-calendar .dx-calendar-caption-button{margin:0}.dx-texteditor input[type=date]::-webkit-inner-spin-button{height:20px}.dx-datebox-native.dx-state-focused.dx-texteditor-empty .dx-placeholder{display:none}.dx-datebox{max-width:100%}.dx-datebox .dx-texteditor-input::-webkit-datetime-edit{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-datebox.dx-texteditor-empty input::-webkit-datetime-edit{color:#0000}.dx-datebox.dx-texteditor-empty.dx-state-focused input::-webkit-datetime-edit{color:inherit}.dx-datebox-wrapper .dx-popup-content{padding-top:20px;padding-bottom:20px}.dx-rtl .dx-texteditor-input{text-align:right}.dx-datebox-button-cell .dx-button{min-width:90px}.dx-datebox-button-cell .dx-button.dx-datebox-apply-button{margin-right:10px;margin-left:0}.dx-datebox-button-cell .dx-button.dx-datebox-cancel-button{margin-right:0;margin-left:0}.dx-datebox-buttons-container{text-align:right;width:100%}.dx-timeview .dx-state-disabled .dx-widget,.dx-timeview .dx-state-disabled.dx-widget,.dx-timeview.dx-state-disabled .dx-widget,.dx-timeview.dx-state-disabled.dx-widget{opacity:1}.dx-timeview-clock{position:relative;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_9___});min-width:182px;min-height:182px;max-height:182px;background-size:182px;background-repeat:no-repeat;background-position:50% 50%;margin-bottom:20px}.dx-timeview-hourarrow,.dx-timeview-minutearrow{position:absolute;left:50%;width:10px;margin-left:-5px;height:50%;background-position:bottom;background-repeat:no-repeat;-webkit-transform-origin:50% 100%;transform-origin:50% 100%;-webkit-backface-visibility:hidden;backface-visibility:hidden}.dx-timeview-hourarrow{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_10___})}.dx-timeview-minutearrow{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_11___})}.dx-timeview{height:auto;width:auto}.dx-timeview-format12{width:70px;margin-left:5px;margin-right:auto}.dx-rtl .dx-timeview-format12,.dx-timeview-format12.dx-rtl{margin-left:auto;margin-right:5px}.dx-timeview-time-separator{margin:0 5px}.dx-timeview-field{min-height:50px}.dx-timeview-field .dx-numberbox{width:70px}.dx-timeview-field .dx-numberbox.dx-numberbox-spin-touch-friendly{width:110px}.dx-dateview-item{margin:0;height:40px;line-height:40px;text-align:center;font-size:1.3em;color:#333}.dx-dateview-rollers{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.dx-dateview-item-selected-border,.dx-dateviewroller-day .dx-dateview-name-formatter,.dx-dateviewroller-month .dx-dateview-value-formatter{display:none}.dx-dateview-rollers{width:auto;text-align:center;display:block}.dx-dateviewroller-current .dx-dateview-item{-webkit-transition:font-size .2s ease-out;transition:font-size .2s ease-out}.dx-dateviewroller{position:relative;vertical-align:top;cursor:pointer;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;min-width:4em;text-align:center;display:inline-block}.dx-dateviewroller .dx-button{display:none}.dx-dateviewroller .dx-scrollable-content:after,.dx-dateviewroller .dx-scrollable-content:before{content:\"\";height:71px;display:block}.dx-dateviewroller .dx-scrollable-container{height:182px}.dx-dateviewroller.dx-dateviewroller-year{min-width:4.85em}.dx-dateviewroller.dx-state-active .dx-button{display:none}.dx-dateviewroller-month{min-width:12em}.dx-dateviewroller-hours:after{content:\":\";font-size:2.2em;position:absolute;right:-9%;font-weight:700;top:37%;color:#333}.dx-dateviewroller-hours .dx-dateview-item-selected-frame{padding-left:20%}.dx-dateviewroller-minutes .dx-dateview-item-selected-frame{width:80%}.dx-dateview-item-selected{font-size:2.2em}.dx-rtl.dx-dateviewroller-hours:after{left:-9%;right:auto}.dx-dateview-item-selected-frame{position:absolute;top:71px;width:100%}.dx-dateview-item-selected-frame:after,.dx-dateview-item-selected-frame:before{pointer-events:none;-webkit-backface-visibility:hidden;backface-visibility:hidden;content:\"\";display:block;width:100%;position:absolute;height:71px}.dx-dateview-item-selected-frame:before{top:-71px;border-bottom:1px solid #ddd;background-repeat:no-repeat;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#fff0),color-stop(60%,#fffc));background-image:linear-gradient(0deg,#fff0,#fffc 60%)}.dx-dateview-item-selected-frame:after{top:40px;border-top:1px solid #ddd;background-repeat:no-repeat;background-image:-webkit-gradient(linear,left top,left bottom,color-stop(0,#fff0),color-stop(60%,#fffc));background-image:linear-gradient(180deg,#fff0,#fffc 60%)}.dx-dateview-compact .dx-dateview-rollers,.dx-device-phone .dx-dateview-rollers,.dx-device-tablet .dx-dateview-rollers{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.dx-dateview-compact .dx-dateviewroller-month,.dx-device-phone .dx-dateviewroller-month,.dx-device-tablet .dx-dateviewroller-month{min-width:4em}.dx-dateview-compact .dx-dateview-item,.dx-device-phone .dx-dateview-item,.dx-device-tablet .dx-dateview-item{font-size:1.1em}.dx-dateview-compact .dx-dateview-item-selected,.dx-device-phone .dx-dateview-item-selected,.dx-device-tablet .dx-dateview-item-selected{font-size:1.4em}.dx-datebox-wrapper .dx-popup-title{min-height:10px;border-bottom:none;background:0 0}.dx-datebox-wrapper .dx-item{border:none}.dx-datebox-wrapper .dx-popup-bottom .dx-button{min-width:85px;width:auto}.dx-datebox-datetime-time-side{background-color:#ddd3}.dx-datebox-wrapper-rollers.dx-datebox-wrapper-time .dx-popup-content{margin:0 34px}.dx-datebox-wrapper-list .dx-overlay-content{border-top:none}.dx-device-phone .dx-datebox-wrapper-rollers .dx-popup-content{padding:10px}.dx-datebox-time .dx-dropdowneditor-icon{font:18px/18px DXIcons;width:32px;height:100%;text-align:center;border-radius:3px}.dx-datebox-time .dx-dropdowneditor-icon:before{content:\"\\\\f01d\";position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-datebox-date .dx-dropdowneditor-icon{font:18px/18px DXIcons;width:32px;height:100%;text-align:center;border-radius:3px}.dx-datebox-date .dx-dropdowneditor-icon:before{content:\"\\\\f026\";position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-datebox-datetime .dx-dropdowneditor-icon{font:18px/18px DXIcons;width:32px;height:100%;text-align:center;border-radius:3px}.dx-datebox-datetime .dx-dropdowneditor-icon:before{content:\"\\\\f043\";position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-datebox-calendar.dx-rtl.dx-dropdowneditor-active .dx-dropdowneditor-button .dx-dropdowneditor-icon{opacity:1}.dx-datebox-calendar.dx-rtl.dx-editor-underlined{padding-right:0}.dx-datebox-wrapper-calendar .dx-popup-content{padding:0}.dx-datebox-wrapper-calendar .dx-calendar{border:none;margin:20px}.dx-datebox-wrapper-calendar .dx-datebox-container-cell{margin-right:20px;margin-bottom:20px}.dx-datebox-wrapper-calendar.dx-datebox-wrapper-datetime .dx-popup-content{margin-right:0}.dx-datebox-wrapper-calendar.dx-datebox-wrapper-datetime .dx-calendar{margin-bottom:20px}.dx-datebox-wrapper-calendar.dx-datebox-wrapper-datetime .dx-timeview{padding:20px}.dx-datebox-wrapper-calendar.dx-datebox-wrapper-datetime .dx-datebox-container-cell{margin-top:-1px;margin-right:20px}@media (max-width:320px){.dx-datebox-wrapper-calendar .dx-calendar{margin:18px}}.dx-rtl .dx-datebox-wrapper .dx-popup-bottom .dx-toolbar-button+.dx-toolbar-button .dx-button{margin-right:5px;margin-left:0}.dx-datebox-wrapper-list .dx-popup-content{padding:0}.dx-datebox:not(.dx-datebox-native) input[type=date]{line-height:normal}.dx-datebox:not(.dx-datebox-native).dx-auto-width .dx-texteditor-input,.dx-datebox:not(.dx-datebox-native):not(.dx-texteditor-empty).dx-auto-width .dx-texteditor-input{padding-right:26px}.dx-datebox:not(.dx-datebox-native).dx-auto-width.dx-rtl .dx-texteditor-input,.dx-datebox:not(.dx-datebox-native):not(.dx-texteditor-empty).dx-auto-width.dx-rtl .dx-texteditor-input{padding-right:9px;padding-left:26px}.dx-device-ios .dx-datebox.dx-texteditor-empty .dx-texteditor-input{min-height:33px}.dx-dropdownlist-popup-wrapper .dx-list .dx-scrollable-content{margin:0}.dx-dropdownlist-popup-wrapper{height:100%}.dx-dropdownlist-popup-wrapper.dx-popup-wrapper .dx-overlay-content{border-top-width:0;border-bottom-width:1px}.dx-dropdownlist-popup-wrapper.dx-popup-wrapper .dx-overlay-content.dx-dropdowneditor-overlay-flipped{border-top-width:1px;border-bottom-width:0}.dx-dropdownlist-popup-wrapper .dx-popup-content{height:100%;padding:1px}.dx-dropdownlist-popup-wrapper .dx-list{height:100%;min-height:39.0001px}.dx-dropdownlist-popup-wrapper .dx-list:not(.dx-list-select-decorator-enabled){min-height:33.0001px}.dx-dropdownlist-popup-wrapper .dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item-content{padding:7px 9px}.dx-dropdownlist-popup-wrapper .dx-list-select-all{padding:12px 0 8px}.dx-dropdownlist-popup-wrapper .dx-empty-message,.dx-dropdownlist-popup-wrapper .dx-list-item{border-top:0}.dx-dropdownlist-popup-wrapper .dx-empty-message:last-of-type,.dx-dropdownlist-popup-wrapper .dx-list-item:last-of-type{border-bottom:none}.dx-autocomplete .dx-texteditor-input{font-size:1em}.dx-autocomplete.dx-invalid .dx-texteditor-container:after,.dx-autocomplete.dx-valid .dx-texteditor-container:after{right:8px}.dx-rtl .dx-autocomplete.dx-invalid .dx-texteditor-container:after,.dx-rtl .dx-autocomplete.dx-valid .dx-texteditor-container:after,.dx-rtl.dx-autocomplete.dx-invalid .dx-texteditor-container:after,.dx-rtl.dx-autocomplete.dx-valid .dx-texteditor-container:after{left:8px}.dx-autocomplete.dx-validation-pending .dx-texteditor-container .dx-pending-indicator{right:8px}.dx-rtl .dx-autocomplete.dx-validation-pending .dx-texteditor-container .dx-pending-indicator,.dx-rtl.dx-autocomplete.dx-validation-pending .dx-texteditor-container .dx-pending-indicator{left:8px}.dx-loadindicator{width:32px;height:32px;display:inline-block;overflow:hidden;border:none;background-color:initial}.dx-loadindicator-wrapper{width:100%;height:100%;font-size:32px;margin:auto}.dx-loadindicator-image{background-size:contain;background-position:50%;background-repeat:no-repeat;background-image:url(${___CSS_LOADER_URL_REPLACEMENT_5___})}.dx-loadindicator-icon-custom,.dx-loadindicator-image{-webkit-transform-origin:50% 50%;transform-origin:50% 50%}.dx-loadindicator-icon-custom{position:relative;width:100%;height:100%;background-size:100% 100%;-webkit-animation:dx-loadindicator-icon-custom-rotate 1.5s linear infinite;animation:dx-loadindicator-icon-custom-rotate 1.5s linear infinite}@-webkit-keyframes dx-loadindicator-icon-custom-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes dx-loadindicator-icon-custom-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.dx-loadindicator-container>.dx-loadindicator{top:50%;left:50%;position:absolute;margin-top:-16px;margin-left:-16px}.dx-loadindicator-container>.dx-loadindicator.dx-loadindicator{margin-top:-16px;margin-left:-16px}.dx-loadindicator-content{width:100%;height:100%;position:relative}.dx-loadindicator-icon{direction:ltr;position:relative;top:15%;left:15%;width:70%;height:70%}.dx-loadindicator-icon .dx-loadindicator-segment{position:absolute;width:19%;height:30%;left:44.5%;top:37%;opacity:0;background:#606060;border-radius:10% 10% 50% 50%;-webkit-box-shadow:0 0 3px #0003;box-shadow:0 0 3px #0003;-webkit-animation:dx-generic-loadindicator-opacity 1s linear infinite;animation:dx-generic-loadindicator-opacity 1s linear infinite}@-webkit-keyframes dx-generic-loadindicator-opacity{0%{opacity:1}to{opacity:.55}}@keyframes dx-generic-loadindicator-opacity{0%{opacity:1}to{opacity:.55}}.dx-loadindicator-icon .dx-loadindicator-segment0{-webkit-transform:rotate(0) translateY(-142%);transform:rotate(0) translateY(-142%);-webkit-animation-delay:0s;animation-delay:0s}.dx-loadindicator-icon .dx-loadindicator-segment1{-webkit-transform:rotate(45deg) translateY(-142%);transform:rotate(45deg) translateY(-142%);-webkit-animation-delay:-875ms;animation-delay:-875ms}.dx-loadindicator-icon .dx-loadindicator-segment2{-webkit-transform:rotate(90deg) translateY(-142%);transform:rotate(90deg) translateY(-142%);-webkit-animation-delay:-.75s;animation-delay:-.75s}.dx-loadindicator-icon .dx-loadindicator-segment3{-webkit-transform:rotate(135deg) translateY(-142%);transform:rotate(135deg) translateY(-142%);-webkit-animation-delay:-625ms;animation-delay:-625ms}.dx-loadindicator-icon .dx-loadindicator-segment4{-webkit-transform:rotate(180deg) translateY(-142%);transform:rotate(180deg) translateY(-142%);-webkit-animation-delay:-.5s;animation-delay:-.5s}.dx-loadindicator-icon .dx-loadindicator-segment5{-webkit-transform:rotate(225deg) translateY(-142%);transform:rotate(225deg) translateY(-142%);-webkit-animation-delay:-375ms;animation-delay:-375ms}.dx-loadindicator-icon .dx-loadindicator-segment6{-webkit-transform:rotate(270deg) translateY(-142%);transform:rotate(270deg) translateY(-142%);-webkit-animation-delay:-.25s;animation-delay:-.25s}.dx-loadindicator-icon .dx-loadindicator-segment7{-webkit-transform:rotate(315deg) translateY(-142%);transform:rotate(315deg) translateY(-142%);-webkit-animation-delay:-125ms;animation-delay:-125ms}.dx-loadindicator-icon .dx-loadindicator-segment10,.dx-loadindicator-icon .dx-loadindicator-segment11,.dx-loadindicator-icon .dx-loadindicator-segment12,.dx-loadindicator-icon .dx-loadindicator-segment13,.dx-loadindicator-icon .dx-loadindicator-segment14,.dx-loadindicator-icon .dx-loadindicator-segment15,.dx-loadindicator-icon .dx-loadindicator-segment8,.dx-loadindicator-icon .dx-loadindicator-segment9{display:none}.dx-rtl .dx-loadindicator-icon{right:15%;left:0}.dx-treeview-loadindicator-wrapper{text-align:center}.dx-treeview-node-loadindicator{position:absolute}.dx-treeview{height:100%}.dx-treeview .dx-scrollable:focus,.dx-treeview :focus{outline:0}.dx-treeview .dx-empty-message{line-height:normal}.dx-checkbox+.dx-treeview-node-container,.dx-treeview-node-container:first-child{margin:0;display:block}.dx-treeview-select-all-item{width:100%}.dx-treeview-node-container{list-style-position:inside;padding:0;margin:0;display:none;overflow:hidden}.dx-treeview-node-container.dx-treeview-node-container-opened{display:block}.dx-treeview-node{list-style-type:none;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}.dx-treeview-node a{text-decoration:none}.dx-treeview-node .dx-checkbox{position:absolute;margin:0}.dx-treeview-item .dx-treeview-item-content span{vertical-align:middle}.dx-treeview-item.dx-state-disabled{opacity:.5}.dx-treeview-toggle-item-visibility.dx-state-disabled{cursor:default}.dx-rtl .dx-treeview-node-container .dx-treeview-node,.dx-rtl .dx-treeview-node-container .dx-treeview-node.dx-treeview-item-with-checkbox .dx-treeview-item,.dx-rtl .dx-treeview-node-container:first-child>.dx-treeview-node{padding-left:0}.dx-rtl .dx-treeview-node-container .dx-treeview-node .dx-treeview-item .dx-treeview-item-content>.dx-icon{margin-right:0}.dx-rtl .dx-treeview-toggle-item-visibility{left:auto;right:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-treeview-node-loadindicator{right:0;top:8px;left:-1px;width:14px;height:14px}.dx-rtl .dx-treeview-node .dx-checkbox{left:auto}.dx-treeview.dx-rtl.dx-treeview-border-visible .dx-treeview-select-all-item{padding-left:0;padding-right:26px}.dx-treeview.dx-rtl.dx-treeview-border-visible .dx-scrollable-content>.dx-treeview-node-container{padding-left:1px;padding-right:7px}.dx-treeview.dx-rtl .dx-treeview-node{padding-right:15px}.dx-treeview.dx-rtl .dx-treeview-item .dx-treeview-item-content>.dx-icon{margin-left:5px}.dx-treeview.dx-rtl .dx-treeview-item-with-checkbox .dx-treeview-item{padding-right:36px}.dx-treeview.dx-rtl .dx-treeview-item-with-checkbox .dx-checkbox{right:19px;overflow:visible}.dx-treeview.dx-rtl .dx-treeview-select-all-item{padding-left:0;padding-right:19px}.dx-treeview.dx-rtl .dx-treeview-select-all-item .dx-checkbox-text{padding-left:0;padding-right:9px}.dx-treeview.dx-rtl .dx-treeview-toggle-item-visibility{right:-4px}.dx-treeview-search{margin-bottom:5px}.dx-treeview-with-search>.dx-scrollable{height:calc(100% - 41px)}.dx-treeview-border-visible{border:1px solid #ddd}.dx-treeview-border-visible .dx-treeview-select-all-item{padding-left:26px}.dx-treeview-border-visible .dx-scrollable-content>.dx-treeview-node-container{padding:1px 1px 1px 7px}.dx-treeview-select-all-item{margin:0 0 7px;border-bottom:1px solid #ddd;padding:9px 0 11px 20px}.dx-treeview-select-all-item .dx-checkbox-text{padding-left:9px}.dx-treeview-node{padding-left:15px}.dx-state-selected>.dx-treeview-item{color:#333}.dx-treeview-item-with-checkbox .dx-treeview-item{color:#333;padding-left:36px}.dx-treeview-item-with-checkbox .dx-checkbox{top:5px;left:19px}.dx-treeview-item-with-checkbox.dx-state-focused>.dx-checkbox .dx-checkbox-icon{border:1px solid #337ab7}.dx-treeview-item-without-checkbox.dx-state-selected>.dx-treeview-item{color:#333;background-color:#0000001a}.dx-treeview-item-without-checkbox.dx-state-selected:not(.dx-state-focused)>.dx-treeview-item.dx-state-hover{background-color:#00000012}.dx-treeview-item-without-checkbox.dx-state-focused>.dx-treeview-item{background-color:#337ab7;color:#fff}.dx-treeview-item{display:block;cursor:pointer;padding:5px 6px;min-height:32px}.dx-treeview-item .dx-treeview-item-content>.dx-icon{display:inline-block;vertical-align:middle;margin-right:5px;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;font-size:18px;text-align:center;line-height:18px}.dx-treeview-item.dx-state-hover{background-color:#0000000a;color:#333}.dx-treeview-toggle-item-visibility{position:absolute;cursor:pointer;font:22px/22px DXIcons;text-align:center;color:#333;width:21px;height:32px;top:0;left:-4px}.dx-treeview-toggle-item-visibility:before{content:\"\\\\f04e\";position:absolute;display:block;width:22px;top:50%;margin-top:-11px;left:50%;margin-left:-11px}.dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened{font:22px/22px DXIcons;text-align:center}.dx-treeview-toggle-item-visibility.dx-treeview-toggle-item-visibility-opened:before{content:\"\\\\f001\";position:absolute;display:block;width:22px;top:50%;margin-top:-11px;left:50%;margin-left:-11px}.dx-menu-base{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-tap-highlight-color:transparent;text-align:left;color:#333;font-weight:400;font-size:14px;font-family:Helvetica Neue,Segoe UI,helvetica,verdana,sans-serif;line-height:1.35715}.dx-menu-base .dx-menu-item-wrapper,.dx-menu-base .dx-menu-items-container{margin:0;padding:0;border:0;outline:0}.dx-menu-base .dx-menu-items-container{list-style-type:none;display:inline-block;white-space:nowrap;cursor:pointer}.dx-menu-base .dx-state-disabled,.dx-menu-base.dx-state-disabled .dx-menu-items-container{cursor:default}.dx-menu-base .dx-menu-item{display:inline-block;position:relative;height:100%;width:100%}.dx-menu-base .dx-menu-item.dx-state-disabled{opacity:.5}.dx-menu-base .dx-menu-item .dx-menu-item-content{white-space:nowrap;height:100%;width:100%}.dx-menu-base .dx-menu-item .dx-menu-item-content .dx-icon{display:inline-block;vertical-align:middle;border:0}.dx-menu-base .dx-menu-item .dx-menu-item-content .dx-menu-item-text{display:inline;vertical-align:middle;overflow:ellipsis;text-overflow:ellipsis;white-space:nowrap}.dx-menu-base .dx-menu-item .dx-menu-item-content .dx-menu-item-popout-container{position:absolute;top:0;right:0;bottom:0;width:2em}.dx-menu-base .dx-menu-item .dx-menu-item-content .dx-menu-item-popout-container .dx-menu-item-popout{height:100%}.dx-menu-base.dx-rtl{text-align:right}.dx-menu-base.dx-rtl .dx-menu-item-popout-container{left:0;right:auto}.dx-menu-item{color:#333}.dx-menu-item.dx-state-hover{color:#333;background-color:#0000000a}.dx-menu-item.dx-state-focused{background-color:#337ab7;color:#fff}.dx-menu-item.dx-menu-item-has-text .dx-icon{margin-right:-18px}.dx-menu-item-selected{background-color:#e6e6e6;color:#333}.dx-menu-item-selected.dx-state-focused{background-color:#337ab7b3;color:#fff}.dx-menu-item-expanded{color:#333;background-color:#0000000a}.dx-menu-item-expanded,.dx-menu-item.dx-state-active,.dx-menu-item.dx-state-focused{outline:0}.dx-menu-base input,.dx-menu-base textarea{font-family:Helvetica Neue,Segoe UI,helvetica,verdana,sans-serif;line-height:1.35715}.dx-menu-base.dx-state-focused{outline:0}.dx-menu-base .dx-icon{width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;font-size:18px;text-align:center;line-height:18px}.dx-menu-base .dx-menu-item-content{padding:3px 5px 7px}.dx-menu-base .dx-menu-item-content .dx-menu-item-text{padding:3px 25px 5px 23px}.dx-menu-base .dx-menu-item-content .dx-menu-item-popout{min-width:7px;min-height:7px}.dx-menu-base.dx-rtl .dx-menu-item-content .dx-menu-item-text{padding:3px 23px 5px 25px}.dx-menu-base.dx-rtl .dx-menu-item-content .dx-icon{margin-left:auto;margin-right:auto}.dx-menu-base.dx-rtl .dx-menu-item-content .dx-menu-item-popout-container{margin-left:0;margin-right:auto}.dx-menu-base.dx-rtl .dx-menu-item-content .dx-menu-item-popout-container .dx-menu-item-popout{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-menu-base.dx-rtl .dx-menu-item-has-text .dx-icon{margin-left:-18px}.dx-menu{position:relative;color:#333}.dx-menu-horizontal{height:100%}.dx-menu-horizontal:after{height:100%;display:inline-block;content:\"\";vertical-align:middle}.dx-menu-horizontal .dx-menu-item-wrapper{display:inline-block}.dx-menu-horizontal .dx-menu-separator{display:inline-block;margin:0 15px 0 0}.dx-menu-vertical{height:100%}.dx-menu-vertical:after{height:100%;display:inline-block;content:\"\";vertical-align:middle}.dx-menu-vertical .dx-menu-item-wrapper{display:block}.dx-menu-vertical .dx-menu-separator{margin:0 0 15px}.dx-rtl.dx-menu{text-align:right}.dx-context-menu-container-border{top:0;right:0;bottom:0;left:0;position:absolute;background-color:initial;border:1px solid #ddd;-webkit-box-shadow:0 1px 1px #00000026;box-shadow:0 1px 1px #00000026}.dx-context-menu-content-delimiter{position:absolute;display:none;z-index:2000;cursor:pointer;background-color:#fff}.dx-menu-adaptive-mode .dx-treeview-toggle-item-visibility{left:auto;right:0;font-size:18px}.dx-rtl .dx-menu-adaptive-mode .dx-treeview-toggle-item-visibility,.dx-rtl.dx-menu-adaptive-mode .dx-treeview-toggle-item-visibility{left:0;right:auto}.dx-menu-adaptive-mode .dx-treeview-item{cursor:pointer}.dx-menu-adaptive-mode .dx-treeview-node-container:first-child>.dx-treeview-node{padding:1px;border-bottom:1px solid #ddd}.dx-menu-adaptive-mode .dx-treeview-node-container:first-child>.dx-treeview-node .dx-item-content{padding-left:15px}.dx-rtl .dx-menu-adaptive-mode .dx-treeview-node-container:first-child>.dx-treeview-node .dx-item-content,.dx-rtl.dx-menu-adaptive-mode .dx-treeview-node-container:first-child>.dx-treeview-node .dx-item-content{padding-right:15px}.dx-menu-adaptive-mode .dx-treeview-node-container:first-child>.dx-treeview-node:last-child{border-bottom:none}.dx-menu-adaptive-mode-overlay-wrapper{-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row wrap;flex-flow:row wrap}.dx-menu-adaptive-mode-overlay-wrapper,.dx-menu-adaptive-mode-overlay-wrapper .dx-overlay-content{display:-webkit-box;display:-ms-flexbox;display:flex}.dx-menu-adaptive-mode-overlay-wrapper .dx-overlay-content .dx-treeview{height:auto;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.dx-menu .dx-menu-item-expanded{background-color:#fff}.dx-menu .dx-menu-item-has-icon.dx-menu-item-has-submenu .dx-icon{margin:0 19px 0 3px}.dx-menu .dx-menu-item-has-text .dx-menu-item-text{padding:3px 5px 5px}.dx-menu .dx-menu-item-has-text.dx-menu-item-has-icon .dx-icon{margin:0 3px}.dx-menu .dx-menu-item-has-text.dx-menu-item-has-submenu .dx-menu-item-text{padding:3px 19px 5px 5px}.dx-menu .dx-menu-horizontal .dx-menu-item-popout{font:18px/18px DXIcons;text-align:center}.dx-menu .dx-menu-horizontal .dx-menu-item-popout:before{content:\"\\\\f001\";position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-menu .dx-menu-vertical .dx-menu-item-popout{font:18px/18px DXIcons;text-align:center}.dx-menu .dx-menu-vertical .dx-menu-item-popout:before{content:\"\\\\f04e\";position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-menu.dx-rtl .dx-menu-item-has-icon.dx-menu-item-has-submenu .dx-icon{margin:0 3px 0 19px}.dx-menu.dx-rtl .dx-menu-item-has-text .dx-menu-item-text{padding:3px 5px 5px 0}.dx-menu.dx-rtl .dx-menu-item-has-text.dx-menu-item-has-submenu .dx-menu-item-text{padding:3px 5px 5px 19px}.dx-menu-adaptive-mode{background-color:#fff}.dx-menu-adaptive-mode .dx-treeview{border:1px solid #ddd;border-radius:4px}.dx-menu-adaptive-mode .dx-treeview,.dx-menu-adaptive-mode .dx-treeview.dx-state-focused{-webkit-box-shadow:0 3px 10px #0000001a;box-shadow:0 3px 10px #0000001a}.dx-menu-adaptive-mode .dx-treeview-node.dx-state-focused .dx-treeview-node .dx-treeview-toggle-item-visibility{color:inherit}.dx-menu-adaptive-mode .dx-treeview-node.dx-state-focused .dx-treeview-toggle-item-visibility{color:#fff}.dx-selectbox{cursor:pointer}.dx-selectbox .dx-texteditor-input{max-width:100%}.dx-selectbox .dx-texteditor-input:-moz-read-only{cursor:pointer}.dx-selectbox .dx-texteditor-input:read-only{cursor:pointer}.dx-selectbox-container{position:relative}.dx-state-disabled .dx-selectbox .dx-texteditor-input,.dx-state-disabled.dx-selectbox .dx-texteditor-input{cursor:default}.dx-selectbox-popup-wrapper .dx-overlay-content{-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dx-selectbox-popup-wrapper .dx-list{background-color:#fff}.dx-toolbar.dx-toolbar-multiline .dx-toolbar-items-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto;-ms-flex-wrap:wrap;flex-wrap:wrap;height:100%}.dx-toolbar.dx-toolbar-multiline .dx-toolbar-items-container .dx-toolbar-before{position:relative}.dx-toolbar.dx-toolbar-multiline .dx-toolbar-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-flex:0;-ms-flex:0 1 auto;flex:0 1 auto}.dx-toolbar .dx-button .dx-icon{-webkit-box-sizing:content-box;box-sizing:initial}.dx-toolbar-items-container{position:relative;overflow:hidden;width:100%;height:100%}.dx-toolbar-item{display:table-cell;padding:0 5px;vertical-align:middle;-webkit-box-sizing:content-box;box-sizing:initial}.dx-toolbar-item .dx-tabs{table-layout:auto}.dx-toolbar-item img{display:block}.dx-toolbar-menu-container{display:table-cell;padding:0 5px;vertical-align:middle;-webkit-box-sizing:content-box;box-sizing:initial}.dx-toolbar-menu-container .dx-tabs{table-layout:auto}.dx-toolbar-menu-container img{display:block}.dx-toolbar-group{float:left;margin:0 10px}.dx-toolbar-after,.dx-toolbar-before{position:absolute}.dx-toolbar-center:empty{display:none}.dx-toolbar-before{left:0}.dx-toolbar-after{right:0}.dx-toolbar-label{white-space:nowrap;-webkit-user-drag:none}.dx-toolbar-label .dx-toolbar-item-content>div,.dx-toolbar-label>div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-toolbar-label>div{margin:0 -5px;padding:0 5px}.dx-toolbar-center{margin:0 auto;text-align:center}.dx-toolbar-after,.dx-toolbar-before,.dx-toolbar-center{top:0;display:table;height:100%}.dx-rtl .dx-toolbar-before{right:0;left:auto}.dx-rtl .dx-toolbar-after{right:auto;left:0}.dx-toolbar-menu-section:empty{display:none}.dx-dropdownmenu-popup-wrapper .dx-toolbar-menu-custom>.dx-list-item-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content{padding:0}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content>.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide>.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content>.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content>.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide>.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content>.dx-button{padding:0;display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content>.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content>.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide>.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide>.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content>.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content>.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content>.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content>.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide>.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide>.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content.dx-buttongroup .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content>.dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content>.dx-buttongroup .dx-button-content{-webkit-box-pack:left;-ms-flex-pack:left;justify-content:left}.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content>.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content>.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide>.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide>.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content>.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content>.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content>.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content>.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide>.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide>.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content.dx-buttongroup .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content>.dx-button .dx-button-content,.dx-rtl .dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content>.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content>.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-list-item-content>.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide>.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-auto-hide>.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content>.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-toolbar-item-content>.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content>.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-list-item-content>.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide>.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-auto-hide>.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content.dx-buttongroup .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content>.dx-button .dx-button-content,.dx-rtl.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-toolbar-item-content>.dx-buttongroup .dx-button-content{-webkit-box-pack:right;-ms-flex-pack:right;justify-content:right}.dx-toolbar-menu-section.dx-toolbar-menu-last-section{border-bottom:none}.dx-toolbar-menu-section .dx-list-item-content:before{content:none}.dx-toolbar-menu-section .dx-list-item-content,.dx-toolbar-menu-section .dx-list-item-content.dx-list,.dx-toolbar-menu-section .dx-list-item-content>.dx-list,.dx-toolbar-menu-section .dx-toolbar-item-auto-hide,.dx-toolbar-menu-section .dx-toolbar-item-auto-hide.dx-list,.dx-toolbar-menu-section .dx-toolbar-item-auto-hide>.dx-list,.dx-toolbar-menu-section .dx-toolbar-item-content,.dx-toolbar-menu-section .dx-toolbar-item-content.dx-list,.dx-toolbar-menu-section .dx-toolbar-item-content>.dx-list{padding:0}.dx-toolbar-menu-section .dx-list-item-content.dx-button,.dx-toolbar-menu-section .dx-list-item-content>.dx-button,.dx-toolbar-menu-section .dx-toolbar-item-auto-hide.dx-button,.dx-toolbar-menu-section .dx-toolbar-item-auto-hide>.dx-button,.dx-toolbar-menu-section .dx-toolbar-item-content.dx-button,.dx-toolbar-menu-section .dx-toolbar-item-content>.dx-button{width:100%}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button{width:100%;border:none;margin:0;-webkit-box-shadow:none;box-shadow:none}.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-buttongroup{width:100%}.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-buttongroup .dx-buttongroup-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-buttongroup .dx-buttongroup-wrapper .dx-buttongroup-item{border:none}.dx-toolbar-text-auto-hide .dx-button .dx-button-text{display:none}.dx-list-item-content.dx-texteditor,.dx-list-item-content>.dx-texteditor,.dx-toolbar-item-content.dx-texteditor,.dx-toolbar-item-content>.dx-texteditor{width:150px}.dx-toolbar-item-invisible{display:none}.dx-dropdownmenu-popup-wrapper .dx-dropdownmenu-list{min-height:0;min-width:100px;border-radius:8px}.dx-dropdownmenu-popup-wrapper .dx-dropdownmenu-list .dx-list-item{display:block}.dx-dropdownmenu-popup-wrapper .dx-dropdownmenu-list .dx-list-item:last-of-type{border-bottom:none}.dx-dropdownmenu-popup-wrapper .dx-dropdownmenu-list .dx-list-item-content{display:block}.dx-dropdownmenu-popup-wrapper .dx-overlay-content .dx-popup-content{padding:1px}.dx-dropdownmenu-popup-wrapper .dx-list-item{display:block;border-top:0}.dx-toolbar{width:100%;background-color:#fff;color:#333;padding:0;overflow:visible}.dx-toolbar .dx-toolbar-before{padding-right:15px}.dx-rtl.dx-toolbar .dx-toolbar-before{padding-right:0;padding-left:15px}.dx-toolbar .dx-toolbar-after{padding-left:15px}.dx-rtl.dx-toolbar .dx-toolbar-after{padding-left:0;padding-right:15px}.dx-toolbar .dx-toolbar-after:empty,.dx-toolbar .dx-toolbar-before:empty{padding:0}.dx-toolbar .dx-toolbar-items-container{height:36px;overflow:visible}.dx-toolbar .dx-toolbar-menu-container{padding:0 0 0 5px}.dx-rtl.dx-toolbar .dx-toolbar-menu-container,.dx-toolbar .dx-toolbar-item{padding:0 5px 0 0}.dx-toolbar .dx-toolbar-item.dx-toolbar-first-in-group{padding-left:20px}.dx-toolbar .dx-toolbar-item:last-child{padding:0}.dx-rtl.dx-toolbar .dx-toolbar-item{padding:0 0 0 5px}.dx-rtl.dx-toolbar .dx-toolbar-item:last-child{padding:0}.dx-toolbar .dx-toolbar-label{font-size:20px}.dx-toolbar.dx-state-disabled{opacity:1}.dx-toolbar.dx-toolbar-compact .dx-button{min-width:auto}.dx-toolbar-after .dx-toolbar-item,.dx-toolbar-after .dx-toolbar-item:last-child{padding:0 0 0 5px}.dx-toolbar-after .dx-toolbar-item:first-child{padding:0}.dx-rtl.dx-toolbar-after .dx-toolbar-item:first-child{padding-left:5px}.dx-toolbar-background{background-color:#fff}.dx-toolbar-menu-section{border-bottom:1px solid #ddd}.dx-toolbar-menu-section .dx-list-item-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button .dx-button-content,.dx-toolbar-menu-section .dx-toolbar-item-auto-hide{padding:10px}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text{background-color:initial;border-color:#0000;color:#333}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button{border-radius:0}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text .dx-icon{color:#333}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-state-hover{background-color:#0000000a;border-color:#0000}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-state-focused{background-color:#00000014;border-color:#0000}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-state-active{background-color:#0000003d;border-color:#0000;color:#333}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-danger,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-danger,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-danger,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-danger,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-danger,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-danger{background-color:initial;border-color:#0000;color:#d43f3a}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-danger .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-danger .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-danger .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-danger .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-danger .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-danger .dx-icon{color:#d43f3a}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-danger.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-danger.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-danger.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-danger.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-danger.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-danger.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-danger.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-danger.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-danger.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-danger.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-danger.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-danger.dx-state-hover{background-color:#d43f3a1a;border-color:#0000}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-danger.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-danger.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-danger.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-danger.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-danger.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-danger.dx-state-active{background-color:#d43f3a66;border-color:#0000;color:#d43f3a}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-success,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-success,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-success,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-success,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-success,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-success{background-color:initial;border-color:#0000;color:#4cae4c}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-success .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-success .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-success .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-success .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-success .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-success .dx-icon{color:#4cae4c}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-success.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-success.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-success.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-success.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-success.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-success.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-success.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-success.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-success.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-success.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-success.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-success.dx-state-hover{background-color:#4cae4c1a;border-color:#0000}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-success.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-success.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-success.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-success.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-success.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-success.dx-state-active{background-color:#4cae4c66;border-color:#0000;color:#4cae4c}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-default,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-default,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-default,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-default,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-default,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-default{background-color:initial;border-color:#0000;color:#2d6da3}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-default .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-default .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-default .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-default .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-default .dx-icon,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-default .dx-icon{color:#2d6da3}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-default.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-default.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-default.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-default.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-default.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-default.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-default.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-default.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-default.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-default.dx-state-hover,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-default.dx-state-focused,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-default.dx-state-hover{background-color:#2d6da31a;border-color:#0000}.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-contained.dx-button-default.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-outlined.dx-button-default.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button .dx-button-mode-text.dx-button-default.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-contained.dx-button-default.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-outlined.dx-button-default.dx-state-active,.dx-toolbar-menu-section .dx-toolbar-hidden-button-group .dx-button-mode-text.dx-button-default.dx-state-active{background-color:#2d6da366;border-color:#0000;color:#2d6da3}.dx-toolbar-menu-section .dx-toolbar-hidden-button-group{margin-top:5px;margin-bottom:5px}.dx-toolbar-menu-section .dx-button-mode-contained{background-color:#fff;border-color:#ddd;color:#333}.dx-toolbar-menu-section .dx-button-mode-contained .dx-icon{color:#333}.dx-toolbar-menu-section .dx-button-mode-contained.dx-state-hover{background-color:#f5f5f5;border-color:#ddd}.dx-toolbar-menu-section .dx-button-mode-contained.dx-state-focused{background-color:#ebebeb;border-color:#ddd}.dx-toolbar-menu-section .dx-button-mode-contained.dx-state-active{background-color:#c2c2c2;border-color:#ddd;color:#333}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-danger{background-color:#d9534f;border-color:#0000;color:#fff}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-danger .dx-icon{color:#fff}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-danger.dx-state-hover{background-color:#ce312c;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-danger.dx-state-focused{background-color:#c12e2a;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-danger.dx-state-active{background-color:#932320;border-color:#0000;color:#fff}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-success{background-color:#5cb85c;border-color:#0000;color:#fff}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-success .dx-icon{color:#fff}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-success.dx-state-hover{background-color:#46a046;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-success.dx-state-focused{background-color:#419641;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-success.dx-state-active{background-color:#306f30;border-color:#0000;color:#fff}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-default{background-color:#337ab7;border-color:#0000;color:#fff}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-default .dx-icon{color:#fff}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-default.dx-state-hover{background-color:#296293;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-default.dx-state-focused{background-color:#265a87;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-contained.dx-button-default.dx-state-active{background-color:#193d5b;border-color:#0000;color:#fff}.dx-toolbar-menu-section .dx-button-mode-outlined{background-color:initial;border-color:#ddd;color:#333}.dx-toolbar-menu-section .dx-button-mode-outlined .dx-icon{color:#333}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-state-hover{background-color:#0000000a;border-color:#ddd}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-state-focused{background-color:#00000014;border-color:#ddd}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-state-active{background-color:#0000003d;border-color:#ddd;color:#333}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-danger{background-color:initial;border-color:#d43f3a;color:#d43f3a}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-danger .dx-icon{color:#d43f3a}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-danger.dx-state-focused,.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-danger.dx-state-hover{background-color:#d43f3a1a;border-color:#d43f3a}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-danger.dx-state-active{background-color:#d43f3a66;border-color:#d43f3a;color:#d43f3a}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-success{background-color:initial;border-color:#4cae4c;color:#4cae4c}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-success .dx-icon{color:#4cae4c}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-success.dx-state-focused,.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-success.dx-state-hover{background-color:#4cae4c1a;border-color:#4cae4c}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-success.dx-state-active{background-color:#4cae4c66;border-color:#4cae4c;color:#4cae4c}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-default{background-color:initial;border-color:#2d6da3;color:#2d6da3}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-default .dx-icon{color:#2d6da3}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-default.dx-state-focused,.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-default.dx-state-hover{background-color:#2d6da31a;border-color:#2d6da3}.dx-toolbar-menu-section .dx-button-mode-outlined.dx-button-default.dx-state-active{background-color:#2d6da366;border-color:#2d6da3;color:#2d6da3}.dx-toolbar-menu-section .dx-button-mode-text{background-color:initial;border-color:#0000;color:#333}.dx-toolbar-menu-section .dx-button-mode-text .dx-icon{color:#333}.dx-toolbar-menu-section .dx-button-mode-text.dx-state-hover{background-color:#0000000a;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-text.dx-state-focused{background-color:#00000014;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-text.dx-state-active{background-color:#0000003d;border-color:#0000;color:#333}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-danger{background-color:initial;border-color:#0000;color:#d43f3a}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-danger .dx-icon{color:#d43f3a}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-danger.dx-state-focused,.dx-toolbar-menu-section .dx-button-mode-text.dx-button-danger.dx-state-hover{background-color:#d43f3a1a;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-danger.dx-state-active{background-color:#d43f3a66;border-color:#0000;color:#d43f3a}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-success{background-color:initial;border-color:#0000;color:#4cae4c}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-success .dx-icon{color:#4cae4c}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-success.dx-state-focused,.dx-toolbar-menu-section .dx-button-mode-text.dx-button-success.dx-state-hover{background-color:#4cae4c1a;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-success.dx-state-active{background-color:#4cae4c66;border-color:#0000;color:#4cae4c}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-default{background-color:initial;border-color:#0000;color:#2d6da3}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-default .dx-icon{color:#2d6da3}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-default.dx-state-focused,.dx-toolbar-menu-section .dx-button-mode-text.dx-button-default.dx-state-hover{background-color:#2d6da31a;border-color:#0000}.dx-toolbar-menu-section .dx-button-mode-text.dx-button-default.dx-state-active{background-color:#2d6da366;border-color:#0000;color:#2d6da3}.dx-toolbar-text-auto-hide .dx-button .dx-button-content{padding:8px}.dx-toolbar-text-auto-hide .dx-button .dx-icon{width:18px;height:18px;font-size:18px;margin-right:0;margin-left:0}.dx-rtl .dx-toolbar-text-auto-hide .dx-button .dx-icon,.dx-rtl .dx-toolbar-text-auto-hide .dx-button .dx-icon.dx-icon-right,.dx-rtl.dx-toolbar-text-auto-hide .dx-button .dx-icon,.dx-rtl.dx-toolbar-text-auto-hide .dx-button .dx-icon.dx-icon-right,.dx-toolbar-text-auto-hide .dx-button .dx-icon.dx-icon-right{margin-left:0;margin-right:0}.dx-toolbar .dx-tab{padding:4px}.dx-toolbar-button .dx-menu .dx-menu-item{border:1px solid #0000;border-radius:4px}.dx-toolbar-button .dx-menu .dx-menu-item .dx-menu-item-content{padding-top:7px;padding-bottom:8px;line-height:0}.dx-toolbar-button .dx-menu .dx-menu-item .dx-menu-item-content .dx-menu-item-text{line-height:normal}.dx-popup-draggable .dx-popup-title{cursor:move;-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.dx-overlay-content>.dx-template-wrapper.dx-popup-title{height:auto;width:auto}.dx-overlay-content .dx-popup-content>.dx-template-wrapper{height:100%;width:100%}.dx-overlay-content .dx-popup-content{-webkit-box-sizing:content-box;box-sizing:initial}.dx-popup-flex-height{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.dx-overlay-wrapper .dx-overlay-content.dx-popup-flex-height>.dx-popup-bottom,.dx-overlay-wrapper .dx-overlay-content.dx-popup-flex-height>.dx-popup-title{width:100%}.dx-popup-flex-height .dx-popup-content{-webkit-box-sizing:border-box;box-sizing:border-box;height:auto;-webkit-box-flex:1;-ms-flex:1;flex:1;max-width:100%;-ms-flex-preferred-size:100%;flex-basis:100%}.dx-popup-inherit-height .dx-popup-content>.dx-scrollable,.dx-popup-inherit-height .dx-popup-content>.dx-scrollable>.dx-scrollable-wrapper,.dx-popup-inherit-height .dx-popup-content>.dx-scrollable>.dx-scrollable-wrapper>.dx-scrollable-container,.dx-popup-inherit-height .dx-popup-content>.dx-treeview>.dx-scrollable,.dx-popup-inherit-height .dx-popup-content>.dx-treeview>.dx-scrollable>.dx-scrollable-wrapper,.dx-popup-inherit-height .dx-popup-content>.dx-treeview>.dx-scrollable>.dx-scrollable-wrapper>.dx-scrollable-container{max-height:inherit;min-height:inherit}.dx-popup-inherit-height .dx-popup-content>.dx-widget{max-height:inherit}.dx-popup-inherit-height .dx-popup-content>.dx-template-wrapper,.dx-popup-inherit-height .dx-popup-content>.dx-template-wrapper>.dx-scrollable,.dx-popup-inherit-height .dx-popup-content>.dx-template-wrapper>.dx-scrollable>.dx-scrollable-wrapper,.dx-popup-inherit-height .dx-popup-content>.dx-template-wrapper>.dx-scrollable>.dx-scrollable-wrapper>.dx-scrollable-container,.dx-popup-inherit-height .dx-popup-content>.dx-template-wrapper>.dx-treeview>.dx-scrollable,.dx-popup-inherit-height .dx-popup-content>.dx-template-wrapper>.dx-treeview>.dx-scrollable>.dx-scrollable-wrapper,.dx-popup-inherit-height .dx-popup-content>.dx-template-wrapper>.dx-treeview>.dx-scrollable>.dx-scrollable-wrapper>.dx-scrollable-container{max-height:inherit;min-height:inherit}.dx-popup-inherit-height .dx-popup-content>.dx-template-wrapper>.dx-widget{max-height:inherit}.dx-dialog-root .dx-overlay-shader{background-color:#444}.dx-prevent-safari-scrolling{position:fixed;margin:0;left:0;right:0;top:0}.dx-popup-wrapper>.dx-overlay-content{border:1px solid #ddd;background:#fff;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175);border-radius:6px}.dx-popup-wrapper>.dx-popup-fullscreen{border-radius:0}.dx-popup-title{-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;white-space:normal;position:relative;padding:6px 20px;min-height:28px;border-bottom:1px solid #ddd;background:0 0;color:#333}.dx-popup-title.dx-toolbar{padding:6px 20px;overflow:visible;-webkit-box-shadow:none;box-shadow:none}.dx-popup-title.dx-toolbar .dx-toolbar-before{padding-right:15px}.dx-rtl.dx-popup-title.dx-toolbar .dx-toolbar-before{padding-right:0;padding-left:15px}.dx-popup-title.dx-toolbar .dx-toolbar-after{padding-left:15px}.dx-rtl.dx-popup-title.dx-toolbar .dx-toolbar-after{padding-left:0;padding-right:15px}.dx-popup-title.dx-toolbar .dx-toolbar-after:empty,.dx-popup-title.dx-toolbar .dx-toolbar-before:empty{padding:0}.dx-popup-title.dx-toolbar .dx-toolbar-items-container{height:36px;overflow:visible}.dx-popup-title.dx-toolbar .dx-toolbar-menu-container{padding:0 0 0 10px}.dx-popup-title.dx-toolbar .dx-toolbar-item,.dx-rtl.dx-popup-title.dx-toolbar .dx-toolbar-menu-container{padding:0 10px 0 0}.dx-popup-title.dx-toolbar .dx-toolbar-item.dx-toolbar-first-in-group{padding-left:20px}.dx-popup-title.dx-toolbar .dx-toolbar-item:last-child{padding:0}.dx-rtl.dx-popup-title.dx-toolbar .dx-toolbar-item{padding:0 0 0 10px}.dx-rtl.dx-popup-title.dx-toolbar .dx-toolbar-item:last-child{padding:0}.dx-popup-title.dx-toolbar .dx-toolbar-label{font-size:20px}.dx-popup-title.dx-toolbar.dx-has-close-button .dx-toolbar-after .dx-toolbar-button:nth-last-child(2){padding-right:0}.dx-rtl .dx-popup-title.dx-toolbar.dx-has-close-button .dx-toolbar-after .dx-toolbar-button:nth-last-child(2){padding-left:0}.dx-popup-title .dx-closebutton{display:block;position:relative;left:10px;border-radius:4px;border-width:1px;border-style:solid}.dx-rtl .dx-popup-title .dx-closebutton{left:0;right:10px}.dx-popup-title .dx-closebutton .dx-icon{-webkit-box-sizing:border-box;box-sizing:border-box}.dx-state-disabled .dx-popup-title .dx-closebutton .dx-icon,.dx-state-disabled.dx-popup-title .dx-closebutton .dx-icon{opacity:.6}.dx-state-disabled .dx-popup-title .dx-closebutton .dx-button-text,.dx-state-disabled.dx-popup-title .dx-closebutton .dx-button-text{opacity:.5}.dx-popup-content{-webkit-user-drag:none;padding:20px}.dx-popup-content>.dx-button{margin:0 10px}.dx-popup-bottom{background:0 0;color:#333}.dx-popup-bottom.dx-toolbar{padding:20px;overflow:visible}.dx-popup-bottom.dx-toolbar .dx-toolbar-before{padding-right:15px}.dx-rtl.dx-popup-bottom.dx-toolbar .dx-toolbar-before{padding-right:0;padding-left:15px}.dx-popup-bottom.dx-toolbar .dx-toolbar-after{padding-left:15px}.dx-rtl.dx-popup-bottom.dx-toolbar .dx-toolbar-after{padding-left:0;padding-right:15px}.dx-popup-bottom.dx-toolbar .dx-toolbar-after:empty,.dx-popup-bottom.dx-toolbar .dx-toolbar-before:empty{padding:0}.dx-popup-bottom.dx-toolbar .dx-toolbar-items-container{height:36px;overflow:visible}.dx-popup-bottom.dx-toolbar .dx-toolbar-menu-container{padding:0 0 0 10px}.dx-popup-bottom.dx-toolbar .dx-toolbar-item,.dx-rtl.dx-popup-bottom.dx-toolbar .dx-toolbar-menu-container{padding:0 10px 0 0}.dx-popup-bottom.dx-toolbar .dx-toolbar-item.dx-toolbar-first-in-group{padding-left:20px}.dx-popup-bottom.dx-toolbar .dx-toolbar-item:last-child{padding:0}.dx-rtl.dx-popup-bottom.dx-toolbar .dx-toolbar-item{padding:0 0 0 10px}.dx-rtl.dx-popup-bottom.dx-toolbar .dx-toolbar-item:last-child{padding:0}.dx-popup-bottom.dx-toolbar .dx-toolbar-label{font-size:20px}.dx-popup-bottom .dx-button{min-width:100px}.dx-popup-content.dx-dialog-content{min-width:180px;padding:20px}.dx-dialog-message{padding:0}.dx-dropdownbutton{display:inline-block;vertical-align:middle}.dx-dropdownbutton-content.dx-popup-content{padding:0}.dx-dropdownbutton-content .dx-list .dx-empty-message,.dx-dropdownbutton-content .dx-list .dx-list-item{border:none}.dx-dropdownbutton-toggle{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;max-width:20px}.dx-dropdownbutton-toggle.dx-button .dx-button-content{padding-left:0;padding-right:0}.dx-rtl .dx-dropdownbutton-toggle{border-right-width:0}.dx-dropdownbutton:not(.dx-dropdownbutton-has-arrow) .dx-button-has-icon:not(.dx-button-has-text) .dx-button-content{padding-left:5px;padding-right:5px}.dx-dropdownbutton:not(.dx-dropdownbutton-has-arrow) .dx-button-has-text.dx-button .dx-button-content{padding-left:10px;padding-right:10px}.dx-dropdownbutton-action:not(.dx-buttongroup-last-item).dx-button{border-right-width:0;border-left-width:1px}.dx-rtl .dx-dropdownbutton-action:not(.dx-buttongroup-last-item).dx-button{border-right-width:1px;border-left-width:0}.dx-dropdownbutton .dx-button{overflow:hidden}.dx-dropdownbutton .dx-button-has-text .dx-icon.dx-icon-right{margin-left:4px;margin-right:0}.dx-dropdownbutton-action{min-width:0}.dx-dropdownbutton-action.dx-button .dx-button-content{padding-left:10px;padding-right:4px}.dx-rtl .dx-dropdownbutton-action.dx-button .dx-button-content{padding-left:4px;padding-right:10px}.dx-dropdownbutton-action.dx-buttongroup-last-item.dx-button .dx-button-content{padding-right:0}.dx-rtl .dx-dropdownbutton-action.dx-buttongroup-last-item.dx-button .dx-button-content{padding-left:0}.dx-dropdownbutton-popup-wrapper{height:100%}.dx-dropdownbutton-popup-wrapper.dx-popup-wrapper .dx-overlay-content{border-top-width:0;border-bottom-width:1px}.dx-dropdownbutton-popup-wrapper.dx-popup-wrapper .dx-overlay-content.dx-dropdowneditor-overlay-flipped{border-top-width:1px;border-bottom-width:0}.dx-dropdownbutton-popup-wrapper .dx-popup-content{height:100%;padding:1px}.dx-dropdownbutton-popup-wrapper .dx-list{height:100%;min-height:39.0001px}.dx-dropdownbutton-popup-wrapper .dx-list:not(.dx-list-select-decorator-enabled){min-height:33.0001px}.dx-dropdownbutton-popup-wrapper .dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item-content{padding:7px 9px}.dx-dropdownbutton-popup-wrapper .dx-list-select-all{padding:12px 0 8px}.dx-dropdownbutton-popup-wrapper .dx-empty-message,.dx-dropdownbutton-popup-wrapper .dx-list-item{border-top:0}.dx-dropdownbutton-popup-wrapper .dx-empty-message:last-of-type,.dx-dropdownbutton-popup-wrapper .dx-list-item:last-of-type{border-bottom:none}.dx-actionsheet-popup-wrapper .dx-overlay-content{padding-top:0;padding-bottom:0;-webkit-user-drag:none}.dx-actionsheet-popover-wrapper .dx-popup-content .dx-button,.dx-actionsheet-popup-wrapper .dx-popup-content .dx-button{width:100%;margin-right:0;margin-left:0}.dx-actionsheet-cancel,.dx-actionsheet-item{width:100%}.dx-state-disabled .dx-actionsheet-container .dx-button{cursor:default}.dx-actionsheet-popover-wrapper .dx-popup-title,.dx-actionsheet-popup-wrapper .dx-popup-title{word-wrap:break-word}.dx-actionsheet-container .dx-actionsheet-item{margin:0 0 10px}.dx-actionsheet-container .dx-button,.dx-button.dx-actionsheet-cancel{margin:0}.dx-tileview div.dx-scrollable-container{overflow-y:hidden}.dx-tile{position:absolute;color:#333;background-color:#fff;border:1px solid #ddd9;text-align:left}.dx-tile-content{padding:0;width:100%;height:100%}.dx-tileview-wrapper{position:relative;height:1px}.dx-device-ios-6 .dx-tile{-webkit-backface-visibility:hidden;backface-visibility:hidden}.dx-tile.dx-state-focused,.dx-tile.dx-state-hover{background-color:#fff;border-color:#337ab766}.dx-tile.dx-state-active{-webkit-transform:scale(.96);transform:scale(.96);-webkit-transition:-webkit-transform .1s linear;transition:transform .1s linear,-webkit-transform .1s linear;background-color:#60606033;color:#333;border-color:#0000}.dx-toast-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;color:#fff;font-size:14px;font-weight:600;line-height:32px;padding:10px;-webkit-box-shadow:0 2px 3px 0 #0000;box-shadow:0 2px 3px 0 #0000;border-radius:6px}.dx-toast-icon{background-size:contain;background-position:0;background-repeat:no-repeat;margin-right:10px;width:35px;height:35px}.dx-toast-icon,.dx-toast-message{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.dx-toast-message{line-height:16px}.dx-rtl .dx-toast-icon{margin-left:10px;margin-right:0}.dx-toast-stack{position:fixed;display:-webkit-box;display:-ms-flexbox;display:flex;overflow:hidden;gap:3px;-webkit-box-align:center;-ms-flex-align:center;align-items:center;z-index:9500}.dx-toast-stack .dx-toast-wrapper{height:auto!important;width:auto!important}.dx-toast-stack .dx-toast-wrapper,.dx-toast-stack .dx-toast-wrapper .dx-toast-content{-webkit-transform:translate(0)!important;transform:translate(0)!important;position:static!important}.dx-toast-stack-down-push-direction{-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.dx-toast-stack-down-push-direction,.dx-toast-stack-up-push-direction{-webkit-box-orient:vertical;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.dx-toast-stack-up-push-direction{-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dx-toast-stack-left-push-direction{-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.dx-toast-stack-left-push-direction,.dx-toast-stack-right-push-direction{-webkit-box-orient:horizontal;-webkit-box-pack:end;-ms-flex-pack:end;justify-content:flex-end}.dx-toast-stack-right-push-direction{-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.dx-toast-stack-down-stack-direction{-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dx-toast-stack-down-stack-direction,.dx-toast-stack-up-stack-direction{-webkit-box-orient:vertical;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.dx-toast-stack-up-stack-direction{-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.dx-toast-stack-left-stack-direction{-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.dx-toast-stack-left-stack-direction,.dx-toast-stack-right-stack-direction{-webkit-box-orient:horizontal;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start}.dx-toast-stack-right-stack-direction{-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.dx-toast-info{background-color:#337ab7}.dx-toast-info .dx-toast-icon{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_12___})}.dx-toast-warning{background-color:#f0ad4e}.dx-toast-warning .dx-toast-icon{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_13___})}.dx-toast-error{background-color:#d9534f}.dx-toast-error .dx-toast-icon{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_14___})}.dx-toast-success{background-color:#5cb85c}.dx-toast-success .dx-toast-icon{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_15___})}.dx-popover-wrapper .dx-popover-arrow:after{width:14.1422712488px;height:14.1422712488px}.dx-popover-wrapper.dx-position-bottom .dx-popover-arrow,.dx-popover-wrapper.dx-position-top .dx-popover-arrow{width:20px;height:10px}.dx-popover-wrapper.dx-position-left .dx-popover-arrow,.dx-popover-wrapper.dx-position-right .dx-popover-arrow{width:10px;height:20px}.dx-popover-arrow{position:absolute;z-index:2000;overflow:hidden}.dx-popover-arrow:after{position:absolute;display:block;overflow:hidden;content:\" \";-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.dx-popover-wrapper.dx-position-top .dx-popover-arrow:after{top:0;left:0;-webkit-transform-origin:top left;transform-origin:top left}.dx-popover-wrapper.dx-position-bottom .dx-popover-arrow:after{right:0;bottom:0;-webkit-transform-origin:bottom right;transform-origin:bottom right;background:#fff}.dx-popover-wrapper.dx-position-left .dx-popover-arrow:after{bottom:0;left:0;-webkit-transform-origin:bottom left;transform-origin:bottom left}.dx-popover-wrapper.dx-position-right .dx-popover-arrow:after{top:0;right:0;-webkit-transform-origin:top right;transform-origin:top right}.dx-popover-wrapper .dx-overlay-content{overflow:visible}.dx-popover-wrapper .dx-popup-content{overflow:hidden}.dx-device-ios .dx-popover-arrow:after{-webkit-transform:rotate(-45deg) translateZ(0)}.dx-popover-wrapper .dx-popup-title{margin:0;border-top-left-radius:6px;border-top-right-radius:6px}.dx-popover-wrapper .dx-popup-title.dx-toolbar{padding-left:15px}.dx-popover-wrapper .dx-popover-arrow:after,.dx-popover-wrapper.dx-popover-without-title .dx-popover-arrow:after{background:#fff}.dx-popover-arrow:after{border:1px solid #ddd}.dx-popover-wrapper .dx-rtl.dx-popup-title.dx-toolbar{padding-right:15px;padding-left:0}.dx-progressbar .dx-position-left .dx-progressbar-range-container,.dx-progressbar .dx-position-left .dx-progressbar-status,.dx-progressbar .dx-position-right .dx-progressbar-range-container,.dx-progressbar .dx-position-right .dx-progressbar-status{display:table-cell;vertical-align:middle}.dx-progressbar .dx-position-bottom-left .dx-progressbar-range-container,.dx-progressbar .dx-position-bottom-left .dx-progressbar-status,.dx-progressbar .dx-position-top-left .dx-progressbar-range-container,.dx-progressbar .dx-position-top-left .dx-progressbar-status{float:left}.dx-progressbar .dx-position-bottom-right .dx-progressbar-range-container,.dx-progressbar .dx-position-bottom-right .dx-progressbar-status,.dx-progressbar .dx-position-top-right .dx-progressbar-range-container,.dx-progressbar .dx-position-top-right .dx-progressbar-status{float:right}.dx-progressbar .dx-position-bottom-center .dx-progressbar-status,.dx-progressbar .dx-position-top-center .dx-progressbar-status{text-align:center}.dx-progressbar .dx-position-left .dx-progressbar-status{padding-right:8px}.dx-progressbar .dx-position-right .dx-progressbar-status{padding-left:8px}.dx-progressbar:before{display:inline-block;height:100%;content:\"\";vertical-align:middle}.dx-progressbar-range-container{width:100%}.dx-progressbar-container{position:relative;width:100%}.dx-progressbar-wrapper{display:inline-block;width:100%;vertical-align:middle;direction:ltr}.dx-progressbar-range{height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none}.dx-progressbar-status{position:relative;top:0;left:0;width:auto;height:20px;font-size:12px}.dx-progressbar-animating-segment{display:none}.dx-rtl .dx-progressbar .dx-progressbar-wrapper,.dx-rtl.dx-progressbar .dx-progressbar-wrapper{direction:rtl}.dx-progressbar-container{height:6px;border:1px solid #ddd;background-color:#ddd;border-radius:2px}.dx-progressbar-range{position:relative;border:1px solid #337ab7;background-color:#337ab7;margin-top:-1px;-webkit-box-sizing:content-box;box-sizing:initial;border-top-left-radius:2px;border-bottom-left-radius:2px}.dx-progressbar-animating-container{width:100%;height:6px;background-color:#ddd;background-size:90% 5px;border:1px solid #ddd;border-radius:2px;-webkit-animation:dx-loader 2s linear infinite;animation:dx-loader 2s linear infinite;background-image:-webkit-gradient(linear,right top,left top,color-stop(5%,#0000),color-stop(#337ab7),color-stop(95%,#0000));background-image:linear-gradient(-90deg,#0000 5%,#337ab7,#0000 95%);background-repeat:repeat}.dx-state-disabled .dx-progressbar-range{background-color:#337ab799}.dx-state-disabled .dx-progressbar-animating-container{-webkit-animation:none;animation:none;background-position-x:45%}.dx-rtl .dx-progressbar .dx-progressbar-animating-container,.dx-rtl.dx-progressbar .dx-progressbar-animating-container{-webkit-animation:dx-loader-rtl 2s linear infinite;animation:dx-loader-rtl 2s linear infinite;background-image:-webkit-gradient(linear,right top,left top,color-stop(5%,#0000),color-stop(#337ab7),color-stop(95%,#0000));background-image:linear-gradient(-90deg,#0000 5%,#337ab7,#0000 95%);background-repeat:repeat}@-webkit-keyframes dx-loader{0%{background-position-x:0}to{background-position-x:900%}}@keyframes dx-loader{0%{background-position-x:0}to{background-position-x:900%}}@-webkit-keyframes dx-loader-rtl{0%{background-position-x:0}to{background-position-x:-900%}}@keyframes dx-loader-rtl{0%{background-position-x:0}to{background-position-x:-900%}}.dx-tooltip-wrapper .dx-overlay-content{min-width:34px;min-height:26px;text-align:center;line-height:0;border:1px solid #ddd;background-color:#fff;color:#333;-webkit-box-shadow:0 2px 4px #0000001a;box-shadow:0 2px 4px #0000001a;border-radius:4px}.dx-tooltip-wrapper .dx-overlay-content:before{display:inline-block;height:100%;content:\"\";vertical-align:middle}.dx-tooltip-wrapper .dx-overlay-content .dx-popup-content{display:inline-block;padding:12px 17px;font-size:.85em;line-height:normal;white-space:nowrap}.dx-tooltip-wrapper.dx-popover-wrapper .dx-popover-arrow:after{border:1px solid #ddd;background:#fff}.dx-slider-label{position:absolute;font-size:.85em}.dx-slider-label:last-child{right:0;left:auto}.dx-rtl .dx-slider-label:last-child{left:0;right:auto}.dx-slider-label-position-bottom{padding-bottom:14px}.dx-slider-label-position-top{padding-top:14px}.dx-slider{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.dx-slider:before{display:inline-block;height:100%;content:\"\";vertical-align:middle}.dx-slider .dx-overlay-content{height:28px}.dx-slider .dx-overlay-content:before{display:none}.dx-slider .dx-popover-wrapper .dx-popover-arrow:after{width:9.8995898741px;height:9.8995898741px}.dx-slider .dx-popover-wrapper.dx-position-bottom .dx-popover-arrow,.dx-slider .dx-popover-wrapper.dx-position-top .dx-popover-arrow{width:14px;height:7px}.dx-slider .dx-popover-wrapper.dx-position-left .dx-popover-arrow,.dx-slider .dx-popover-wrapper.dx-position-right .dx-popover-arrow{width:7px;height:14px}.dx-slider-wrapper{position:relative;display:inline-block;width:100%;vertical-align:middle;cursor:pointer;height:28px}.dx-slider-bar{position:relative}.dx-slider-range{position:absolute;top:0;pointer-events:none;-webkit-user-drag:none}.dx-slider-handle .dx-tooltip-wrapper .dx-popup-content{line-height:0}.dx-state-disabled .dx-slider-wrapper{cursor:default}.dx-rtl .dx-slider-handle{right:auto;left:0;margin-left:-7.5px}.dx-slider-tooltip-visible-on-hover .dx-tooltip{visibility:hidden}.dx-slider-tooltip-visible-on-hover.dx-state-active .dx-tooltip,.dx-slider-tooltip-visible-on-hover.dx-state-hover .dx-tooltip{visibility:visible}.dx-slider .dx-tooltip-wrapper .dx-overlay-content{-webkit-box-shadow:none;box-shadow:none}.dx-slider .dx-state-active.dx-slider-handle{border:1px solid #fff;background:#204d73}.dx-slider .dx-state-focused.dx-slider-handle:not(.dx-state-active),.dx-slider .dx-state-hover.dx-slider-handle:not(.dx-state-active){border:1px solid #fff;background:#285f8f}.dx-slider-bar{margin:14px 7px;height:4px;background:#ddd;border-radius:2px}.dx-slider-range{border:1px solid #0000;height:2px;-webkit-box-sizing:content-box;box-sizing:initial}.dx-slider-range.dx-slider-range-visible{border:1px solid #337ab7;background:#337ab7;border-radius:2px}.dx-slider-label-position-bottom .dx-slider-label{bottom:-17px}.dx-slider-label-position-top .dx-slider-label{top:-14px}.dx-slider-handle{position:absolute;top:0;right:0;pointer-events:auto;-webkit-user-drag:none;margin-top:-14px;margin-right:-7px;width:14px;height:28px;border:1px solid #fff;background-color:#337ab7;border-radius:3px;-webkit-box-sizing:content-box;box-sizing:initial}.dx-state-disabled .dx-slider,.dx-state-disabled.dx-slider{opacity:1}.dx-state-disabled .dx-slider .dx-slider-bar,.dx-state-disabled.dx-slider .dx-slider-bar{opacity:.5}.dx-invalid .dx-slider-handle{background-color:#d9534f}.dx-invalid .dx-slider-range-visible{background-color:#d9534f;border-color:#d9534f}.dx-invalid .dx-slider-bar{background-color:#d9534f66}.dx-invalid .dx-state-focused.dx-slider-handle:not(.dx-state-active),.dx-invalid .dx-state-hover.dx-slider-handle:not(.dx-state-active){background:#c9302c}.dx-rangeslider-start-handle{top:0;right:auto;left:0;margin-left:-7px}.dx-rtl .dx-rangeslider-start-handle{right:0;left:auto;margin-right:-7px}.dx-gallery{width:100%;height:100%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-ms-touch-action:pinch-zoom pan-y;touch-action:pinch-zoom pan-y}.dx-gallery-wrapper{position:relative;overflow:hidden;width:100%;height:100%;white-space:nowrap}.dx-gallery-wrapper>.dx-empty-message{text-align:center;position:absolute;width:100%;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.dx-gallery-container{position:relative;height:100%}.dx-gallery-item{display:inline-block;overflow:hidden;width:100%;height:100%;text-align:center}.dx-gallery-item-image{max-width:100%;-ms-flex-item-align:start;align-self:flex-start;-ms-flex-negative:0;flex-shrink:0;height:auto;margin:auto}.dx-gallery-item-content{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dx-gallery .dx-gallery-item-loop{display:none}.dx-gallery-loop .dx-gallery-item-loop{display:inline-block;position:absolute}.dx-gallery-item-invisible{visibility:hidden}.dx-gallery-nav-button-next,.dx-gallery-nav-button-prev{position:absolute;top:50%;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;background-size:100% 100%}.dx-gallery-nav-button-prev{left:0}.dx-gallery-nav-button-next{right:0}.dx-gallery-indicator{position:absolute;bottom:10px;width:100%;height:10px;font-size:0;pointer-events:none;text-align:center}.dx-state-disabled .dx-gallery-indicator-item,.dx-state-disabled .dx-gallery-nav-button-next,.dx-state-disabled .dx-gallery-nav-button-prev{cursor:default}.dx-rtl .dx-gallery-nav-button-prev{right:0;left:auto;-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-rtl .dx-gallery-nav-button-next{right:auto;left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-device-android .dx-scrollable-native .dx-gallery-indicator,.dx-device-android .dx-scrollable-native .dx-gallery-item,.dx-device-android .dx-scrollable-native .dx-gallery-nav-button-next,.dx-device-android .dx-scrollable-native .dx-gallery-nav-button-prev{-webkit-backface-visibility:visible;backface-visibility:visible}.dx-device-android .dx-gallery-item,.dx-device-android .dx-scrollable-native .dx-gallery-active .dx-gallery-indicator,.dx-device-android .dx-scrollable-native .dx-gallery-active .dx-gallery-item,.dx-device-android .dx-scrollable-native .dx-gallery-active .dx-gallery-nav-button-next,.dx-device-android .dx-scrollable-native .dx-gallery-active .dx-gallery-nav-button-prev,.dx-device-ios-6 .dx-gallery,.dx-device-ios-6 .dx-gallery-indicator,.dx-device-ios-6 .dx-gallery-item,.dx-device-ios-6 .dx-gallery-nav-button-next,.dx-device-ios-6 .dx-gallery-nav-button-prev{-webkit-backface-visibility:hidden;backface-visibility:hidden}.dx-gallery .dx-gallery-nav-button-next,.dx-gallery .dx-gallery-nav-button-prev{position:absolute;top:0;width:34%;height:100%;background:0 0;cursor:pointer;text-align:center}.dx-gallery .dx-gallery-nav-button-next.dx-state-hover:after,.dx-gallery .dx-gallery-nav-button-prev.dx-state-hover:after{background-color:#337ab780}.dx-gallery .dx-gallery-nav-button-next.dx-state-active:after,.dx-gallery .dx-gallery-nav-button-prev.dx-state-active:after{background-color:#337ab7b3}.dx-gallery .dx-gallery-nav-button-next:before,.dx-gallery .dx-gallery-nav-button-prev:before{display:block;width:32px;top:50%;margin-top:-16px;left:50%;margin-left:-16px;position:absolute;z-index:10;clear:both;font-size:32px;color:#fff}.dx-gallery .dx-gallery-nav-button-next:after,.dx-gallery .dx-gallery-nav-button-prev:after{content:\"\";position:absolute;width:32px;height:100%;border-radius:0}.dx-gallery .dx-gallery-nav-button-prev{font:14px/1 DXIcons}.dx-gallery .dx-gallery-nav-button-prev:before{content:\"\\\\f012\";left:0;right:auto;margin-left:0}.dx-gallery .dx-gallery-nav-button-prev:after{left:0}.dx-gallery .dx-gallery-nav-button-next{font:14px/1 DXIcons}.dx-gallery .dx-gallery-nav-button-next:before{content:\"\\\\f010\";right:0;left:auto}.dx-gallery .dx-gallery-nav-button-next:after{right:0}.dx-gallery-indicator-item{display:inline-block;cursor:pointer;border-radius:50%;-webkit-box-sizing:border-box;box-sizing:border-box;border:1px solid #337ab7;pointer-events:auto;margin:1px 6px;width:8px;height:8px;background:#fff}.dx-gallery-indicator-item-active,.dx-gallery-indicator-item-selected{width:12px;height:12px;background:#337ab7;border:2px solid #fffc;margin:-1px 6px}.dx-state-focused.dx-gallery .dx-gallery-indicator-item-selected{background:#22527b}.dx-lookup .dx-popup-content .dx-scrollable{height:calc(100% - 45px)}.dx-lookup .dx-lookup-field-wrapper{position:relative;width:100%;height:100%}.dx-lookup .dx-rtl .dx-lookup-field-wrapper:after,.dx-lookup:not(.dx-rtl) .dx-lookup-field-wrapper:before{display:inline-block;height:100%;content:\"\";vertical-align:middle}.dx-lookup-field{outline:0;position:relative;width:100%;display:inline-block;vertical-align:middle;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding:7px 34px 8px 9px;font-size:1em}.dx-lookup-field:before{content:\".\";color:#0000;display:inline-block;width:0;float:left}.dx-lookup-arrow{pointer-events:none;position:absolute;top:0;bottom:0;right:0;left:auto;height:100%}.dx-rtl .dx-lookup-arrow{right:auto;left:0}.dx-state-disabled .dx-lookup-field{cursor:default}.dx-lookup-popup-wrapper .dx-list-item{cursor:pointer;border-top:none}.dx-lookup-popup-search .dx-list{height:90%;height:calc(100% - 70px)}.dx-lookup-search-wrapper{width:100%;padding:20px 20px 14px}.dx-lookup{margin:0;height:36px;border:1px solid #ddd;background:#fff}.dx-lookup.dx-editor-underlined{background:0 0}.dx-lookup.dx-texteditor-with-floating-label.dx-editor-underlined .dx-texteditor-label .dx-label,.dx-lookup.dx-texteditor-with-label.dx-editor-underlined .dx-texteditor-label .dx-label{padding-left:9px}.dx-lookup.dx-texteditor-with-floating-label.dx-editor-underlined.dx-rtl .dx-texteditor-label .dx-label,.dx-lookup.dx-texteditor-with-label.dx-editor-underlined.dx-rtl .dx-texteditor-label .dx-label,.dx-rtl .dx-lookup.dx-texteditor-with-floating-label.dx-editor-underlined .dx-texteditor-label .dx-label,.dx-rtl .dx-lookup.dx-texteditor-with-label.dx-editor-underlined .dx-texteditor-label .dx-label{padding-right:9px;padding-left:0}.dx-rtl .dx-lookup-field{padding:7px 9px 8px 34px}.dx-lookup-arrow{font:18px/18px DXIcons;width:34px;color:#333;text-align:center}.dx-lookup-arrow:before{content:\"\\\\f04e\";position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-state-readonly .dx-lookup-field:before{opacity:.5}.dx-lookup-popup-wrapper .dx-list-item:last-of-type{border-bottom:none}.dx-lookup-popup-wrapper .dx-list-item-content{padding-left:20px;padding-right:20px}.dx-lookup-popup-wrapper .dx-popup-content{top:0;padding:0}.dx-lookup-popup-wrapper .dx-popup-title+.dx-popup-content{top:49px}.dx-lookup-empty .dx-lookup-field{color:#999}.dx-invalid.dx-lookup .dx-lookup-field:after{right:38px;pointer-events:none;font-weight:700;position:absolute;top:50%;margin-top:-9px;width:18px;height:18px;text-align:center;line-height:18px;font-size:13px;background-color:#d9534f;color:#fff;content:\"!\";border-radius:50%}.dx-rtl .dx-invalid.dx-lookup .dx-lookup-field:after,.dx-rtl.dx-invalid.dx-lookup .dx-lookup-field:after{right:auto;left:38px}.dx-valid.dx-lookup .dx-lookup-field:after{right:38px;pointer-events:none;font-weight:700;position:absolute;top:50%;margin-top:-9px;width:18px;height:18px;text-align:center;line-height:18px;font-size:13px;font-family:DXIcons,sans-serif;color:#5cb85c;content:\"\\\\f005\";opacity:0;-webkit-transform:scale(0);transform:scale(0);-webkit-animation:dx-valid-badge-frames .3s cubic-bezier(1,.008,.565,1.65) .1s forwards;animation:dx-valid-badge-frames .3s cubic-bezier(1,.008,.565,1.65) .1s forwards}.dx-rtl .dx-valid.dx-lookup .dx-lookup-field:after,.dx-rtl.dx-valid.dx-lookup .dx-lookup-field:after{right:auto;left:38px}.dx-validation-pending.dx-lookup .dx-lookup-field-wrapper .dx-pending-indicator{right:38px;pointer-events:none;position:absolute;top:50%;margin-top:-11px;width:22px;height:22px}.dx-rtl .dx-validation-pending.dx-lookup .dx-lookup-field-wrapper .dx-pending-indicator,.dx-rtl.dx-validation-pending.dx-lookup .dx-lookup-field-wrapper .dx-pending-indicator{right:auto;left:38px}.dx-loadpanel-content:before{display:inline-block;height:100%;content:\"\";vertical-align:middle}.dx-loadpanel-content-wrapper{display:inline-block;width:100%;vertical-align:middle}.dx-loadpanel-message{text-align:center}.dx-loadpanel-content.dx-loadpanel-pane-hidden{-webkit-box-shadow:none;box-shadow:none;border:none;background:0 0}@-webkit-keyframes dx-loadpanel-opacity{0%{opacity:0}to{opacity:1}}@keyframes dx-loadpanel-opacity{0%{opacity:0}to{opacity:1}}.dx-loadpanel-content{padding:10px;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;-webkit-user-drag:none;border:1px solid #ddd;background:#fff;border-radius:6px;-webkit-box-shadow:0 6px 12px #00000040;box-shadow:0 6px 12px #00000040}.dx-tagbox .dx-texteditor-input{width:auto}.dx-tagbox.dx-tagbox-default-template.dx-tagbox-only-select .dx-texteditor-input{border:none;color:#0000;text-shadow:0 0 0 gray;min-width:0;width:.1px;padding-left:0;padding-right:0;margin-left:0;margin-right:0}.dx-tagbox.dx-tagbox-default-template.dx-tagbox-only-select .dx-texteditor-input:focus{outline:0}.dx-tagbox.dx-state-disabled .dx-texteditor-input{background:0 0}.dx-tagbox.dx-state-disabled .dx-tag-content{cursor:default}.dx-tagbox:not(.dx-tagbox-single-line) .dx-texteditor-input-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch}.dx-tag{max-width:calc(100% - 1px);display:inline-block;-ms-flex-item-align:start;align-self:flex-start}.dx-tag-container.dx-texteditor-input-container{padding:0 4px 4px 0;outline:0}.dx-tagbox-single-line .dx-tag-container.dx-texteditor-input-container{overflow:hidden;white-space:nowrap}.dx-texteditor-container.dx-tag-container{white-space:normal}.dx-tag-content{position:relative;display:inline-block;text-align:center;cursor:pointer;margin:4px 0 0 4px;padding:3px 25px 4px 6px;min-width:40px;background-color:#ddd;border-radius:2px;color:#333}.dx-tag-content:before{content:\".\";color:#0000;display:inline-block;width:0}.dx-tag-remove-button{position:absolute;top:0;right:0;width:25px;height:100%}.dx-tag-remove-button:after,.dx-tag-remove-button:before{position:absolute;top:50%;content:\"\";-webkit-transform:rotate(45deg);transform:rotate(45deg);right:9px;margin-top:-5px;width:3px;height:11px;background:#aaa}.dx-rtl .dx-tagbox .dx-tag-content,.dx-tagbox.dx-rtl .dx-tag-content{margin-left:0;margin-right:4px}.dx-rtl .dx-tagbox .dx-tag-remove-button,.dx-tagbox.dx-rtl .dx-tag-remove-button{right:auto;left:0}.dx-rtl .dx-tagbox .dx-tag-container,.dx-tagbox.dx-rtl .dx-tag-container{padding-left:4px;padding-right:0}.dx-tagbox:not(.dx-texteditor-empty) .dx-texteditor-input{padding-left:0;margin-left:5px}.dx-rtl .dx-tagbox:not(.dx-texteditor-empty) .dx-texteditor-input,.dx-rtl.dx-tagbox:not(.dx-texteditor-empty) .dx-texteditor-input{padding-right:0;padding-left:0;margin-right:0;margin-left:0}.dx-tagbox-single-line .dx-tag-container{padding-right:0}.dx-tagbox:not(.dx-tagbox-single-line) .dx-texteditor-input{height:auto}.dx-tag-container.dx-texteditor-input-container .dx-texteditor-input{padding-bottom:4px;min-height:30px}.dx-texteditor-with-floating-label.dx-editor-outlined .dx-tag-container.dx-texteditor-input-container,.dx-texteditor-with-label.dx-editor-outlined .dx-tag-container.dx-texteditor-input-container{padding-top:8px}.dx-texteditor-with-floating-label.dx-editor-filled .dx-tag-container.dx-texteditor-input-container,.dx-texteditor-with-floating-label.dx-editor-underlined .dx-tag-container.dx-texteditor-input-container,.dx-texteditor-with-label.dx-editor-filled .dx-tag-container.dx-texteditor-input-container,.dx-texteditor-with-label.dx-editor-underlined .dx-tag-container.dx-texteditor-input-container{padding-top:12px;padding-bottom:2px}.dx-tag-remove-button:after{right:5px;margin-top:-1px;width:11px;height:3px}.dx-tag-remove-button:active:after,.dx-tag-remove-button:active:before{background:#ddd}.dx-tag.dx-state-focused .dx-tag-content{background-color:#cbcbcb;color:#333}.dx-tag.dx-state-focused .dx-tag-remove-button:after,.dx-tag.dx-state-focused .dx-tag-remove-button:before{background-color:#aaa}.dx-tag.dx-state-focused .dx-tag-remove-button:active:after,.dx-tag.dx-state-focused .dx-tag-remove-button:active:before{background:#ddd}.dx-tagbox.dx-invalid .dx-texteditor-container:after,.dx-tagbox.dx-valid .dx-texteditor-container:after{right:8px}.dx-rtl .dx-tagbox.dx-invalid .dx-texteditor-container:after,.dx-rtl .dx-tagbox.dx-valid .dx-texteditor-container:after,.dx-rtl.dx-tagbox.dx-invalid .dx-texteditor-container:after,.dx-rtl.dx-tagbox.dx-valid .dx-texteditor-container:after{left:8px}.dx-tagbox.dx-validation-pending .dx-texteditor-container .dx-pending-indicator{right:8px}.dx-rtl .dx-tagbox.dx-validation-pending .dx-texteditor-container .dx-pending-indicator,.dx-rtl.dx-tagbox.dx-validation-pending .dx-texteditor-container .dx-pending-indicator{left:8px}.dx-tagbox-popup-wrapper .dx-list-select-all{border-bottom:1px solid #ddd;padding-bottom:11px;margin-bottom:3px}.dx-rtl .dx-tag-content{padding-right:6px;padding-left:25px}.dx-rtl .dx-tag-remove-button:before{right:auto;left:9px}.dx-rtl .dx-tag-remove-button:after{right:auto;left:5px}.dx-radiobutton{display:table;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;line-height:22px}.dx-radio-value-container{display:table-cell;padding-right:10px;vertical-align:middle;padding-left:0}.dx-rtl .dx-radio-value-container,.dx-rtl.dx-radio-value-container{padding-right:5px;padding-left:10px}.dx-radiogroup-horizontal .dx-collection{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap}.dx-radiogroup-horizontal .dx-radiobutton:last-of-type{margin-right:0}.dx-state-disabled .dx-radiobutton,.dx-state-disabled.dx-radiobutton{cursor:default}.dx-radiobutton-icon{width:22px;height:22px}.dx-radiobutton-icon:before{display:block;width:20px;height:20px;border:1px solid #ddd;background-color:#fff;content:\"\";border-radius:11px;-webkit-box-sizing:content-box;box-sizing:initial}.dx-radiobutton-icon-checked .dx-radiobutton-icon-dot{display:block;margin-top:-16px;margin-left:6px;width:10px;height:10px;background:#337ab7;content:\"\";border-radius:5px}.dx-radiobutton.dx-state-readonly .dx-radiobutton-icon:before{border-color:#f4f4f4;background-color:#fff}.dx-radiobutton.dx-state-hover .dx-radiobutton-icon:before{border-color:#337ab766}.dx-radiobutton.dx-state-active .dx-radiobutton-icon:before{background-color:#60606033}.dx-radiobutton.dx-state-focused:not(.dx-state-active) .dx-radiobutton-icon:before{border:1px solid #337ab7}.dx-radiobutton.dx-state-disabled{opacity:.5}.dx-invalid .dx-radiobutton-icon:before{border-color:#d9534f66}.dx-invalid .dx-state-focused.dx-radiobutton .dx-radiobutton-icon:before,.dx-invalid .dx-state-hover.dx-radiobutton .dx-radiobutton-icon:before{border-color:#d9534f}.dx-state-disabled .dx-radiobutton.dx-state-disabled{opacity:1}.dx-rtl .dx-radiobutton.dx-radiobutton-checked .dx-radiobutton-icon-dot,.dx-rtl.dx-radiobutton.dx-radiobutton-checked .dx-radiobutton-icon-dot{margin-right:6px;margin-left:0}.dx-radiogroup .dx-radiobutton,.dx-radiogroup .dx-radiobutton-icon{margin:1px 0}.dx-radiogroup.dx-state-readonly .dx-radiobutton-icon:before{border-color:#f4f4f4;background-color:#fff}.dx-radiogroup-horizontal .dx-radiobutton{margin-right:17px}.dx-rtl .dx-radiogroup-horizontal .dx-radiobutton,.dx-rtl.dx-radiogroup-horizontal .dx-radiobutton{margin-right:0;margin-left:17px}.dx-accordion-item-title{cursor:pointer;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;color:#333;padding:9px 12px;font-size:18px}.dx-accordion-item-title:before{background-position:50%;float:right;font-weight:400;color:#333;content:\"\\\\f016\";font-family:DXIcons;font-size:18px;margin-left:9px;margin-right:0;line-height:24px}.dx-accordion-item-body{overflow:hidden;padding:8px 12px 22px;font-size:14px}.dx-accordion-item-closed .dx-accordion-item-body{visibility:hidden}.dx-accordion-item{overflow:hidden;border:1px solid #0000;border-top-color:#ddd}.dx-accordion-item-opened .dx-accordion-item-body{visibility:visible}.dx-state-disabled .dx-accordion-item-title{cursor:default}.dx-accordion{background-color:#fff;color:#333}.dx-accordion-item:last-child{border-bottom:1px solid #ddd}.dx-accordion-item.dx-state-active:not(.dx-accordion-item-opened) .dx-icon{color:#333}.dx-accordion-item.dx-state-active:not(.dx-accordion-item-opened)>.dx-accordion-item-title{color:#333;background-color:#60606033}.dx-accordion-item.dx-state-hover>.dx-accordion-item-title{background-color:#0000000a}.dx-accordion-item.dx-state-hover:not(:last-child):not(.dx-accordion-item-opened):not(.dx-state-focused){border-bottom-color:#0000000a}.dx-accordion-item-opened{border-color:#ddd}.dx-accordion-item-opened.dx-state-hover>.dx-accordion-item-title,.dx-accordion-item-opened>.dx-accordion-item-title{background-color:initial}.dx-accordion-item-opened>.dx-accordion-item-title:before{content:\"\\\\f014\"}.dx-accordion-item-opened+.dx-accordion-item{border-top-color:#0000}.dx-accordion-item-opened+.dx-accordion-item.dx-state-hover:not(.dx-state-focused){border-top-color:#0000000a}.dx-accordion-item-title .dx-icon{width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;font-size:18px;text-align:center;line-height:18px;display:inline-block;color:#333}.dx-accordion-item-title .dx-accordion-item-title-caption .dx-icon{margin-right:6px;margin-left:0;vertical-align:top;position:relative;top:4px}.dx-accordion-item-title .dx-accordion-item-title-caption .dx-icon.dx-icon-right,.dx-rtl .dx-accordion-item-title .dx-accordion-item-title-caption .dx-icon,.dx-rtl.dx-accordion-item-title .dx-accordion-item-title-caption .dx-icon{margin-left:6px;margin-right:0}.dx-rtl .dx-accordion-item-title .dx-accordion-item-title-caption .dx-icon.dx-icon-right,.dx-rtl.dx-accordion-item-title .dx-accordion-item-title-caption .dx-icon.dx-icon-right{margin-right:6px;margin-left:0}.dx-state-disabled.dx-accordion-item{opacity:.5}.dx-state-focused.dx-accordion-item{border-color:#337ab7}.dx-rtl .dx-accordion-item-title:before{float:left;margin-left:0;margin-right:9px}.dx-colorbox-input-container.dx-colorbox-color-is-not-defined .dx-colorbox-color-result-preview{border:none;background:url(${___CSS_LOADER_URL_REPLACEMENT_16___}) no-repeat}.dx-colorbox-input-container .dx-placeholder{max-width:calc(100% - 25px)}.dx-colorbox .dx-texteditor-input-container:before{content:\"\";display:block;position:absolute;top:50%;z-index:1;width:15px;height:15px;margin-top:-7.5px;left:14px}.dx-colorbox .dx-colorbox-color-is-not-defined .dx-texteditor-input-container:before{background:0 0}.dx-colorbox.dx-editor-filled .dx-texteditor-label .dx-label-before,.dx-colorbox.dx-editor-outlined .dx-texteditor-label .dx-label-before,.dx-colorbox.dx-editor-underlined .dx-texteditor-label .dx-label-before{min-width:40px}.dx-colorbox-color-result-preview{position:absolute;top:50%;z-index:2;width:17px;height:17px;margin-top:-8.5px;left:13px;border:1px solid}.dx-colorbox-input-container .dx-colorbox-input.dx-texteditor-input{-webkit-appearance:none;padding-left:40px}.dx-colorbox-overlay .dx-popup-content{overflow:hidden;padding:20px}.dx-colorbox-overlay .dx-popup-bottom .dx-toolbar-item:first-child{padding-right:10px}.dx-colorbox-overlay .dx-colorview-buttons-container .dx-button{margin:0}.dx-rtl .dx-colorbox .dx-placeholder,.dx-rtl.dx-colorbox .dx-placeholder{right:32px}.dx-rtl .dx-colorbox.dx-dropdowneditor .dx-colorbox-input.dx-texteditor-input,.dx-rtl.dx-colorbox.dx-dropdowneditor .dx-colorbox-input.dx-texteditor-input{direction:ltr;text-align:end;padding-right:40px}.dx-rtl .dx-colorbox.dx-dropdowneditor .dx-colorbox-color-result-preview,.dx-rtl.dx-colorbox.dx-dropdowneditor .dx-colorbox-color-result-preview{left:auto;right:13px}.dx-rtl .dx-colorbox.dx-dropdowneditor .dx-colorbox-input-container:before,.dx-rtl.dx-colorbox.dx-dropdowneditor .dx-colorbox-input-container:before{left:auto;right:14px}.dx-colorview-container label{overflow:hidden;font-weight:400;margin:0;white-space:normal;line-height:36px;display:block;color:#333}.dx-colorview-container .dx-button{margin-top:0;margin-bottom:0}.dx-colorview-container .dx-button.dx-colorview-apply-button{margin-right:10px;margin-left:0}.dx-colorview-container .dx-button.dx-colorview-cancel-button{margin-right:0;margin-left:0}.dx-colorview-container-row{overflow:hidden;padding-top:1px}.dx-colorview-container-row:first-child{margin-top:0}.dx-colorview-container-cell{float:left}.dx-colorview-palette-handle{width:28px;height:28px;top:0;left:0;cursor:crosshair;border-radius:100%;z-index:5;position:absolute}.dx-colorview-alpha-channel-handle,.dx-colorview-hue-scale-handle{position:absolute;cursor:pointer}.dx-colorview-hue-scale-handle{width:36px;height:17px;top:0;left:-7px}.dx-colorview-alpha-channel-handle{width:17px;height:36px;top:-6px;left:0}.dx-colorview-hue-scale{position:relative;background-repeat:no-repeat;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,red),color-stop(17%,#ff0),color-stop(33%,#0f0),color-stop(50%,#0ff),color-stop(67%,#00f),color-stop(83%,#f0f),to(red));background-image:linear-gradient(0deg,red,#ff0 17%,#0f0 33%,#0ff 50%,#00f 67%,#f0f 83%,red)}.dx-colorbox-input-container:after,.dx-colorview-alpha-channel-wrapper,.dx-colorview-color-preview-container-inner{background-image:linear-gradient(45deg,#ccc 25%,#0000 0,#0000 74%,#ccc 75%,#ccc),linear-gradient(45deg,#ccc 25%,#0000 0,#0000 74%,#ccc 75%,#ccc);background-size:16px 16px;background-position:0 0,8px 8px}.dx-colorview-alpha-channel-wrapper{background-position:0 6px,8px 14px}.dx-colorbox-input-container{height:100%}.dx-colorview-palette-gradient-white{background-repeat:no-repeat;background-image:-webkit-gradient(linear,right top,left top,from(#fff0),to(#fff));background-image:linear-gradient(270deg,#fff0,#fff)}.dx-colorview-palette-gradient-black{background-repeat:no-repeat;background-image:-webkit-gradient(linear,left top,left bottom,from(#0000),to(#000));background-image:linear-gradient(180deg,#0000,#000)}.dx-colorview-palette{position:relative;overflow:hidden;cursor:crosshair}.dx-colorview-palette-gradient{position:absolute;top:0;left:0;width:100%;height:100%}.dx-colorview-alpha-channel-scale{height:20px;position:relative}.dx-colorview-alpha-channel-cell{margin:6px 0;position:relative}.dx-colorview-alpha-channel-cell .dx-button{width:90px}.dx-rtl .dx-colorview-container-row .dx-colorview-container-cell{float:right}.dx-rtl .dx-colorview-container label .dx-texteditor{float:left}.dx-rtl .dx-colorview-alpha-channel-scale{direction:ltr}.dx-colorview-palette-handle{background:radial-gradient(#0000 5px,#0003 6px,#fff 7px,#fff 12px,#0003 13px);-webkit-box-shadow:0 1px 1px 0 #0003;box-shadow:0 1px 1px 0 #0003}.dx-colorview-hue-scale-handle{border:1px solid #0003;-webkit-box-shadow:inset -5px 0 0 3px #fff,inset 5px 0 0 3px #fff,inset -6px 0 1px 4px #0003,inset 6px 0 1px 4px #0003;box-shadow:inset -5px 0 0 3px #fff,inset 5px 0 0 3px #fff,inset -6px 0 1px 4px #0003,inset 6px 0 1px 4px #0003}.dx-colorview-alpha-channel-handle{border:1px solid #0003;-webkit-box-shadow:inset 0 -5px 0 3px #fff,inset 0 5px 0 3px #fff,inset 0 -6px 1px 4px #0003,inset 0 6px 1px 4px #0003;box-shadow:inset 0 -5px 0 3px #fff,inset 0 5px 0 3px #fff,inset 0 -6px 1px 4px #0003,inset 0 6px 1px 4px #0003}.dx-colorview-container{overflow:hidden;width:450px}.dx-colorview-container label.dx-colorview-label-hex{margin:10px 0 0}.dx-colorview-container label.dx-colorview-alpha-channel-label{margin-left:43px;width:115px}.dx-colorview-container label .dx-texteditor{float:right;width:69px;margin:1px 1px 10px 0}.dx-colorview-hue-scale-cell{position:relative;margin-left:19px}.dx-colorview-palette{width:288px;height:299px}.dx-colorview-alpha-channel-scale{width:288px}.dx-colorview-container-row.dx-colorview-alpha-channel-row{margin-top:10px}.dx-colorview-hue-scale{width:18px;height:299px}.dx-colorview-alpha-channel-cell{width:292px}.dx-colorview-hue-scale-wrapper{height:301px}.dx-colorview-color-preview{width:100%;height:40px}.dx-colorview-controls-container{position:relative;width:90px;margin-left:27px}.dx-colorview-alpha-channel-border,.dx-colorview-color-preview-container,.dx-colorview-hue-scale-wrapper,.dx-colorview-palette-cell{padding:1px;margin:0 1px 1px;background-color:#fff;-webkit-box-shadow:0 0 0 1px #ddd;box-shadow:0 0 0 1px #ddd}.dx-colorview-color-preview-container{margin-bottom:34px}.dx-rtl .dx-colorview-controls-container{margin-left:0;margin-right:27px}.dx-rtl .dx-colorview-hue-scale-cell{margin-left:0;margin-right:19px}.dx-rtl .dx-colorview-container label.dx-colorview-alpha-channel-label{margin-left:0;margin-right:43px}.dx-colorbox.dx-state-focused .dx-colorbox-input{padding-left:40px}.dx-colorbox .dx-placeholder{left:32px}.dx-colorbox-color-result-preview{border-color:#ddd}.dx-colorbox-overlay{padding:0}.dx-colorbox-overlay.dx-overlay-content{background-color:#fff}.dx-rtl .dx-colorbox.dx-state-focused .dx-colorbox-input,.dx-rtl.dx-colorbox.dx-state-focused .dx-colorbox-input{padding-right:40px}.dx-rtl .dx-colorbox-overlay .dx-toolbar-item:first-child{padding-left:10px;padding-right:0}.dx-pager{overflow:hidden;width:100%;line-height:normal;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;padding-top:9px;padding-bottom:9px}.dx-pager .dx-pages{white-space:nowrap;float:right}.dx-pager .dx-pages .dx-page-indexes{display:inline-block}.dx-pager .dx-pages .dx-page{display:inline-block;cursor:pointer;margin-left:5px;margin-right:1px}.dx-pager .dx-pages .dx-separator{display:inline-block}.dx-pager .dx-pages .dx-info{display:inline-block;margin-right:9px;opacity:.6}.dx-pager .dx-pages .dx-navigate-button{cursor:pointer;display:inline-block;vertical-align:top;-webkit-box-sizing:content-box;box-sizing:initial}.dx-pager .dx-pages .dx-navigate-button.dx-button-disable{opacity:.3;cursor:inherit}.dx-pager .dx-page-sizes{float:left}.dx-pager .dx-page-sizes .dx-page-size{display:inline-block;cursor:pointer;margin-left:4px;margin-right:1px}.dx-pager .dx-page-sizes .dx-page-size.dx-first-child,.dx-pager .dx-page-sizes .dx-page-size:first-child{margin-left:1px}.dx-pager .dx-page-sizes .dx-selection,.dx-pager .dx-pages .dx-selection{cursor:inherit;text-shadow:none;color:#333;border-color:#0000;background-color:#d4d4d4}.dx-pager .dx-light-pages{display:inline-block}.dx-pager .dx-light-pages .dx-page-index{width:40px}.dx-pager .dx-light-pages .dx-pages-count{cursor:pointer}.dx-pager .dx-light-pages .dx-info-text,.dx-pager .dx-light-pages .dx-pages-count{padding-left:6px}.dx-pager .dx-light-pages .dx-info-text,.dx-pager .dx-light-pages .dx-page-index,.dx-pager .dx-light-pages .dx-pages-count{display:table-cell}.dx-pager.dx-rtl .dx-pages,.dx-rtl .dx-pager .dx-pages{float:left;direction:ltr}.dx-pager.dx-rtl .dx-pages .dx-page,.dx-rtl .dx-pager .dx-pages .dx-page{direction:ltr}.dx-pager.dx-rtl .dx-pages .dx-page:first-child,.dx-rtl .dx-pager .dx-pages .dx-page:first-child{margin-left:1px}.dx-pager.dx-rtl .dx-pages .dx-info,.dx-rtl .dx-pager .dx-pages .dx-info{direction:rtl;margin-left:9px;margin-right:0}.dx-pager.dx-rtl .dx-page-sizes,.dx-rtl .dx-pager .dx-page-sizes{float:right}.dx-pager.dx-light-mode .dx-page-sizes{min-width:42px}.dx-pager.dx-light-mode .dx-page-indexes{vertical-align:middle}.dx-pager.dx-light-mode .dx-page-index{min-width:19px}.dx-pager .dx-pages .dx-page{padding:7px 9px 8px}.dx-pager .dx-pages .dx-separator{padding-left:8px;padding-right:8px}.dx-pager .dx-pages .dx-navigate-button{width:9px;height:17px;padding:9px 13px}.dx-pager .dx-pages .dx-prev-button{font:14px/1 DXIcons}.dx-pager .dx-pages .dx-prev-button:before{content:\"\\\\f012\"}.dx-pager .dx-pages .dx-next-button{font:14px/1 DXIcons}.dx-pager .dx-pages .dx-next-button:before{content:\"\\\\f010\"}.dx-pager .dx-pages .dx-next-button,.dx-pager .dx-pages .dx-prev-button{position:relative;font-size:21px;text-align:center;line-height:21px}.dx-pager .dx-pages .dx-next-button:before,.dx-pager .dx-pages .dx-prev-button:before{position:absolute;display:block;width:21px;top:50%;margin-top:-10.5px;left:50%;margin-left:-10.5px}.dx-pager .dx-page,.dx-pager .dx-page-size{border-radius:3px;border:1px solid #0000}.dx-pager .dx-page-sizes .dx-page-size{padding:7px 9px 8px 10px}.dx-gridbase-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;min-height:inherit;max-height:inherit}.dx-gridbase-container>*{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.dx-datagrid-important-margin{margin-right:5px!important}.dx-datagrid-table{background-color:initial}.dx-datagrid-borders>.dx-datagrid-total-footer{border-top:0}.dx-datagrid-borders>.dx-datagrid-pager{margin-top:-1px}.dx-datagrid-borders>.dx-datagrid-header-panel{border-bottom:0}.dx-datagrid-borders>.dx-datagrid-rowsview.dx-last-row-border tbody:last-child>.dx-data-row:nth-last-child(2)>td{border-bottom-width:0}.dx-datagrid .dx-datagrid-content-fixed{position:absolute;top:0;left:0;bottom:0;right:0;z-index:2;pointer-events:none;overflow:hidden}.dx-datagrid .dx-datagrid-content-fixed .dx-datagrid-table{position:relative}.dx-datagrid .dx-datagrid-content-fixed .dx-datagrid-table td{pointer-events:auto}.dx-datagrid .dx-datagrid-content-fixed .dx-datagrid-table .dx-row td.dx-pointer-events-none{visibility:hidden;background-color:initial;pointer-events:none;border-top-color:#0000;border-bottom-color:#0000}.dx-datagrid .dx-datagrid-content-fixed .dx-datagrid-table .dx-header-row td.dx-pointer-events-none{border-bottom-color:#0000}.dx-datagrid .dx-datagrid-content-fixed .dx-datagrid-table.dx-datagrid-table-fixed .dx-row td.dx-pointer-events-none{width:auto}.dx-datagrid .dx-menu-subitem ul li{padding-top:0}.dx-datagrid .dx-menu-subitem ul li:first-child{padding-top:1px}.dx-datagrid .dx-menu-subitem .dx-menu-item{padding:7px 30px 7px 5px}.dx-datagrid .dx-menu-subitem .dx-menu-item .dx-menu-image{background-position-x:left}.dx-datagrid .dx-column-indicators{display:inline-block;vertical-align:top;white-space:nowrap}.dx-datagrid .dx-column-indicators.dx-visibility-hidden{visibility:hidden}.dx-datagrid .dx-column-indicators .dx-sort-index-icon{padding-right:3px;margin-left:-3px;width:15px}.dx-datagrid .dx-column-indicators .dx-header-filter.dx-header-filter,.dx-datagrid .dx-column-indicators .dx-header-filter.dx-sort,.dx-datagrid .dx-column-indicators .dx-sort.dx-header-filter,.dx-datagrid .dx-column-indicators .dx-sort.dx-sort{display:inline-block}.dx-datagrid .dx-column-indicators .dx-header-filter.dx-header-filter:after,.dx-datagrid .dx-column-indicators .dx-sort.dx-header-filter:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;margin:-7px}.dx-datagrid .dx-row>td,.dx-datagrid .dx-row>tr>td{padding:7px}.dx-datagrid .dx-error-row{-webkit-user-select:initial;-moz-user-select:initial;-ms-user-select:initial;user-select:auto}.dx-datagrid .dx-error-row .dx-error-message{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.dx-datagrid .dx-error-row .dx-error-message a{color:inherit}.dx-datagrid .dx-datagrid-rowsview .dx-data-row .dx-command-drag{cursor:move;vertical-align:middle;padding:0}.dx-sortable-dragging .dx-datagrid-rowsview .dx-data-row .dx-command-drag{cursor:pointer;cursor:-webkit-grabbing;cursor:grabbing}.dx-datagrid-column-chooser .dx-overlay-content .dx-popup-title{border-bottom:none;font-size:16px}.dx-datagrid-column-chooser .dx-overlay-content .dx-popup-title .dx-toolbar-label{font-size:16px}.dx-datagrid-column-chooser .dx-overlay-content .dx-popup-content{padding:0 20px 20px}.dx-datagrid-column-chooser .dx-overlay-content .dx-popup-content .dx-column-chooser-item.dx-datagrid-drag-action{opacity:1;cursor:pointer;-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.dx-datagrid-column-chooser.dx-datagrid-column-chooser-mode-drag .dx-treeview-node-container:first-child>.dx-treeview-node-is-leaf{padding:0}.dx-datagrid-column-chooser.dx-datagrid-column-chooser-mode-select .dx-datagrid-column-chooser-plain .dx-treeview-node{padding-left:0}.dx-datagrid-column-chooser.dx-datagrid-column-chooser-mode-select .dx-datagrid-column-chooser-plain .dx-treeview-node .dx-checkbox{left:4px}.dx-datagrid-nowrap,.dx-datagrid-nowrap .dx-header-row>td>.dx-datagrid-text-content{white-space:nowrap}.dx-datagrid-drag-header{position:absolute;vertical-align:middle;cursor:pointer;z-index:10000;-webkit-box-sizing:content-box;box-sizing:initial}.dx-datagrid-drag-header.dx-drag-command-cell{padding:0}.dx-datagrid-columns-separator{position:absolute;z-index:3;width:3px}.dx-datagrid-columns-separator-transparent{border-left:0;border-right:0}.dx-datagrid-tracker{width:100%;z-index:3;cursor:col-resize}.dx-datagrid-table-content,.dx-datagrid-tracker{position:absolute;top:0}.dx-datagrid-focus-overlay{position:absolute;pointer-events:none;top:0;left:0;visibility:hidden}.dx-datagrid-action,.dx-datagrid-drag-action{cursor:pointer}.dx-datagrid-content{position:relative}.dx-datagrid-content .dx-overlay-wrapper.dx-invalid-message.dx-datagrid-invalid-message{visibility:visible}.dx-datagrid-content .dx-overlay-wrapper.dx-invalid-message.dx-datagrid-invalid-message .dx-overlay-content,.dx-datagrid-text-content{overflow:hidden;text-overflow:ellipsis}.dx-datagrid-table-fixed{table-layout:fixed;width:100%}.dx-datagrid-content .dx-datagrid-table{border-collapse:collapse;border-spacing:0;margin:0;max-width:10px}.dx-datagrid-content .dx-datagrid-table.dx-datagrid-table-fixed{max-width:none}.dx-datagrid-content .dx-datagrid-table.dx-datagrid-table-fixed .dx-column-indicators .dx-sort.dx-sort-none{display:none}.dx-datagrid-content .dx-datagrid-table.dx-datagrid-table-fixed .dx-column-indicators .dx-sort.dx-sort-index{width:26px}.dx-datagrid-content .dx-datagrid-table .dx-datagrid-best-fit{max-width:none!important}.dx-datagrid-content .dx-datagrid-table .dx-datagrid-best-fit .dx-column-indicators{float:none!important}.dx-datagrid-content .dx-datagrid-table .dx-datagrid-best-fit .dx-column-indicators>span{width:14px}.dx-datagrid-content .dx-datagrid-table .dx-datagrid-best-fit .dx-column-indicators .dx-sort.dx-sort-none{display:inline-block}.dx-datagrid-content .dx-datagrid-table .dx-datagrid-best-fit .dx-header-row .dx-datagrid-text-content{max-width:none}.dx-datagrid-content .dx-datagrid-table .dx-datagrid-best-fit .dx-text-content-alignment-left{margin-right:3px}.dx-datagrid-content .dx-datagrid-table .dx-datagrid-best-fit .dx-text-content-alignment-right{margin-left:3px}.dx-datagrid-content .dx-datagrid-table:not(.dx-datagrid-table-fixed) .dx-column-indicators{float:none!important}.dx-datagrid-content .dx-datagrid-table:not(.dx-datagrid-table-fixed) .dx-column-indicators>span{width:14px}.dx-datagrid-content .dx-datagrid-table:not(.dx-datagrid-table-fixed) .dx-text-content-alignment-left{margin-right:3px}.dx-datagrid-content .dx-datagrid-table:not(.dx-datagrid-table-fixed) .dx-text-content-alignment-right{margin-left:3px}.dx-datagrid-content .dx-datagrid-table:not(.dx-datagrid-table-fixed) .dx-master-detail-cell{max-width:0}.dx-datagrid-content .dx-datagrid-table [class*=column]+[class*=column]:last-child{float:none}.dx-datagrid-content .dx-datagrid-table .dx-row>td,.dx-datagrid-content .dx-datagrid-table .dx-row>tr>td{vertical-align:top}.dx-datagrid-content .dx-datagrid-table .dx-row>td.dx-first-child,.dx-datagrid-content .dx-datagrid-table .dx-row>td:first-child,.dx-datagrid-content .dx-datagrid-table .dx-row>tr>td.dx-first-child,.dx-datagrid-content .dx-datagrid-table .dx-row>tr>td:first-child{border-left:0}.dx-datagrid-content .dx-datagrid-table .dx-row>td.dx-last-child,.dx-datagrid-content .dx-datagrid-table .dx-row>tr>td.dx-last-child{border-right:0}.dx-datagrid-content .dx-datagrid-table .dx-row>td.dx-datagrid-group-space,.dx-datagrid-content .dx-datagrid-table .dx-row>tr>td.dx-datagrid-group-space{border-right:none;vertical-align:top}.dx-datagrid-content .dx-datagrid-table .dx-row>td.dx-datagrid-group-space+td,.dx-datagrid-content .dx-datagrid-table .dx-row>tr>td.dx-datagrid-group-space+td{border-left:none}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-editor-container{overflow:hidden}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-datagrid-invalid .dx-invalid-message.dx-overlay{position:static}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-editor-cell{max-width:0;padding:0;vertical-align:middle}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-editor-cell .dx-texteditor,.dx-datagrid-content .dx-datagrid-table .dx-row .dx-editor-cell .dx-texteditor-container{border:0;margin:0}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-command-select{padding:0;width:70px;min-width:70px;max-width:70px}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-command-edit{text-overflow:clip;width:100px;min-width:100px;white-space:nowrap}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-command-edit.dx-command-edit-with-icons{width:80px;min-width:80px}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-command-edit.dx-command-edit-with-icons .dx-link{text-decoration:none}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-command-edit .dx-link{display:inline-block}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-command-expand{padding:0;width:30px;min-width:30px;max-width:30px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.dx-datagrid-content .dx-datagrid-table .dx-row .dx-command-adaptive{padding:0;vertical-align:middle}.dx-datagrid-content .dx-datagrid-table .dx-data-row .dx-command-edit-with-icons{line-height:1;white-space:nowrap}.dx-datagrid-content .dx-datagrid-table .dx-filter-range-content{padding:7px 7px 7px 32px;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.dx-datagrid-content .dx-datagrid-table .dx-row>.dx-last-data-cell{border-right:none}.dx-datagrid-content .dx-datagrid-table .dx-row>.dx-command-adaptive-hidden{border-left:none}.dx-cell-modified,.dx-datagrid-invalid,.dx-highlight-outline{position:relative;padding:7px}.dx-cell-modified:after,.dx-datagrid-invalid:after,.dx-highlight-outline:after{content:\"\";position:absolute;border:2px solid #0000;top:0;left:1px;bottom:0;right:0;pointer-events:none}.dx-cell-modified.dx-hidden,.dx-datagrid-invalid.dx-hidden,.dx-highlight-outline.dx-hidden{display:block!important}.dx-cell-modified.dx-hidden:after,.dx-datagrid-invalid.dx-hidden:after,.dx-highlight-outline.dx-hidden:after{display:none}.dx-editor-cell .dx-highlight-outline,.dx-editor-cell.dx-cell-modified,.dx-editor-cell.dx-datagrid-invalid{padding:0}.dx-column-lines .dx-cell-modified:after,.dx-column-lines .dx-datagrid-invalid:after,.dx-column-lines .dx-highlight-outline:after{left:0}.dx-datagrid-headers{position:relative;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.dx-header-row>td>.dx-datagrid-text-content{display:inline-block;white-space:normal;vertical-align:top}.dx-header-row>td>.dx-datagrid-text-content:not(.dx-sort-indicator):not(.dx-header-filter-indicator){max-width:100%}.dx-datagrid-filter-range-overlay .dx-editor-container .dx-texteditor{border-width:0}.dx-datagrid-filter-range-overlay .dx-editor-container .dx-texteditor.dx-state-focused:after{content:\" \";position:absolute;top:-1px;bottom:-1px;left:-1px;right:-1px;z-index:1;pointer-events:none}.dx-datagrid-filter-range-overlay .dx-datagrid-filter-range-end{border-top:1px solid #0000}.dx-datagrid-filter-range-overlay .dx-editor-container.dx-cell-modified,.dx-datagrid-filter-range-overlay .dx-editor-container.dx-datagrid-invalid{padding:0}.dx-datagrid-filter-row .dx-editor-cell .dx-menu{display:none}.dx-datagrid-filter-row .dx-editor-cell .dx-editor-with-menu{position:relative}.dx-datagrid-filter-row .dx-editor-cell .dx-editor-with-menu .dx-menu{display:block}.dx-datagrid-filter-row .dx-editor-cell .dx-editor-with-menu .dx-placeholder:before,.dx-datagrid-filter-row .dx-editor-cell .dx-editor-with-menu .dx-texteditor-input{padding-left:32px}.dx-datagrid-filter-row .dx-cell-modified:after,.dx-datagrid-filter-row .dx-datagrid-invalid:after{pointer-events:none}.dx-datagrid-filter-row .dx-focused .dx-highlight-outline:after,.dx-datagrid-filter-row .dx-focused.dx-cell-modified:after,.dx-datagrid-filter-row .dx-focused.dx-datagrid-invalid:after{border-color:#0000}.dx-datagrid-filter-row .dx-menu{z-index:1;position:absolute;top:0;left:0;cursor:pointer;margin-left:-2px;margin-top:-2px;height:100%;overflow:visible}.dx-datagrid-filter-row .dx-menu .dx-menu-horizontal{height:100%}.dx-datagrid-filter-row .dx-menu .dx-menu-horizontal .dx-menu-item-popout,.dx-datagrid-filter-row .dx-menu .dx-menu-horizontal .dx-menu-item-text{display:none}.dx-datagrid-filter-row .dx-menu-item.dx-state-focused:after{position:absolute;left:2px;top:2px;width:100%;height:102%;content:\"\"}.dx-datagrid-filter-row>.dx-first-cell .dx-menu,.dx-datagrid-filter-row>td:first-child .dx-menu{margin-left:0}.dx-datagrid-filter-row .dx-menu-horizontal .dx-overlay-content ul .dx-menu-item{padding:5px 30px 5px 5px}.dx-datagrid-filter-row .dx-menu ul.dx-menu-horizontal>li>.dx-menu-item{padding:8px 5px 7px}.dx-datagrid-filter-row .dx-menu ul.dx-menu-horizontal>li>.dx-menu-item.dx-state-disabled:hover{padding:9px 6px 8px}.dx-datagrid-filter-row .dx-menu-caption{padding-left:6px}.dx-datagrid-filter-row .dx-menu ul .dx-menu-item .dx-menu-chouser-down{display:none}.dx-datagrid-filter-row .dx-menu-item-highlight{font-weight:400}.dx-datagrid-scroll-container{overflow:hidden;width:100%}.dx-datagrid-header-panel{text-align:left}.dx-datagrid-header-panel .dx-toolbar-menu-container .dx-button{margin-left:10px}.dx-datagrid-search-panel{margin:0 0 0 15px}.dx-gridbase-container>.dx-datagrid-rowsview{-webkit-box-flex:1;-ms-flex:auto;flex:auto;height:auto}.dx-gridbase-container>.dx-datagrid-rowsview.dx-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex}.dx-gridbase-container>.dx-datagrid-rowsview.dx-scrollable>.dx-scrollable-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;height:auto;min-width:0;min-height:0}.dx-datagrid-rowsview{position:relative;overflow:hidden}.dx-datagrid-rowsview.dx-empty{height:100px}.dx-datagrid-rowsview.dx-empty .dx-scrollable-content{height:100%}.dx-datagrid-rowsview.dx-fixed-columns.dx-scrollable .dx-scrollable-content{z-index:2}.dx-datagrid-rowsview.dx-fixed-columns .dx-scrollable-scrollbar{z-index:3}.dx-datagrid-rowsview .dx-datagrid-content{overflow-anchor:none}.dx-datagrid-rowsview .dx-datagrid-content:not(.dx-datagrid-content-fixed){min-height:100%}.dx-datagrid-rowsview .dx-datagrid-content.dx-scrollable-container{width:auto}.dx-datagrid-rowsview .dx-datagrid-content.dx-datagrid-content-fixed.dx-scrollable-container{height:auto}.dx-datagrid-rowsview:focus{outline:0}.dx-datagrid-rowsview .dx-row>td,.dx-datagrid-rowsview .dx-row>tr>td{overflow:hidden;text-overflow:ellipsis}.dx-datagrid-rowsview .dx-row.dx-row-lines:first-child,.dx-datagrid-rowsview .dx-row.dx-row-lines:first-child>td,.dx-datagrid-rowsview .dx-row.dx-row-lines:first-child>tr>td{border-top:none}.dx-datagrid-rowsview .dx-data-row>td:focus{outline:0}.dx-datagrid-rowsview .dx-selection.dx-row:hover>td .dx-link,.dx-datagrid-rowsview .dx-selection.dx-row:hover>tr>td .dx-link,.dx-datagrid-rowsview .dx-selection>td .dx-link,.dx-datagrid-rowsview .dx-selection>tr>td .dx-link{color:inherit}.dx-datagrid-rowsview .dx-datagrid-table .dx-row.dx-freespace-row,.dx-datagrid-rowsview .dx-datagrid-table .dx-row.dx-virtual-row{border-top:0;border-bottom:0}.dx-datagrid-rowsview .dx-datagrid-table .dx-row.dx-freespace-row>td,.dx-datagrid-rowsview .dx-datagrid-table .dx-row.dx-virtual-row>td{padding-top:0;padding-bottom:0}.dx-datagrid-rowsview .dx-select-checkboxes-hidden>tbody>tr>td>.dx-select-checkbox{display:none}.dx-datagrid-rowsview .dx-select-checkboxes-hidden>tbody>tr.dx-selection>td>.dx-select-checkbox,.dx-datagrid-rowsview .dx-select-checkboxes-hidden>tbody>tr>td:hover>.dx-select-checkbox{display:inline-block}.dx-datagrid-rowsview .dx-row>.dx-master-detail-cell:focus{outline:0}.dx-datagrid-rowsview .dx-data-row.dx-edit-row .dx-cell-modified:after{border-color:#0000}.dx-datagrid-nodata{position:absolute;top:50%;left:50%;width:100%;text-align:center;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.dx-datagrid-bottom-load-panel{text-align:center;padding:10px}.dx-datagrid-hidden-column{white-space:nowrap}.dx-datagrid .dx-row .dx-datagrid-hidden-column{border-right-width:0;border-left-width:0}.dx-datagrid-hidden-column>*{display:none!important}.dx-datagrid-total-footer>.dx-datagrid-content{padding-top:7px;padding-bottom:7px}.dx-datagrid-summary-item{font-weight:700}.dx-datagrid-export-menu .dx-dropdownbutton-content .dx-list-item{display:block}.dx-datagrid-revert-tooltip.dx-popover-wrapper .dx-overlay-content{border:none;-webkit-box-shadow:none;box-shadow:none}.dx-datagrid-revert-tooltip.dx-popover-wrapper .dx-overlay-content .dx-popup-content{padding:0}.dx-datagrid-revert-tooltip.dx-popover-wrapper .dx-popover-arrow{width:0;height:0}.dx-datagrid-notouch-action{-ms-touch-action:none;touch-action:none;-ms-content-zooming:none;-ms-overflow-style:none}.dx-datagrid-column-chooser-list.dx-treeview .dx-empty-message,.dx-datagrid-column-chooser-list.dx-treeview .dx-treeview-item{border:none}.dx-datagrid-column-chooser-list.dx-treeview .dx-empty-message{text-align:center;left:0;right:0;bottom:50%;position:absolute}.dx-datagrid.dx-rtl .dx-menu-subitem .dx-menu-item,.dx-rtl .dx-datagrid .dx-menu-subitem .dx-menu-item{padding:7px 5px 7px 30px}.dx-datagrid.dx-rtl .dx-menu-subitem .dx-menu-item .dx-menu-image,.dx-rtl .dx-datagrid .dx-menu-subitem .dx-menu-item .dx-menu-image{background-position-x:right}.dx-datagrid.dx-rtl .dx-texteditor-buttons-container,.dx-rtl .dx-datagrid .dx-texteditor-buttons-container{text-align:start}.dx-rtl .dx-datagrid-content .dx-datagrid-table{direction:rtl}.dx-rtl .dx-datagrid-content .dx-datagrid-table .dx-row>td.dx-datagrid-group-space{border-left:none}.dx-rtl .dx-datagrid-content .dx-datagrid-table .dx-row>td.dx-datagrid-group-space+td{border-right:none}.dx-rtl .dx-datagrid-content .dx-datagrid-table .dx-row .dx-editor-container .dx-editor-cell .dx-checkbox.dx-checkbox-checked .dx-checkbox-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-rtl .dx-datagrid-content .dx-datagrid-table .dx-row .dx-filter-range-content{padding:7px 32px 7px 7px}.dx-rtl .dx-datagrid-headers .dx-datagrid-scrollable-simulated,.dx-rtl .dx-datagrid-total-footer .dx-datagrid-scrollable-simulated{direction:ltr}.dx-rtl .dx-datagrid-headers .dx-datagrid-scrollable-simulated .dx-datagrid-table,.dx-rtl .dx-datagrid-total-footer .dx-datagrid-scrollable-simulated .dx-datagrid-table{direction:rtl}.dx-rtl .dx-datagrid-filter-row .dx-editor-cell .dx-editor-with-menu .dx-texteditor .dx-placeholder:before,.dx-rtl .dx-datagrid-filter-row .dx-editor-cell .dx-editor-with-menu .dx-texteditor .dx-texteditor-input{padding-right:32px}.dx-rtl .dx-datagrid-filter-row .dx-menu{right:0;left:auto;margin-left:0;margin-right:-2px}.dx-rtl .dx-datagrid-filter-row>td:first-child .dx-menu{margin-left:0}.dx-rtl .dx-datagrid-filter-row .dx-menu-horizontal .dx-overlay-content ul .dx-menu-item{padding:5px 5px 5px 30px}.dx-rtl .dx-datagrid-filter-row .dx-menu-caption{padding-right:6px}.dx-rtl .dx-datagrid-header-panel{text-align:right}.dx-rtl .dx-datagrid-header-panel .dx-datagrid-column-chooser-button{margin-left:0}.dx-rtl .dx-datagrid-header-panel .dx-toolbar-menu-container .dx-button{margin-left:0;margin-right:10px}.dx-rtl .dx-datagrid-search-panel{margin:0 15px 0 0}.dx-datagrid-filter-panel,.dx-datagrid-filter-panel-left{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;min-width:0}.dx-datagrid-filter-panel .dx-datagrid-filter-panel-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-datagrid-filter-panel .dx-datagrid-filter-panel-clear-filter:hover,.dx-datagrid-filter-panel .dx-datagrid-filter-panel-text:hover{text-decoration:underline;cursor:pointer}.dx-datagrid-filter-panel .dx-datagrid-filter-panel-checkbox{padding-right:10px}.dx-datagrid-filter-panel .dx-icon-filter{margin:auto 7px auto auto;cursor:pointer}.dx-datagrid{position:relative;cursor:default;white-space:normal;line-height:normal}.dx-hidden.dx-group-cell{display:table-cell!important;font-size:0!important}.dx-datagrid-group-panel{display:inline-block;white-space:nowrap;width:100%}.dx-datagrid-group-panel .dx-group-panel-message{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-datagrid-group-panel .dx-group-panel-item{display:inline-block;min-width:30px;white-space:nowrap}.dx-datagrid-group-panel .dx-group-panel-item .dx-sort{margin-left:6px}.dx-datagrid-group-panel .dx-block-separator{display:inline-block;white-space:nowrap;position:relative;min-width:0}.dx-datagrid-group-panel .dx-block-separator .dx-sort{margin-left:6px}.dx-datagrid-rowsview .dx-row.dx-group-row td{border-top:1px solid;border-bottom:1px solid}.dx-datagrid-rowsview .dx-row.dx-group-row:first-child td{border-top:none}.dx-datagrid-rowsview .dx-group-row:focus{outline:0}.dx-datagrid-rowsview .dx-group-row.dx-row>td{border-left-color:#0000;border-right-color:#0000}.dx-datagrid-rowsview .dx-adaptive-detail-row .dx-field-item-content:focus{outline:0}.dx-datagrid-group-closed:before,.dx-datagrid-group-opened:before{position:absolute;display:block;right:0;left:0}.dx-rtl .dx-datagrid-group-closed{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-rtl .dx-datagrid-content .dx-datagrid-table .dx-group-row.dx-row.dx-column-lines>td{border-left:none;border-right:none}.dx-rtl .dx-datagrid-group-panel .dx-block-separator,.dx-rtl .dx-datagrid-group-panel .dx-group-panel-item{margin-right:0}.dx-rtl .dx-datagrid-group-panel .dx-sort{margin-left:0;margin-right:6px}.dx-datagrid-borders>.dx-datagrid-headers,.dx-datagrid-borders>.dx-datagrid-rowsview,.dx-datagrid-borders>.dx-datagrid-total-footer{border-left:1px solid #ddd;border-right:1px solid #ddd}.dx-datagrid-borders>.dx-datagrid-rowsview,.dx-datagrid-borders>.dx-datagrid-total-footer{border-bottom:1px solid #ddd}.dx-datagrid-borders>.dx-datagrid-filter-panel,.dx-datagrid-borders>.dx-datagrid-headers{border-top:1px solid #ddd}.dx-datagrid-borders>.dx-datagrid-filter-panel{border-top-width:0;border-left:1px solid #ddd;border-right:1px solid #ddd;border-bottom:1px solid #ddd}.dx-sortable-dragging>div>.dx-gridbase-container>.dx-datagrid-rowsview{border-color:#337ab780}.dx-datagrid .dx-sort-up{font:14px/1 DXIcons}.dx-datagrid .dx-sort-up:before{content:\"\\\\f051\"}.dx-datagrid .dx-sort-down{font:14px/1 DXIcons}.dx-datagrid .dx-sort-down:before{content:\"\\\\f052\"}.dx-datagrid .dx-sort-down,.dx-datagrid .dx-sort-up{font-family:inherit}.dx-datagrid .dx-sort-down:before,.dx-datagrid .dx-sort-up:before{font-family:DXIcons,sans-serif}.dx-datagrid .dx-datagrid-header-panel .dx-group-panel-item,.dx-datagrid .dx-datagrid-header-panel .dx-header-filter{outline:0}.dx-datagrid .dx-datagrid-header-panel.dx-state-focused .dx-datagrid-group-panel .dx-group-panel-item:focus,.dx-datagrid .dx-datagrid-header-panel.dx-state-focused .dx-datagrid-group-panel .dx-header-filter:focus{outline:2px solid #5c95c5;outline-offset:-2px}.dx-datagrid .dx-datagrid-header-panel.dx-state-focused .dx-datagrid-group-panel .dx-header-filter:focus{outline-offset:2px}.dx-datagrid .dx-datagrid-headers .dx-header-filter,.dx-datagrid .dx-datagrid-headers .dx-header-row>td{outline:0}.dx-datagrid .dx-datagrid-headers.dx-state-focused .dx-header-row td .dx-header-filter:focus,.dx-datagrid .dx-datagrid-headers.dx-state-focused .dx-header-row td:focus{outline:2px solid #5c95c5;outline-offset:2px}.dx-datagrid .dx-datagrid-headers.dx-state-focused .dx-header-row td:focus{outline-offset:-2px}.dx-datagrid .dx-header-filter{position:relative;color:#959595;font:14px/1 DXIcons}.dx-datagrid .dx-header-filter:before{content:\"\\\\f050\"}.dx-datagrid .dx-header-filter-empty{color:#95959580}.dx-datagrid.dx-filter-menu .dx-menu-item-content .dx-icon{width:14px;height:14px;background-position:0 0;background-size:14px 14px;padding:0;font-size:14px;text-align:center;line-height:14px}.dx-datagrid .dx-datagrid-content-fixed .dx-datagrid-table .dx-col-fixed{background-color:#fff}.dx-datagrid .dx-datagrid-headers .dx-row td.dx-pointer-events-none,.dx-datagrid .dx-datagrid-rowsview .dx-data-row td.dx-pointer-events-none,.dx-datagrid .dx-datagrid-rowsview .dx-freespace-row td.dx-pointer-events-none,.dx-datagrid .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none,.dx-datagrid .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none{border-left:2px solid #ddd;border-right:2px solid #ddd}.dx-datagrid .dx-datagrid-headers .dx-row td.dx-pointer-events-none.dx-first-cell,.dx-datagrid .dx-datagrid-rowsview .dx-data-row td.dx-pointer-events-none.dx-first-cell,.dx-datagrid .dx-datagrid-rowsview .dx-freespace-row td.dx-pointer-events-none.dx-first-cell,.dx-datagrid .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none.dx-first-cell,.dx-datagrid .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none.dx-first-cell{border-left:none}.dx-datagrid .dx-datagrid-headers .dx-row td.dx-pointer-events-none.dx-last-cell,.dx-datagrid .dx-datagrid-rowsview .dx-data-row td.dx-pointer-events-none.dx-last-cell,.dx-datagrid .dx-datagrid-rowsview .dx-freespace-row td.dx-pointer-events-none.dx-last-cell,.dx-datagrid .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none.dx-last-cell,.dx-datagrid .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none.dx-last-cell{border-right:none}.dx-datagrid .dx-datagrid-rowsview.dx-state-focused .dx-data-row>td.dx-command-edit>a.dx-link:focus{outline:2px solid #5c95c5;outline-offset:2px}.dx-datagrid .dx-datagrid-rowsview.dx-state-focused .dx-data-row.dx-row-focused>td.dx-command-edit>a.dx-link:focus{outline-color:#fff;outline-offset:0}.dx-datagrid .dx-datagrid-rowsview .dx-datagrid-edit-form{background-color:#fff}.dx-datagrid .dx-datagrid-rowsview .dx-virtual-row>td{position:relative}.dx-datagrid .dx-datagrid-rowsview .dx-virtual-row>td:not(.dx-datagrid-group-space):before{display:block;height:100%;content:\"\";background-image:url(${___CSS_LOADER_URL_REPLACEMENT_17___});background-repeat:repeat-y}.dx-datagrid .dx-datagrid-rowsview .dx-virtual-row>td[style*=\"text-align: right\"]:before{-webkit-transform:scaleX(-1);transform:scaleX(-1);background-position-y:34px}.dx-datagrid .dx-datagrid-filter-row .dx-filter-range-content{color:#333}.dx-datagrid .dx-error-row td{color:#fff;padding:0}.dx-datagrid .dx-column-lines>td:first-child{border-left:none}.dx-datagrid .dx-column-lines>td:last-child{border-right:none}.dx-datagrid .dx-command-drag .dx-datagrid-drag-icon{font:14px/1 DXIcons}.dx-datagrid .dx-command-drag .dx-datagrid-drag-icon:before{content:\"\\\\f038\"}.dx-datagrid-filter-panel{padding:10px;color:#333;border-top:1px solid #ddd}.dx-datagrid-filter-panel.dx-state-focused .dx-datagrid-filter-panel-clear-filter:focus,.dx-datagrid-filter-panel.dx-state-focused .dx-datagrid-filter-panel-text:focus,.dx-datagrid-filter-panel.dx-state-focused .dx-icon-filter:focus{outline:2px solid #5c95c5;outline-offset:3px}.dx-datagrid-form-buttons-container{float:right}.dx-datagrid-form-buttons-container .dx-button{margin-left:10px;margin-top:10px}.dx-datagrid-adaptive-more{cursor:pointer;font:21px/21px DXIcons}.dx-datagrid-adaptive-more:before{content:\"\\\\f06c\"}.dx-datagrid-edit-popup .dx-error-message{background-color:#e89895;white-space:normal;word-wrap:break-word;color:#fff;margin-bottom:20px}.dx-rtl .dx-datagrid .dx-datagrid-headers .dx-row td.dx-pointer-events-none,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-data-row td.dx-pointer-events-none,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-freespace-row td.dx-pointer-events-none,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none{border-left:2px solid #ddd;border-right:2px solid #ddd}.dx-rtl .dx-datagrid .dx-datagrid-headers .dx-row td.dx-pointer-events-none.dx-first-cell,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-data-row td.dx-pointer-events-none.dx-first-cell,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-freespace-row td.dx-pointer-events-none.dx-first-cell,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none.dx-first-cell,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none.dx-first-cell{border-right:none}.dx-rtl .dx-datagrid .dx-datagrid-headers .dx-row td.dx-pointer-events-none.dx-last-cell,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-data-row td.dx-pointer-events-none.dx-last-cell,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-freespace-row td.dx-pointer-events-none.dx-last-cell,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none.dx-last-cell,.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none.dx-last-cell{border-left:none}.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-virtual-row>td:before{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-rtl .dx-datagrid .dx-datagrid-rowsview .dx-virtual-row>td[style*=\"text-align: left\"]:before{-webkit-transform:scale(1);transform:scale(1)}.dx-rtl .dx-datagrid .dx-column-lines>td:first-child{border-right:none;border-left:1px solid #ddd}.dx-rtl .dx-datagrid .dx-column-lines>td:last-child{border-left:none;border-right:1px solid #ddd}.dx-rtl .dx-datagrid-form-buttons-container{float:left}.dx-rtl .dx-datagrid-form-buttons-container .dx-button{margin-left:0;margin-right:10px}.dx-datagrid-cell-updated-animation{-webkit-animation:dx-datagrid-highlight-change 1s;animation:dx-datagrid-highlight-change 1s}@-webkit-keyframes dx-datagrid-highlight-change{0%,50%{background-color:#33333314}}@keyframes dx-datagrid-highlight-change{0%,50%{background-color:#33333314}}.dx-datagrid-container.dx-filter-menu .dx-menu-item-has-icon .dx-icon,.dx-datagrid.dx-filter-menu .dx-menu-item-has-icon .dx-icon{color:#898989}.dx-datagrid-container.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-asc,.dx-datagrid.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-asc{font:16px/16px DXIcons;width:16px;height:16px;background-position:0 0;background-size:16px 16px;padding:0;text-align:center}.dx-datagrid-container.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-asc:before,.dx-datagrid.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-asc:before{content:\"\\\\f053\"}.dx-datagrid-container.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-desc,.dx-datagrid.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-desc{font:16px/16px DXIcons;width:16px;height:16px;background-position:0 0;background-size:16px 16px;padding:0;text-align:center}.dx-datagrid-container.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-desc:before,.dx-datagrid.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-desc:before{content:\"\\\\f054\"}.dx-datagrid .dx-icon-filter-operation-equals,.dx-datagrid-container .dx-icon-filter-operation-equals{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-equals:before,.dx-datagrid-container .dx-icon-filter-operation-equals:before{content:\"\\\\f044\"}.dx-datagrid .dx-icon-filter-operation-default,.dx-datagrid-container .dx-icon-filter-operation-default{font:12px/12px DXIcons;width:12px;height:12px;background-position:0 0;background-size:12px 12px;padding:0;text-align:center}.dx-datagrid .dx-icon-filter-operation-default:before,.dx-datagrid-container .dx-icon-filter-operation-default:before{content:\"\\\\f027\"}.dx-datagrid .dx-icon-filter-operation-not-equals,.dx-datagrid-container .dx-icon-filter-operation-not-equals{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-not-equals:before,.dx-datagrid-container .dx-icon-filter-operation-not-equals:before{content:\"\\\\f045\"}.dx-datagrid .dx-icon-filter-operation-less,.dx-datagrid-container .dx-icon-filter-operation-less{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-less:before,.dx-datagrid-container .dx-icon-filter-operation-less:before{content:\"\\\\f046\"}.dx-datagrid .dx-icon-filter-operation-less-equal,.dx-datagrid-container .dx-icon-filter-operation-less-equal{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-less-equal:before,.dx-datagrid-container .dx-icon-filter-operation-less-equal:before{content:\"\\\\f048\"}.dx-datagrid .dx-icon-filter-operation-greater,.dx-datagrid-container .dx-icon-filter-operation-greater{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-greater:before,.dx-datagrid-container .dx-icon-filter-operation-greater:before{content:\"\\\\f047\"}.dx-datagrid .dx-icon-filter-operation-greater-equal,.dx-datagrid-container .dx-icon-filter-operation-greater-equal{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-greater-equal:before,.dx-datagrid-container .dx-icon-filter-operation-greater-equal:before{content:\"\\\\f049\"}.dx-datagrid .dx-icon-filter-operation-contains,.dx-datagrid-container .dx-icon-filter-operation-contains{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-contains:before,.dx-datagrid-container .dx-icon-filter-operation-contains:before{content:\"\\\\f063\"}.dx-datagrid .dx-icon-filter-operation-not-contains,.dx-datagrid-container .dx-icon-filter-operation-not-contains{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-not-contains:before,.dx-datagrid-container .dx-icon-filter-operation-not-contains:before{content:\"\\\\f066\"}.dx-datagrid .dx-icon-filter-operation-starts-with,.dx-datagrid-container .dx-icon-filter-operation-starts-with{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-starts-with:before,.dx-datagrid-container .dx-icon-filter-operation-starts-with:before{content:\"\\\\f064\"}.dx-datagrid .dx-icon-filter-operation-ends-with,.dx-datagrid-container .dx-icon-filter-operation-ends-with{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-ends-with:before,.dx-datagrid-container .dx-icon-filter-operation-ends-with:before{content:\"\\\\f065\"}.dx-datagrid .dx-icon-filter-operation-between,.dx-datagrid-container .dx-icon-filter-operation-between{font:14px/1 DXIcons}.dx-datagrid .dx-icon-filter-operation-between:before,.dx-datagrid-container .dx-icon-filter-operation-between:before{content:\"\\\\f06a\"}.dx-datagrid{color:#333;background-color:#fff;line-height:inherit}.dx-datagrid .dx-row-alt>td,.dx-datagrid .dx-row-alt>tr>td{background-color:#f5f5f5;border-top:1px solid #f5f5f5;border-bottom:1px solid #f5f5f5}.dx-datagrid .dx-row-alt.dx-row:not(.dx-row-removed){border-bottom-color:#0000}.dx-datagrid .dx-link{text-decoration:underline;cursor:pointer;color:#337ab7}.dx-datagrid .dx-row-lines>td{border-bottom:1px solid #ddd}.dx-datagrid .dx-column-lines>td{border-left:1px solid #ddd;border-right:1px solid #ddd}.dx-datagrid .dx-error-row .dx-closebutton{float:right;margin:9px;font:14px/14px DXIcons;width:14px;height:14px;background-position:0 0;background-size:14px 14px;padding:0;text-align:center}.dx-datagrid .dx-error-row .dx-closebutton:before{content:\"\\\\f00a\"}.dx-datagrid .dx-error-row .dx-error-message{background-color:#e89895;white-space:normal;word-wrap:break-word;padding:7px 35px 7px 7px}.dx-datagrid .dx-row>td{padding:7px}.dx-datagrid .dx-datagrid-content .dx-datagrid-table .dx-row .dx-command-edit-with-icons .dx-link{width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;font-size:18px;text-align:center;line-height:18px;margin:0 3px}.dx-datagrid .dx-datagrid-content .dx-datagrid-table .dx-row .dx-command-edit-with-icons .dx-link:not(.dx-link-icon){width:auto}.dx-datagrid .dx-command-drag{width:36px;min-width:36px}.dx-datagrid .dx-command-drag .dx-datagrid-drag-icon{vertical-align:middle;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;font-size:18px;text-align:center;line-height:19px}.dx-datagrid-edit-popup .dx-error-message{padding:7px}.dx-datagrid-headers .dx-texteditor-input,.dx-datagrid-rowsview .dx-texteditor-input{padding:7px;min-height:33px}.dx-datagrid-headers .dx-numberbox.dx-show-clear-button.dx-texteditor-empty:not(.dx-invalid) .dx-texteditor-input,.dx-datagrid-headers .dx-textbox.dx-show-clear-button.dx-texteditor-empty:not(.dx-invalid) .dx-texteditor-input,.dx-datagrid-rowsview .dx-numberbox.dx-show-clear-button.dx-texteditor-empty:not(.dx-invalid) .dx-texteditor-input,.dx-datagrid-rowsview .dx-textbox.dx-show-clear-button.dx-texteditor-empty:not(.dx-invalid) .dx-texteditor-input{padding-right:7px}.dx-datagrid-headers .dx-lookup,.dx-datagrid-rowsview .dx-lookup{height:auto}.dx-datagrid-headers .dx-lookup-field,.dx-datagrid-rowsview .dx-lookup-field{padding-left:7px;padding-top:7px;padding-bottom:7px}.dx-datagrid-headers .dx-searchbox .dx-placeholder:before,.dx-datagrid-headers .dx-searchbox .dx-texteditor-input,.dx-datagrid-rowsview .dx-searchbox .dx-placeholder:before,.dx-datagrid-rowsview .dx-searchbox .dx-texteditor-input{padding-left:34px}.dx-rtl .dx-datagrid-headers .dx-searchbox .dx-placeholder:before,.dx-rtl .dx-datagrid-headers .dx-searchbox .dx-texteditor-input,.dx-rtl .dx-datagrid-rowsview .dx-searchbox .dx-placeholder:before,.dx-rtl .dx-datagrid-rowsview .dx-searchbox .dx-texteditor-input,.dx-rtl.dx-datagrid-headers .dx-searchbox .dx-placeholder:before,.dx-rtl.dx-datagrid-headers .dx-searchbox .dx-texteditor-input,.dx-rtl.dx-datagrid-rowsview .dx-searchbox .dx-placeholder:before,.dx-rtl.dx-datagrid-rowsview .dx-searchbox .dx-texteditor-input{padding-right:34px}.dx-datagrid-checkbox-size{vertical-align:middle;padding-bottom:2px}.dx-datagrid-checkbox-size.dx-checkbox-checked .dx-checkbox-icon{font-size:12px}.dx-datagrid-checkbox-size .dx-checkbox-icon{height:16px;width:16px}.dx-datagrid-checkbox-size.dx-checkbox-indeterminate .dx-checkbox-icon{font-size:6px}.dx-datagrid-checkbox-size.dx-checkbox-indeterminate .dx-checkbox-icon:before{border-radius:0}.dx-datagrid-column-chooser-list .dx-empty-message{color:#999;padding:0 20px}.dx-datagrid-column-chooser{color:#333;font-weight:400;font-size:14px}.dx-datagrid-column-chooser,.dx-datagrid-column-chooser input,.dx-datagrid-column-chooser textarea{font-family:Helvetica Neue,Segoe UI,helvetica,verdana,sans-serif;line-height:1.35715}.dx-datagrid-column-chooser.dx-datagrid-column-chooser-mode-drag .dx-popup-content{padding:0 20px 20px}.dx-datagrid-column-chooser.dx-datagrid-column-chooser-mode-drag .dx-popup-content .dx-treeview-search{margin-bottom:10px}.dx-datagrid-column-chooser.dx-datagrid-column-chooser-mode-drag .dx-popup-content .dx-treeview-node{padding-left:20px}.dx-datagrid-column-chooser.dx-datagrid-column-chooser-mode-select .dx-popup-content{padding:0 20px 20px}.dx-datagrid-column-chooser .dx-overlay-content{background-color:#fff;border-radius:6px;-webkit-box-shadow:0 1px 3px #0003;box-shadow:0 1px 3px #0003}.dx-datagrid-column-chooser .dx-overlay-content .dx-popup-title{padding-top:7px;padding-bottom:9px;background-color:initial}.dx-datagrid-column-chooser .dx-overlay-content .dx-popup-content .dx-column-chooser-item{opacity:.5;margin-bottom:10px;background-color:#fff;color:#959595;font-weight:400;border:1px solid #ddd;padding:7px;-webkit-box-shadow:0 1px 3px -1px #0003;box-shadow:0 1px 3px -1px #0003}.dx-datagrid-drag-header{-webkit-box-shadow:0 0 1px #0000001a,0 1px 3px #0003;box-shadow:0 0 1px #0000001a,0 1px 3px #0003;color:#959595;font-weight:400;padding:7px;border:1px solid #337ab780;background-color:#fff}.dx-datagrid-columns-separator{background-color:#337ab780}.dx-datagrid-columns-separator-transparent{background-color:initial}.dx-datagrid-drop-highlight>td{background-color:#337ab7;color:#fff}.dx-datagrid-focus-overlay{border:2px solid #5c95c5}.dx-datagrid-table .dx-row .dx-command-select{width:70px;min-width:70px}.dx-datagrid-table .dx-row .dx-command-edit{width:85px;min-width:85px}.dx-datagrid-table .dx-row .dx-command-edit .dx-link.dx-state-disabled{opacity:.5}.dx-datagrid-table .dx-row .dx-command-edit .dx-link.dx-state-disabled.dx-link-icon{opacity:.6}.dx-datagrid-table .dx-row .dx-command-expand{width:30px;min-width:30px}.dx-datagrid-table .dx-row .dx-command-expand.dx-datagrid-group-space{padding-top:7px}.dx-datagrid-table .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>td:not(.dx-focused){background-color:#0000000a;color:#333}.dx-datagrid-table .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>td:not(.dx-focused).dx-datagrid-group-space{border-right-color:#0000000a}.dx-datagrid-table .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>td:not(.dx-focused).dx-command-select{overflow:inherit}.dx-datagrid-table .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>.dx-datagrid-readonly .dx-texteditor .dx-texteditor-input{background-color:#0000000a;color:#333}.dx-datagrid-table .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>td.dx-pointer-events-none{background-color:initial}.dx-datagrid-headers{color:#959595;font-weight:400;-ms-touch-action:pinch-zoom;touch-action:pinch-zoom;border-bottom:1px solid #ddd}.dx-datagrid-headers .dx-datagrid-content{margin-bottom:-1px}.dx-datagrid-borders .dx-datagrid-headers .dx-datagrid-table{border-bottom-width:1px}.dx-datagrid-headers .dx-datagrid-table .dx-row>td{border-bottom:1px solid #ddd}.dx-datagrid-filter-row .dx-menu .dx-overlay-content{color:#333}.dx-datagrid-filter-row .dx-menu-item.dx-state-focused{background-color:initial}.dx-datagrid-filter-row .dx-menu-item.dx-state-focused:after{border:2px solid #5c95c5}.dx-datagrid-filter-row .dx-menu-item.dx-state-focused.dx-menu-item-expanded{background-color:#fff}.dx-datagrid-filter-row .dx-menu-item.dx-state-focused.dx-menu-item-expanded:after{border-color:#0000}.dx-datagrid-filter-row .dx-menu-item-has-submenu.dx-state-hover{background-color:initial}.dx-datagrid-filter-row .dx-menu-item-has-submenu.dx-menu-item-expanded.dx-state-hover{background-color:#fff}.dx-datagrid-filter-row .dx-cell-modified:after,.dx-datagrid-filter-row .dx-datagrid-invalid:after,.dx-datagrid-filter-row .dx-highlight-outline:after{border-color:#5cb85c80}.dx-datagrid-filter-row .dx-menu-item-content .dx-icon{color:#898989}.dx-datagrid-filter-row td .dx-editor-container .dx-filter-range-content{padding:7px 7px 7px 32px}.dx-datagrid-filter-range-overlay .dx-overlay-content{border:1px solid #ddd;overflow:inherit;-webkit-box-shadow:2px 2px 3px #00000026;box-shadow:2px 2px 3px #00000026}.dx-datagrid-filter-range-overlay .dx-overlay-content .dx-editor-container.dx-cell-modified:after,.dx-datagrid-filter-range-overlay .dx-overlay-content .dx-editor-container.dx-datagrid-invalid:after{border-color:#5cb85c80;left:0}.dx-datagrid-filter-range-overlay .dx-overlay-content .dx-texteditor .dx-texteditor-input{background-color:#fff;padding:7px}.dx-datagrid-filter-range-overlay .dx-overlay-content .dx-texteditor.dx-state-focused:after{border:2px solid #5c95c5}.dx-cell-modified,.dx-datagrid-invalid{padding:7px}.dx-datagrid-header-panel{border-bottom:1px solid #ddd}.dx-datagrid-header-panel .dx-toolbar{margin-bottom:10px}.dx-datagrid-header-panel .dx-apply-button{background-color:#5cb85c;border-color:#4cae4c;color:#fff}.dx-datagrid-header-panel .dx-apply-button .dx-icon{color:#fff}.dx-datagrid-header-panel .dx-apply-button.dx-state-hover{background-color:#449d44;border-color:#4cae4c}.dx-datagrid-header-panel .dx-apply-button.dx-state-focused{background-color:#3d8b3d;border-color:#4cae4c}.dx-datagrid-header-panel .dx-apply-button.dx-state-active{background-color:#357935;border-color:#4cae4c;color:#fff}.dx-datagrid-addrow-button .dx-icon-edit-button-addrow{font:18px/18px DXIcons;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center}.dx-datagrid-addrow-button .dx-icon-edit-button-addrow:before{content:\"\\\\f00b\"}.dx-datagrid-cancel-button .dx-icon-edit-button-cancel{font:18px/18px DXIcons;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center}.dx-datagrid-cancel-button .dx-icon-edit-button-cancel:before{content:\"\\\\f04c\"}.dx-datagrid-save-button .dx-icon-edit-button-save{font:18px/18px DXIcons;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center}.dx-datagrid-save-button .dx-icon-edit-button-save:before{content:\"\\\\f041\"}.dx-datagrid-adaptive-more{width:21px;height:21px;background-position:0 0;background-size:21px 21px;padding:0;font-size:21px;text-align:center;line-height:21px}.dx-datagrid-borders .dx-datagrid-rowsview,.dx-datagrid-headers+.dx-datagrid-rowsview,.dx-datagrid-rowsview.dx-datagrid-after-headers{border-top:1px solid #ddd}.dx-datagrid-rowsview .dx-row{border-top:1px solid #0000;border-bottom:1px solid #0000}.dx-datagrid-rowsview .dx-row:focus{outline:0}.dx-datagrid-rowsview .dx-row.dx-edit-row:first-child>td{border-top-width:0;border-bottom:1px solid #ddd}.dx-datagrid-rowsview .dx-row.dx-edit-row>td{border-top:1px solid #ddd;border-bottom:1px solid #ddd}.dx-datagrid-rowsview .dx-row.dx-datagrid-edit-form{white-space:normal}.dx-datagrid-rowsview .dx-master-detail-row>.dx-master-detail-cell{padding:20px}.dx-datagrid-rowsview .dx-master-detail-row .dx-master-detail-cell,.dx-datagrid-rowsview .dx-master-detail-row>.dx-datagrid-group-space{border-top:1px solid #ddd;border-bottom:1px solid #ddd}.dx-datagrid-rowsview .dx-master-detail-row .dx-texteditor-input{padding-right:0}.dx-datagrid-rowsview .dx-master-detail-row:not(.dx-datagrid-edit-form) .dx-master-detail-cell,.dx-datagrid-rowsview .dx-master-detail-row:not(.dx-datagrid-edit-form)>.dx-datagrid-group-space{background-color:#fafafa}.dx-datagrid-rowsview .dx-data-row .dx-validator.dx-datagrid-invalid.dx-cell-modified:after,.dx-datagrid-rowsview .dx-data-row .dx-validator.dx-datagrid-invalid.dx-datagrid-invalid:after{border:1px solid #d9534f66}.dx-datagrid-rowsview .dx-data-row .dx-validator.dx-datagrid-invalid.dx-focused.dx-cell-modified:after,.dx-datagrid-rowsview .dx-data-row .dx-validator.dx-datagrid-invalid.dx-focused.dx-datagrid-invalid:after{border:1px solid #d9534f}.dx-datagrid-rowsview .dx-data-row .dx-cell-modified.dx-cell-modified:after,.dx-datagrid-rowsview .dx-data-row .dx-cell-modified.dx-datagrid-invalid:after{border-color:#5cb85c80}.dx-datagrid-rowsview .dx-overlay-wrapper.dx-invalid-message .dx-overlay-content{padding:9px 17px}.dx-datagrid-rowsview .dx-row-removed>td{background-color:#ddd;border-top:1px solid #ddd;border-bottom:1px solid #ddd;color:#959595}.dx-datagrid-rowsview .dx-adaptive-detail-row .dx-adaptive-item-text{padding-top:8px;padding-bottom:8px;padding-left:8px}.dx-datagrid-rowsview .dx-adaptive-detail-row .dx-datagrid-invalid{border:1px solid #d9534f66}.dx-datagrid-rowsview .dx-adaptive-detail-row .dx-datagrid-invalid.dx-adaptive-item-text{padding-top:7px;padding-bottom:7px;padding-left:7px}.dx-datagrid-rowsview .dx-item-modified{border-radius:4px;border:2px solid #5cb85c80}.dx-datagrid-rowsview .dx-item-modified.dx-adaptive-item-text{padding-top:6px;padding-bottom:6px;padding-left:6px}.dx-datagrid-rowsview .dx-row-focused.dx-data-row .dx-command-edit:not(.dx-focused) .dx-link,.dx-datagrid-rowsview .dx-row-focused.dx-data-row>td:not(.dx-focused),.dx-datagrid-rowsview .dx-row-focused.dx-data-row>tr>td:not(.dx-focused){background-color:#5c95c5;color:#fff}.dx-datagrid-rowsview .dx-row-focused.dx-data-row .dx-command-edit:not(.dx-focused) .dx-link .dx-texteditor-input,.dx-datagrid-rowsview .dx-row-focused.dx-data-row>td:not(.dx-focused) .dx-texteditor-input,.dx-datagrid-rowsview .dx-row-focused.dx-data-row>tr>td:not(.dx-focused) .dx-texteditor-input{border-radius:0}.dx-datagrid-rowsview .dx-row-focused.dx-data-row .dx-command-edit:not(.dx-focused) .dx-link .dx-datagrid-group-closed,.dx-datagrid-rowsview .dx-row-focused.dx-data-row .dx-command-edit:not(.dx-focused) .dx-link .dx-datagrid-group-opened,.dx-datagrid-rowsview .dx-row-focused.dx-data-row>td:not(.dx-focused) .dx-datagrid-group-closed,.dx-datagrid-rowsview .dx-row-focused.dx-data-row>td:not(.dx-focused) .dx-datagrid-group-opened,.dx-datagrid-rowsview .dx-row-focused.dx-data-row>tr>td:not(.dx-focused) .dx-datagrid-group-closed,.dx-datagrid-rowsview .dx-row-focused.dx-data-row>tr>td:not(.dx-focused) .dx-datagrid-group-opened{color:#fff}.dx-datagrid-rowsview .dx-row-focused.dx-data-row .dx-command-edit .dx-link:focus{background-color:#fff;color:#333}.dx-datagrid-rowsview .dx-row-focused.dx-data-row>td,.dx-datagrid-rowsview .dx-row-focused.dx-data-row>tr:last-child>td{border-bottom:1px solid #5c95c5}.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-row-lines)>td,.dx-datagrid-rowsview .dx-row-focused.dx-data-row:not(.dx-row-lines)>tr:first-child>td{border-top:1px solid #5c95c5;border-bottom:1px solid #5c95c5}.dx-datagrid-rowsview .dx-row-focused.dx-group-row{background-color:#5c95c5;color:#fff}.dx-datagrid-rowsview .dx-row-focused.dx-group-row .dx-datagrid-group-closed,.dx-datagrid-rowsview .dx-row-focused.dx-group-row .dx-datagrid-group-opened,.dx-datagrid-rowsview .dx-row-focused.dx-group-row .dx-datagrid-summary-item{color:#fff}.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>tr>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused)>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused)>tr>td{background-color:#e6e6e6;color:#333}.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>td.dx-datagrid-group-space,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>tr>td.dx-datagrid-group-space,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused)>td.dx-datagrid-group-space,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused)>tr>td.dx-datagrid-group-space{border-right-color:#e6e6e6}.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>td.dx-pointer-events-none,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>tr>td.dx-pointer-events-none,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused)>td.dx-pointer-events-none,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused)>tr>td.dx-pointer-events-none{border-left-color:#ddd;border-right-color:#ddd}.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>td.dx-focused,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>tr>td.dx-focused,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused)>td.dx-focused,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused)>tr>td.dx-focused{background-color:#fff;color:#333}.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover:not(.dx-row-lines)>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):not(.dx-row-lines)>td{border-bottom:1px solid #e6e6e6;border-top:1px solid #e6e6e6}.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover:not(.dx-row-lines)>tr:first-child>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):not(.dx-row-lines)>tr:first-child>td{border-top:1px solid #e6e6e6}.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover:not(.dx-row-lines)>tr:last-child>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):not(.dx-row-lines)>tr:last-child>td{border-bottom:1px solid #e6e6e6}.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused).dx-column-lines>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused).dx-column-lines>tr>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover.dx-column-lines>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover.dx-column-lines>tr>td{border-left-color:#ddd;border-right-color:#ddd}.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused).dx-row-lines>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused).dx-row-lines>tr>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover.dx-row-lines>td,.dx-datagrid-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover.dx-row-lines>tr>td{border-bottom-color:#ddd}.dx-datagrid-rowsview.dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-both .dx-scrollable-wrapper .dx-scrollable-container .dx-scrollable-content{padding-right:0}.dx-datagrid-rowsview td.dx-validation-pending{position:relative;padding:0}.dx-datagrid-rowsview td.dx-validation-pending.dx-cell-modified,.dx-datagrid-rowsview td.dx-validation-pending.dx-datagrid-invalid{padding:7px 34px 7px 7px}.dx-rtl .dx-datagrid-rowsview td.dx-validation-pending.dx-cell-modified,.dx-rtl .dx-datagrid-rowsview td.dx-validation-pending.dx-datagrid-invalid,.dx-rtl.dx-datagrid-rowsview td.dx-validation-pending.dx-cell-modified,.dx-rtl.dx-datagrid-rowsview td.dx-validation-pending.dx-datagrid-invalid{padding-left:34px;padding-right:7px}.dx-datagrid-rowsview td.dx-validation-pending .dx-pending-indicator{pointer-events:none;position:absolute;top:50%;margin-top:-11px;width:22px;height:22px;right:4px;background-color:#fff}.dx-rtl .dx-datagrid-rowsview td.dx-validation-pending .dx-pending-indicator,.dx-rtl.dx-datagrid-rowsview td.dx-validation-pending .dx-pending-indicator{left:4px;right:auto}.dx-datagrid-rowsview td.dx-editor-cell .dx-texteditor.dx-validation-pending .dx-texteditor-input{padding-right:34px}.dx-datagrid-rowsview td.dx-editor-cell .dx-texteditor.dx-validation-pending.dx-rtl .dx-texteditor-input{padding-right:7px;padding-bottom:7px;padding-left:34px}.dx-datagrid-search-text{color:#fff;background-color:#337ab7}.dx-datagrid-nodata{color:#999;font-size:17px}.dx-datagrid-bottom-load-panel{border-top:1px solid #ddd;background-color:#fff}.dx-datagrid-pager{border-top:1px solid #ddd}.dx-datagrid-pager .dx-navigate-button,.dx-datagrid-pager .dx-page,.dx-datagrid-pager .dx-page-size{outline:0}.dx-datagrid-pager.dx-state-focused .dx-navigate-button:focus,.dx-datagrid-pager.dx-state-focused .dx-page-size:focus,.dx-datagrid-pager.dx-state-focused .dx-page:focus{outline:2px solid #5c95c5;outline-offset:-2px}.dx-datagrid-summary-item{color:#333333b3}.dx-datagrid-total-footer{position:relative;border-top:1px solid #ddd}.dx-datagrid-revert-tooltip .dx-overlay-content{background-color:#fff;min-width:inherit}.dx-datagrid-revert-tooltip .dx-revert-button{margin:0 1px;background-color:#d9534f;border-color:#d43f3a;color:#fff}.dx-datagrid-revert-tooltip .dx-revert-button .dx-icon{color:#fff}.dx-datagrid-revert-tooltip .dx-revert-button.dx-state-hover{background-color:#c9302c;border-color:#d43f3a}.dx-datagrid-revert-tooltip .dx-revert-button.dx-state-focused{background-color:#b52b27;border-color:#d43f3a}.dx-datagrid-revert-tooltip .dx-revert-button.dx-state-active{background-color:#a02622;border-color:#d43f3a;color:#fff}.dx-datagrid-revert-tooltip .dx-revert-button>.dx-button-content{padding:7px}.dx-toolbar-menu-section .dx-datagrid-checkbox-size{width:100%}.dx-toolbar-menu-section .dx-datagrid-checkbox-size .dx-checkbox-container{padding:14px}.dx-toolbar-menu-section .dx-datagrid-checkbox-size .dx-checkbox-text{padding-left:34px}.dx-rtl .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>td:not(.dx-focused).dx-datagrid-group-space{border-left-color:#0000000a;border-right-color:#0000}.dx-rtl .dx-datagrid-filter-row .dx-menu .dx-menu-item-has-submenu.dx-menu-item-has-icon .dx-icon{margin:0 3px}.dx-rtl .dx-datagrid-filter-row td .dx-editor-container .dx-filter-range-content{padding:7px 32px 7px 7px}.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row:hover>td,.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row:hover>tr>td,.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row>td,.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row>tr>td{border-right-color:#ddd}.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row:hover>td:not(.dx-focused).dx-datagrid-group-space,.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row:hover>tr>td:not(.dx-focused).dx-datagrid-group-space,.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row>td:not(.dx-focused).dx-datagrid-group-space,.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row>tr>td:not(.dx-focused).dx-datagrid-group-space{border-left-color:#e6e6e6}.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row:hover>td.dx-pointer-events-none,.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row:hover>tr>td.dx-pointer-events-none,.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row>td.dx-pointer-events-none,.dx-rtl .dx-datagrid-rowsview .dx-selection.dx-row>tr>td.dx-pointer-events-none{border-left-color:#ddd}.dx-rtl .dx-datagrid-rowsview.dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-both .dx-scrollable-wrapper .dx-scrollable-container .dx-scrollable-content{padding-left:0}.dx-datagrid-group-panel{font-size:14px;-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.dx-datagrid-group-panel .dx-group-panel-message{color:#959595;font-weight:400;padding:7px;border-top:1px solid #0000;border-bottom:1px solid #0000}.dx-datagrid-group-panel .dx-group-panel-item{margin-right:10px;color:#959595;font-weight:400;border:1px solid #ddd;padding:7px}.dx-datagrid-group-panel .dx-block-separator{margin-right:10px;color:#959595;font-weight:400;padding:8px;background-color:#eee}.dx-datagrid-group-panel .dx-sort{color:#898989}.dx-datagrid-rowsview .dx-row.dx-group-row:first-child{border-top:none}.dx-datagrid-rowsview .dx-row.dx-group-row{font-weight:700}.dx-datagrid-rowsview .dx-row.dx-group-row:not(.dx-row-focused){color:#959595;background-color:#f7f7f7}.dx-datagrid-rowsview .dx-row.dx-group-row td{border-top-color:#ddd;border-bottom-color:#ddd}.dx-datagrid-group-opened{font:18px/18px DXIcons;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center;color:#959595}.dx-datagrid-group-opened:before{content:\"\\\\f001\"}.dx-datagrid-group-closed{font:18px/18px DXIcons;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center;color:#959595}.dx-datagrid-group-closed:before{content:\"\\\\f04e\"}.dx-datagrid-group-closed,.dx-datagrid-group-opened{cursor:pointer;position:relative;width:100%}.dx-row.dx-datagrid-group-footer.dx-column-lines{border-bottom:1px solid #ddd}.dx-row.dx-datagrid-group-footer>td{background-color:#fff;border-top:1px solid #ddd;border-left-width:0;border-right-width:0}.dx-rtl .dx-datagrid-group-panel .dx-block-separator,.dx-rtl .dx-datagrid-group-panel .dx-group-panel-item{margin-left:10px}.dx-datagrid-filter-panel .dx-datagrid-filter-panel-clear-filter,.dx-datagrid-filter-panel .dx-datagrid-filter-panel-text,.dx-datagrid-filter-panel .dx-icon-filter{outline:0;color:#337ab7}.dx-treelist-important-margin{margin-right:5px!important}.dx-treelist-table{background-color:initial}.dx-treelist-borders>.dx-treelist-total-footer{border-top:0}.dx-treelist-borders>.dx-treelist-pager{margin-top:-1px}.dx-treelist-borders>.dx-treelist-header-panel{border-bottom:0}.dx-treelist-borders>.dx-treelist-rowsview.dx-last-row-border tbody:last-child>.dx-data-row:nth-last-child(2)>td{border-bottom-width:0}.dx-treelist .dx-treelist-content-fixed{position:absolute;top:0;left:0;bottom:0;right:0;z-index:2;pointer-events:none;overflow:hidden}.dx-treelist .dx-treelist-content-fixed .dx-treelist-table{position:relative}.dx-treelist .dx-treelist-content-fixed .dx-treelist-table td{pointer-events:auto}.dx-treelist .dx-treelist-content-fixed .dx-treelist-table .dx-row td.dx-pointer-events-none{visibility:hidden;background-color:initial;pointer-events:none;border-top-color:#0000;border-bottom-color:#0000}.dx-treelist .dx-treelist-content-fixed .dx-treelist-table .dx-header-row td.dx-pointer-events-none{border-bottom-color:#0000}.dx-treelist .dx-treelist-content-fixed .dx-treelist-table.dx-treelist-table-fixed .dx-row td.dx-pointer-events-none{width:auto}.dx-treelist .dx-menu-subitem ul li{padding-top:0}.dx-treelist .dx-menu-subitem ul li:first-child{padding-top:1px}.dx-treelist .dx-menu-subitem .dx-menu-item{padding:7px 30px 7px 5px}.dx-treelist .dx-menu-subitem .dx-menu-item .dx-menu-image{background-position-x:left}.dx-treelist .dx-link{text-decoration:underline;cursor:pointer}.dx-treelist .dx-column-indicators{display:inline-block;vertical-align:top;white-space:nowrap}.dx-treelist .dx-column-indicators.dx-visibility-hidden{visibility:hidden}.dx-treelist .dx-column-indicators .dx-sort-index-icon{padding-right:3px;margin-left:-3px;width:15px}.dx-treelist .dx-column-indicators .dx-header-filter.dx-header-filter,.dx-treelist .dx-column-indicators .dx-header-filter.dx-sort,.dx-treelist .dx-column-indicators .dx-sort.dx-header-filter,.dx-treelist .dx-column-indicators .dx-sort.dx-sort{display:inline-block}.dx-treelist .dx-column-indicators .dx-header-filter.dx-header-filter:after,.dx-treelist .dx-column-indicators .dx-sort.dx-header-filter:after{content:\"\";position:absolute;top:0;bottom:0;left:0;right:0;margin:-7px}.dx-treelist .dx-row>td,.dx-treelist .dx-row>tr>td{padding:7px}.dx-treelist .dx-error-row{-webkit-user-select:initial;-moz-user-select:initial;-ms-user-select:initial;user-select:auto}.dx-treelist .dx-error-row .dx-error-message{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}.dx-treelist .dx-error-row .dx-error-message a{color:inherit}.dx-treelist .dx-treelist-rowsview .dx-data-row .dx-command-drag{cursor:move;vertical-align:middle;padding:0}.dx-sortable-dragging .dx-treelist-rowsview .dx-data-row .dx-command-drag{cursor:pointer;cursor:-webkit-grabbing;cursor:grabbing}.dx-sortable-without-handle .dx-data-row{cursor:pointer}.dx-treelist-column-chooser .dx-overlay-content .dx-popup-title{border-bottom:none;font-size:16px}.dx-treelist-column-chooser .dx-overlay-content .dx-popup-title .dx-toolbar-label{font-size:16px}.dx-treelist-column-chooser .dx-overlay-content .dx-popup-content{padding:0 20px 20px}.dx-treelist-column-chooser .dx-overlay-content .dx-popup-content .dx-column-chooser-item.dx-treelist-drag-action{opacity:1;cursor:pointer;-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.dx-treelist-column-chooser.dx-treelist-column-chooser-mode-drag .dx-treeview-node-container:first-child>.dx-treeview-node-is-leaf{padding:0}.dx-treelist-column-chooser.dx-treelist-column-chooser-mode-select .dx-treelist-column-chooser-plain .dx-treeview-node{padding-left:0}.dx-treelist-column-chooser.dx-treelist-column-chooser-mode-select .dx-treelist-column-chooser-plain .dx-treeview-node .dx-checkbox{left:4px}.dx-treelist-nowrap,.dx-treelist-nowrap .dx-header-row>td>.dx-treelist-text-content{white-space:nowrap}.dx-treelist-drag-header{position:absolute;vertical-align:middle;cursor:pointer;z-index:10000;-webkit-box-sizing:content-box;box-sizing:initial}.dx-treelist-drag-header.dx-drag-command-cell{padding:0}.dx-treelist-columns-separator{position:absolute;z-index:3;width:3px}.dx-treelist-columns-separator-transparent{border-left:0;border-right:0}.dx-treelist-tracker{width:100%;z-index:3;cursor:col-resize}.dx-treelist-table-content,.dx-treelist-tracker{position:absolute;top:0}.dx-treelist-focus-overlay{position:absolute;pointer-events:none;top:0;left:0;visibility:hidden}.dx-treelist-action,.dx-treelist-drag-action{cursor:pointer}.dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-modified):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row)>td:not(.dx-focused) .dx-link{color:inherit}.dx-treelist-content{position:relative}.dx-treelist-content .dx-overlay-wrapper.dx-invalid-message.dx-treelist-invalid-message{visibility:visible}.dx-treelist-content .dx-overlay-wrapper.dx-invalid-message.dx-treelist-invalid-message .dx-overlay-content,.dx-treelist-text-content{overflow:hidden;text-overflow:ellipsis}.dx-treelist-table-fixed{table-layout:fixed;width:100%}input.dx-hidden{display:inline-block!important;width:0!important}.dx-hidden-cell{visibility:hidden}.dx-row>td,.dx-row>tr>td{border:none}.dx-treelist-content .dx-treelist-table{border-collapse:collapse;border-spacing:0;margin:0;max-width:10px}.dx-treelist-content .dx-treelist-table.dx-treelist-table-fixed{max-width:none}.dx-treelist-content .dx-treelist-table.dx-treelist-table-fixed .dx-column-indicators .dx-sort.dx-sort-none{display:none}.dx-treelist-content .dx-treelist-table.dx-treelist-table-fixed .dx-column-indicators .dx-sort.dx-sort-index{width:26px}.dx-treelist-content .dx-treelist-table .dx-treelist-best-fit{max-width:none!important}.dx-treelist-content .dx-treelist-table .dx-treelist-best-fit .dx-column-indicators{float:none!important}.dx-treelist-content .dx-treelist-table .dx-treelist-best-fit .dx-column-indicators>span{width:14px}.dx-treelist-content .dx-treelist-table .dx-treelist-best-fit .dx-column-indicators .dx-sort.dx-sort-none{display:inline-block}.dx-treelist-content .dx-treelist-table .dx-treelist-best-fit .dx-header-row .dx-treelist-text-content{max-width:none}.dx-treelist-content .dx-treelist-table .dx-treelist-best-fit .dx-text-content-alignment-left{margin-right:3px}.dx-treelist-content .dx-treelist-table .dx-treelist-best-fit .dx-text-content-alignment-right{margin-left:3px}.dx-treelist-content .dx-treelist-table:not(.dx-treelist-table-fixed) .dx-column-indicators{float:none!important}.dx-treelist-content .dx-treelist-table:not(.dx-treelist-table-fixed) .dx-column-indicators>span{width:14px}.dx-treelist-content .dx-treelist-table:not(.dx-treelist-table-fixed) .dx-text-content-alignment-left{margin-right:3px}.dx-treelist-content .dx-treelist-table:not(.dx-treelist-table-fixed) .dx-text-content-alignment-right{margin-left:3px}.dx-treelist-content .dx-treelist-table:not(.dx-treelist-table-fixed) .dx-master-detail-cell{max-width:0}.dx-treelist-content .dx-treelist-table [class*=column]+[class*=column]:last-child{float:none}.dx-treelist-content .dx-treelist-table .dx-row>td,.dx-treelist-content .dx-treelist-table .dx-row>tr>td{vertical-align:top}.dx-treelist-content .dx-treelist-table .dx-row>td.dx-first-child,.dx-treelist-content .dx-treelist-table .dx-row>td:first-child,.dx-treelist-content .dx-treelist-table .dx-row>tr>td.dx-first-child,.dx-treelist-content .dx-treelist-table .dx-row>tr>td:first-child{border-left:0}.dx-treelist-content .dx-treelist-table .dx-row>td.dx-last-child,.dx-treelist-content .dx-treelist-table .dx-row>tr>td.dx-last-child{border-right:0}.dx-treelist-content .dx-treelist-table .dx-row>td.dx-treelist-group-space,.dx-treelist-content .dx-treelist-table .dx-row>tr>td.dx-treelist-group-space{border-right:none;vertical-align:top}.dx-treelist-content .dx-treelist-table .dx-row>td.dx-treelist-group-space+td,.dx-treelist-content .dx-treelist-table .dx-row>tr>td.dx-treelist-group-space+td{border-left:none}.dx-treelist-content .dx-treelist-table .dx-row .dx-editor-container{overflow:hidden}.dx-treelist-content .dx-treelist-table .dx-row .dx-treelist-invalid .dx-invalid-message.dx-overlay{position:static}.dx-treelist-content .dx-treelist-table .dx-row .dx-editor-cell{max-width:0;padding:0;vertical-align:middle}.dx-treelist-content .dx-treelist-table .dx-row .dx-editor-cell .dx-texteditor,.dx-treelist-content .dx-treelist-table .dx-row .dx-editor-cell .dx-texteditor-container{border:0;margin:0}.dx-treelist-content .dx-treelist-table .dx-row .dx-command-select{padding:0;width:70px;min-width:70px;max-width:70px}.dx-treelist-content .dx-treelist-table .dx-row .dx-command-edit{text-overflow:clip;width:100px;min-width:100px;white-space:nowrap}.dx-treelist-content .dx-treelist-table .dx-row .dx-command-edit.dx-command-edit-with-icons{width:80px;min-width:80px}.dx-treelist-content .dx-treelist-table .dx-row .dx-command-edit.dx-command-edit-with-icons .dx-link{text-decoration:none}.dx-treelist-content .dx-treelist-table .dx-row .dx-command-edit .dx-link{display:inline-block}.dx-treelist-content .dx-treelist-table .dx-row .dx-command-expand{padding:0;width:30px;min-width:30px;max-width:30px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.dx-treelist-content .dx-treelist-table .dx-row .dx-command-adaptive{padding:0;vertical-align:middle}.dx-treelist-content .dx-treelist-table .dx-data-row .dx-command-edit-with-icons{line-height:1;white-space:nowrap}.dx-treelist-content .dx-treelist-table .dx-filter-range-content{padding:7px 7px 7px 32px;overflow:hidden;text-overflow:ellipsis;cursor:pointer}.dx-treelist-content .dx-treelist-table .dx-row>.dx-last-data-cell{border-right:none}.dx-treelist-content .dx-treelist-table .dx-row>.dx-command-adaptive-hidden{border-left:none}.dx-cell-modified,.dx-highlight-outline,.dx-treelist-invalid{position:relative;padding:7px}.dx-cell-modified:after,.dx-highlight-outline:after,.dx-treelist-invalid:after{content:\"\";position:absolute;border:2px solid #0000;top:0;left:1px;bottom:0;right:0;pointer-events:none}.dx-cell-modified.dx-hidden,.dx-highlight-outline.dx-hidden,.dx-treelist-invalid.dx-hidden{display:block!important}.dx-cell-modified.dx-hidden:after,.dx-highlight-outline.dx-hidden:after,.dx-treelist-invalid.dx-hidden:after{display:none}.dx-editor-cell .dx-texteditor-input{margin:0}.dx-editor-cell .dx-highlight-outline,.dx-editor-cell.dx-cell-modified,.dx-editor-cell.dx-treelist-invalid{padding:0}.dx-editor-cell.dx-editor-inline-block:not(.dx-command-select):before{display:inline-block;content:\"​\";vertical-align:middle}.dx-column-lines .dx-cell-modified:after,.dx-column-lines .dx-highlight-outline:after,.dx-column-lines .dx-treelist-invalid:after{left:0}.dx-treelist-headers{position:relative;outline:0;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.dx-header-row .dx-editor-cell .dx-select-checkbox{display:inline-block}.dx-header-row>td{white-space:nowrap;overflow:hidden}.dx-header-row>td>.dx-treelist-text-content{display:inline-block;white-space:normal;vertical-align:top}.dx-header-row .dx-text-content-alignment-left,.dx-header-row .dx-text-content-alignment-right,.dx-header-row>td>.dx-treelist-text-content:not(.dx-sort-indicator):not(.dx-header-filter-indicator){max-width:100%}.dx-header-row .dx-header-filter-indicator,.dx-header-row .dx-sort-indicator{max-width:calc(100% - 17px)}.dx-header-row .dx-header-filter-indicator.dx-text-content-alignment-left,.dx-header-row .dx-sort-indicator.dx-text-content-alignment-left{margin-right:3px}.dx-header-row .dx-header-filter-indicator.dx-text-content-alignment-right,.dx-header-row .dx-sort-indicator.dx-text-content-alignment-right{margin-left:3px}.dx-header-row .dx-header-filter-indicator.dx-text-content-alignment-left.dx-text-content-alignment-right,.dx-header-row .dx-sort-indicator.dx-text-content-alignment-left.dx-text-content-alignment-right{max-width:calc(100% - 34px)}.dx-header-row .dx-sort-indicator.dx-header-filter-indicator{max-width:calc(100% - 31px)}.dx-header-row .dx-sort-indicator.dx-header-filter-indicator.dx-text-content-alignment-left.dx-text-content-alignment-right{max-width:calc(100% - 62px)}.dx-header-row .dx-sort-indicator.dx-sort-index-indicator{max-width:calc(100% - 29px)}.dx-header-row .dx-sort-indicator.dx-sort-index-indicator.dx-header-filter-indicator{max-width:calc(100% - 43px)}.dx-header-row .dx-sort-indicator.dx-sort-index-indicator.dx-text-content-alignment-left.dx-text-content-alignment-right{max-width:calc(100% - 46px)}.dx-header-row .dx-sort-indicator.dx-sort-index-indicator.dx-header-filter-indicator.dx-text-content-alignment-left.dx-text-content-alignment-right{max-width:calc(100% - 74px)}.dx-treelist-filter-range-overlay .dx-editor-container .dx-texteditor{border-width:0}.dx-treelist-filter-range-overlay .dx-editor-container .dx-texteditor.dx-state-focused:after{content:\" \";position:absolute;top:-1px;bottom:-1px;left:-1px;right:-1px;z-index:1;pointer-events:none}.dx-treelist-filter-range-overlay .dx-treelist-filter-range-end{border-top:1px solid #0000}.dx-treelist-filter-range-overlay .dx-editor-container.dx-cell-modified,.dx-treelist-filter-range-overlay .dx-editor-container.dx-treelist-invalid{padding:0}.dx-treelist-filter-row .dx-editor-cell .dx-menu{display:none}.dx-treelist-filter-row .dx-editor-cell .dx-editor-with-menu{position:relative}.dx-treelist-filter-row .dx-editor-cell .dx-editor-with-menu .dx-menu{display:block}.dx-treelist-filter-row .dx-editor-cell .dx-editor-with-menu .dx-placeholder:before,.dx-treelist-filter-row .dx-editor-cell .dx-editor-with-menu .dx-texteditor-input{padding-left:32px}.dx-treelist-filter-row .dx-cell-modified:after,.dx-treelist-filter-row .dx-treelist-invalid:after{pointer-events:none}.dx-treelist-filter-row .dx-focused .dx-highlight-outline:after,.dx-treelist-filter-row .dx-focused.dx-cell-modified:after,.dx-treelist-filter-row .dx-focused.dx-treelist-invalid:after{border-color:#0000}.dx-treelist-filter-row .dx-menu{z-index:1;position:absolute;top:0;left:0;cursor:pointer;margin-left:-2px;margin-top:-2px;height:100%;overflow:visible}.dx-treelist-filter-row .dx-menu .dx-menu-horizontal{height:100%}.dx-treelist-filter-row .dx-menu .dx-menu-horizontal .dx-menu-item-popout,.dx-treelist-filter-row .dx-menu .dx-menu-horizontal .dx-menu-item-text{display:none}.dx-treelist-filter-row .dx-menu-item.dx-state-focused:after{position:absolute;left:2px;top:2px;width:100%;height:102%;content:\"\"}.dx-treelist-filter-row>.dx-first-cell .dx-menu,.dx-treelist-filter-row>td:first-child .dx-menu{margin-left:0}.dx-treelist-filter-row .dx-menu-horizontal .dx-overlay-content ul .dx-menu-item{padding:5px 30px 5px 5px}.dx-treelist-filter-row .dx-menu ul.dx-menu-horizontal>li>.dx-menu-item{padding:8px 5px 7px}.dx-treelist-filter-row .dx-menu ul.dx-menu-horizontal>li>.dx-menu-item.dx-state-disabled:hover{padding:9px 6px 8px}.dx-treelist-filter-row .dx-menu-caption{padding-left:6px}.dx-treelist-filter-row .dx-menu ul .dx-menu-item .dx-menu-chouser-down{display:none}.dx-treelist-filter-row .dx-menu-item-highlight{font-weight:400}.dx-treelist-scroll-container{overflow:hidden;width:100%}.dx-treelist-header-panel{text-align:left}.dx-treelist-header-panel .dx-toolbar-menu-container .dx-button{margin-left:10px}.dx-state-disabled{cursor:pointer}.dx-state-disabled .dx-menu-item{cursor:default}.dx-treelist-search-panel{margin:0 0 0 15px}.dx-gridbase-container>.dx-treelist-rowsview{-webkit-box-flex:1;-ms-flex:auto;flex:auto;height:auto}.dx-gridbase-container>.dx-treelist-rowsview.dx-scrollable{display:-webkit-box;display:-ms-flexbox;display:flex}.dx-gridbase-container>.dx-treelist-rowsview.dx-scrollable>.dx-scrollable-wrapper{-webkit-box-flex:1;-ms-flex:1;flex:1;height:auto;min-width:0;min-height:0}.dx-treelist-rowsview{position:relative;overflow:hidden}.dx-treelist-rowsview.dx-empty{height:100px}.dx-treelist-rowsview.dx-empty .dx-scrollable-content{height:100%}.dx-treelist-rowsview.dx-fixed-columns.dx-scrollable .dx-scrollable-content{z-index:2}.dx-treelist-rowsview.dx-fixed-columns .dx-scrollable-scrollbar{z-index:3}.dx-treelist-rowsview .dx-treelist-content{overflow-anchor:none}.dx-treelist-rowsview .dx-treelist-content:not(.dx-treelist-content-fixed){min-height:100%}.dx-treelist-rowsview .dx-treelist-content.dx-scrollable-container{width:auto}.dx-treelist-rowsview .dx-treelist-content.dx-treelist-content-fixed.dx-scrollable-container{height:auto}.dx-treelist-rowsview:focus{outline:0}.dx-treelist-rowsview .dx-row>td,.dx-treelist-rowsview .dx-row>tr>td{overflow:hidden;text-overflow:ellipsis}.dx-treelist-rowsview .dx-row.dx-row-lines:first-child,.dx-treelist-rowsview .dx-row.dx-row-lines:first-child>td,.dx-treelist-rowsview .dx-row.dx-row-lines:first-child>tr>td{border-top:none}.dx-treelist-rowsview .dx-data-row>td:focus{outline:0}.dx-treelist-rowsview .dx-selection.dx-row:hover>td .dx-link,.dx-treelist-rowsview .dx-selection.dx-row:hover>tr>td .dx-link,.dx-treelist-rowsview .dx-selection>td .dx-link,.dx-treelist-rowsview .dx-selection>tr>td .dx-link{color:inherit}.dx-treelist-rowsview .dx-treelist-table .dx-row.dx-freespace-row,.dx-treelist-rowsview .dx-treelist-table .dx-row.dx-virtual-row{border-top:0;border-bottom:0}.dx-treelist-rowsview .dx-treelist-table .dx-row.dx-freespace-row>td,.dx-treelist-rowsview .dx-treelist-table .dx-row.dx-virtual-row>td{padding-top:0;padding-bottom:0}.dx-treelist-rowsview .dx-select-checkboxes-hidden>tbody>tr>td>.dx-select-checkbox{display:none}.dx-treelist-rowsview .dx-select-checkboxes-hidden>tbody>tr.dx-selection>td>.dx-select-checkbox,.dx-treelist-rowsview .dx-select-checkboxes-hidden>tbody>tr>td:hover>.dx-select-checkbox{display:inline-block}.dx-treelist-rowsview .dx-row>.dx-master-detail-cell:focus{outline:0}.dx-treelist-rowsview .dx-data-row.dx-edit-row .dx-cell-modified:after{border-color:#0000}.dx-treelist-nodata{position:absolute;top:50%;left:50%;width:100%;text-align:center;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.dx-treelist-bottom-load-panel{text-align:center;padding:10px}.dx-treelist-hidden-column{white-space:nowrap}.dx-treelist .dx-row .dx-treelist-hidden-column{border-right-width:0;border-left-width:0}.dx-treelist-hidden-column>*{display:none!important}.dx-treelist-total-footer>.dx-treelist-content{padding-top:7px;padding-bottom:7px}.dx-treelist-summary-item{font-weight:700}.dx-treelist-export-menu .dx-dropdownbutton-content .dx-list-item{display:block}.dx-command-adaptive{width:36px;min-width:36px}.dx-treelist-revert-tooltip.dx-popover-wrapper .dx-overlay-content{border:none;-webkit-box-shadow:none;box-shadow:none}.dx-treelist-revert-tooltip.dx-popover-wrapper .dx-overlay-content .dx-popup-content{padding:0}.dx-treelist-revert-tooltip.dx-popover-wrapper .dx-popover-arrow{width:0;height:0}.dx-treelist-notouch-action{-ms-touch-action:none;touch-action:none;-ms-content-zooming:none;-ms-overflow-style:none}.dx-treelist-column-chooser-list.dx-treeview .dx-empty-message,.dx-treelist-column-chooser-list.dx-treeview .dx-treeview-item{border:none}.dx-treelist-column-chooser-list.dx-treeview .dx-empty-message{text-align:center;left:0;right:0;bottom:50%;position:absolute}.dx-rtl .dx-treelist .dx-menu-subitem .dx-menu-item,.dx-treelist.dx-rtl .dx-menu-subitem .dx-menu-item{padding:7px 5px 7px 30px}.dx-rtl .dx-treelist .dx-menu-subitem .dx-menu-item .dx-menu-image,.dx-treelist.dx-rtl .dx-menu-subitem .dx-menu-item .dx-menu-image{background-position-x:right}.dx-rtl .dx-treelist .dx-texteditor-buttons-container,.dx-treelist.dx-rtl .dx-texteditor-buttons-container{text-align:start}.dx-rtl .dx-treelist-content .dx-treelist-table{direction:rtl}.dx-rtl .dx-treelist-content .dx-treelist-table .dx-row>td.dx-treelist-group-space{border-left:none}.dx-rtl .dx-treelist-content .dx-treelist-table .dx-row>td.dx-treelist-group-space+td{border-right:none}.dx-rtl .dx-treelist-content .dx-treelist-table .dx-row .dx-editor-container .dx-editor-cell .dx-checkbox.dx-checkbox-checked .dx-checkbox-icon{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-rtl .dx-treelist-content .dx-treelist-table .dx-row .dx-filter-range-content{padding:7px 32px 7px 7px}.dx-rtl .dx-treelist-headers .dx-treelist-scrollable-simulated,.dx-rtl .dx-treelist-total-footer .dx-treelist-scrollable-simulated{direction:ltr}.dx-rtl .dx-treelist-headers .dx-treelist-scrollable-simulated .dx-treelist-table,.dx-rtl .dx-treelist-total-footer .dx-treelist-scrollable-simulated .dx-treelist-table{direction:rtl}.dx-rtl .dx-treelist-filter-row .dx-editor-cell .dx-editor-with-menu .dx-texteditor .dx-placeholder:before,.dx-rtl .dx-treelist-filter-row .dx-editor-cell .dx-editor-with-menu .dx-texteditor .dx-texteditor-input{padding-right:32px}.dx-rtl .dx-treelist-filter-row .dx-menu{right:0;left:auto;margin-left:0;margin-right:-2px}.dx-rtl .dx-treelist-filter-row>td:first-child .dx-menu{margin-left:0}.dx-rtl .dx-treelist-filter-row .dx-menu-horizontal .dx-overlay-content ul .dx-menu-item{padding:5px 5px 5px 30px}.dx-rtl .dx-treelist-filter-row .dx-menu-caption{padding-right:6px}.dx-rtl .dx-treelist-header-panel{text-align:right}.dx-rtl .dx-treelist-header-panel .dx-treelist-column-chooser-button{margin-left:0}.dx-rtl .dx-treelist-header-panel .dx-toolbar-menu-container .dx-button{margin-left:0;margin-right:10px}.dx-rtl .dx-treelist-search-panel{margin:0 15px 0 0}.dx-treelist-filter-panel,.dx-treelist-filter-panel-left{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:justify;-ms-flex-pack:justify;justify-content:space-between;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;min-width:0}.dx-treelist-filter-panel .dx-treelist-filter-panel-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-treelist-filter-panel .dx-treelist-filter-panel-clear-filter:hover,.dx-treelist-filter-panel .dx-treelist-filter-panel-text:hover{text-decoration:underline;cursor:pointer}.dx-treelist-filter-panel .dx-treelist-filter-panel-checkbox{padding-right:10px}.dx-treelist-filter-panel .dx-icon-filter{margin:auto 7px auto auto;cursor:pointer}.dx-treelist-container{position:relative;cursor:default;white-space:normal;line-height:normal;color:#333;background-color:#fff}.dx-treelist-rowsview .dx-treelist-best-fit.dx-treelist-cell-expandable,.dx-treelist-rowsview .dx-treelist-table:not(.dx-treelist-table-fixed) .dx-treelist-cell-expandable{white-space:nowrap}.dx-treelist-rowsview .dx-treelist-best-fit.dx-treelist-cell-expandable .dx-treelist-text-content,.dx-treelist-rowsview .dx-treelist-table:not(.dx-treelist-table-fixed) .dx-treelist-cell-expandable .dx-treelist-text-content{display:inline;white-space:normal}.dx-treelist-rowsview .dx-treelist-best-fit.dx-treelist-cell-expandable .dx-treelist-icon-container,.dx-treelist-rowsview .dx-treelist-table:not(.dx-treelist-table-fixed) .dx-treelist-cell-expandable .dx-treelist-icon-container{float:none}.dx-treelist-rowsview .dx-treelist-icon-container{display:inline-block;white-space:nowrap;vertical-align:top;line-height:1}.dx-treelist-rowsview .dx-treelist-table-fixed .dx-treelist-icon-container{float:left}.dx-treelist-borders>.dx-treelist-headers,.dx-treelist-borders>.dx-treelist-rowsview,.dx-treelist-borders>.dx-treelist-total-footer{border-left:1px solid #ddd;border-right:1px solid #ddd}.dx-treelist-borders>.dx-treelist-rowsview,.dx-treelist-borders>.dx-treelist-total-footer{border-bottom:1px solid #ddd}.dx-treelist-borders>.dx-treelist-filter-panel,.dx-treelist-borders>.dx-treelist-headers{border-top:1px solid #ddd}.dx-treelist-borders>.dx-treelist-filter-panel{border-top-width:0;border-left:1px solid #ddd;border-right:1px solid #ddd;border-bottom:1px solid #ddd}.dx-sortable-dragging>div>.dx-gridbase-container>.dx-treelist-rowsview{border-color:#337ab780}.dx-treelist .dx-column-lines>td:first-child{border-left:none}.dx-treelist .dx-column-lines>td:last-child{border-right:none}.dx-treelist .dx-command-drag .dx-treelist-drag-icon{font:14px/1 DXIcons}.dx-treelist .dx-command-drag .dx-treelist-drag-icon:before{content:\"\\\\f038\"}.dx-treelist-container .dx-sort-up{font:14px/1 DXIcons}.dx-treelist-container .dx-sort-up:before{content:\"\\\\f051\"}.dx-treelist-container .dx-sort-down{font:14px/1 DXIcons}.dx-treelist-container .dx-sort-down:before{content:\"\\\\f052\"}.dx-treelist-container .dx-sort-down,.dx-treelist-container .dx-sort-up{font-family:inherit}.dx-treelist-container .dx-sort-down:before,.dx-treelist-container .dx-sort-up:before{font-family:DXIcons,sans-serif}.dx-treelist-container .dx-treelist-headers .dx-header-filter,.dx-treelist-container .dx-treelist-headers .dx-header-row>td{outline:0}.dx-treelist-container .dx-treelist-headers.dx-state-focused .dx-header-row td .dx-header-filter:focus,.dx-treelist-container .dx-treelist-headers.dx-state-focused .dx-header-row td:focus{outline:2px solid #5c95c5}.dx-treelist-container .dx-treelist-headers.dx-state-focused .dx-header-row td:focus{outline-offset:-2px}.dx-treelist-container .dx-treelist-headers.dx-state-focused .dx-header-row td .dx-header-filter:focus{outline-offset:2px}.dx-treelist-container .dx-header-filter{position:relative;color:#959595;font:14px/1 DXIcons}.dx-treelist-container .dx-header-filter:before{content:\"\\\\f050\"}.dx-treelist-container .dx-header-filter-empty{color:#95959580}.dx-treelist-container.dx-filter-menu .dx-menu-item-content .dx-icon{width:14px;height:14px;background-position:0 0;background-size:14px 14px;padding:0;font-size:14px;text-align:center;line-height:14px}.dx-treelist-container .dx-treelist-content-fixed .dx-treelist-table .dx-col-fixed{background-color:#fff}.dx-treelist-container .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none,.dx-treelist-container .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none,.dx-treelist-container .dx-treelist-headers .dx-row td.dx-pointer-events-none,.dx-treelist-container .dx-treelist-rowsview .dx-data-row td.dx-pointer-events-none,.dx-treelist-container .dx-treelist-rowsview .dx-freespace-row td.dx-pointer-events-none{border-left:2px solid #ddd;border-right:2px solid #ddd}.dx-treelist-container .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none.dx-first-cell,.dx-treelist-container .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none.dx-first-cell,.dx-treelist-container .dx-treelist-headers .dx-row td.dx-pointer-events-none.dx-first-cell,.dx-treelist-container .dx-treelist-rowsview .dx-data-row td.dx-pointer-events-none.dx-first-cell,.dx-treelist-container .dx-treelist-rowsview .dx-freespace-row td.dx-pointer-events-none.dx-first-cell{border-left:none}.dx-treelist-container .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none.dx-last-cell,.dx-treelist-container .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none.dx-last-cell,.dx-treelist-container .dx-treelist-headers .dx-row td.dx-pointer-events-none.dx-last-cell,.dx-treelist-container .dx-treelist-rowsview .dx-data-row td.dx-pointer-events-none.dx-last-cell,.dx-treelist-container .dx-treelist-rowsview .dx-freespace-row td.dx-pointer-events-none.dx-last-cell{border-right:none}.dx-treelist-container .dx-treelist-rowsview.dx-state-focused .dx-data-row>td.dx-command-edit>a.dx-link:focus{outline:2px solid #5c95c5;outline-offset:2px}.dx-treelist-container .dx-treelist-rowsview.dx-state-focused .dx-data-row.dx-row-focused>td.dx-command-edit>a.dx-link:focus{outline-color:#fff;outline-offset:0}.dx-treelist-container .dx-treelist-rowsview .dx-treelist-edit-form{background-color:#fff}.dx-treelist-container .dx-treelist-rowsview .dx-virtual-row>td{position:relative}.dx-treelist-container .dx-treelist-rowsview .dx-virtual-row>td:before{display:block;height:100%;content:\"\";background-image:url(${___CSS_LOADER_URL_REPLACEMENT_17___});background-repeat:repeat-y}.dx-treelist-container .dx-treelist-rowsview .dx-virtual-row>td[style*=\"text-align: right\"]:before{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-treelist-container .dx-treelist-filter-row .dx-filter-range-content{color:#333}.dx-treelist-container .dx-error-row td{color:#fff;padding:0}.dx-treelist-container .dx-error-row .dx-error-message{background-color:#e89895;white-space:normal;word-wrap:break-word}.dx-treelist-filter-panel{padding:10px;color:#333;border-top:1px solid #ddd}.dx-treelist-filter-panel.dx-state-focused .dx-icon-filter:focus,.dx-treelist-filter-panel.dx-state-focused .dx-treelist-filter-panel-clear-filter:focus,.dx-treelist-filter-panel.dx-state-focused .dx-treelist-filter-panel-text:focus{outline:2px solid #5c95c5}.dx-treelist-form-buttons-container{float:right}.dx-treelist-form-buttons-container .dx-button{margin-left:10px;margin-top:10px}.dx-treelist-export-menu .dx-menu-item .dx-icon-exportxlsx{width:16px;height:16px;background-position:0 0;background-size:16px 16px;padding:0;font-size:16px;text-align:center;line-height:16px}.dx-treelist-adaptive-more{cursor:pointer;font:21px/21px DXIcons}.dx-treelist-adaptive-more:before{content:\"\\\\f06c\"}.dx-treelist-edit-popup .dx-error-message{background-color:#e89895;white-space:normal;word-wrap:break-word;color:#fff;margin-bottom:20px}.dx-rtl.dx-treelist .dx-column-lines>td:first-child{border-right:none;border-left:1px solid #ddd}.dx-rtl.dx-treelist .dx-column-lines>td:last-child{border-left:none;border-right:1px solid #ddd}.dx-rtl .dx-treelist-container .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none,.dx-rtl .dx-treelist-container .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none,.dx-rtl .dx-treelist-container .dx-treelist-headers .dx-row td.dx-pointer-events-none,.dx-rtl .dx-treelist-container .dx-treelist-rowsview .dx-data-row td.dx-pointer-events-none,.dx-rtl .dx-treelist-container .dx-treelist-rowsview .dx-freespace-row td.dx-pointer-events-none{border-left:2px solid #ddd;border-right:2px solid #ddd}.dx-rtl .dx-treelist-container .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none.dx-first-cell,.dx-rtl .dx-treelist-container .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none.dx-first-cell,.dx-rtl .dx-treelist-container .dx-treelist-headers .dx-row td.dx-pointer-events-none.dx-first-cell,.dx-rtl .dx-treelist-container .dx-treelist-rowsview .dx-data-row td.dx-pointer-events-none.dx-first-cell,.dx-rtl .dx-treelist-container .dx-treelist-rowsview .dx-freespace-row td.dx-pointer-events-none.dx-first-cell{border-right:none}.dx-rtl .dx-treelist-container .dx-datagrid-rowsview .dx-header-row td.dx-pointer-events-none.dx-last-cell,.dx-rtl .dx-treelist-container .dx-datagrid-rowsview .dx-virtual-row td.dx-pointer-events-none.dx-last-cell,.dx-rtl .dx-treelist-container .dx-treelist-headers .dx-row td.dx-pointer-events-none.dx-last-cell,.dx-rtl .dx-treelist-container .dx-treelist-rowsview .dx-data-row td.dx-pointer-events-none.dx-last-cell,.dx-rtl .dx-treelist-container .dx-treelist-rowsview .dx-freespace-row td.dx-pointer-events-none.dx-last-cell{border-left:none}.dx-rtl .dx-treelist-container .dx-treelist-rowsview .dx-virtual-row>td:before{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-rtl .dx-treelist-container .dx-treelist-rowsview .dx-virtual-row>td[style*=\"text-align: left\"]:before{-webkit-transform:scale(1);transform:scale(1)}.dx-rtl .dx-treelist-form-buttons-container{float:left}.dx-rtl .dx-treelist-form-buttons-container .dx-button{margin-left:0;margin-right:10px}.dx-treelist-cell-updated-animation{-webkit-animation:dx-treelist-highlight-change 1s;animation:dx-treelist-highlight-change 1s}@-webkit-keyframes dx-treelist-highlight-change{0%,50%{background-color:#33333314}}@keyframes dx-treelist-highlight-change{0%,50%{background-color:#33333314}}.dx-treelist-container.dx-filter-menu .dx-menu-item-has-icon .dx-icon,.dx-treelist.dx-filter-menu .dx-menu-item-has-icon .dx-icon{color:#898989}.dx-treelist-container.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-asc,.dx-treelist.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-asc{font:16px/16px DXIcons;width:16px;height:16px;background-position:0 0;background-size:16px 16px;padding:0;text-align:center}.dx-treelist-container.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-asc:before,.dx-treelist.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-asc:before{content:\"\\\\f053\"}.dx-treelist-container.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-desc,.dx-treelist.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-desc{font:16px/16px DXIcons;width:16px;height:16px;background-position:0 0;background-size:16px 16px;padding:0;text-align:center}.dx-treelist-container.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-desc:before,.dx-treelist.dx-context-menu .dx-menu-items-container .dx-icon-context-menu-sort-desc:before{content:\"\\\\f054\"}.dx-treelist .dx-icon-filter-operation-equals,.dx-treelist-container .dx-icon-filter-operation-equals{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-equals:before,.dx-treelist-container .dx-icon-filter-operation-equals:before{content:\"\\\\f044\"}.dx-treelist .dx-icon-filter-operation-default,.dx-treelist-container .dx-icon-filter-operation-default{font:12px/12px DXIcons;width:12px;height:12px;background-position:0 0;background-size:12px 12px;padding:0;text-align:center}.dx-treelist .dx-icon-filter-operation-default:before,.dx-treelist-container .dx-icon-filter-operation-default:before{content:\"\\\\f027\"}.dx-treelist .dx-icon-filter-operation-not-equals,.dx-treelist-container .dx-icon-filter-operation-not-equals{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-not-equals:before,.dx-treelist-container .dx-icon-filter-operation-not-equals:before{content:\"\\\\f045\"}.dx-treelist .dx-icon-filter-operation-less,.dx-treelist-container .dx-icon-filter-operation-less{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-less:before,.dx-treelist-container .dx-icon-filter-operation-less:before{content:\"\\\\f046\"}.dx-treelist .dx-icon-filter-operation-less-equal,.dx-treelist-container .dx-icon-filter-operation-less-equal{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-less-equal:before,.dx-treelist-container .dx-icon-filter-operation-less-equal:before{content:\"\\\\f048\"}.dx-treelist .dx-icon-filter-operation-greater,.dx-treelist-container .dx-icon-filter-operation-greater{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-greater:before,.dx-treelist-container .dx-icon-filter-operation-greater:before{content:\"\\\\f047\"}.dx-treelist .dx-icon-filter-operation-greater-equal,.dx-treelist-container .dx-icon-filter-operation-greater-equal{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-greater-equal:before,.dx-treelist-container .dx-icon-filter-operation-greater-equal:before{content:\"\\\\f049\"}.dx-treelist .dx-icon-filter-operation-contains,.dx-treelist-container .dx-icon-filter-operation-contains{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-contains:before,.dx-treelist-container .dx-icon-filter-operation-contains:before{content:\"\\\\f063\"}.dx-treelist .dx-icon-filter-operation-not-contains,.dx-treelist-container .dx-icon-filter-operation-not-contains{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-not-contains:before,.dx-treelist-container .dx-icon-filter-operation-not-contains:before{content:\"\\\\f066\"}.dx-treelist .dx-icon-filter-operation-starts-with,.dx-treelist-container .dx-icon-filter-operation-starts-with{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-starts-with:before,.dx-treelist-container .dx-icon-filter-operation-starts-with:before{content:\"\\\\f064\"}.dx-treelist .dx-icon-filter-operation-ends-with,.dx-treelist-container .dx-icon-filter-operation-ends-with{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-ends-with:before,.dx-treelist-container .dx-icon-filter-operation-ends-with:before{content:\"\\\\f065\"}.dx-treelist .dx-icon-filter-operation-between,.dx-treelist-container .dx-icon-filter-operation-between{font:14px/1 DXIcons}.dx-treelist .dx-icon-filter-operation-between:before,.dx-treelist-container .dx-icon-filter-operation-between:before{content:\"\\\\f06a\"}.dx-treelist{line-height:inherit}.dx-treelist .dx-row-alt>td,.dx-treelist .dx-row-alt>tr>td{background-color:#f5f5f5;border-top:1px solid #f5f5f5;border-bottom:1px solid #f5f5f5}.dx-treelist .dx-row-alt.dx-row:not(.dx-row-removed){border-bottom-color:#0000}.dx-treelist .dx-link{color:#337ab7}.dx-treelist .dx-row-lines>td{border-bottom:1px solid #ddd}.dx-treelist .dx-column-lines>td{border-left:1px solid #ddd;border-right:1px solid #ddd}.dx-treelist .dx-error-row .dx-closebutton{float:right;margin:9px;font:14px/14px DXIcons;width:14px;height:14px;background-position:0 0;background-size:14px 14px;padding:0;text-align:center}.dx-treelist .dx-error-row .dx-closebutton:before{content:\"\\\\f00a\"}.dx-treelist .dx-error-row .dx-error-message{padding:7px 35px 7px 7px}.dx-treelist .dx-row>td{padding:7px}.dx-treelist .dx-treelist-content .dx-treelist-table .dx-row .dx-command-edit-with-icons .dx-link{width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;font-size:18px;text-align:center;line-height:18px;margin:0 3px}.dx-treelist .dx-treelist-content .dx-treelist-table .dx-row .dx-command-edit-with-icons .dx-link:not(.dx-link-icon){width:auto}.dx-treelist .dx-treelist-rowsview .dx-virtual-row>td[style*=\"text-align: right\"]:before{background-position-y:34px}.dx-treelist .dx-command-drag{width:36px;min-width:36px}.dx-treelist .dx-command-drag .dx-treelist-drag-icon{vertical-align:middle;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;font-size:18px;text-align:center;line-height:19px}.dx-treelist-edit-popup .dx-error-message{padding:7px}.dx-treelist-headers .dx-texteditor-input,.dx-treelist-rowsview .dx-texteditor-input{padding:7px;min-height:33px}.dx-treelist-headers .dx-numberbox.dx-show-clear-button.dx-texteditor-empty:not(.dx-invalid) .dx-texteditor-input,.dx-treelist-headers .dx-textbox.dx-show-clear-button.dx-texteditor-empty:not(.dx-invalid) .dx-texteditor-input,.dx-treelist-rowsview .dx-numberbox.dx-show-clear-button.dx-texteditor-empty:not(.dx-invalid) .dx-texteditor-input,.dx-treelist-rowsview .dx-textbox.dx-show-clear-button.dx-texteditor-empty:not(.dx-invalid) .dx-texteditor-input{padding-right:7px}.dx-treelist-headers .dx-lookup,.dx-treelist-rowsview .dx-lookup{height:auto}.dx-treelist-headers .dx-lookup-field,.dx-treelist-rowsview .dx-lookup-field{padding-left:7px;padding-top:7px;padding-bottom:7px}.dx-treelist-headers .dx-searchbox .dx-placeholder:before,.dx-treelist-headers .dx-searchbox .dx-texteditor-input,.dx-treelist-rowsview .dx-searchbox .dx-placeholder:before,.dx-treelist-rowsview .dx-searchbox .dx-texteditor-input{padding-left:34px}.dx-rtl .dx-treelist-headers .dx-searchbox .dx-placeholder:before,.dx-rtl .dx-treelist-headers .dx-searchbox .dx-texteditor-input,.dx-rtl .dx-treelist-rowsview .dx-searchbox .dx-placeholder:before,.dx-rtl .dx-treelist-rowsview .dx-searchbox .dx-texteditor-input,.dx-rtl.dx-treelist-headers .dx-searchbox .dx-placeholder:before,.dx-rtl.dx-treelist-headers .dx-searchbox .dx-texteditor-input,.dx-rtl.dx-treelist-rowsview .dx-searchbox .dx-placeholder:before,.dx-rtl.dx-treelist-rowsview .dx-searchbox .dx-texteditor-input{padding-right:34px}.dx-editor-cell .dx-numberbox-spin-button{background-color:initial}.dx-editor-cell .dx-icon-clear{left:0}.dx-editor-cell .dx-texteditor,.dx-editor-cell .dx-texteditor .dx-texteditor-input{background:#fff}.dx-editor-cell .dx-dropdowneditor{background-color:#fff}.dx-editor-cell.dx-focused .dx-dropdowneditor-icon{border-radius:0}.dx-editor-cell.dx-editor-inline-block:not(.dx-command-select):before{padding-top:7px;padding-bottom:7px}.dx-treelist-checkbox-size{vertical-align:middle;padding-bottom:2px}.dx-treelist-checkbox-size.dx-checkbox-checked .dx-checkbox-icon{font-size:12px}.dx-treelist-checkbox-size .dx-checkbox-icon{height:16px;width:16px}.dx-treelist-checkbox-size.dx-checkbox-indeterminate .dx-checkbox-icon{font-size:6px}.dx-treelist-checkbox-size.dx-checkbox-indeterminate .dx-checkbox-icon:before{border-radius:0}.dx-treelist-column-chooser-list .dx-empty-message{color:#999;padding:0 20px}.dx-treelist-column-chooser{color:#333;font-weight:400;font-size:14px}.dx-treelist-column-chooser,.dx-treelist-column-chooser input,.dx-treelist-column-chooser textarea{font-family:Helvetica Neue,Segoe UI,helvetica,verdana,sans-serif;line-height:1.35715}.dx-treelist-column-chooser.dx-treelist-column-chooser-mode-drag .dx-popup-content{padding:0 20px 20px}.dx-treelist-column-chooser.dx-treelist-column-chooser-mode-drag .dx-popup-content .dx-treeview-search{margin-bottom:10px}.dx-treelist-column-chooser.dx-treelist-column-chooser-mode-drag .dx-popup-content .dx-treeview-node{padding-left:20px}.dx-treelist-column-chooser.dx-treelist-column-chooser-mode-select .dx-popup-content{padding:0 20px 20px}.dx-treelist-column-chooser .dx-overlay-content{background-color:#fff;border-radius:6px;-webkit-box-shadow:0 1px 3px #0003;box-shadow:0 1px 3px #0003}.dx-treelist-column-chooser .dx-overlay-content .dx-popup-title{padding-top:7px;padding-bottom:9px;background-color:initial}.dx-treelist-column-chooser .dx-overlay-content .dx-popup-content .dx-column-chooser-item{opacity:.5;margin-bottom:10px;background-color:#fff;color:#959595;font-weight:400;border:1px solid #ddd;padding:7px;-webkit-box-shadow:0 1px 3px -1px #0003;box-shadow:0 1px 3px -1px #0003}.dx-treelist-drag-header{-webkit-box-shadow:0 0 1px #0000001a,0 1px 3px #0003;box-shadow:0 0 1px #0000001a,0 1px 3px #0003;color:#959595;font-weight:400;padding:7px;border:1px solid #337ab780;background-color:#fff}.dx-treelist-columns-separator{background-color:#337ab780}.dx-treelist-columns-separator-transparent{background-color:initial}.dx-treelist-drop-highlight>td{background-color:#337ab7;color:#fff}.dx-treelist-focus-overlay{border:2px solid #5c95c5}.dx-treelist-table .dx-row .dx-command-select{width:70px;min-width:70px}.dx-treelist-table .dx-row .dx-command-edit{width:85px;min-width:85px}.dx-treelist-table .dx-row .dx-command-edit .dx-link.dx-state-disabled{opacity:.5}.dx-treelist-table .dx-row .dx-command-edit .dx-link.dx-state-disabled.dx-link-icon{opacity:.6}.dx-treelist-table .dx-row .dx-command-expand{width:30px;min-width:30px}.dx-treelist-table .dx-row .dx-command-expand.dx-treelist-group-space{padding-top:7px}.dx-treelist-table .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>td:not(.dx-focused){background-color:#0000000a;color:#333}.dx-treelist-table .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>td:not(.dx-focused).dx-treelist-group-space{border-right-color:#0000000a}.dx-treelist-table .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>td:not(.dx-focused).dx-command-select{overflow:inherit}.dx-treelist-table .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>.dx-treelist-readonly .dx-texteditor .dx-texteditor-input{background-color:#0000000a;color:#333}.dx-treelist-table .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>td.dx-pointer-events-none{background-color:initial}.dx-treelist-headers{color:#959595;font-weight:400;-ms-touch-action:pinch-zoom;touch-action:pinch-zoom;border-bottom:1px solid #ddd}.dx-treelist-headers .dx-treelist-content{margin-bottom:-1px}.dx-treelist-borders .dx-treelist-headers .dx-treelist-table{border-bottom-width:1px}.dx-treelist-headers .dx-treelist-table .dx-row>td{border-bottom:1px solid #ddd}.dx-treelist-filter-row .dx-menu .dx-overlay-content{color:#333}.dx-treelist-filter-row .dx-menu-item.dx-state-focused{background-color:initial}.dx-treelist-filter-row .dx-menu-item.dx-state-focused:after{border:2px solid #5c95c5}.dx-treelist-filter-row .dx-menu-item.dx-state-focused.dx-menu-item-expanded{background-color:#fff}.dx-treelist-filter-row .dx-menu-item.dx-state-focused.dx-menu-item-expanded:after{border-color:#0000}.dx-treelist-filter-row .dx-menu-item-has-submenu.dx-state-hover{background-color:initial}.dx-treelist-filter-row .dx-menu-item-has-submenu.dx-menu-item-expanded.dx-state-hover{background-color:#fff}.dx-treelist-filter-row .dx-cell-modified:after,.dx-treelist-filter-row .dx-highlight-outline:after,.dx-treelist-filter-row .dx-treelist-invalid:after{border-color:#5cb85c80}.dx-treelist-filter-row .dx-menu-item-content .dx-icon{color:#898989}.dx-treelist-filter-row td .dx-editor-container .dx-filter-range-content{padding:7px 7px 7px 32px}.dx-treelist-filter-range-overlay .dx-overlay-content{border:1px solid #ddd;overflow:inherit;-webkit-box-shadow:2px 2px 3px #00000026;box-shadow:2px 2px 3px #00000026}.dx-treelist-filter-range-overlay .dx-overlay-content .dx-editor-container.dx-cell-modified:after,.dx-treelist-filter-range-overlay .dx-overlay-content .dx-editor-container.dx-treelist-invalid:after{border-color:#5cb85c80;left:0}.dx-treelist-filter-range-overlay .dx-overlay-content .dx-texteditor .dx-texteditor-input{background-color:#fff;padding:7px}.dx-treelist-filter-range-overlay .dx-overlay-content .dx-texteditor.dx-state-focused:after{border:2px solid #5c95c5}.dx-filter-menu.dx-menu{background-color:initial;height:100%}.dx-filter-menu.dx-menu .dx-menu-item .dx-menu-item-content{padding:6px 5px 7px}.dx-filter-menu.dx-menu .dx-menu-item .dx-menu-item-content .dx-icon{margin:0 3px}.dx-editor-with-menu .dx-filter-menu .dx-menu-item-content .dx-icon.dx-icon-filter-operation-default,.dx-filter-menu .dx-menu-item-content .dx-icon.dx-icon-filter-operation-default{margin-top:2px}.dx-cell-modified,.dx-treelist-invalid{padding:7px}.dx-treelist-header-panel{border-bottom:1px solid #ddd}.dx-treelist-header-panel .dx-toolbar{margin-bottom:10px}.dx-treelist-header-panel .dx-apply-button{background-color:#5cb85c;border-color:#4cae4c;color:#fff}.dx-treelist-header-panel .dx-apply-button .dx-icon{color:#fff}.dx-treelist-header-panel .dx-apply-button.dx-state-hover{background-color:#449d44;border-color:#4cae4c}.dx-treelist-header-panel .dx-apply-button.dx-state-focused{background-color:#3d8b3d;border-color:#4cae4c}.dx-treelist-header-panel .dx-apply-button.dx-state-active{background-color:#357935;border-color:#4cae4c;color:#fff}.dx-icon-column-chooser{font:18px/18px DXIcons;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center}.dx-icon-column-chooser:before{content:\"\\\\f04d\"}.dx-treelist-addrow-button .dx-icon-edit-button-addrow{font:18px/18px DXIcons;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center}.dx-treelist-addrow-button .dx-icon-edit-button-addrow:before{content:\"\\\\f00b\"}.dx-treelist-cancel-button .dx-icon-edit-button-cancel{font:18px/18px DXIcons;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center}.dx-treelist-cancel-button .dx-icon-edit-button-cancel:before{content:\"\\\\f04c\"}.dx-treelist-save-button .dx-icon-edit-button-save{font:18px/18px DXIcons;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center}.dx-treelist-save-button .dx-icon-edit-button-save:before{content:\"\\\\f041\"}.dx-apply-button .dx-icon-apply-filter{font:18px/18px DXIcons;width:18px;height:18px;background-position:0 0;background-size:18px 18px;padding:0;text-align:center}.dx-apply-button .dx-icon-apply-filter:before{content:\"\\\\f050\"}.dx-treelist-adaptive-more{width:21px;height:21px;background-position:0 0;background-size:21px 21px;padding:0;font-size:21px;text-align:center;line-height:21px}.dx-treelist-borders .dx-treelist-rowsview,.dx-treelist-headers+.dx-treelist-rowsview,.dx-treelist-rowsview.dx-treelist-after-headers{border-top:1px solid #ddd}.dx-treelist-rowsview .dx-row{border-top:1px solid #0000;border-bottom:1px solid #0000}.dx-treelist-rowsview .dx-row:focus{outline:0}.dx-treelist-rowsview .dx-row.dx-edit-row:first-child>td{border-top-width:0;border-bottom:1px solid #ddd}.dx-treelist-rowsview .dx-row.dx-edit-row>td{border-top:1px solid #ddd;border-bottom:1px solid #ddd}.dx-treelist-rowsview .dx-row.dx-treelist-edit-form{white-space:normal}.dx-treelist-rowsview .dx-master-detail-row>.dx-master-detail-cell{padding:20px}.dx-treelist-rowsview .dx-master-detail-row .dx-master-detail-cell,.dx-treelist-rowsview .dx-master-detail-row>.dx-treelist-group-space{border-top:1px solid #ddd;border-bottom:1px solid #ddd}.dx-treelist-rowsview .dx-master-detail-row .dx-texteditor-input{padding-right:0}.dx-treelist-rowsview .dx-master-detail-row:not(.dx-treelist-edit-form) .dx-master-detail-cell,.dx-treelist-rowsview .dx-master-detail-row:not(.dx-treelist-edit-form)>.dx-treelist-group-space{background-color:#fafafa}.dx-treelist-rowsview .dx-data-row .dx-validator.dx-treelist-invalid.dx-cell-modified:after,.dx-treelist-rowsview .dx-data-row .dx-validator.dx-treelist-invalid.dx-treelist-invalid:after{border:1px solid #d9534f66}.dx-treelist-rowsview .dx-data-row .dx-validator.dx-treelist-invalid.dx-focused.dx-cell-modified:after,.dx-treelist-rowsview .dx-data-row .dx-validator.dx-treelist-invalid.dx-focused.dx-treelist-invalid:after{border:1px solid #d9534f}.dx-treelist-rowsview .dx-data-row .dx-cell-modified.dx-cell-modified:after,.dx-treelist-rowsview .dx-data-row .dx-cell-modified.dx-treelist-invalid:after{border-color:#5cb85c80}.dx-treelist-rowsview .dx-overlay-wrapper.dx-invalid-message .dx-overlay-content{padding:9px 17px}.dx-treelist-rowsview .dx-row-removed>td{background-color:#ddd;border-top:1px solid #ddd;border-bottom:1px solid #ddd;color:#959595}.dx-treelist-rowsview .dx-adaptive-detail-row .dx-adaptive-item-text{padding-top:8px;padding-bottom:8px;padding-left:8px}.dx-treelist-rowsview .dx-adaptive-detail-row .dx-treelist-invalid{border:1px solid #d9534f66}.dx-treelist-rowsview .dx-adaptive-detail-row .dx-treelist-invalid.dx-adaptive-item-text{padding-top:7px;padding-bottom:7px;padding-left:7px}.dx-treelist-rowsview .dx-item-modified{border-radius:4px;border:2px solid #5cb85c80}.dx-treelist-rowsview .dx-item-modified.dx-adaptive-item-text{padding-top:6px;padding-bottom:6px;padding-left:6px}.dx-treelist-rowsview .dx-row-focused.dx-data-row .dx-command-edit:not(.dx-focused) .dx-link,.dx-treelist-rowsview .dx-row-focused.dx-data-row>td:not(.dx-focused),.dx-treelist-rowsview .dx-row-focused.dx-data-row>tr>td:not(.dx-focused){background-color:#5c95c5;color:#fff}.dx-treelist-rowsview .dx-row-focused.dx-data-row .dx-command-edit:not(.dx-focused) .dx-link .dx-texteditor-input,.dx-treelist-rowsview .dx-row-focused.dx-data-row>td:not(.dx-focused) .dx-texteditor-input,.dx-treelist-rowsview .dx-row-focused.dx-data-row>tr>td:not(.dx-focused) .dx-texteditor-input{border-radius:0}.dx-treelist-rowsview .dx-row-focused.dx-data-row .dx-command-edit:not(.dx-focused) .dx-link .dx-treelist-group-closed,.dx-treelist-rowsview .dx-row-focused.dx-data-row .dx-command-edit:not(.dx-focused) .dx-link .dx-treelist-group-opened,.dx-treelist-rowsview .dx-row-focused.dx-data-row>td:not(.dx-focused) .dx-treelist-group-closed,.dx-treelist-rowsview .dx-row-focused.dx-data-row>td:not(.dx-focused) .dx-treelist-group-opened,.dx-treelist-rowsview .dx-row-focused.dx-data-row>tr>td:not(.dx-focused) .dx-treelist-group-closed,.dx-treelist-rowsview .dx-row-focused.dx-data-row>tr>td:not(.dx-focused) .dx-treelist-group-opened{color:#fff}.dx-treelist-rowsview .dx-row-focused.dx-data-row .dx-command-edit .dx-link:focus{background-color:#fff;color:#333}.dx-treelist-rowsview .dx-row-focused.dx-data-row>td,.dx-treelist-rowsview .dx-row-focused.dx-data-row>tr:last-child>td{border-bottom:1px solid #5c95c5}.dx-treelist-rowsview .dx-row-focused.dx-data-row:not(.dx-row-lines)>td,.dx-treelist-rowsview .dx-row-focused.dx-data-row:not(.dx-row-lines)>tr:first-child>td{border-top:1px solid #5c95c5;border-bottom:1px solid #5c95c5}.dx-treelist-rowsview .dx-row-focused.dx-group-row{background-color:#5c95c5;color:#fff}.dx-treelist-rowsview .dx-row-focused.dx-group-row .dx-datagrid-summary-item,.dx-treelist-rowsview .dx-row-focused.dx-group-row .dx-treelist-group-closed,.dx-treelist-rowsview .dx-row-focused.dx-group-row .dx-treelist-group-opened{color:#fff}.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>tr>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused)>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused)>tr>td{background-color:#e6e6e6;color:#333}.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>td.dx-treelist-group-space,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>tr>td.dx-treelist-group-space,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused)>td.dx-treelist-group-space,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused)>tr>td.dx-treelist-group-space{border-right-color:#e6e6e6}.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>td.dx-pointer-events-none,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>tr>td.dx-pointer-events-none,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused)>td.dx-pointer-events-none,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused)>tr>td.dx-pointer-events-none{border-left-color:#ddd;border-right-color:#ddd}.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>td.dx-focused,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover>tr>td.dx-focused,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused)>td.dx-focused,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused)>tr>td.dx-focused{background-color:#fff;color:#333}.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover:not(.dx-row-lines)>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):not(.dx-row-lines)>td{border-bottom:1px solid #e6e6e6;border-top:1px solid #e6e6e6}.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover:not(.dx-row-lines)>tr:first-child>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):not(.dx-row-lines)>tr:first-child>td{border-top:1px solid #e6e6e6}.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover:not(.dx-row-lines)>tr:last-child>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):not(.dx-row-lines)>tr:last-child>td{border-bottom:1px solid #e6e6e6}.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused).dx-column-lines>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused).dx-column-lines>tr>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover.dx-column-lines>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover.dx-column-lines>tr>td{border-left-color:#ddd;border-right-color:#ddd}.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused).dx-row-lines>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused).dx-row-lines>tr>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover.dx-row-lines>td,.dx-treelist-rowsview .dx-selection.dx-row:not(.dx-row-focused):hover.dx-row-lines>tr>td{border-bottom-color:#ddd}.dx-treelist-rowsview.dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-both .dx-scrollable-wrapper .dx-scrollable-container .dx-scrollable-content{padding-right:0}.dx-treelist-rowsview td.dx-validation-pending{position:relative;padding:0}.dx-treelist-rowsview td.dx-validation-pending.dx-cell-modified,.dx-treelist-rowsview td.dx-validation-pending.dx-treelist-invalid{padding:7px 34px 7px 7px}.dx-rtl .dx-treelist-rowsview td.dx-validation-pending.dx-cell-modified,.dx-rtl .dx-treelist-rowsview td.dx-validation-pending.dx-treelist-invalid,.dx-rtl.dx-treelist-rowsview td.dx-validation-pending.dx-cell-modified,.dx-rtl.dx-treelist-rowsview td.dx-validation-pending.dx-treelist-invalid{padding-left:34px;padding-right:7px}.dx-treelist-rowsview td.dx-validation-pending .dx-pending-indicator{pointer-events:none;position:absolute;top:50%;margin-top:-11px;width:22px;height:22px;right:4px;background-color:#fff}.dx-rtl .dx-treelist-rowsview td.dx-validation-pending .dx-pending-indicator,.dx-rtl.dx-treelist-rowsview td.dx-validation-pending .dx-pending-indicator{left:4px;right:auto}.dx-treelist-rowsview td.dx-editor-cell .dx-texteditor.dx-validation-pending .dx-texteditor-input{padding-right:34px}.dx-treelist-rowsview td.dx-editor-cell .dx-texteditor.dx-validation-pending.dx-rtl .dx-texteditor-input{padding-right:7px;padding-bottom:7px;padding-left:34px}.dx-treelist-search-text{color:#fff;background-color:#337ab7}.dx-treelist-nodata{color:#999;font-size:17px}.dx-treelist-bottom-load-panel{border-top:1px solid #ddd;background-color:#fff}.dx-treelist-pager{border-top:1px solid #ddd}.dx-treelist-pager .dx-navigate-button,.dx-treelist-pager .dx-page,.dx-treelist-pager .dx-page-size{outline:0}.dx-treelist-pager.dx-state-focused .dx-navigate-button:focus,.dx-treelist-pager.dx-state-focused .dx-page-size:focus,.dx-treelist-pager.dx-state-focused .dx-page:focus{outline:2px solid #5c95c5;outline-offset:-2px}.dx-treelist-summary-item{color:#333333b3}.dx-treelist-total-footer{position:relative;border-top:1px solid #ddd}.dx-treelist-revert-tooltip .dx-overlay-content{background-color:#fff;min-width:inherit}.dx-treelist-revert-tooltip .dx-revert-button{margin:0 1px;background-color:#d9534f;border-color:#d43f3a;color:#fff}.dx-treelist-revert-tooltip .dx-revert-button .dx-icon{color:#fff}.dx-treelist-revert-tooltip .dx-revert-button.dx-state-hover{background-color:#c9302c;border-color:#d43f3a}.dx-treelist-revert-tooltip .dx-revert-button.dx-state-focused{background-color:#b52b27;border-color:#d43f3a}.dx-treelist-revert-tooltip .dx-revert-button.dx-state-active{background-color:#a02622;border-color:#d43f3a;color:#fff}.dx-treelist-revert-tooltip .dx-revert-button>.dx-button-content{padding:7px}.dx-toolbar-menu-section .dx-treelist-checkbox-size{width:100%}.dx-toolbar-menu-section .dx-treelist-checkbox-size .dx-checkbox-container{padding:14px}.dx-toolbar-menu-section .dx-treelist-checkbox-size .dx-checkbox-text{padding-left:34px}.dx-rtl .dx-toolbar-menu-section .dx-checkbox-text{padding-right:34px;padding-left:27px}.dx-rtl .dx-data-row.dx-state-hover:not(.dx-selection):not(.dx-row-inserted):not(.dx-row-removed):not(.dx-edit-row):not(.dx-row-focused)>td:not(.dx-focused).dx-treelist-group-space{border-left-color:#0000000a;border-right-color:#0000}.dx-rtl .dx-treelist-filter-row .dx-menu .dx-menu-item-has-submenu.dx-menu-item-has-icon .dx-icon{margin:0 3px}.dx-rtl .dx-treelist-filter-row td .dx-editor-container .dx-filter-range-content{padding:7px 32px 7px 7px}.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row:hover>td,.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row:hover>tr>td,.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row>td,.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row>tr>td{border-right-color:#ddd}.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row:hover>td:not(.dx-focused).dx-treelist-group-space,.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row:hover>tr>td:not(.dx-focused).dx-treelist-group-space,.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row>td:not(.dx-focused).dx-treelist-group-space,.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row>tr>td:not(.dx-focused).dx-treelist-group-space{border-left-color:#e6e6e6}.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row:hover>td.dx-pointer-events-none,.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row:hover>tr>td.dx-pointer-events-none,.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row>td.dx-pointer-events-none,.dx-rtl .dx-treelist-rowsview .dx-selection.dx-row>tr>td.dx-pointer-events-none{border-left-color:#ddd}.dx-rtl .dx-treelist-rowsview.dx-scrollable-scrollbars-alwaysvisible.dx-scrollable-both .dx-scrollable-wrapper .dx-scrollable-container .dx-scrollable-content{padding-left:0}.dx-treelist-rowsview .dx-treelist-empty-space{position:relative;display:inline-block;width:14px;font:14px/1 DXIcons}.dx-treelist-rowsview .dx-treelist-empty-space:before{content:\"\\\\f04e\";visibility:hidden}.dx-treelist-rowsview tr:not(.dx-row-focused) .dx-treelist-empty-space{color:#959595}.dx-treelist-rowsview .dx-treelist-expanded span{font:18px/18px DXIcons;text-align:center;cursor:pointer}.dx-treelist-rowsview .dx-treelist-expanded span:before{content:\"\\\\f001\";position:absolute;display:block;width:18px;top:50%;left:0;margin-left:-5px;margin-top:-8px}.dx-treelist-rowsview .dx-treelist-collapsed span{font:18px/18px DXIcons;text-align:center;cursor:pointer}.dx-treelist-rowsview .dx-treelist-collapsed span:before{content:\"\\\\f04e\";position:absolute;display:block;width:18px;top:50%;left:0;margin-left:-6px;margin-top:-8px}.dx-treelist-rowsview tr:not(.dx-row-focused).dx-selection .dx-treelist-empty-space{color:#959595}.dx-treelist-rowsview .dx-treelist-cell-expandable{white-space:nowrap}.dx-treelist-rowsview .dx-treelist-cell-expandable .dx-treelist-text-content{white-space:normal}.dx-treelist-rowsview.dx-treelist-nowrap .dx-treelist-table .dx-treelist-cell-expandable .dx-treelist-text-content{white-space:nowrap}.dx-treelist-rowsview .dx-treelist-content .dx-treelist-table .dx-row .dx-editor-cell{padding-left:7px}.dx-treelist-checkbox-size{line-height:0}.dx-treelist-cell-expandable .dx-select-checkbox,.dx-treelist-select-all .dx-select-checkbox{position:absolute}.dx-treelist-icon-container.dx-editor-inline-block{position:relative;padding-right:23px}.dx-treelist-icon-container.dx-editor-inline-block .dx-checkbox{top:50%;margin-top:-8px}.dx-treelist-select-all{position:relative}.dx-treelist-select-all .dx-checkbox{left:21px;margin-top:1px}.dx-treelist-headers .dx-header-row>.dx-treelist-select-all{padding-left:44px}.dx-rtl .dx-treelist-rowsview .dx-treelist-collapsed,.dx-rtl .dx-treelist-rowsview .dx-treelist-expanded{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-rtl .dx-treelist-rowsview .dx-treelist-table-fixed .dx-treelist-icon-container{float:right}.dx-rtl .dx-treelist-select-all .dx-checkbox{left:calc(100% - 37px)}.dx-rtl .dx-treelist-headers .dx-header-row>.dx-treelist-select-all{padding-right:44px;padding-left:7px}.dx-rtl .dx-treelist-icon-container.dx-editor-inline-block{padding-left:23px;padding-right:0}.dx-treelist-filter-panel .dx-icon-filter,.dx-treelist-filter-panel .dx-treelist-filter-panel-clear-filter,.dx-treelist-filter-panel .dx-treelist-filter-panel-text{outline:0;color:#337ab7}.dx-pivotgrid-fields-container .dx-header-filter,.dx-pivotgrid-fields-container .dx-sort,.dx-pivotgrid-fields-container.dx-drag .dx-area-field-content{display:inline-block}.dx-pivotgrid-fields-container.dx-drag .dx-column-indicators{float:none;display:inline-block}.dx-pivotgrid-nodata{position:absolute;top:50%;left:50%;width:100%;text-align:center;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.dx-pivotgrid{cursor:default;width:100%;position:relative;background-color:#fff}.dx-pivotgrid.dx-overflow-hidden{overflow:hidden}.dx-pivotgrid .dx-area-column-cell,.dx-pivotgrid .dx-area-data-cell{width:100%}.dx-pivotgrid .dx-area-data-cell{position:relative}.dx-pivotgrid table,.dx-pivotgrid tbody,.dx-pivotgrid td,.dx-pivotgrid tfoot,.dx-pivotgrid th,.dx-pivotgrid thead,.dx-pivotgrid tr{margin:0;padding:0;border:0;outline:0}.dx-pivotgrid table{border-collapse:collapse;table-layout:auto;border-spacing:0}.dx-pivotgrid td{vertical-align:top;-webkit-box-sizing:content-box;box-sizing:initial}.dx-pivotgrid .dx-area-description-cell{position:relative;background-clip:padding-box;white-space:nowrap}.dx-pivotgrid .dx-area-description-cell .dx-pivotgrid-fields-area{position:absolute;bottom:0}.dx-pivotgrid .dx-area-field-content,.dx-pivotgrid .dx-column-indicators{display:inline-block}.dx-pivotgrid .dx-expand-icon-container{position:relative;display:inline-block}.dx-pivotgrid .dx-incompressible-fields .dx-pivotgrid-fields-area{position:static}.dx-pivotgrid .dx-incompressible-fields .dx-pivotgrid-fields-area:not(.dx-hidden){display:table-cell}.dx-pivotgrid .dx-incompressible-fields .dx-column-indicators{vertical-align:top;float:none!important}.dx-pivotgrid .dx-incompressible-fields .dx-area-field{display:inline-block;white-space:nowrap}.dx-pivotgrid .dx-area-field,.dx-pivotgrid .dx-area-field-content{white-space:nowrap}.dx-pivotgrid .dx-popup-content .dx-column-indicators{float:none!important;display:inline-block}.dx-pivotgrid .dx-popup-content .dx-area-field-content{display:inline-block}.dx-pivotgrid .dx-pivotgrid-area{white-space:nowrap;-webkit-box-sizing:content-box;box-sizing:initial}.dx-pivotgrid .dx-pivotgrid-collapsed,.dx-pivotgrid .dx-pivotgrid-expanded{cursor:pointer}.dx-pivotgrid .dx-pivotgrid-collapsed .dx-expand,.dx-pivotgrid .dx-pivotgrid-expanded .dx-expand{display:inline-block}.dx-pivotgrid .dx-word-wrap .dx-pivotgrid-area{white-space:normal}.dx-pivotgrid .dx-word-wrap .dx-pivotgrid-collapsed,.dx-pivotgrid .dx-word-wrap .dx-pivotgrid-expanded,.dx-pivotgrid .dx-word-wrap .dx-pivotgrid-sorted{white-space:nowrap}.dx-pivotgrid .dx-word-wrap .dx-pivotgrid-collapsed>span,.dx-pivotgrid .dx-word-wrap .dx-pivotgrid-expanded>span,.dx-pivotgrid .dx-word-wrap .dx-pivotgrid-sorted>span{white-space:normal}.dx-pivotgrid .dx-word-wrap .dx-pivotgrid-collapsed>span,.dx-pivotgrid .dx-word-wrap .dx-pivotgrid-expanded>span{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.dx-pivotgridfieldchooser{position:relative;background-color:#fff}.dx-pivotgridfieldchooser .dx-pivotgridfieldchooser-container{display:-webkit-box;display:-ms-flexbox;display:flex;overflow:hidden;height:100%}.dx-pivotgridfieldchooser .dx-pivotgridfieldchooser-container.dx-layout-0,.dx-pivotgridfieldchooser .dx-pivotgridfieldchooser-container.dx-layout-2{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dx-pivotgridfieldchooser .dx-pivotgridfieldchooser-container.dx-layout-2 .dx-row:first-child{-webkit-box-flex:3;-ms-flex-positive:3;flex-grow:3}.dx-pivotgridfieldchooser .dx-pivotgridfieldchooser-container.dx-layout-2 .dx-row:nth-child(2){display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-ms-flex-wrap:wrap;flex-wrap:wrap;-webkit-box-flex:4;-ms-flex-positive:4;flex-grow:4}.dx-pivotgridfieldchooser .dx-col{width:50%;-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column}.dx-pivotgridfieldchooser .dx-col,.dx-pivotgridfieldchooser .dx-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal}.dx-pivotgridfieldchooser .dx-row{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;height:0}.dx-pivotgridfieldchooser .dx-pivotgridfieldchooser-container .dx-row:first-child{-webkit-box-flex:2;-ms-flex-positive:2;flex-grow:2}.dx-pivotgridfieldchooser .dx-pivotgridfieldchooser-container .dx-row:nth-child(2){-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dx-pivotgridfieldchooser .dx-area-caption{vertical-align:middle}.dx-pivotgrid-action{cursor:pointer}.dx-pivotgrid-drag-action{-ms-touch-action:pinch-zoom;touch-action:pinch-zoom}.dx-pivotgrid-fields-container .dx-position-indicator.dx-position-indicator-vertical{margin-top:-4px;margin-left:-1px;height:2px}.dx-pivotgrid-fields-container .dx-position-indicator.dx-position-indicator-vertical.dx-position-indicator-last{margin-top:-3px}.dx-pivotgrid-fields-container .dx-position-indicator.dx-position-indicator-horizontal{margin-left:-3px;width:2px}.dx-pivotgrid-fields-container .dx-position-indicator.dx-position-indicator-horizontal.dx-position-indicator-last{margin-left:3px}.dx-pivotgrid-fields-container .dx-area-fields{position:relative}.dx-pivotgrid-fields-container .dx-sort{color:#959595;font-size:14px;width:14px}.dx-pivotgrid-fields-container .dx-sort-up{font:14px/1 DXIcons}.dx-pivotgrid-fields-container .dx-sort-up:before{content:\"\\\\f051\"}.dx-pivotgrid-fields-container .dx-sort-down{font:14px/1 DXIcons}.dx-pivotgrid-fields-container .dx-sort-down:before{content:\"\\\\f052\"}.dx-pivotgrid-fields-container .dx-header-filter{color:#959595;font:14px/1 DXIcons;width:14px}.dx-pivotgrid-fields-container .dx-header-filter:before{content:\"\\\\f050\"}.dx-pivotgrid-fields-container .dx-header-filter-empty{color:#95959580}.dx-pivotgrid-fields-container .dx-area-field{cursor:pointer}.dx-pivotgrid-fields-container.dx-drag{opacity:.8}.dx-pivotgrid-fields-container.dx-drag .dx-area-field.dx-area-box{-webkit-box-shadow:0 0 1px #0000001a,0 1px 3px #0003;box-shadow:0 0 1px #0000001a,0 1px 3px #0003;border:1px solid #337ab780}.dx-pivotgrid-fields-container .dx-area-field.dx-area-box{background-color:#fff;margin-bottom:4px;border:1px solid #ddd;padding:7px 10px}.dx-pivotgrid-fields-container .dx-drag-source{opacity:.5}.dx-pivotgrid-fields-container .dx-column-indicators{vertical-align:bottom;margin-left:6px;line-height:19px}.dx-pivotgrid-fields-container .dx-area-field-content{overflow:hidden;text-overflow:ellipsis;vertical-align:bottom}.dx-pivotgrid .dx-column-header .dx-pivotgrid-fields-area,.dx-pivotgrid .dx-filter-header .dx-pivotgrid-fields-area{overflow:hidden}.dx-pivotgrid .dx-column-header .dx-pivotgrid-toolbar,.dx-pivotgrid .dx-filter-header .dx-pivotgrid-toolbar{margin-right:10px;float:right;display:inline-block}.dx-pivotgrid .dx-column-header .dx-pivotgrid-toolbar .dx-button,.dx-pivotgrid .dx-filter-header .dx-pivotgrid-toolbar .dx-button{margin-top:12px}.dx-pivotgrid .dx-column-header .dx-pivotgrid-toolbar .dx-pivotgrid-field-chooser-button,.dx-pivotgrid .dx-filter-header .dx-pivotgrid-toolbar .dx-pivotgrid-field-chooser-button{margin-right:4px}.dx-pivotgrid .dx-area-description-cell.dx-pivotgrid-background,.dx-pivotgrid .dx-column-header,.dx-pivotgrid .dx-data-header{background-color:#ddd3}.dx-pivotgrid .dx-column-header .dx-pivotgrid-fields-area-head tr>td:first-child{padding-left:0}.dx-pivotgrid .dx-filter-header .dx-area-field-container{border-spacing:8px 8px;border-collapse:initial}.dx-pivotgrid .dx-filter-header .dx-pivotgrid-fields-area-head td{padding:2px}.dx-pivotgrid .dx-filter-header .dx-pivotgrid-fields-area-head tr>td:first-child{padding-left:2px}.dx-pivotgrid .dx-area-field.dx-area-box{margin-bottom:0}.dx-pivotgrid.dx-row-lines .dx-pivotgrid-area td{border-top:1px solid #ddd}.dx-pivotgrid.dx-row-lines .dx-pivotgrid-area-data tr:first-child>td{border-top-width:0}.dx-pivotgrid .dx-area-description-cell,.dx-pivotgrid .dx-area-row-cell{border-right:1px solid #ddd}.dx-pivotgrid .dx-area-description-cell .dx-pivotgrid-toolbar .dx-button{margin:1px}.dx-pivotgrid .dx-area-description-cell .dx-pivotgrid-toolbar .dx-button:not(.dx-state-hover):not(.dx-state-active){border-color:#0000;background-color:initial;-webkit-box-shadow:none;box-shadow:none}.dx-pivotgrid .dx-area-column-cell,.dx-pivotgrid .dx-area-description-cell,.dx-pivotgrid .dx-bottom-border{border-bottom:1px solid #ddd}.dx-pivotgrid .dx-pivotgrid-area td{color:#959595;padding:7px 10px}.dx-pivotgrid .dx-pivotgrid-fields-area-head td{position:relative;border:none;padding:10px 2px}.dx-pivotgrid .dx-pivotgrid-fields-area-head tr>td:first-child{padding-left:10px}.dx-pivotgrid .dx-pivotgrid-fields-area-head tr>td:last-child{padding-right:10px}.dx-pivotgrid .dx-pivotgrid-fields-area-head .dx-empty-area-text{white-space:nowrap;padding:7px 0;border:1px solid #0000;color:#525252}.dx-pivotgrid .dx-group-connector{position:absolute;width:2px;top:50%;height:2px;margin-top:-1px;background-color:#ddd}.dx-pivotgrid .dx-group-connector.dx-group-connector-prev{left:0}.dx-pivotgrid .dx-group-connector.dx-group-connector-next{right:0}.dx-pivotgrid .dx-virtual-content{display:none}.dx-pivotgrid .dx-virtual-mode .dx-virtual-content{position:relative;overflow:hidden;display:block}.dx-pivotgrid .dx-virtual-mode .dx-virtual-content table td{color:#0000;background-color:initial!important}.dx-pivotgrid .dx-virtual-mode .dx-virtual-content table td span{visibility:hidden}.dx-pivotgrid .dx-virtual-mode table{position:absolute}.dx-pivotgrid .dx-pivotgrid-area-data{position:relative}.dx-pivotgrid .dx-pivotgrid-area-data tbody td{text-align:right;color:#333;white-space:nowrap;border-left:1px solid #ddd}.dx-pivotgrid .dx-pivotgrid-area-data tbody td:first-child{border-left:0}.dx-pivotgrid .dx-pivotgrid-area-data tbody tr:first-child .dx-grandtotal,.dx-pivotgrid .dx-pivotgrid-area-data tbody tr:first-child .dx-total{border-top-width:0}.dx-pivotgrid .dx-pivotgrid-vertical-headers .dx-expand-border{border-top:1px solid #ddd}.dx-pivotgrid .dx-pivotgrid-vertical-headers .dx-last-cell{border-right:0}.dx-pivotgrid .dx-pivotgrid-vertical-headers td{min-width:50px;border-right:1px solid #ddd}.dx-pivotgrid .dx-pivotgrid-vertical-headers tr:first-child td{border-top:0}.dx-pivotgrid .dx-pivotgrid-vertical-headers .dx-pivotgrid-fields-area-head td:last-child{border-right:0}.dx-pivotgrid .dx-pivotgrid-area-data .dx-row-total,.dx-pivotgrid .dx-pivotgrid-vertical-headers .dx-row-total{border-top:1px solid #ddd;border-bottom:1px solid #ddd}.dx-pivotgrid .dx-area-tree-view .dx-total{border-bottom:none}.dx-pivotgrid .dx-area-tree-view td.dx-white-space-column{border-top:1px solid #0000;background-color:#ddd3;padding:0;width:19px;min-width:19px}.dx-pivotgrid .dx-pivotgrid-horizontal-headers.dx-vertical-scroll{border-right:1px solid #ddd}.dx-pivotgrid .dx-pivotgrid-horizontal-headers td{text-align:center;border:1px solid #ddd}.dx-pivotgrid .dx-pivotgrid-horizontal-headers td.dx-pivotgrid-collapsed,.dx-pivotgrid .dx-pivotgrid-horizontal-headers td.dx-pivotgrid-expanded{text-align:left}.dx-pivotgrid .dx-pivotgrid-horizontal-headers td:first-child{border-left:0}.dx-pivotgrid .dx-pivotgrid-horizontal-headers tr:first-child td{border-top:0}.dx-pivotgrid .dx-expand-icon-container{margin-left:-5px;margin-right:0;width:14px}.dx-pivotgrid .dx-pivotgrid-horizontal-headers:last-child{border-bottom:0}.dx-pivotgrid .dx-area-description-cell,.dx-pivotgrid .dx-column-header,.dx-pivotgrid .dx-data-header,.dx-pivotgrid .dx-total{background-color:#ddd3}.dx-pivotgrid .dx-grandtotal{background-color:#f5f5f5}.dx-pivotgrid .dx-pivotgrid-border .dx-area-description-cell,.dx-pivotgrid .dx-pivotgrid-border .dx-area-row-cell,.dx-pivotgrid .dx-pivotgrid-border .dx-data-header,.dx-pivotgrid .dx-pivotgrid-border .dx-filter-header{border-left:1px solid #ddd}.dx-pivotgrid .dx-pivotgrid-border .dx-area-column-cell,.dx-pivotgrid .dx-pivotgrid-border .dx-area-data-cell,.dx-pivotgrid .dx-pivotgrid-border .dx-column-header,.dx-pivotgrid .dx-pivotgrid-border .dx-filter-header{border-right:1px solid #ddd}.dx-pivotgrid .dx-pivotgrid-border .dx-filter-header{border-top:1px solid #ddd}.dx-pivotgrid .dx-pivotgrid-border .dx-filter-header td{display:inline-block}.dx-pivotgrid .dx-pivotgrid-border .dx-area-data-cell,.dx-pivotgrid .dx-pivotgrid-border .dx-area-row-cell{border-bottom:1px solid #ddd}.dx-pivotgrid .dx-icon-sorted{display:inline-block;margin-left:5px;width:14px}.dx-pivotgrid .dx-popup-content{padding:10px}.dx-pivotgrid .dx-popup-content .dx-pivotgrid-fields-area-head td{padding:0 2px}.dx-pivotgrid.dx-context-menu .dx-pivotgrid.dx-submenu{width:auto}.dx-pivotgridfieldchooser .dx-area-fields{overflow:hidden}.dx-pivotgridfieldchooser .dx-treeview-item .dx-icon{margin-bottom:1px;width:16px;height:16px;background-position:0 0;background-size:16px 16px;padding:0;font-size:16px;text-align:center;line-height:16px}.dx-pivotgridfieldchooser .dx-treeview-search{margin:5px}.dx-pivotgridfieldchooser .dx-area-icon{display:inline-block;vertical-align:middle;width:16px;height:16px}.dx-pivotgridfieldchooser .dx-area{padding:5px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dx-pivotgridfieldchooser .dx-area>.dx-scrollable,.dx-pivotgridfieldchooser .dx-area>.dx-scrollable>.dx-scrollable-wrapper,.dx-pivotgridfieldchooser .dx-area>.dx-treeview,.dx-pivotgridfieldchooser .dx-area>.dx-treeview>.dx-scrollable,.dx-pivotgridfieldchooser .dx-area>.dx-treeview>.dx-scrollable-wrapper,.dx-pivotgridfieldchooser .dx-area>.dx-treeview>.dx-scrollable>.dx-scrollable-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:0}.dx-pivotgridfieldchooser .dx-area>.dx-scrollable>.dx-scrollable-wrapper>.dx-scrollable-container,.dx-pivotgridfieldchooser .dx-area>.dx-treeview>.dx-scrollable-wrapper>.dx-scrollable-container,.dx-pivotgridfieldchooser .dx-area>.dx-treeview>.dx-scrollable>.dx-scrollable-wrapper>.dx-scrollable-container{height:auto}.dx-pivotgridfieldchooser .dx-area .dx-area-fields{margin-top:3px;border:1px solid #ddd;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:0}.dx-pivotgridfieldchooser .dx-area-fields-header .dx-area-caption{-ms-flex-item-align:center;align-self:center}.dx-pivotgridfieldchooser .dx-area-fields[group]{padding:5px;background-color:#ddd3;display:-webkit-box;display:-ms-flexbox;display:flex}.dx-pivotgridfieldchooser .dx-area-fields.dx-drag-target{border-color:#337ab7}.dx-pivotgridfieldchooser .dx-area-icon-all{background:url(${___CSS_LOADER_URL_REPLACEMENT_18___}) 50% no-repeat}.dx-pivotgridfieldchooser .dx-area-icon-filter{background:url(${___CSS_LOADER_URL_REPLACEMENT_19___}) 50% no-repeat}.dx-pivotgridfieldchooser .dx-area-icon-row{background:url(${___CSS_LOADER_URL_REPLACEMENT_20___}) 50% no-repeat}.dx-pivotgridfieldchooser .dx-area-icon-column{background:url(${___CSS_LOADER_URL_REPLACEMENT_21___}) 50% no-repeat}.dx-pivotgridfieldchooser .dx-area-icon-data,.dx-pivotgridfieldchooser .dx-icon-measure{background:url(${___CSS_LOADER_URL_REPLACEMENT_22___}) 50% no-repeat}.dx-pivotgridfieldchooser .dx-icon-dimension{background:url(${___CSS_LOADER_URL_REPLACEMENT_23___}) 50% no-repeat}.dx-pivotgridfieldchooser .dx-icon-hierarchy{background:url(${___CSS_LOADER_URL_REPLACEMENT_24___}) 50% no-repeat}.dx-pivotgridfieldchooser .dx-icon-hierarchy:before{content:none}.dx-rtl .dx-pivotgrid-fields-container .dx-position-indicator.dx-position-indicator-horizontal{margin-left:-3px}.dx-rtl .dx-pivotgrid-fields-container .dx-position-indicator.dx-position-indicator-horizontal.dx-position-indicator-last{margin-left:1px}.dx-rtl .dx-pivotgrid-fields-container .dx-column-indicators{margin-left:0;margin-right:6px}.dx-rtl.dx-pivotgrid .dx-column-header .dx-pivotgrid-toolbar,.dx-rtl.dx-pivotgrid .dx-filter-header .dx-pivotgrid-toolbar{margin-right:0;margin-left:10px;float:left}.dx-rtl.dx-pivotgrid .dx-column-header .dx-pivotgrid-toolbar .dx-pivotgrid-field-chooser-button,.dx-rtl.dx-pivotgrid .dx-filter-header .dx-pivotgrid-toolbar .dx-pivotgrid-field-chooser-button{margin-right:0;margin-left:4px}.dx-rtl.dx-pivotgrid .dx-column-header .dx-pivotgrid-fields-area-head tr>td:first-child{padding-left:2px;padding-right:0}.dx-rtl.dx-pivotgrid .dx-pivotgrid-fields-area-head tr>td{padding:10px 2px}.dx-rtl.dx-pivotgrid .dx-pivotgrid-fields-area-head tr>td:first-child{padding-right:10px}.dx-rtl.dx-pivotgrid .dx-pivotgrid-fields-area-head tr>td:last-child{padding-left:10px}.dx-rtl.dx-pivotgrid .dx-group-connector.dx-group-connector-prev{left:auto;right:0}.dx-rtl.dx-pivotgrid .dx-group-connector.dx-group-connector-next{right:auto;left:0}.dx-rtl.dx-pivotgrid .dx-area-description-cell,.dx-rtl.dx-pivotgrid .dx-area-row-cell{border-left:1px solid #ddd;border-right:0}.dx-rtl.dx-pivotgrid .dx-pivotgrid-area-data.dx-scrollable-native .dx-scrollable-content{float:none}.dx-rtl.dx-pivotgrid .dx-pivotgrid-area-data tbody td{border-left:0;border-right:1px solid #ddd}.dx-rtl.dx-pivotgrid .dx-pivotgrid-area-data tbody td:first-child,.dx-rtl.dx-pivotgrid .dx-pivotgrid-vertical-headers td{border-left:1px solid #ddd;border-right:0}.dx-rtl.dx-pivotgrid .dx-pivotgrid-vertical-headers .dx-last-cell{border-left:0;border-right:0}.dx-rtl.dx-pivotgrid .dx-pivotgrid-horizontal-headers.dx-vertical-scroll{border-right:0;border-left:1px solid #ddd}.dx-rtl.dx-pivotgrid .dx-pivotgrid-horizontal-headers.dx-pivotgrid-area{border-left:0}.dx-rtl.dx-pivotgrid .dx-pivotgrid-horizontal-headers td:first-child{border-left:1px solid #ddd;border-right:0}.dx-rtl.dx-pivotgrid .dx-pivotgrid-horizontal-headers td.dx-pivotgrid-collapsed,.dx-rtl.dx-pivotgrid .dx-pivotgrid-horizontal-headers td.dx-pivotgrid-expanded{text-align:right}.dx-rtl.dx-pivotgrid .dx-expand-icon-container{margin-left:0;margin-right:-5px}.dx-rtl.dx-pivotgrid .dx-pivotgrid-collapsed .dx-expand-icon-container{-webkit-transform:scaleX(-1);transform:scaleX(-1)}.dx-rtl.dx-pivotgrid .dx-icon-sorted{margin-left:0;margin-right:5px}.dx-rtl.dx-pivotgrid .dx-pivotgridfieldchooser-container .dx-col{display:-webkit-box;display:-ms-flexbox;display:flex}.dx-rtl.dx-pivotgrid .dx-pivotgrid-border .dx-area-description-cell,.dx-rtl.dx-pivotgrid .dx-pivotgrid-border .dx-area-row-cell,.dx-rtl.dx-pivotgrid .dx-pivotgrid-border .dx-data-header{border-right:1px solid #ddd}.dx-rtl.dx-pivotgrid .dx-pivotgrid-border .dx-area-column-cell,.dx-rtl.dx-pivotgrid .dx-pivotgrid-border .dx-area-data-cell,.dx-rtl.dx-pivotgrid .dx-pivotgrid-border .dx-column-header{border-left:1px solid #ddd}.dx-rtl.dx-pivotgrid .dx-pivotgrid-border .dx-column-header{border-right:none}.dx-rtl.dx-pivotgrid .dx-pivotgrid-border .dx-area-row-cell,.dx-rtl.dx-pivotgrid .dx-pivotgrid-border .dx-data-header{border-left:none}.dx-pivotgrid .dx-area-description-cell .dx-button-content,.dx-pivotgrid .dx-column-header .dx-pivotgrid-toolbar .dx-button-content,.dx-pivotgrid .dx-filter-header .dx-pivotgrid-toolbar .dx-button-content{padding:5px}.dx-pivotgrid .dx-expand-icon-container{font:14px/1 DXIcons}.dx-pivotgrid .dx-expand-icon-container:before{content:\"\\\\f04e\";visibility:hidden}.dx-pivotgrid .dx-pivotgrid-collapsed .dx-expand{font:18px/18px DXIcons;text-align:center;color:#959595}.dx-pivotgrid .dx-pivotgrid-collapsed .dx-expand:before{content:\"\\\\f04e\";position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-pivotgrid .dx-pivotgrid-expanded .dx-expand{font:18px/18px DXIcons;text-align:center;color:#959595}.dx-pivotgrid .dx-pivotgrid-expanded .dx-expand:before{content:\"\\\\f001\";position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-pivotgrid-fields-container .dx-position-indicator{background-color:gray}.dx-context-menu.dx-overlay-content{overflow:inherit;position:absolute}.dx-context-menu .dx-menu-items-container{padding:1px}.dx-context-menu .dx-menu-item .dx-submenu{position:absolute;z-index:1003}.dx-context-menu{color:#333}.dx-context-menu .dx-submenu{background-color:#fff;border:1px solid #ddd;-webkit-box-shadow:0 2px 2px #00000026;box-shadow:0 2px 2px #00000026}.dx-context-menu .dx-menu-item-popout{font:18px/18px DXIcons;text-align:center}.dx-context-menu .dx-menu-item-popout:before{content:\"\\\\f04e\";position:absolute;display:block;width:18px;top:50%;margin-top:-9px;left:50%;margin-left:-9px}.dx-context-menu .dx-menu-separator{height:1px;margin:5px 0;background-color:#ddd}.dx-context-menu .dx-menu-no-icons>.dx-menu-item-wrapper>.dx-menu-item>.dx-menu-item-content .dx-menu-item-text{padding-left:5px}.dx-rtl .dx-context-menu .dx-menu-no-icons>.dx-menu-item-wrapper>.dx-menu-item>.dx-menu-item-content .dx-menu-item-text,.dx-rtl.dx-context-menu .dx-menu-no-icons>.dx-menu-item-wrapper>.dx-menu-item>.dx-menu-item-content .dx-menu-item-text{padding-right:5px;padding-left:25px}.dx-context-menu.dx-rtl .dx-menu-item-content{padding:5px 3px 5px 5px}.dx-context-menu.dx-rtl .dx-menu-item-content .dx-menu-item-text{padding:3px 23px 5px 25px}.dx-multiview-wrapper{overflow:hidden;width:100%;height:100%;-ms-touch-action:pinch-zoom pan-y;touch-action:pinch-zoom pan-y}.dx-multiview-item-container{position:relative;overflow:visible;width:100%;height:100%}.dx-multiview-item-container .dx-empty-message{text-align:center}.dx-multiview-item{position:absolute;overflow:hidden;top:0;left:0;right:0;width:100%;height:100%}.dx-multiview-item.dx-item-selected{position:relative}.dx-multiview-item-content{width:100%;height:100%}.dx-multiview-item-hidden{top:-9999px;left:-9999px;visibility:hidden}.dx-multiview-item-hidden .dx-accordion-item-opened .dx-accordion-item-body{visibility:hidden}.dx-tabpanel-tabs{width:100%}.dx-tabpanel-tabs .dx-tabs{height:100%}.dx-tabpanel-container{width:100%;height:100%}.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs{display:block;border:none;background-color:#f7f7f7;color:#ddd;-webkit-box-shadow:inset 0 -1px #ddd,inset 0 1px,inset -1px 0,inset 1px 0;box-shadow:inset 0 -1px #ddd,inset 0 1px,inset -1px 0,inset 1px 0}.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs .dx-tab{color:#ddd}.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs .dx-tab .dx-tab-content{color:#333}.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs .dx-tab:after,.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs .dx-tab:before{content:none}.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs .dx-tabs-nav-button{color:#ddd}.dx-tabpanel>.dx-tabpanel-tabs .dx-tab{width:140px;-webkit-box-shadow:inset 0 1px,inset 0 -1px #ddd;box-shadow:inset 0 1px,inset 0 -1px #ddd}.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs-scrollable{margin-top:0;margin-bottom:0;height:100%}.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs-scrollable .dx-tabs-wrapper{display:block;border:none}.dx-tabpanel:not(.dx-empty-collection) .dx-multiview-wrapper{border-top:none}.dx-tabpanel>.dx-tabpanel-tabs .dx-tab.dx-tab-selected{-webkit-box-shadow:inset 0 1px #ddd,inset -1px 0 #ddd,inset 1px 0 #ddd;box-shadow:inset 0 1px #ddd,inset -1px 0 #ddd,inset 1px 0 #ddd}.dx-tabpanel>.dx-tabpanel-tabs .dx-tab.dx-tab-active .dx-tab-content,.dx-tabpanel>.dx-tabpanel-tabs .dx-tab.dx-tab-selected .dx-tab-content{color:#333}.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs-expanded .dx-tab:not(.dx-tab-selected):first-of-type{-webkit-box-shadow:inset 0 -1px #ddd,inset 1px 0,inset 0 1px;box-shadow:inset 0 -1px #ddd,inset 1px 0,inset 0 1px}.dx-rtl .dx-tabpanel>.dx-tabpanel-tabs .dx-tabs-expanded .dx-tab:not(.dx-tab-selected):first-of-type,.dx-rtl.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs-expanded .dx-tab:not(.dx-tab-selected):first-of-type,.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs-stretched .dx-tab:not(.dx-tab-selected):last-of-type{-webkit-box-shadow:inset 0 -1px #ddd,inset -1px 0,inset 0 1px;box-shadow:inset 0 -1px #ddd,inset -1px 0,inset 0 1px}.dx-rtl .dx-tabpanel>.dx-tabpanel-tabs .dx-tabs-stretched .dx-tab:not(.dx-tab-selected):last-of-type,.dx-rtl.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs-stretched .dx-tab:not(.dx-tab-selected):last-of-type,.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs-nav-button-left{-webkit-box-shadow:inset 0 -1px #ddd,inset 1px 0,inset 0 1px;box-shadow:inset 0 -1px #ddd,inset 1px 0,inset 0 1px}.dx-tabpanel>.dx-tabpanel-tabs .dx-tabs-nav-button-right{-webkit-box-shadow:inset 0 -1px #ddd,inset 0 1px,inset -1px 0;box-shadow:inset 0 -1px #ddd,inset 0 1px,inset -1px 0}.dx-tabpanel>.dx-tabpanel-container>.dx-multiview-wrapper{border-color:#ddd}.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tabs{-webkit-box-shadow:inset 0 -1px #337ab7,inset 0 1px,inset -1px 0,inset 1px 0;box-shadow:inset 0 -1px #337ab7,inset 0 1px,inset -1px 0,inset 1px 0}.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tab{-webkit-box-shadow:inset 0 1px,inset 0 -1px #337ab7;box-shadow:inset 0 1px,inset 0 -1px #337ab7}.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tab.dx-tab-selected{-webkit-box-shadow:inset 0 1px #337ab7,inset -1px 0 #337ab7,inset 1px 0 #337ab7;box-shadow:inset 0 1px #337ab7,inset -1px 0 #337ab7,inset 1px 0 #337ab7}.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tab.dx-tab-active .dx-tab-content,.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tab.dx-tab-selected .dx-tab-content{color:#333}.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tabs-expanded .dx-tab:not(.dx-tab-selected):first-of-type{-webkit-box-shadow:inset 0 -1px #337ab7,inset 1px 0,inset 0 1px;box-shadow:inset 0 -1px #337ab7,inset 1px 0,inset 0 1px}.dx-rtl .dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tabs-expanded .dx-tab:not(.dx-tab-selected):first-of-type,.dx-rtl.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tabs-expanded .dx-tab:not(.dx-tab-selected):first-of-type,.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tabs-stretched .dx-tab:not(.dx-tab-selected):last-of-type{-webkit-box-shadow:inset 0 -1px #337ab7,inset -1px 0,inset 0 1px;box-shadow:inset 0 -1px #337ab7,inset -1px 0,inset 0 1px}.dx-rtl .dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tabs-stretched .dx-tab:not(.dx-tab-selected):last-of-type,.dx-rtl.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tabs-stretched .dx-tab:not(.dx-tab-selected):last-of-type,.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tabs-nav-button-left{-webkit-box-shadow:inset 0 -1px #337ab7,inset 1px 0,inset 0 1px;box-shadow:inset 0 -1px #337ab7,inset 1px 0,inset 0 1px}.dx-tabpanel.dx-state-focused>.dx-tabpanel-tabs .dx-tabs-nav-button-right{-webkit-box-shadow:inset 0 -1px #337ab7,inset 0 1px,inset -1px 0;box-shadow:inset 0 -1px #337ab7,inset 0 1px,inset -1px 0}.dx-tabpanel.dx-state-focused>.dx-tabpanel-container>.dx-multiview-wrapper{border-color:#337ab7}.dx-tabpanel .dx-multiview-wrapper{border:1px solid #ddd}.dx-fileuploader.dx-state-disabled .dx-fileuploader-input{display:none}.dx-fileuploader-wrapper{height:100%;width:100%;overflow:hidden}.dx-fileuploader-container{display:table;table-layout:fixed;height:100%;width:100%}.dx-fileuploader-input-wrapper:after,.dx-fileuploader-input-wrapper:before{display:table;content:\"\";line-height:0;width:100%}.dx-fileuploader-input-wrapper:after{clear:both;padding-bottom:1em;margin-bottom:-1em}.dx-fileuploader-input-wrapper:before{padding-top:1em;margin-top:-1em}.dx-fileuploader-input-wrapper .dx-button{float:left}.dx-fileuploader-input-wrapper .dx-button+.dx-button{margin-left:12px}.dx-fileuploader-button{position:relative}.dx-fileuploader-button .dx-fileuploader-input{position:absolute;height:100%;width:100%;top:0;left:0;cursor:pointer}.dx-fileuploader-button .dx-fileuploader-input::-ms-browse,.dx-fileuploader-button .dx-fileuploader-input::-webkit-file-upload-button{cursor:pointer}.dx-fileuploader-content{display:table-row-group;vertical-align:middle}.dx-fileuploader-content>.dx-fileuploader-upload-button{margin-top:10px}.dx-fileuploader-empty .dx-fileuploader-content>.dx-fileuploader-upload-button{display:none}.dx-fileuploader-input-content{width:100%;display:table}.dx-fileuploader-show-file-list .dx-fileuploader-files-container{padding-top:22px}.dx-fileuploader-file-container{width:100%;padding:4px 0}.dx-fileuploader-file-container .dx-button{width:28px;height:28px;margin-right:10px}.dx-fileuploader-file-container .dx-button.dx-state-invisible{margin-right:0}.dx-fileuploader-button-container,.dx-fileuploader-input-container{display:table-cell;vertical-align:middle}.dx-fileuploader-input-container{height:100%;width:100%;position:relative;overflow:hidden}.dx-fileuploader-input{opacity:0;width:100%;margin:0;cursor:default}.dx-fileuploader-input-label{pointer-events:none;position:absolute;top:0;left:0;height:100%;width:100%;cursor:default}.dx-fileuploader-input-label:before{content:\"\";position:absolute;top:-50%;overflow:hidden;cursor:default}.dx-fileuploader-button-container{display:table-cell;vertical-align:middle}.dx-fileuploader-file-info{float:left;width:100%}.dx-fileuploader-file-status-message{float:left;font-size:12px;height:16px}.dx-fileuploader .dx-progressbar{float:left;width:100%;height:22px;margin-top:-6px}.dx-rtl .dx-fileuploader .dx-fileuploader-button,.dx-rtl.dx-fileuploader .dx-fileuploader-button{float:right}.dx-rtl .dx-fileuploader .dx-fileuploader-file-container .dx-fileuploader-button,.dx-rtl.dx-fileuploader .dx-fileuploader-file-container .dx-fileuploader-button{margin-left:10px;margin-right:0}.dx-rtl .dx-fileuploader .dx-fileuploader-file-name,.dx-rtl .dx-fileuploader .dx-fileuploader-file-size,.dx-rtl .dx-fileuploader .dx-fileuploader-file-status-message,.dx-rtl.dx-fileuploader .dx-fileuploader-file-name,.dx-rtl.dx-fileuploader .dx-fileuploader-file-size,.dx-rtl.dx-fileuploader .dx-fileuploader-file-status-message{float:right}.dx-rtl .dx-fileuploader .dx-fileuploader-file-size,.dx-rtl.dx-fileuploader .dx-fileuploader-file-size{margin-right:4px}.dx-fileuploader-invalid .dx-fileuploader-file-status-message{height:auto;color:#d9534f}.dx-fileuploader-invalid .dx-fileuploader-file-status-message span{display:block;margin-bottom:2px}.dx-fileuploader-invalid .dx-fileuploader-file-status-message span:last-child{margin-bottom:0}.dx-fileuploader-invalid .dx-fileuploader-button-container{vertical-align:top}.dx-fileuploader-invalid .dx-fileuploader-cancel-button{margin-top:5px}.dx-fileuploader-wrapper{padding:7px}.dx-fileuploader-content>.dx-fileuploader-upload-button{margin-left:3px;margin-right:3px}.dx-fileuploader-input-wrapper{padding:7px 0;border:3px dashed #0000}.dx-fileuploader.dx-state-disabled .dx-fileuploader-input-label{position:relative}.dx-fileuploader-dragover .dx-fileuploader-input-wrapper{border:none;padding:0}.dx-fileuploader-dragover .dx-fileuploader-input-wrapper .dx-fileuploader-button{display:none}.dx-fileuploader-dragover .dx-fileuploader-input-container{display:block;width:100%}.dx-fileuploader-dragover .dx-fileuploader-input{display:block;width:100%;padding:17px 3px 18px;-webkit-box-sizing:content-box;box-sizing:initial}.dx-fileuploader-dragover .dx-fileuploader-input-label{text-align:center;padding:14px 9px;border:3px dashed #ddd}.dx-fileuploader-file-size,.dx-fileuploader-file-status-message{color:#999}.dx-fileuploader-input{padding:7px 0}.dx-fileuploader-input-label{padding:8px 9px;color:#333;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-fileuploader-files-container{width:100%;padding:12px 3px 0}.dx-fileuploader-empty .dx-fileuploader-files-container{padding:0}.dx-invalid .dx-fileuploader-files-container{padding-top:50px}.dx-fileuploader-files-container .dx-fileuploader-button .dx-button-content{padding:0}.dx-fileuploader-file{display:table-cell;width:100%;white-space:nowrap;padding-top:5px;line-height:13px}.dx-fileuploader-file-name{float:left;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-bottom:3.5px;color:#333}.dx-fileuploader-file-size{margin-left:4px;float:left;vertical-align:super;font-size:10px;padding-bottom:3.5px}.dx-scheduler-appointment-popup .dx-popup-content{padding-top:0;padding-bottom:0}.dx-scheduler-appointment-popup .dx-scrollable-content{padding-top:20px}.dx-scheduler-appointment-popup .dx-form.dx-recurrence-editor-container .dx-scrollable-content{padding-top:0}.dx-scheduler .dx-empty-message{line-height:normal}.dx-scheduler-all-day-panel td{padding:0}.dx-scheduler-appointment-collector{position:absolute;display:block;cursor:pointer;margin:3px 0 0 3px}.dx-scheduler-appointment-collector .dx-button-content,.dx-scheduler-appointment-collector .dx-scheduler-appointment-collector-content{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0 4px;padding:0}.dx-scheduler-appointment-collector .dx-button-content:after,.dx-scheduler-appointment-collector .dx-scheduler-appointment-collector-content:after{display:inline-block;position:relative;height:100%;content:\"\";vertical-align:middle;font-size:0}.dx-scheduler-appointment-collector.dx-button.dx-button-default{padding:0;max-width:none}.dx-scheduler-work-space-mouse-selection .dx-scheduler-all-day-appointments,.dx-scheduler-work-space-mouse-selection .dx-scheduler-fixed-appointments,.dx-scheduler-work-space-mouse-selection .dx-scheduler-scrollable-appointments{pointer-events:none}.dx-rtl .dx-scheduler-appointment-collector{margin:3px 3px 0 0}@media (max-width:450px){.dx-scheduler-adaptive .dx-scheduler-view-switcher-label{display:none}}.dx-scheduler-adaptive .dx-scheduler-work-space-week .dx-scheduler-header-panel-cell{white-space:pre-wrap;line-height:1.3}.dx-scheduler-adaptive .dx-scheduler-appointment-collector{margin:0}.dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper .dx-popup-content,.dx-scheduler-overlay-panel .dx-popup-content{padding:0}.dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper .dx-popup-content .dx-list-item,.dx-scheduler-overlay-panel .dx-popup-content .dx-list-item{width:360px}.dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper .dx-popup-content .dx-list-item .dx-list-item-content,.dx-scheduler-overlay-panel .dx-popup-content .dx-list-item .dx-list-item-content{padding:5px}.dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper .dx-overlay-content,.dx-scheduler-overlay-panel .dx-overlay-content{-webkit-box-shadow:0 0 15px 0 #00000026;box-shadow:0 0 15px 0 #00000026}.dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper .dx-tooltip-appointment-item,.dx-scheduler-overlay-panel .dx-tooltip-appointment-item{display:-webkit-box;display:-ms-flexbox;display:flex}.dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper .dx-tooltip-appointment-item .dx-tooltip-appointment-item-marker-body,.dx-scheduler-overlay-panel .dx-tooltip-appointment-item .dx-tooltip-appointment-item-marker-body{margin-top:7px;margin-left:5px;background:#337ab7;width:20px;height:20px;border-radius:50%}.dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper .dx-tooltip-appointment-item .dx-tooltip-appointment-item-delete-button .dx-icon,.dx-scheduler-overlay-panel .dx-tooltip-appointment-item .dx-tooltip-appointment-item-delete-button .dx-icon{color:#333}.dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper .dx-tooltip-appointment-item .dx-tooltip-appointment-item-content,.dx-scheduler-overlay-panel .dx-tooltip-appointment-item .dx-tooltip-appointment-item-content{-ms-flex-preferred-size:100%;flex-basis:100%;margin:5px 10px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#333}.dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper .dx-tooltip-appointment-item .dx-tooltip-appointment-item-content .dx-tooltip-appointment-item-content-subject,.dx-scheduler-overlay-panel .dx-tooltip-appointment-item .dx-tooltip-appointment-item-content .dx-tooltip-appointment-item-content-subject{text-align:left;font-weight:700;font-size:16px;letter-spacing:.01em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-popup-wrapper.dx-scheduler-appointment-tooltip-wrapper .dx-tooltip-appointment-item .dx-tooltip-appointment-item-content .dx-tooltip-appointment-item-content-date,.dx-scheduler-overlay-panel .dx-tooltip-appointment-item .dx-tooltip-appointment-item-content .dx-tooltip-appointment-item-content-date{text-align:left;font-size:12px;opacity:.8;margin-top:10px}.dx-scheduler-overlay-panel .dx-overlay-content{position:relative;background:#fff}.dx-scheduler-appointment-content-date{opacity:.7;display:inline-block;white-space:pre-wrap}.dx-scheduler-appointment-content-details{margin-top:2px}.dx-scheduler-appointment-content-allday{display:none}.dx-scheduler-appointment{border-bottom:1px solid #0000;background-clip:padding-box;position:absolute;cursor:default;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;background-color:#337ab7;color:#fff;-webkit-box-shadow:inset 0 2px 0 0 #0000004d;box-shadow:inset 0 2px 0 0 #0000004d;left:0;min-width:4px;min-height:4px}.dx-scheduler-appointment.dx-resizable-resizing,.dx-scheduler-appointment.dx-state-active{-webkit-box-shadow:inset 0 -2px 0 0 #0000004d,inset 0 2px 0 0 #0000004d;box-shadow:inset 0 -2px 0 0 #0000004d,inset 0 2px 0 0 #0000004d}.dx-scheduler-appointment .dx-scheduler-appointment,.dx-scheduler-appointment.dx-state-focused{-webkit-box-shadow:none;box-shadow:none}.dx-scheduler-appointment .dx-scheduler-appointment:not(.dx-scheduler-appointment-drag-source):before,.dx-scheduler-appointment.dx-state-focused:not(.dx-scheduler-appointment-drag-source):before{pointer-events:none;content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0000004d;opacity:.98}.dx-scheduler-appointment.dx-state-hover{-webkit-box-shadow:inset 0 5px 0 0 #0000004d;box-shadow:inset 0 5px 0 0 #0000004d}.dx-scheduler-appointment.dx-state-hover.dx-resizable{-webkit-box-shadow:inset 0 5px 0 0 #0000004d,inset 0 -2px 0 0 #0000004d;box-shadow:inset 0 5px 0 0 #0000004d,inset 0 -2px 0 0 #0000004d}.dx-scheduler-appointment.dx-state-hover .dx-resizable-handle-top{height:5px}.dx-scheduler-appointment.dx-state-hover .dx-resizable-handle-left{width:5px}.dx-scheduler-appointment.dx-resizable-resizing{z-index:1000;opacity:.7}.dx-scheduler-appointment .dx-resizable-handle-left{left:-1px}.dx-scheduler-appointment .dx-scheduler-appointment-reduced-icon{position:absolute;top:3px;right:5px;font:14px/1 DXIcons}.dx-scheduler-appointment .dx-scheduler-appointment-reduced-icon:before{content:\"\\\\f00e\"}.dx-rtl .dx-scheduler-appointment .dx-scheduler-appointment-reduced-icon{right:auto;left:3px;font:14px/1 DXIcons}.dx-rtl .dx-scheduler-appointment .dx-scheduler-appointment-reduced-icon:before{content:\"\\\\f011\"}.dx-scheduler-appointment.dx-scheduler-appointment-empty .dx-scheduler-appointment-reduced-icon,.dx-scheduler-appointment.dx-scheduler-appointment-tail .dx-scheduler-appointment-reduced-icon{display:none}.dx-scheduler-appointment.dx-state-disabled{cursor:default;opacity:.6;pointer-events:auto}.dx-scheduler-appointment.dx-scheduler-appointment-drag-source{opacity:.7}.dx-scheduler-fixed-appointments{z-index:100;position:absolute}.dx-scheduler-fixed-appointments .dx-draggable-dragging{position:fixed;top:0;left:0;z-index:1000}.dx-scheduler-fixed-appointments .dx-draggable-dragging .dx-scheduler-appointment,.dx-scheduler-fixed-appointments .dx-draggable-dragging.dx-state-focused{-webkit-box-shadow:none;box-shadow:none}.dx-scheduler-fixed-appointments .dx-draggable-dragging .dx-scheduler-appointment:not(.dx-scheduler-appointment-drag-source):before,.dx-scheduler-fixed-appointments .dx-draggable-dragging.dx-state-focused:not(.dx-scheduler-appointment-drag-source):before{pointer-events:none;content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0000004d;opacity:.98}.dx-scheduler-fixed-appointments .dx-draggable-dragging .dx-scheduler-appointment{-webkit-box-shadow:7px 7px 15px 0 #32323233,inset 0 -2px 0 0 #0000004d,inset 0 2px 0 0 #0000004d;box-shadow:7px 7px 15px 0 #32323233,inset 0 -2px 0 0 #0000004d,inset 0 2px 0 0 #0000004d}.dx-scheduler-agenda .dx-scheduler-appointment{background-color:initial;color:#333;padding:10px;border-radius:5px}.dx-scheduler-agenda .dx-scheduler-appointment.dx-state-hover{background-color:#0000000a}.dx-scheduler-agenda .dx-scheduler-appointment.dx-state-focused{color:#333;background-color:#00000014;-webkit-box-shadow:none;box-shadow:none}.dx-scheduler-agenda .dx-scheduler-appointment.dx-state-focused:before{background:0 0}.dx-scheduler-agenda .dx-scheduler-appointment-recurrence-icon{position:static;color:#fff}.dx-scheduler-agenda .dx-scheduler-agenda-appointment-left-layout{overflow:visible}.dx-scheduler-agenda .dx-scheduler-agenda-appointment-right-layout{margin-left:10px}.dx-scheduler-agenda .dx-scheduler-appointment-content,.dx-scheduler-agenda .dx-scheduler-appointment-recurrence .dx-scheduler-appointment-content{padding:0}.dx-scheduler-agenda .dx-scheduler-appointment-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.dx-scheduler-agenda .dx-scheduler-appointment-content-date{opacity:1;white-space:nowrap}.dx-scheduler-agenda .dx-scheduler-appointment-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden;font-weight:700;font-size:16px}.dx-scheduler-agenda .dx-scheduler-appointment-content-details{display:-webkit-box;display:-ms-flexbox;display:flex;font-size:12px;opacity:.7}.dx-scheduler-agenda .dx-scheduler-appointment-content-allday{display:-webkit-box;display:-ms-flexbox;display:flex;padding-right:5px}.dx-scheduler-agenda .dx-scheduler-appointment-resource-item,.dx-scheduler-agenda .dx-scheduler-appointment-resource-list{display:-webkit-box;display:-ms-flexbox;display:flex}.dx-scheduler-agenda .dx-scheduler-appointment-resource-item{margin-left:15px}.dx-scheduler-agenda .dx-scheduler-appointment-resource-item-value{margin-left:3px}.dx-scheduler-agenda .dx-scheduler-agenda-appointment-marker{width:32px;height:32px;border-radius:50%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;background-color:#337ab7}.dx-scheduler-agenda .dx-rtl .dx-scheduler-agenda-appointment-right-layout{margin-left:0;margin-right:10px}.dx-scheduler-agenda .dx-rtl .dx-scheduler-appointment-content,.dx-scheduler-agenda .dx-rtl .dx-scheduler-appointment-recurrence .dx-scheduler-appointment-content{padding:0}.dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped):not(.dx-scheduler-work-space-all-day) .dx-scheduler-header-panel-container{display:none}.dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped) .dx-scheduler-header-panel-empty-cell{border:none}.dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped) .dx-scheduler-date-table-cell{border-right:none;border-left:none}.dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped) .dx-scheduler-all-day-table-cell{border-top:none;border-left:none}.dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped) .dx-scheduler-time-panel{border:none}.dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count).dx-scheduler-work-space-vertical-grouped .dx-scheduler-header-panel-container{display:none}.dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count) .dx-scheduler-header-panel-empty-cell{margin-top:0}.dx-scheduler-work-space-day:not(.dx-scheduler-work-space-grouped) .dx-scheduler-header-panel{margin-top:1px}.dx-scheduler-work-space-day .dx-scheduler-all-day-table-cell,.dx-scheduler-work-space-day .dx-scheduler-date-table-cell,.dx-scheduler-work-space-day .dx-scheduler-header-panel-cell{border-right:none}.dx-rtl .dx-scheduler-work-space-day .dx-scheduler-all-day-table-cell,.dx-rtl .dx-scheduler-work-space-day .dx-scheduler-date-table-cell,.dx-rtl .dx-scheduler-work-space-day .dx-scheduler-header-panel-cell{border-left:none}.dx-scheduler-work-space-day.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-panel{width:100%}.dx-scheduler-work-space-day.dx-scheduler-work-space-both-scrollbar:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped) .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-day.dx-scheduler-work-space-both-scrollbar:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped) .dx-scheduler-time-panel{border-right:1px solid #ddd9}.dx-scheduler-work-space-day.dx-scheduler-work-space-vertical-grouped .dx-scheduler-all-day-table-cell{border-top:1px solid #ddd9}.dx-scheduler-work-space-day.dx-scheduler-work-space-count:not(.dx-scheduler-work-space-grouped) .dx-scheduler-all-day-table-cell,.dx-scheduler-work-space-day.dx-scheduler-work-space-count:not(.dx-scheduler-work-space-grouped) .dx-scheduler-date-table-cell,.dx-scheduler-work-space-day.dx-scheduler-work-space-count:not(.dx-scheduler-work-space-grouped) .dx-scheduler-header-panel-cell{border-left:1px solid #ddd9;border-right:1px solid #ddd9}.dx-rtl .dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped) .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-day.dx-scheduler-work-space-count:not(.dx-scheduler-work-space-grouped) .dx-scheduler-all-day-table-cell:first-child,.dx-scheduler-work-space-day.dx-scheduler-work-space-count:not(.dx-scheduler-work-space-grouped) .dx-scheduler-date-table-cell:first-child,.dx-scheduler-work-space-day.dx-scheduler-work-space-count:not(.dx-scheduler-work-space-grouped) .dx-scheduler-header-panel-cell:first-child{border-left:none}.dx-rtl .dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped) .dx-scheduler-time-panel{border:none}.dx-rtl .dx-scheduler-work-space-day.dx-scheduler-work-space-count:not(.dx-scheduler-work-space-grouped) .dx-scheduler-all-day-table-cell:first-child,.dx-rtl .dx-scheduler-work-space-day.dx-scheduler-work-space-count:not(.dx-scheduler-work-space-grouped) .dx-scheduler-date-table-cell:first-child,.dx-rtl .dx-scheduler-work-space-day.dx-scheduler-work-space-count:not(.dx-scheduler-work-space-grouped) .dx-scheduler-header-panel-cell:first-child,.dx-rtl .dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped).dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-panel-empty-cell,.dx-rtl .dx-scheduler-work-space-day:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-grouped).dx-scheduler-work-space-both-scrollbar .dx-scheduler-time-panel{border-left:1px solid #ddd9;border-right:none}.dx-scheduler-work-space-month .dx-scheduler-header-panel{width:100%}.dx-scheduler-work-space-month .dx-scheduler-date-table{width:100%;height:100%}.dx-scheduler-work-space-month .dx-scheduler-date-table-cell,.dx-scheduler-work-space-month .dx-scheduler-header-panel-cell{border-right:none}.dx-scheduler-work-space-month .dx-scheduler-date-table-scrollable .dx-scrollable-content{min-height:300px}.dx-scheduler-work-space-month:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-vertical-grouped) .dx-scheduler-date-table-scrollable-content,.dx-scheduler-work-space-month:not(.dx-scheduler-work-space-count):not(.dx-scheduler-work-space-vertical-grouped) .dx-scrollable-content{height:100%}.dx-scheduler-work-space-month .dx-scheduler-date-table-cell{height:50px;vertical-align:top;text-align:right;color:#959595}.dx-scheduler-work-space-month .dx-scheduler-date-table-cell .dx-scheduler-date-table-cell-text{padding-right:6px}.dx-scheduler-work-space-month.dx-scheduler-work-space-count .dx-scheduler-date-table-cell{height:75px}.dx-scheduler-work-space-month.dx-scheduler-work-space-count .dx-scheduler-date-table-first-of-month{color:#337ab7;background-color:#337ab726;font-weight:700}.dx-scheduler-work-space-month.dx-scheduler-work-space-both-scrollbar .dx-scheduler-sidebar-scrollable{display:none}.dx-scheduler-work-space-month.dx-scheduler-work-space-vertical-grouped .dx-scheduler-sidebar-scrollable{display:block;float:left}.dx-scheduler-work-space-month.dx-scheduler-work-space-vertical-grouped .dx-scheduler-group-header{-webkit-box-shadow:0 -2px 0 #ddd9;box-shadow:0 -2px 0 #ddd9;border-bottom:none}.dx-scheduler-work-space-month.dx-scheduler-work-space-vertical-grouped .dx-scheduler-date-table-cell{height:75px}.dx-scheduler-timeline-day .dx-scheduler-header-panel-empty-cell,.dx-scheduler-timeline-month .dx-scheduler-header-panel-empty-cell,.dx-scheduler-timeline-week .dx-scheduler-header-panel-empty-cell,.dx-scheduler-timeline-work-week .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-month.dx-scheduler-work-space-vertical-grouped.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-panel{border-bottom:none}.dx-scheduler-timeline-day.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell,.dx-scheduler-timeline-month.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell,.dx-scheduler-timeline-week.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell,.dx-scheduler-timeline-work-week.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell{width:160px}.dx-scheduler-timeline-day.dx-scheduler-group-column-count-two .dx-scheduler-group-flex-container .dx-scheduler-group-header,.dx-scheduler-timeline-month.dx-scheduler-group-column-count-two .dx-scheduler-group-flex-container .dx-scheduler-group-header,.dx-scheduler-timeline-week.dx-scheduler-group-column-count-two .dx-scheduler-group-flex-container .dx-scheduler-group-header,.dx-scheduler-timeline-work-week.dx-scheduler-group-column-count-two .dx-scheduler-group-flex-container .dx-scheduler-group-header{width:80px}.dx-scheduler-timeline-day.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell,.dx-scheduler-timeline-month.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell,.dx-scheduler-timeline-week.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell,.dx-scheduler-timeline-work-week.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell{width:240px}.dx-scheduler-timeline-day.dx-scheduler-group-column-count-three .dx-scheduler-group-flex-container .dx-scheduler-group-header,.dx-scheduler-timeline-month.dx-scheduler-group-column-count-three .dx-scheduler-group-flex-container .dx-scheduler-group-header,.dx-scheduler-timeline-week.dx-scheduler-group-column-count-three .dx-scheduler-group-flex-container .dx-scheduler-group-header,.dx-scheduler-timeline-work-week.dx-scheduler-group-column-count-three .dx-scheduler-group-flex-container .dx-scheduler-group-header{width:80px}.dx-scheduler-timeline-day .dx-scheduler-date-table-container,.dx-scheduler-timeline-day .dx-scheduler-date-table-scrollable-content,.dx-scheduler-timeline-month .dx-scheduler-date-table-container,.dx-scheduler-timeline-month .dx-scheduler-date-table-scrollable-content,.dx-scheduler-timeline-week .dx-scheduler-date-table-container,.dx-scheduler-timeline-week .dx-scheduler-date-table-scrollable-content,.dx-scheduler-timeline-work-week .dx-scheduler-date-table-container,.dx-scheduler-timeline-work-week .dx-scheduler-date-table-scrollable-content{min-height:100%;height:100%;width:100%}.dx-scheduler-timeline-day .dx-scheduler-header-panel,.dx-scheduler-timeline-month .dx-scheduler-header-panel,.dx-scheduler-timeline-week .dx-scheduler-header-panel,.dx-scheduler-timeline-work-week .dx-scheduler-header-panel{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.dx-scheduler-timeline-day .dx-scheduler-header-panel thead,.dx-scheduler-timeline-month .dx-scheduler-header-panel thead,.dx-scheduler-timeline-week .dx-scheduler-header-panel thead,.dx-scheduler-timeline-work-week .dx-scheduler-header-panel thead{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap;width:100%}.dx-scheduler-timeline-day .dx-scheduler-header-row,.dx-scheduler-timeline-month .dx-scheduler-header-row,.dx-scheduler-timeline-week .dx-scheduler-header-row,.dx-scheduler-timeline-work-week .dx-scheduler-header-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.dx-scheduler-timeline-day .dx-scheduler-header-panel-cell,.dx-scheduler-timeline-month .dx-scheduler-header-panel-cell,.dx-scheduler-timeline-week .dx-scheduler-header-panel-cell,.dx-scheduler-timeline-work-week .dx-scheduler-header-panel-cell{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.dx-scheduler-timeline-day .dx-scheduler-header-panel-cell:not(.dx-scheduler-header-panel-week-cell),.dx-scheduler-timeline-month .dx-scheduler-header-panel-cell:not(.dx-scheduler-header-panel-week-cell),.dx-scheduler-timeline-week .dx-scheduler-header-panel-cell:not(.dx-scheduler-header-panel-week-cell),.dx-scheduler-timeline-work-week .dx-scheduler-header-panel-cell:not(.dx-scheduler-header-panel-week-cell){display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-flow:row-reverse nowrap;flex-flow:row-reverse nowrap}.dx-scheduler-timeline-day .dx-scheduler-header-panel-week-cell,.dx-scheduler-timeline-month .dx-scheduler-header-panel-week-cell,.dx-scheduler-timeline-week .dx-scheduler-header-panel-week-cell,.dx-scheduler-timeline-work-week .dx-scheduler-header-panel-week-cell{-ms-flex-preferred-size:0;flex-basis:0}.dx-scheduler-timeline-day .dx-scheduler-header-row .dx-scheduler-header-panel-cell,.dx-scheduler-timeline-month .dx-scheduler-header-row .dx-scheduler-header-panel-cell,.dx-scheduler-timeline-week .dx-scheduler-header-row .dx-scheduler-header-panel-cell,.dx-scheduler-timeline-work-week .dx-scheduler-header-row .dx-scheduler-header-panel-cell{border-right:none}.dx-scheduler-timeline .dx-scheduler-date-table-cell,.dx-scheduler-timeline .dx-scheduler-header-panel-cell:not(.dx-scheduler-header-panel-week-cell){width:200px}.dx-scheduler-timeline .dx-scheduler-work-space-vertical-group-table{display:none}.dx-scheduler-timeline .dx-scheduler-date-table{border-spacing:0;border-collapse:initial}.dx-scheduler-timeline .dx-scheduler-date-table,.dx-scheduler-timeline .dx-scheduler-date-table tbody{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.dx-scheduler-timeline .dx-scheduler-date-table tbody{height:100%;min-height:100px}.dx-scheduler-timeline .dx-scheduler-date-table .dx-scheduler-date-table-cell,.dx-scheduler-timeline .dx-scheduler-date-table .dx-scheduler-date-table-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.dx-scheduler-timeline .dx-scheduler-date-table .dx-scheduler-date-table-cell{-webkit-box-align:stretch;-ms-flex-align:stretch;align-items:stretch;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;height:inherit;min-height:50px}.dx-scheduler-timeline .dx-scheduler-group-table{border-spacing:0;border-collapse:initial}.dx-scheduler-timeline .dx-scheduler-group-table,.dx-scheduler-timeline .dx-scheduler-group-table tbody{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.dx-scheduler-timeline .dx-scheduler-group-table tbody{height:100%}.dx-scheduler-timeline .dx-scheduler-group-header{min-height:50px}.dx-scheduler-timeline .dx-scheduler-group-header-content{overflow:visible;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dx-scheduler-timeline .dx-scheduler-group-header-content div{white-space:normal;line-height:normal}.dx-scheduler-timeline.dx-scheduler-work-space-group-by-date .dx-scheduler-group-header{width:200px}.dx-scheduler-timeline .dx-scheduler-date-table,.dx-scheduler-timeline .dx-scheduler-date-table-scrollable .dx-scrollable-content,.dx-scheduler-timeline .dx-scheduler-group-table,.dx-scheduler-timeline .dx-scheduler-sidebar-scrollable .dx-scrollable-content{height:100%;min-height:100px}.dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-scrollable .dx-scrollable-content,.dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-group-table,.dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-sidebar-scrollable .dx-scrollable-content{height:auto}.dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table .dx-scheduler-date-table-row:first-child .dx-scheduler-date-table-cell{border-top-color:#0000}.dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-panel,.dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-panel-empty-cell{border-bottom:1px solid #c4c4c4}.dx-scheduler-timeline .dx-scheduler-sidebar-scrollable{display:none}.dx-scheduler-timeline.dx-scheduler-work-space-grouped .dx-scheduler-sidebar-scrollable{display:block}.dx-scheduler-timeline.dx-scheduler-work-space-grouped .dx-scheduler-group-row .dx-scheduler-group-header{border:none;border-top:1px solid #ddd9}.dx-scheduler-timeline.dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-group-row .dx-scheduler-group-header{border-right:1px solid #ddd9}.dx-scheduler-timeline.dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-group-row .dx-scheduler-last-group-cell{border-right:1px solid #c4c4c4}.dx-scheduler-timeline.dx-scheduler-work-space-grouped .dx-scheduler-date-table-cell:first-child{border-left:none}.dx-rtl .dx-scheduler-timeline.dx-scheduler-work-space-grouped .dx-scheduler-date-table-cell:first-child{border-left:1px solid #ddd9;border-right:none}.dx-scheduler:not(.dx-scheduler-native) .dx-scheduler-timeline .dx-scheduler-date-table .dx-scheduler-date-table-row{-webkit-box-flex:1;-ms-flex:1;flex:1}.dx-scheduler-agenda .dx-scheduler-date-table-scrollable{padding-top:10px}.dx-scheduler-agenda .dx-scheduler-time-panel-cell:after{display:none}.dx-scheduler-agenda .dx-scheduler-group-table{border-spacing:0;margin-top:0;height:100%;float:left}.dx-scheduler-agenda .dx-scheduler-time-panel{margin-top:0;width:70px;border:none}.dx-scheduler-agenda .dx-scheduler-date-table-cell,.dx-scheduler-agenda .dx-scheduler-time-panel-cell{border:none}.dx-scheduler-agenda.dx-scheduler-work-space-grouped .dx-scheduler-date-table{float:right}.dx-scheduler-agenda.dx-scheduler-work-space-grouped .dx-scheduler-group-row:first-child .dx-scheduler-group-header-content:before{border-bottom:none}.dx-scheduler-agenda.dx-scheduler-work-space-grouped .dx-scheduler-time-panel-cell:after{display:none}.dx-scheduler-agenda .dx-scheduler-group-header{vertical-align:top;border-top:none;border-left:none;border-right:none;font-weight:700;padding:0}.dx-scheduler-small .dx-scheduler-agenda .dx-scheduler-group-header{width:40px;font-size:14px}.dx-scheduler-agenda .dx-scheduler-group-header-content div{white-space:normal}.dx-scheduler-agenda-nodata{text-align:center;opacity:.5;position:absolute;top:45%;left:0;right:0}.dx-rtl .dx-scheduler-agenda .dx-scheduler-time-panel{border:none}.dx-scheduler-small .dx-scheduler-agenda .dx-scheduler-time-panel{width:70px}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-scrollable .dx-scrollable-content,.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-group-table,.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-sidebar-scrollable .dx-scrollable-content{min-height:100%}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-scrollable .dx-scrollable-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-container,.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-scrollable-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table,.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table>tbody{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-row{height:78px;-ms-flex-negative:0;flex-shrink:0;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-cell{height:auto}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar.dx-scheduler-work-space-virtual .dx-scheduler-date-table-row{height:50px}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-container,.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-scrollable,.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-scrollable,.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-tables-container{width:100%}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-scrollable,.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-tables-container{-ms-flex-negative:1;flex-shrink:1}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-scrollable .dx-scrollable-content,.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-scrollable .dx-scrollable-content{min-width:100%}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-cell,.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-panel-cell{-ms-flex-negative:0;flex-shrink:0}.dx-scheduler.dx-scheduler-native .dx-scheduler-timeline:not(.dx-scheduler-work-space-both-scrollbar) .dx-scheduler-date-table .dx-scheduler-date-table-row{-webkit-box-flex:1;-ms-flex:1;flex:1}.dx-scheduler-header-panel-cell.dx-scheduler-header-panel-current-time-cell{color:#337ab7}.dx-scheduler-header-panel-cell.dx-scheduler-header-panel-current-time-cell:before{position:absolute;right:0;width:100%;content:\"\";background-color:#63a0d4}.dx-scheduler-group-column-count-one .dx-scheduler-header-panel-empty-cell{width:100px}.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell{width:150px}.dx-scheduler-group-column-count-two .dx-scheduler-group-flex-container .dx-scheduler-group-header{width:75px}.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell{width:200px}.dx-scheduler-group-column-count-three .dx-scheduler-group-flex-container .dx-scheduler-group-header{width:66.6666666667px}.dx-scheduler-work-space-day .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-week .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-work-week .dx-scheduler-header-panel-empty-cell{width:100px}.dx-scheduler-work-space-day.dx-scheduler-group-column-count-one .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-week.dx-scheduler-group-column-count-one .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-work-week.dx-scheduler-group-column-count-one .dx-scheduler-header-panel-empty-cell{width:200px}.dx-scheduler-work-space-day.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-week.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-work-week.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell{width:250px}.dx-scheduler-work-space-day.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-week.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell,.dx-scheduler-work-space-work-week.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell{width:300px}.dx-scheduler-work-space-day.dx-scheduler-work-space-odd-cells .dx-scheduler-date-table-row:nth-child(odd) .dx-scheduler-date-table-cell,.dx-scheduler-work-space-week.dx-scheduler-work-space-odd-cells .dx-scheduler-date-table-row:nth-child(odd) .dx-scheduler-date-table-cell,.dx-scheduler-work-space-work-week.dx-scheduler-work-space-odd-cells .dx-scheduler-date-table-row:nth-child(odd) .dx-scheduler-date-table-cell{border-top:1px solid #c4c4c4}.dx-scheduler-work-space-day.dx-scheduler-work-space-odd-cells .dx-scheduler-date-table-row:first-child .dx-scheduler-date-table-cell,.dx-scheduler-work-space-week.dx-scheduler-work-space-odd-cells .dx-scheduler-date-table-row:first-child .dx-scheduler-date-table-cell,.dx-scheduler-work-space-work-week.dx-scheduler-work-space-odd-cells .dx-scheduler-date-table-row:first-child .dx-scheduler-date-table-cell{border-top:none}.dx-scheduler-work-space-day.dx-scheduler-work-space-odd-cells .dx-scheduler-time-panel-row:nth-child(2n) .dx-scheduler-time-panel-cell:after,.dx-scheduler-work-space-week.dx-scheduler-work-space-odd-cells .dx-scheduler-time-panel-row:nth-child(2n) .dx-scheduler-time-panel-cell:after,.dx-scheduler-work-space-work-week.dx-scheduler-work-space-odd-cells .dx-scheduler-time-panel-row:nth-child(2n) .dx-scheduler-time-panel-cell:after{background-color:#c4c4c4}.dx-scheduler-work-space{border:1px solid #ddd9;background-color:#fff;position:relative;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;overflow:hidden;height:100%;width:100%;border-top:none;float:left}.dx-scheduler-work-space.dx-scheduler-timeline-month:not(.dx-scheduler-agenda) .dx-scheduler-all-day-title{border-top:1px solid #ddd9}.dx-scheduler-work-space.dx-scheduler-timeline-month:not(.dx-scheduler-agenda) .dx-scheduler-date-table-cell{border-right:none}.dx-scheduler-work-space.dx-scheduler-work-space-grouped:not(.dx-scheduler-agenda) .dx-scheduler-all-day-panel td{border-top:1px solid #ddd9}.dx-scheduler-work-space:not(.dx-scheduler-work-space-all-day):not(.dx-scheduler-work-space-month):not(.dx-scheduler-timeline) .dx-scheduler-header-panel,.dx-scheduler-work-space:not(.dx-scheduler-work-space-all-day):not(.dx-scheduler-work-space-month):not(.dx-scheduler-timeline) .dx-scheduler-header-panel-empty-cell{border-bottom:2px solid #ddd9}.dx-scheduler-work-space:not(.dx-scheduler-work-space-all-day):not(.dx-scheduler-work-space-month):not(.dx-scheduler-timeline).dx-scheduler-work-space-vertical-grouped.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-panel,.dx-scheduler-work-space:not(.dx-scheduler-work-space-all-day):not(.dx-scheduler-work-space-month):not(.dx-scheduler-timeline).dx-scheduler-work-space-vertical-grouped.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-panel-empty-cell{border-bottom:none}.dx-scheduler-work-space.dx-scheduler-work-space-month:not(.dx-scheduler-work-space-vertical-grouped) .dx-scheduler-header-panel{border-bottom:1px solid #ddd9}.dx-scheduler-header-panel-container,.dx-scheduler-header-panel-empty-cell{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}.dx-scheduler-header-panel-empty-cell{-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end;width:0;border-bottom:1px solid #ddd9;border-right:1px solid #ddd9;margin-top:10px}.dx-scheduler-header-tables-container{overflow:hidden;width:100%}.dx-scheduler-date-table-container{position:relative}.dx-scheduler-work-space-month:not(.dx-scheduler-work-space-count) .dx-scheduler-date-table-container{height:100%}.dx-scheduler-date-table-scrollable{width:100%;overflow:hidden}.dx-scheduler-date-table-scrollable .dx-scrollable-content{overflow:hidden}.dx-scheduler-date-table-scrollable-content,.dx-scheduler-side-bar-scrollable-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start}.dx-scheduler-date-table-scrollable-content{position:relative;float:left}.dx-scheduler-date-table-cell,.dx-scheduler-group-header,.dx-scheduler-header-panel-cell,.dx-scheduler-time-panel-cell{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none;cursor:default}.dx-scheduler-date-table-current-date{font-weight:700}.dx-scheduler-date-table-other-month{opacity:.5}.dx-scheduler-work-space-flex-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;height:100%;min-height:0}.dx-scheduler-group-flex-container{-webkit-box-flex:0;-ms-flex:0 0 100%;flex:0 0 100%;min-height:100%;display:-webkit-box;display:-ms-flexbox;display:flex}.dx-scheduler-group-flex-container .dx-scheduler-group-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;min-width:0}.dx-scheduler-group-flex-container .dx-scheduler-group-row:last-child .dx-scheduler-group-header{border-right:1px solid #ddd9}.dx-scheduler-group-flex-container .dx-scheduler-group-row .dx-scheduler-group-header{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap;-webkit-box-flex:1;-ms-flex:1 1 100%;flex:1 1 100%;padding:0 5px;height:auto;width:100px;-webkit-box-pack:start;-ms-flex-pack:start;justify-content:flex-start;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;text-align:left;overflow:hidden;text-overflow:ellipsis;border:none;border-top:1px solid #ddd9}.dx-scheduler-header-scrollable{height:auto}.dx-scheduler-work-space-day .dx-scheduler-date-table-row:first-child .dx-scheduler-date-table-cell,.dx-scheduler-work-space-week .dx-scheduler-date-table .dx-scheduler-date-table-row:first-child .dx-scheduler-date-table-cell,.dx-scheduler-work-space-work-week .dx-scheduler-date-table-row:first-child .dx-scheduler-date-table-cell{border-top:none}.dx-scheduler-all-day-table-cell,.dx-scheduler-date-table-cell{border-top:1px solid #ddd9;border-left:1px solid #ddd9}.dx-scheduler-all-day-table-cell:first-child,.dx-scheduler-date-table-cell:first-child{border-left:none}.dx-scheduler-date-table-cell,.dx-scheduler-header-panel-cell{border-right:1px solid #ddd9}.dx-scheduler-work-space-day.dx-scheduler-work-space-count .dx-scheduler-all-day-title,.dx-scheduler-work-space-week .dx-scheduler-all-day-title,.dx-scheduler-work-space-work-week .dx-scheduler-all-day-title{border-top:1px solid #ddd9}.dx-scheduler-timeline .dx-scheduler-all-day-panel,.dx-scheduler-timeline .dx-scheduler-all-day-title,.dx-scheduler-timeline .dx-scheduler-time-panel,.dx-scheduler-work-space-month .dx-scheduler-all-day-panel,.dx-scheduler-work-space-month .dx-scheduler-all-day-title,.dx-scheduler-work-space-month .dx-scheduler-time-panel{display:none}.dx-scheduler-work-space-month .dx-scheduler-all-day-table-cell:nth-child(7n),.dx-scheduler-work-space-month .dx-scheduler-date-table-cell:nth-child(7n),.dx-scheduler-work-space-month .dx-scheduler-header-panel-cell:nth-child(7n),.dx-scheduler-work-space-week .dx-scheduler-all-day-table-cell:nth-child(7n),.dx-scheduler-work-space-week .dx-scheduler-date-table-cell:nth-child(7n),.dx-scheduler-work-space-week .dx-scheduler-header-panel-cell:nth-child(7n){border-right:none}.dx-rtl .dx-scheduler-work-space-month .dx-scheduler-all-day-table-cell:nth-child(7n),.dx-rtl .dx-scheduler-work-space-month .dx-scheduler-date-table-cell:nth-child(7n),.dx-rtl .dx-scheduler-work-space-month .dx-scheduler-header-panel-cell:nth-child(7n),.dx-rtl .dx-scheduler-work-space-week .dx-scheduler-all-day-table-cell:nth-child(7n),.dx-rtl .dx-scheduler-work-space-week .dx-scheduler-date-table-cell:nth-child(7n),.dx-rtl .dx-scheduler-work-space-week .dx-scheduler-header-panel-cell:nth-child(7n){border-left:none}.dx-scheduler-work-space-work-week .dx-scheduler-all-day-table-cell:nth-child(5n),.dx-scheduler-work-space-work-week .dx-scheduler-date-table-cell:nth-child(5n),.dx-scheduler-work-space-work-week .dx-scheduler-header-panel-cell:nth-child(5n){border-right:none}.dx-rtl .dx-scheduler-work-space-work-week .dx-scheduler-all-day-table-cell:nth-child(5n),.dx-rtl .dx-scheduler-work-space-work-week .dx-scheduler-date-table-cell:nth-child(5n),.dx-rtl .dx-scheduler-work-space-work-week .dx-scheduler-header-panel-cell:nth-child(5n){border-left:none}.dx-scheduler-work-space-count.dx-scheduler-work-space-week .dx-scheduler-all-day-table-cell:nth-child(7n),.dx-scheduler-work-space-count.dx-scheduler-work-space-week .dx-scheduler-date-table-cell:nth-child(7n),.dx-scheduler-work-space-count.dx-scheduler-work-space-week .dx-scheduler-header-panel-cell:nth-child(7n){border-right:1px solid #c4c4c4}.dx-rtl .dx-scheduler-work-space-count.dx-scheduler-work-space-week .dx-scheduler-all-day-table-cell:nth-child(7n),.dx-rtl .dx-scheduler-work-space-count.dx-scheduler-work-space-week .dx-scheduler-date-table-cell:nth-child(7n),.dx-rtl .dx-scheduler-work-space-count.dx-scheduler-work-space-week .dx-scheduler-header-panel-cell:nth-child(7n){border-left:1px solid #c4c4c4}.dx-scheduler-work-space-count.dx-scheduler-work-space-work-week .dx-scheduler-all-day-table-cell:nth-child(5n),.dx-scheduler-work-space-count.dx-scheduler-work-space-work-week .dx-scheduler-date-table-cell:nth-child(5n),.dx-scheduler-work-space-count.dx-scheduler-work-space-work-week .dx-scheduler-header-panel-cell:nth-child(5n){border-right:1px solid #c4c4c4}.dx-rtl .dx-scheduler-work-space-count.dx-scheduler-work-space-work-week .dx-scheduler-all-day-table-cell:nth-child(5n),.dx-rtl .dx-scheduler-work-space-count.dx-scheduler-work-space-work-week .dx-scheduler-date-table-cell:nth-child(5n),.dx-rtl .dx-scheduler-work-space-count.dx-scheduler-work-space-work-week .dx-scheduler-header-panel-cell:nth-child(5n){border-right:1px solid #ddd9;border-left:1px solid #c4c4c4}.dx-scheduler-header-panel{border-spacing:0;table-layout:fixed;width:100%}.dx-scheduler-work-space.dx-scheduler-work-space-all-day .dx-scheduler-header-panel-empty-cell{border-bottom:none}.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-panel{width:auto}.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table{float:none}.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-scrollable{height:auto;-ms-flex-negative:0;flex-shrink:0}.dx-scheduler-work-space-both-scrollbar .dx-scheduler-all-day-table-row .dx-scheduler-all-day-table-cell:first-child,.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-row .dx-scheduler-date-table-cell:first-child{border-left:none}.dx-scheduler-header-panel-cell{position:relative;color:#333;padding:0;vertical-align:middle;text-align:center;font-weight:400;border-left:1px solid #ddd9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-scheduler-header-panel-cell:first-child{border-left:1px solid #0000}.dx-scheduler-all-day-panel{width:100%;position:relative}.dx-scheduler-all-day-panel .dx-scheduler-all-day-table-cell,.dx-scheduler-all-day-title{border-bottom:2px solid #ddd9}.dx-scheduler-all-day-title{color:#333;width:100px;position:relative;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-touch-callout:none}.dx-scheduler-small .dx-scheduler-all-day-title{width:50px}.dx-scheduler-work-space-vertical-grouped .dx-scheduler-all-day-title{height:50px;line-height:50px}.dx-scheduler-all-day-table{border-spacing:0;table-layout:fixed;width:100%}.dx-scheduler-group-header{height:30px;text-align:center}.dx-scheduler-time-panel{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;width:100px;border-collapse:collapse;border-right:1px solid #ddd9}.dx-scheduler-small .dx-scheduler-time-panel{width:50px;font-size:14px}.dx-scheduler-time-panel .dx-scheduler-time-panel-row:first-of-type td>div{margin-top:0}.dx-scheduler-time-panel-cell{color:#333;position:relative;width:100%;text-align:right;vertical-align:top;padding-right:20px;border-bottom:1px solid #0000}.dx-scheduler-time-panel-cell>div{margin-top:-13px}.dx-scheduler-small .dx-scheduler-time-panel-cell{padding-left:0;padding-right:10px}.dx-scheduler-time-panel-cell:after{position:absolute;bottom:-1px;width:10%;height:1px;right:0;background-color:#ddd9}.dx-scheduler-time-panel-cell.dx-scheduler-time-panel-current-time-cell{color:#337ab7}.dx-scheduler-time-panel-cell.dx-scheduler-time-panel-current-time-cell:before{position:absolute;top:0;right:0;width:2px;height:inherit;background-color:#63a0d4}.dx-scheduler-time-panel-row:last-child .dx-scheduler-time-panel-cell:after{display:none}.dx-scheduler-time-panel-title-cell{padding:0}.dx-scheduler-date-table{width:100%;border-spacing:0;table-layout:fixed}.dx-scheduler-all-day-table-cell.dx-state-hover.dx-state-focused,.dx-scheduler-date-table-cell.dx-state-hover.dx-state-focused{background-color:#dbe9f5}.dx-scheduler-all-day-table-cell.dx-state-focused,.dx-scheduler-date-table-cell.dx-state-focused{background-color:#dbe9f5;opacity:1}.dx-scheduler-all-day-table-cell.dx-scheduler-focused-cell,.dx-scheduler-date-table-cell.dx-scheduler-focused-cell{-webkit-box-shadow:inset 0 0 0 1px #337ab7;box-shadow:inset 0 0 0 1px #337ab7}.dx-scheduler-all-day-table-cell>div,.dx-scheduler-date-table-cell>div{pointer-events:none}.dx-scheduler-date-table-droppable-cell{background-color:#f2f2f2}.dx-scheduler-group-header-content div{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-scheduler-work-space-horizontal-grouped.dx-scheduler-timeline .dx-scheduler-sidebar-scrollable{display:none}.dx-scheduler-work-space-horizontal-grouped.dx-scheduler-timeline .dx-scheduler-group-header-content{display:-webkit-box;display:-ms-flexbox;display:flex;height:40px}.dx-scheduler-work-space-horizontal-grouped.dx-scheduler-timeline .dx-scheduler-group-header-content>div{margin:auto}.dx-scheduler-work-space-horizontal-grouped.dx-scheduler-timeline .dx-scheduler-group-row,.dx-scheduler-work-space-horizontal-grouped.dx-scheduler-timeline .dx-scheduler-header-panel,.dx-scheduler-work-space-horizontal-grouped.dx-scheduler-timeline .dx-scheduler-header-row{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.dx-scheduler-work-space-horizontal-grouped.dx-scheduler-timeline.dx-scheduler-work-space-grouped .dx-scheduler-group-header{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-flow:row nowrap;flex-flow:row nowrap}.dx-scheduler-work-space-horizontal-grouped.dx-scheduler-timeline.dx-scheduler-work-space-group-by-date .dx-scheduler-group-header{-ms-flex-preferred-size:auto;flex-basis:auto}.dx-scheduler-work-space-horizontal-grouped.dx-scheduler-timeline:not(.dx-scheduler-work-space-group-by-date) .dx-scheduler-header-row .dx-scheduler-header-panel-cell{border-right:none}.dx-scheduler-work-space-vertical-grouped .dx-scheduler-work-space-vertical-group-table{height:100%;min-height:100px;border-top:1px solid #ddd9;border-spacing:0;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column nowrap;flex-flow:column nowrap}.dx-scheduler-work-space-vertical-grouped.dx-scheduler-work-space-day .dx-scheduler-all-day-title,.dx-scheduler-work-space-vertical-grouped.dx-scheduler-work-space-week .dx-scheduler-all-day-title,.dx-scheduler-work-space-vertical-grouped.dx-scheduler-work-space-work-week .dx-scheduler-all-day-title{top:0;height:50px!important;line-height:50px!important;border-bottom:none}.dx-scheduler-work-space-vertical-grouped .dx-scheduler-all-day-panel{display:table-cell;position:relative}.dx-scheduler-work-space-vertical-grouped .dx-scheduler-all-day-table-row{height:50px}.dx-scheduler-work-space-vertical-grouped .dx-scheduler-time-panel-cell.dx-scheduler-first-group-cell{border-top:1px solid #ddd9}.dx-scheduler-work-space-vertical-grouped .dx-scheduler-time-panel-cell.dx-scheduler-first-group-cell>div{margin-top:0}.dx-scheduler-work-space-vertical-grouped .dx-scheduler-time-panel-cell.dx-scheduler-last-group-cell{border-bottom:none;-webkit-box-shadow:inset 0 -1px 0 #ddd9;box-shadow:inset 0 -1px 0 #ddd9}.dx-scheduler-work-space-vertical-grouped .dx-scheduler-date-table-cell.dx-scheduler-last-group-cell{border-bottom:2px solid #ddd9}.dx-scheduler-work-space-vertical-grouped.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-scrollable,.dx-scheduler-work-space-vertical-grouped.dx-scheduler-work-space-both-scrollbar .dx-scheduler-sidebar-scrollable{border-top:1px solid #ddd9}.dx-rtl .dx-scheduler-header-panel-empty-cell{border-left:1px solid #ddd9;border-right:none}.dx-rtl .dx-scheduler-date-table-scrollable-content,.dx-rtl .dx-scheduler-side-bar-scrollable-content{direction:rtl}.dx-rtl .dx-scheduler-sidebar-scrollable .dx-scheduler-group-row:last-child .dx-scheduler-group-header,.dx-rtl .dx-scheduler-work-space-vertical-grouped .dx-scheduler-group-row:last-child .dx-scheduler-group-header{border-right:none;border-left:1px solid #ddd9}.dx-rtl .dx-scheduler-header-panel{left:0;right:inherit}.dx-rtl .dx-scheduler-time-panel,.dx-rtl .dx-scheduler-work-space-vertical-group-table{float:right}.dx-rtl .dx-scheduler-time-panel-cell{text-align:left;padding-left:20px;padding-right:0}.dx-scheduler-small .dx-rtl .dx-scheduler-time-panel-cell{padding-left:10px}.dx-rtl .dx-scheduler-time-panel-cell:after{right:auto;left:0}.dx-rtl .dx-scheduler-work-space-week .dx-scheduler-all-day-table-cell,.dx-rtl .dx-scheduler-work-space-work-week .dx-scheduler-all-day-table-cell{border-right:1px solid #ddd9;border-left:none}.dx-rtl.dx-scheduler-work-space-both-scrollbar .dx-scheduler-all-day-table-row .dx-scheduler-all-day-table-cell:first-child,.dx-rtl.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-table-row .dx-scheduler-date-table-cell:first-child,.dx-rtl.dx-scheduler-work-space-both-scrollbar .dx-scheduler-header-row .dx-scheduler-header-panel-cell:first-child,.dx-rtl.dx-scheduler-work-space-both-scrollbar .dx-scheduler-time-panel{border-left:1px solid #ddd9;border-right:none}.dx-rtl .dx-scheduler-timeline.dx-scheduler-work-space-grouped .dx-scheduler-sidebar-scrollable{float:right}.dx-rtl .dx-scheduler-timeline.dx-scheduler-work-space-grouped .dx-scheduler-group-header{padding:0 5px 0 10px}.dx-rtl .dx-scheduler-timeline.dx-scheduler-work-space-grouped.dx-scheduler-group-column-count-three .dx-scheduler-group-header:last-child,.dx-rtl .dx-scheduler-timeline.dx-scheduler-work-space-grouped.dx-scheduler-group-column-count-two .dx-scheduler-group-header:last-child{text-align:right}.dx-rtl .dx-scheduler-all-day-table-cell:first-child,.dx-rtl .dx-scheduler-date-table-cell:first-child,.dx-rtl .dx-scheduler-header-panel-cell:first-child,.dx-rtl .dx-scheduler-time-panel{border-right:none;border-left:1px solid #ddd9}.dx-scheduler-small .dx-scheduler-work-space-day .dx-scheduler-header-panel-empty-cell,.dx-scheduler-small .dx-scheduler-work-space-week .dx-scheduler-header-panel-empty-cell,.dx-scheduler-small .dx-scheduler-work-space-work-week .dx-scheduler-header-panel-empty-cell{width:50px}.dx-scheduler-small .dx-scheduler-work-space-day.dx-scheduler-group-column-count-one .dx-scheduler-header-panel-empty-cell,.dx-scheduler-small .dx-scheduler-work-space-week.dx-scheduler-group-column-count-one .dx-scheduler-header-panel-empty-cell,.dx-scheduler-small .dx-scheduler-work-space-work-week.dx-scheduler-group-column-count-one .dx-scheduler-header-panel-empty-cell{width:150px}.dx-scheduler-small .dx-scheduler-work-space-day.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell,.dx-scheduler-small .dx-scheduler-work-space-week.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell,.dx-scheduler-small .dx-scheduler-work-space-work-week.dx-scheduler-group-column-count-two .dx-scheduler-header-panel-empty-cell{width:200px}.dx-scheduler-small .dx-scheduler-work-space-day.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell,.dx-scheduler-small .dx-scheduler-work-space-week.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell,.dx-scheduler-small .dx-scheduler-work-space-work-week.dx-scheduler-group-column-count-three .dx-scheduler-header-panel-empty-cell{width:250px}.dx-recurrence-repeat-end-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex}.dx-recurrence-numberbox-interval-wrapper .dx-layout-manager .dx-field-item,.dx-recurrence-repeat-on .dx-layout-manager .dx-field-item{padding-right:0;padding-left:0}.dx-recurrence-numberbox-interval-wrapper .dx-box-item:first-child:not(:only-child),.dx-recurrence-repeat-on .dx-box-item:first-child:not(:only-child){-webkit-box-flex:0!important;-ms-flex-positive:0!important;flex-grow:0!important;min-width:auto!important}.dx-recurrence-numberbox-interval-wrapper .dx-field-item-label{white-space:nowrap}.dx-layout-manager .dx-field-item.dx-recurrence-repeat-on{padding-top:0}.dx-recurrence-repeat-end-label{line-height:36px}.dx-recurrence-radiogroup-repeat-type{margin:0}.dx-recurrence-radiogroup-repeat-type .dx-item{padding-bottom:10px}.dx-recurrence-datebox-until-date{margin-left:28px}.dx-recurrence-numberbox-repeat-count{margin-left:16px;margin-right:11px}.dx-recurrence-button-group{width:100%}.dx-recurrence-button-group .dx-button-content{padding:8px}.dx-recurrence-button-group .dx-buttongroup-wrapper>div{-webkit-box-flex:1;-ms-flex:1;flex:1}.dx-recurrence-editor-container .dx-recurrence-numberbox-interval{margin-right:11px}.dx-recurrence-editor-container .dx-recurrence-numberbox-interval.dx-rtl{margin-right:0;margin-left:11px}.dx-recurrence-numberbox-interval-label{margin-top:25px}.dx-scheduler-container{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;height:100%;width:100%;background-color:#fff}.dx-scheduler-header{border:1px solid #ddd9;position:relative;z-index:1;width:100%;-ms-flex-negative:0;flex-shrink:0}.dx-scheduler-header .dx-toolbar{height:100%;background-color:initial}.dx-scheduler-header .dx-toolbar .dx-toolbar-items-container{height:100%}.dx-scheduler-header .dx-toolbar .dx-toolbar-menu-container .dx-icon:before{content:\"\\\\f016\"}.dx-scheduler-view-switcher-dropdown-button-content .dx-list-item{display:list-item}.dx-scheduler-date-time-shader-all-day{width:100%;background-color:#3333330a;position:absolute;pointer-events:none}.dx-scheduler-date-time-indicator{background-color:#63a0d4;position:absolute;pointer-events:none;-webkit-box-shadow:0 1px 0 0 #ffffff1a;box-shadow:0 1px 0 0 #ffffff1a}.dx-scheduler-date-time-indicator:before{font-size:30px;color:#63a0d4;position:absolute;z-index:1000;margin-top:-14px;margin-left:-12px;text-shadow:#ffffff1a 1px 0 0}.dx-scheduler-date-time-shader{pointer-events:none}.dx-scheduler-work-space-day .dx-scheduler-all-day-appointment .dx-scheduler-appointment-content,.dx-scheduler-work-space-week .dx-scheduler-all-day-appointment .dx-scheduler-appointment-content,.dx-scheduler-work-space-work-week .dx-scheduler-all-day-appointment .dx-scheduler-appointment-content{padding:0 7px}.dx-scheduler-work-space-day .dx-scheduler-appointment-reduced .dx-scheduler-appointment-content,.dx-scheduler-work-space-week .dx-scheduler-appointment-reduced .dx-scheduler-appointment-content,.dx-scheduler-work-space-work-week .dx-scheduler-appointment-reduced .dx-scheduler-appointment-content{padding-right:40px}.dx-scheduler-work-space-day .dx-scheduler-appointment-reduced:not(.dx-scheduler-all-day-appointment) .dx-scheduler-appointment-recurrence-icon,.dx-scheduler-work-space-day .dx-scheduler-appointment-reduced:not(.dx-scheduler-all-day-appointment) .dx-scheduler-appointment-reduced-icon,.dx-scheduler-work-space-week .dx-scheduler-appointment-reduced:not(.dx-scheduler-all-day-appointment) .dx-scheduler-appointment-recurrence-icon,.dx-scheduler-work-space-week .dx-scheduler-appointment-reduced:not(.dx-scheduler-all-day-appointment) .dx-scheduler-appointment-reduced-icon,.dx-scheduler-work-space-work-week .dx-scheduler-appointment-reduced:not(.dx-scheduler-all-day-appointment) .dx-scheduler-appointment-recurrence-icon,.dx-scheduler-work-space-work-week .dx-scheduler-appointment-reduced:not(.dx-scheduler-all-day-appointment) .dx-scheduler-appointment-reduced-icon{top:9px}.dx-scheduler-work-space-day .dx-scheduler-date-time-indicator,.dx-scheduler-work-space-week .dx-scheduler-date-time-indicator,.dx-scheduler-work-space-work-week .dx-scheduler-date-time-indicator{margin-left:100px;height:1px;font:14px/1 DXIcons}.dx-scheduler-work-space-day .dx-scheduler-date-time-indicator:before,.dx-scheduler-work-space-week .dx-scheduler-date-time-indicator:before,.dx-scheduler-work-space-work-week .dx-scheduler-date-time-indicator:before{content:\"\\\\f04e\"}.dx-scheduler-small .dx-scheduler-work-space-day .dx-scheduler-date-time-indicator,.dx-scheduler-small .dx-scheduler-work-space-week .dx-scheduler-date-time-indicator,.dx-scheduler-small .dx-scheduler-work-space-work-week .dx-scheduler-date-time-indicator{margin-left:50px}.dx-scheduler-work-space-day .dx-scheduler-date-time-shader,.dx-scheduler-work-space-week .dx-scheduler-date-time-shader,.dx-scheduler-work-space-work-week .dx-scheduler-date-time-shader{margin-left:100px}.dx-scheduler-small .dx-scheduler-work-space-day .dx-scheduler-date-time-shader,.dx-scheduler-small .dx-scheduler-work-space-week .dx-scheduler-date-time-shader,.dx-scheduler-small .dx-scheduler-work-space-work-week .dx-scheduler-date-time-shader{margin-left:50px}.dx-scheduler-work-space-day .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-work-space-day .dx-scheduler-date-time-shader-top:before,.dx-scheduler-work-space-week .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-work-space-week .dx-scheduler-date-time-shader-top:before,.dx-scheduler-work-space-work-week .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-work-space-work-week .dx-scheduler-date-time-shader-top:before{width:inherit;height:inherit;content:\"\";left:inherit;position:absolute;margin-left:100px;background-color:#3333330a}.dx-scheduler-small .dx-scheduler-work-space-day .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-small .dx-scheduler-work-space-day .dx-scheduler-date-time-shader-top:before,.dx-scheduler-small .dx-scheduler-work-space-week .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-small .dx-scheduler-work-space-week .dx-scheduler-date-time-shader-top:before,.dx-scheduler-small .dx-scheduler-work-space-work-week .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-small .dx-scheduler-work-space-work-week .dx-scheduler-date-time-shader-top:before{margin-left:50px}.dx-scheduler-work-space-day.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-indicator,.dx-scheduler-work-space-day.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader,.dx-scheduler-work-space-day.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader-all-day,.dx-scheduler-work-space-day.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-work-space-day.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader-top:before,.dx-scheduler-work-space-week.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-indicator,.dx-scheduler-work-space-week.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader,.dx-scheduler-work-space-week.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader-all-day,.dx-scheduler-work-space-week.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-work-space-week.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader-top:before,.dx-scheduler-work-space-work-week.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-indicator,.dx-scheduler-work-space-work-week.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader,.dx-scheduler-work-space-work-week.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader-all-day,.dx-scheduler-work-space-work-week.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-work-space-work-week.dx-scheduler-work-space-both-scrollbar .dx-scheduler-date-time-shader-top:before{margin-left:0}.dx-scheduler-work-space-day.dx-rtl .dx-scheduler-date-time-indicator,.dx-scheduler-work-space-week.dx-rtl .dx-scheduler-date-time-indicator,.dx-scheduler-work-space-work-week.dx-rtl .dx-scheduler-date-time-indicator{margin-left:0;font:14px/1 DXIcons}.dx-scheduler-work-space-day.dx-rtl .dx-scheduler-date-time-indicator:before,.dx-scheduler-work-space-week.dx-rtl .dx-scheduler-date-time-indicator:before,.dx-scheduler-work-space-work-week.dx-rtl .dx-scheduler-date-time-indicator:before{content:\"\\\\f04f\";margin-right:-12px}.dx-scheduler-work-space-day.dx-rtl .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-work-space-day.dx-rtl .dx-scheduler-date-time-shader-top:before,.dx-scheduler-work-space-week.dx-rtl .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-work-space-week.dx-rtl .dx-scheduler-date-time-shader-top:before,.dx-scheduler-work-space-work-week.dx-rtl .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-work-space-work-week.dx-rtl .dx-scheduler-date-time-shader-top:before{margin-left:0;margin-right:100px}.dx-scheduler-timeline .dx-scheduler-date-time-indicator{width:1px;top:0;font:14px/1 DXIcons}.dx-scheduler-timeline .dx-scheduler-date-time-indicator:before{content:\"\\\\f001\";margin-left:-14px;margin-top:-12px}.dx-scheduler-timeline .dx-scheduler-date-time-shader{height:100%;position:absolute}.dx-scheduler-timeline .dx-scheduler-date-time-shader:before{width:inherit;height:100%;content:\"\";left:0;position:absolute;background-color:#3333330a}.dx-scheduler-timeline .dx-scheduler-header-panel-cell.dx-scheduler-header-panel-current-time-cell{border-bottom:2px solid #63a0d4;-webkit-box-shadow:none;box-shadow:none}.dx-scheduler-timeline .dx-scheduler-header-panel-cell.dx-scheduler-header-panel-current-time-cell:before{content:none}.dx-scheduler-timeline .dx-scheduler-appointment-reduced .dx-scheduler-appointment-recurrence-icon{top:0}.dx-scheduler-work-space-month .dx-scheduler-appointment-content{padding:0 7px}.dx-scheduler-work-space-month .dx-scheduler-appointment-recurrence .dx-scheduler-appointment-content{padding:0 25px 0 7px}.dx-rtl .dx-scheduler-work-space-month .dx-scheduler-appointment-recurrence .dx-scheduler-appointment-content{padding:0 7px 0 25px}.dx-scheduler-work-space-month .dx-scheduler-appointment-recurrence-icon{top:0}.dx-scheduler-all-day-appointments,.dx-scheduler-scrollable-appointments{position:absolute;top:0}.dx-scheduler-all-day-appointments.dx-rtl,.dx-scheduler-scrollable-appointments.dx-rtl{left:0}.dx-scheduler-all-day-appointment,.dx-scheduler-timeline .dx-scheduler-appointment,.dx-scheduler-work-space-month .dx-scheduler-appointment{-webkit-box-shadow:inset 2px 0 0 0 #0000004d;box-shadow:inset 2px 0 0 0 #0000004d}.dx-rtl .dx-scheduler-all-day-appointment,.dx-rtl .dx-scheduler-timeline .dx-scheduler-appointment,.dx-rtl .dx-scheduler-work-space-month .dx-scheduler-appointment{-webkit-box-shadow:inset -2px 0 0 0 #0000004d;box-shadow:inset -2px 0 0 0 #0000004d}.dx-scheduler-all-day-appointment.dx-resizable-resizing,.dx-scheduler-all-day-appointment.dx-state-active,.dx-scheduler-timeline .dx-scheduler-appointment.dx-resizable-resizing,.dx-scheduler-timeline .dx-scheduler-appointment.dx-state-active,.dx-scheduler-work-space-month .dx-scheduler-appointment.dx-resizable-resizing,.dx-scheduler-work-space-month .dx-scheduler-appointment.dx-state-active{-webkit-box-shadow:inset -2px 0 0 0 #0000004d,inset 2px 0 0 0 #0000004d;box-shadow:inset -2px 0 0 0 #0000004d,inset 2px 0 0 0 #0000004d}.dx-scheduler-all-day-appointment.dx-state-hover,.dx-scheduler-timeline .dx-scheduler-appointment.dx-state-hover,.dx-scheduler-work-space-month .dx-scheduler-appointment.dx-state-hover{-webkit-box-shadow:inset 5px 0 0 0 #0000004d;box-shadow:inset 5px 0 0 0 #0000004d}.dx-scheduler-all-day-appointment.dx-state-hover.dx-resizable,.dx-scheduler-timeline .dx-scheduler-appointment.dx-state-hover.dx-resizable,.dx-scheduler-work-space-month .dx-scheduler-appointment.dx-state-hover.dx-resizable{-webkit-box-shadow:inset 5px 0 0 0 #0000004d,inset -2px 0 0 0 #0000004d;box-shadow:inset 5px 0 0 0 #0000004d,inset -2px 0 0 0 #0000004d}.dx-rtl .dx-scheduler-all-day-appointment.dx-state-hover,.dx-rtl .dx-scheduler-timeline .dx-scheduler-appointment.dx-state-hover,.dx-rtl .dx-scheduler-work-space-month .dx-scheduler-appointment.dx-state-hover{-webkit-box-shadow:inset -5px 0 0 0 #0000004d;box-shadow:inset -5px 0 0 0 #0000004d}.dx-rtl .dx-scheduler-all-day-appointment.dx-state-hover.dx-resizable,.dx-rtl .dx-scheduler-timeline .dx-scheduler-appointment.dx-state-hover.dx-resizable,.dx-rtl .dx-scheduler-work-space-month .dx-scheduler-appointment.dx-state-hover.dx-resizable{-webkit-box-shadow:inset -5px 0 0 0 #0000004d,inset 2px 0 0 0 #0000004d;box-shadow:inset -5px 0 0 0 #0000004d,inset 2px 0 0 0 #0000004d}.dx-scheduler-fixed-appointments .dx-draggable-dragging .dx-scheduler-all-day-appointment,.dx-scheduler-timeline .dx-draggable-dragging .dx-scheduler-appointment,.dx-scheduler-work-space-month .dx-draggable-dragging .dx-scheduler-appointment{-webkit-box-shadow:inset -2px 0 0 0 #0000004d,inset 2px 0 0 0 #0000004d,7px 7px 15px 0 #32323233;box-shadow:inset -2px 0 0 0 #0000004d,inset 2px 0 0 0 #0000004d,7px 7px 15px 0 #32323233}.dx-scheduler-appointment.dx-scheduler-appointment-body,.dx-scheduler-appointment.dx-scheduler-appointment-tail{-webkit-box-shadow:none;box-shadow:none}.dx-scheduler-appointment-recurrence-icon{position:absolute;background-repeat:no-repeat;top:3px;right:5px;display:block}.dx-scheduler-appointment-recurrence-icon.dx-icon-repeat{font-size:18px}.dx-scheduler-all-day-appointment .dx-scheduler-appointment-reduced-icon{position:absolute;top:15%}.dx-scheduler-appointment-reduced.dx-scheduler-appointment-head .dx-scheduler-appointment-recurrence-icon{right:20px}.dx-scheduler-appointment-content{cursor:pointer;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;opacity:.99;padding:5px 7px}.dx-scheduler-work-space-grouped.dx-scheduler-work-space-month .dx-scheduler-appointment-content{font-size:12px}.dx-scheduler-appointment-content>*{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-scheduler-appointment-empty .dx-scheduler-appointment-content-details,.dx-scheduler-appointment-empty .dx-scheduler-appointment-recurrence-icon,.dx-scheduler-appointment-empty .dx-scheduler-appointment-title{display:none}.dx-scheduler-appointment-content-details{font-size:11px;white-space:pre;overflow:hidden}.dx-scheduler-all-day-appointment .dx-scheduler-appointment-content-details,.dx-scheduler-work-space-month .dx-scheduler-appointment-content-details{display:none}.dx-scheduler-appointment-popup .dx-form .dx-field-item.dx-appointment-form-switch>div{-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0;width:auto}.dx-scheduler-appointment-popup .dx-layout-manager .dx-label-h-align .dx-field-item-content .dx-checkbox,.dx-scheduler-appointment-popup .dx-layout-manager .dx-label-h-align .dx-field-item-content .dx-switch{margin:0}.dx-scheduler-appointment-popup .dx-field-item-label-location-left{padding-right:20px}.dx-scheduler-appointment-popup .dx-field{min-height:0}.dx-scheduler-appointment-popup .dx-field-label{width:auto}.dx-scheduler-appointment-popup .dx-field-value{padding-left:0;padding-right:0}.dx-scheduler-appointment-popup .dx-field-value:not(.dx-widget)>.dx-checkbox{float:left}.dx-scheduler-appointment-popup .dx-field-value:not(.dx-widget)>.dx-checkbox.dx-rtl{float:right}.dx-scheduler-appointment-collector{background-color:#337ab7;color:#fff}.dx-scheduler-appointment-collector.dx-button,.dx-scheduler-appointment-collector.dx-button.dx-state-active,.dx-scheduler-appointment-collector.dx-button.dx-state-focused,.dx-scheduler-appointment-collector.dx-button.dx-state-hover{background-color:#337ab7;color:#fff;border:none;-webkit-box-shadow:none;box-shadow:none}.dx-scheduler-appointment-collector.dx-button.dx-state-hover:before{pointer-events:none;content:\"\";position:absolute;top:0;left:0;right:0;bottom:0;background-color:#0000004d;opacity:.98}.dx-scheduler-appointment-collector.dx-button.dx-state-hover .dx-button-content,.dx-scheduler-appointment-collector.dx-button.dx-state-hover .dx-scheduler-appointment-collector-content{color:#fff;opacity:.99}.dx-scheduler-appointment-collector-compact .dx-button-content span:last-child,.dx-scheduler-appointment-collector-compact .dx-scheduler-appointment-collector-content span:last-child{padding-left:0}.dx-scheduler-agenda .dx-scheduler-scrollable-appointments{width:100%;height:0}.dx-scheduler-agenda .dx-scheduler-appointment{position:relative;-webkit-box-shadow:none;box-shadow:none;margin-top:5px;margin-bottom:5px}.dx-scheduler-agenda .dx-scheduler-appointment.dx-scheduler-last-in-date-agenda-appointment{margin-bottom:20px}.dx-rtl .dx-scheduler-appointment-recurrence-icon{left:5px;right:auto}.dx-rtl .dx-scheduler-appointment-reduced.dx-scheduler-appointment-head .dx-scheduler-appointment-recurrence-icon{left:20px;right:auto}.dx-rtl .dx-scheduler-work-space-day .dx-scheduler-appointment-reduced .dx-scheduler-appointment-content,.dx-rtl .dx-scheduler-work-space-week .dx-scheduler-appointment-reduced .dx-scheduler-appointment-content,.dx-rtl .dx-scheduler-work-space-work-week .dx-scheduler-appointment-reduced .dx-scheduler-appointment-content{padding-right:5px;padding-left:40px}.dx-rtl .dx-scheduler-all-day-appointments,.dx-rtl .dx-scheduler-scrollable-appointments{left:0}.dx-scheduler-small.dx-rtl .dx-scheduler-date-time-shader-bottom:before,.dx-scheduler-small.dx-rtl .dx-scheduler-date-time-shader-top:before{margin-right:50px}.dx-scheduler-time-panel-cell{height:50px}.dx-scheduler-time-panel-cell.dx-scheduler-time-panel-current-time-cell:before,.dx-scheduler-time-panel-cell:after{content:\"\"}.dx-scheduler-date-table-cell{height:50px}.dx-scheduler-all-day-title{height:75px;line-height:75px;font-size:14px;font-weight:700}.dx-scheduler-work-space-all-day-collapsed .dx-scheduler-all-day-title{height:25px;line-height:25px}.dx-scheduler-all-day-table{height:75px}.dx-scheduler-work-space-all-day-collapsed .dx-scheduler-all-day-table{height:25px}.dx-scheduler-header-panel{margin-top:10px}.dx-scheduler-work-space-vertical-grouped .dx-scheduler-header-panel{margin-top:11px}.dx-scheduler-header-panel-cell{height:40px}.dx-scheduler-header-panel-cell.dx-scheduler-header-panel-current-time-cell:before{top:37px;height:2px}.dx-scheduler-timeline .dx-scheduler-date-table-cell{border-right:none;height:75px}.dx-scheduler-work-space-day.dx-scheduler-work-space-count:not(.dx-scheduler-work-space-vertical-grouped) .dx-scheduler-header-panel{margin-top:10px}.dx-scheduler-work-space-day .dx-scheduler-header-panel .dx-scheduler-group-row:not(:first-child){border-bottom:none}.dx-scheduler-work-space-month .dx-scheduler-appointment-content{font-size:13px}.dx-scheduler-work-space-month .dx-scheduler-date-table-first-of-month{border-left:1px solid #aaa;border-top:1px solid #aaa}.dx-scheduler-header{height:56px;background-color:#f5f5f5}.dx-scheduler-header .dx-toolbar .dx-toolbar-item-content,.dx-scheduler-header .dx-toolbar .dx-toolbar-menu-container{padding:9px}.dx-scheduler-header .dx-toolbar .dx-scheduler-navigator .dx-scheduler-navigator-caption{min-width:180px}.dx-scheduler-adaptive .dx-scheduler-header .dx-toolbar .dx-scheduler-navigator .dx-scheduler-navigator-caption{min-width:140px}.dx-scheduler-header .dx-toolbar .dx-button.dx-item-selected,.dx-scheduler-header .dx-toolbar .dx-button.dx-state-focused,.dx-scheduler-header .dx-toolbar .dx-button.dx-state-hover{background-color:#ebebeb}.dx-scheduler-header .dx-toolbar .dx-scheduler-navigator .dx-buttongroup .dx-button.dx-item-selected{background-color:#fff}.dx-scheduler-header .dx-toolbar .dx-scheduler-navigator .dx-buttongroup .dx-button.dx-item-selected.dx-state-focused,.dx-scheduler-header .dx-toolbar .dx-scheduler-navigator .dx-buttongroup .dx-button.dx-item-selected.dx-state-hover{background-color:#ebebeb}.dx-scheduler-header-panel .dx-scheduler-group-row:not(:first-child){border-bottom:1px solid #ddd9}.dx-scheduler-header-panel .dx-scheduler-group-row:not(:first-child) .dx-scheduler-group-header{color:#333}.dx-scheduler-group-flex-container .dx-scheduler-group-header,.dx-scheduler-header-panel .dx-scheduler-group-header,.dx-scheduler-work-space-vertical-group-table .dx-scheduler-group-header{font-weight:700;color:#333;padding:0}.dx-scheduler-all-day-panel{background-color:#fff}.dx-scheduler-work-space.dx-scheduler-work-space-grouped .dx-scheduler-all-day-title{border-top:1px solid #ddd9}.dx-scheduler-work-space.dx-scheduler-work-space-grouped.dx-scheduler-agenda .dx-scheduler-date-table-cell{border:none}.dx-rtl .dx-scheduler-work-space.dx-scheduler-work-space-grouped.dx-scheduler-timeline .dx-scheduler-group-row th{border-left:none;border-right:none}.dx-scheduler-work-space-week .dx-scheduler-date-table-row:first-child{border-top:none}.dx-scheduler-all-day-table-cell.dx-state-active,.dx-scheduler-date-table-cell.dx-state-active{background-color:#ddddddb3}.dx-scheduler-all-day-table-cell.dx-state-hover,.dx-scheduler-date-table-cell.dx-state-hover{background-color:#0000000a;color:#959595}.dx-scheduler-appointment-popup .dx-popup-title{background-color:#fff}.dx-scheduler-appointment-popup .dx-popup-title .dx-closebutton,.dx-scheduler-appointment-popup .dx-popup-title .dx-closebutton.dx-rtl{margin:0}.dx-scheduler-appointment-popup .dx-popup-bottom{border-top:1px solid #ddd}.dx-scheduler-appointment-popup .dx-toolbar-after{margin-right:4px}.dx-rtl .dx-scheduler-appointment-popup .dx-toolbar-after{margin-left:4px;margin-right:0}.dx-scheduler-appointment-popup .dx-form-validation-summary{padding:10px 20px}.dx-scheduler-work-space-month .dx-scheduler-date-table-cell{font-size:16px}.dx-scheduler-group-header,.dx-scheduler-header-panel,.dx-scheduler-time-panel{font-size:14px}.dx-scheduler-work-space-grouped .dx-scheduler-group-row th,.dx-scheduler-work-space.dx-scheduler-work-space-grouped .dx-scheduler-last-group-cell{border-right:1px solid #aaa}.dx-scheduler-work-space-grouped .dx-scheduler-group-row th:last-child,.dx-scheduler-work-space.dx-scheduler-work-space-grouped .dx-scheduler-last-group-cell:last-child{border-right:none}.dx-rtl .dx-scheduler-work-space-grouped .dx-scheduler-group-row th,.dx-rtl .dx-scheduler-work-space.dx-scheduler-work-space-grouped .dx-scheduler-last-group-cell{border-left:1px solid #aaa;border-right:1px solid #ddd9}.dx-rtl .dx-scheduler-work-space-grouped .dx-scheduler-group-row th:last-child,.dx-rtl .dx-scheduler-work-space.dx-scheduler-work-space-grouped .dx-scheduler-last-group-cell:last-child{border-left:none}.dx-scheduler-work-space-grouped.dx-scheduler-timeline .dx-scheduler-group-row th,.dx-scheduler-work-space-grouped.dx-scheduler-timeline .dx-scheduler-last-group-cell,.dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-group-row th,.dx-scheduler-work-space-grouped.dx-scheduler-work-space-vertical-grouped .dx-scheduler-group-row th,.dx-scheduler-work-space-grouped.dx-scheduler-work-space-vertical-grouped .dx-scheduler-last-group-cell{border-right:1px solid #ddd9;border-left:1px solid #ddd9}.dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-date-table-cell.dx-scheduler-last-group-cell,.dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-group-header.dx-scheduler-last-group-cell,.dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-header-panel-cell{border-right:1px solid #aaa}.dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-date-table-cell.dx-scheduler-last-group-cell:last-child,.dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-group-header.dx-scheduler-last-group-cell:last-child,.dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-header-panel-cell:last-child{border-right:none}.dx-rtl .dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-date-table-cell.dx-scheduler-last-group-cell,.dx-rtl .dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-group-header.dx-scheduler-last-group-cell,.dx-rtl .dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-header-panel-cell{border-left:1px solid #aaa;border-right:1px solid #ddd9}.dx-rtl .dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-date-table-cell.dx-scheduler-last-group-cell:last-child,.dx-rtl .dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-group-header.dx-scheduler-last-group-cell:last-child,.dx-rtl .dx-scheduler-work-space-grouped.dx-scheduler-work-space-group-by-date .dx-scheduler-header-panel-cell:last-child{border-left:none}.dx-scheduler-appointment-collector{height:20px}.dx-scheduler-appointment-collector.dx-button.dx-button-default,.dx-scheduler-appointment-collector.dx-state-hover:before{border-radius:20px}.dx-scheduler-appointment{border-left:3px solid #0000;border-right:2px solid #0000}.dx-scheduler-appointment.dx-state-focused{color:#fff}.dx-scheduler-appointment.dx-scheduler-appointment-empty{border-left:1px solid #0000;border-right:1px solid #0000}.dx-scheduler-fixed-appointments .dx-draggable-dragging .dx-scheduler-appointment{border-right:none}.dx-scheduler-appointment-reduced .dx-scheduler-appointment-content{padding-right:40px}.dx-scheduler-appointment-recurrence .dx-scheduler-appointment-content{padding:5px 25px 5px 7px}.dx-rtl .dx-scheduler-appointment-recurrence .dx-scheduler-appointment-content{padding:5px 7px 5px 25px}.dx-scheduler-dropdown-appointment-date{color:#959595}.dx-scheduler-work-space-both-scrollbar .dx-scheduler-all-day-title{background-color:#fff}.dx-scheduler-agenda .dx-scheduler-group-header{font-size:14px;width:80px}.dx-scheduler-agenda .dx-scheduler-group-header-content{overflow:hidden;width:80px;padding:10px 0 0 10px;-webkit-box-shadow:inset 0 -1px 0 0 #c4c4c4;box-shadow:inset 0 -1px 0 0 #c4c4c4}.dx-scheduler-agenda .dx-scheduler-time-panel-cell{vertical-align:top;padding-top:10px;padding-left:10px;padding-right:0}.dx-rtl .dx-scheduler-agenda .dx-scheduler-time-panel-cell{padding-right:10px;padding-left:0}.dx-scheduler-agenda .dx-scheduler-group-header-content,.dx-scheduler-agenda .dx-scheduler-time-panel-cell{text-align:left}.dx-rtl .dx-scheduler-agenda .dx-scheduler-group-header-content,.dx-rtl .dx-scheduler-agenda .dx-scheduler-time-panel-cell{text-align:right}.dx-scheduler-agenda .dx-scheduler-date-table-cell,.dx-scheduler-agenda .dx-scheduler-time-panel-cell{-webkit-box-shadow:inset 0 -1px 0 0 #ddd9;box-shadow:inset 0 -1px 0 0 #ddd9}.dx-scheduler-agenda .dx-scheduler-date-table-last-row .dx-scheduler-date-table-cell,.dx-scheduler-agenda .dx-scheduler-date-table-last-row .dx-scheduler-time-panel-cell{-webkit-box-shadow:inset 0 -1px 0 0 #c4c4c4;box-shadow:inset 0 -1px 0 0 #c4c4c4}.dx-scheduler-agenda-nodata{font-size:14px}.dx-scheduler-appointment-tooltip-wrapper .dx-overlay-content .dx-popup-content .dx-list-item{border-top-width:1px}.dx-scheduler .dx-scheduler-overlay-panel .dx-overlay-content{background:#fff}.dx-layout-manager .dx-field-item:not(.dx-first-row){padding-top:10px}.dx-layout-manager .dx-field-item:not(.dx-first-col){padding-left:15px}.dx-layout-manager .dx-field-item:not(.dx-last-col){padding-right:15px}.dx-layout-manager .dx-field-empty-item{width:100%}.dx-layout-manager.dx-layout-manager-one-col .dx-single-column-item-content>.dx-field-item{padding-left:0;padding-right:0}.dx-layout-manager.dx-layout-manager-one-col .dx-form-group .dx-single-column-item-content>.dx-first-row.dx-col-0.dx-field-item{padding-top:0}.dx-layout-manager.dx-layout-manager-one-col .dx-box-item:not(:first-child) .dx-single-column-item-content>.dx-field-item{padding-top:10px}.dx-layout-manager .dx-label-h-align.dx-flex-layout{display:-webkit-box;display:-ms-flexbox;display:flex}.dx-layout-manager .dx-label-h-align.dx-flex-layout .dx-field-item-label{display:block}.dx-layout-manager .dx-label-h-align.dx-flex-layout .dx-field-item-content,.dx-layout-manager .dx-label-h-align.dx-flex-layout .dx-field-item-content-wrapper{-ms-flex-negative:1;flex-shrink:1;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:auto;flex-basis:auto;display:block}.dx-layout-manager .dx-label-h-align.dx-flex-layout:not(.dx-field-item-label-align){-webkit-box-align:baseline;-ms-flex-align:baseline;align-items:baseline}.dx-layout-manager .dx-label-h-align.dx-field-item-label-align:not(.dx-flex-layout) .dx-field-item-label{vertical-align:initial}.dx-layout-manager .dx-label-h-align .dx-field-item-content,.dx-layout-manager .dx-label-h-align .dx-field-item-content-wrapper,.dx-layout-manager .dx-label-h-align .dx-field-item-label{display:table-cell}.dx-layout-manager .dx-label-h-align .dx-field-item-content-wrapper .dx-field-item-content{display:block}.dx-layout-manager .dx-label-h-align .dx-field-item-label{white-space:nowrap;vertical-align:middle}.dx-layout-manager .dx-label-h-align .dx-field-item-label .dx-field-item-label-content{display:block}.dx-layout-manager .dx-label-h-align .dx-field-item-label .dx-field-item-custom-label-content{display:inline-block}.dx-layout-manager .dx-label-h-align .dx-field-item-content,.dx-layout-manager .dx-label-h-align .dx-field-item-label .dx-field-item-custom-label-content .dx-icon{vertical-align:top}.dx-layout-manager .dx-label-h-align .dx-field-item-content .dx-checkbox,.dx-layout-manager .dx-label-h-align .dx-field-item-content .dx-switch{margin-top:7px;margin-bottom:4px}.dx-layout-manager .dx-label-h-align .dx-field-item-content,.dx-layout-manager .dx-label-h-align .dx-field-item-content-wrapper{width:100%}.dx-layout-manager .dx-tabpanel .dx-multiview-item-content{padding:20px}.dx-field-item-label-location-top{display:block}.dx-field-item-label-location-top .dx-field-item-custom-label-content{display:inline-block}.dx-field-item-label-location-top .dx-field-item-custom-label-content .dx-icon{vertical-align:top}.dx-form-group-content{border-width:0;padding:0;margin:0}.dx-form-group-with-caption>.dx-form-group-content{padding-top:19px;margin-top:6px;border-top:1px solid #ddd;padding-bottom:20px}.dx-form-group-with-caption .dx-form-group.dx-form-group-with-caption{padding-left:20px}.dx-layout-manager-hidden-label{position:absolute;display:block;visibility:hidden}.dx-field-item-help-text{font-style:italic;white-space:normal}.dx-field-item-label-location-left{padding-right:10px}.dx-field-item-label-location-right{padding-left:10px}.dx-field-item-optional .dx-label>span:after,.dx-field-item-required .dx-label>span:after{content:attr(data-mark)}.dx-rtl .dx-field-item-optional-mark,.dx-rtl .dx-field-item-required-mark{unicode-bidi:embed}.dx-rtl .dx-field-item:not(.dx-first-col){padding-left:0;padding-right:15px}.dx-rtl .dx-field-item:not(.dx-last-col){padding-left:15px;padding-right:0}.dx-rtl .dx-field-item-label-location-left{padding-right:0;padding-left:10px}.dx-rtl .dx-field-item-label-location-right{padding-left:0;padding-right:10px}.dx-rtl .dx-layout-manager-one-col .dx-single-column-item-content>.dx-field-item{padding-right:0;padding-left:0}.dx-rtl .dx-form-group-with-caption .dx-form-group.dx-form-group-with-caption{padding-left:0;padding-right:20px}.dx-form-group-caption{font-size:20px}.dx-field-item-help-text,.dx-field-item-label-text{color:#333}.dx-field-item-optional .dx-label>span:after,.dx-field-item-optional-mark{color:#afafaf}.dx-field-item-required .dx-label>span:after,.dx-field-item-required-mark{color:#c9302c}.dx-field-item-custom-label-content .dx-icon{width:20px;height:20px;background-position:0 0;background-size:20px 20px;padding:0;font-size:20px;text-align:center;line-height:20px;margin-right:9px;margin-left:0}.dx-field-item-custom-label-content .dx-icon.dx-icon-right,.dx-rtl .dx-field-item-custom-label-content .dx-icon,.dx-rtl.dx-field-item-custom-label-content .dx-icon{margin-left:9px;margin-right:0}.dx-rtl .dx-field-item-custom-label-content .dx-icon.dx-icon-right,.dx-rtl.dx-field-item-custom-label-content .dx-icon.dx-icon-right{margin-right:9px;margin-left:0}.dx-filterbuilder.dx-rtl .dx-filterbuilder-action-icon,.dx-filterbuilder.dx-rtl .dx-filterbuilder-text{margin-left:5px;margin-right:0}.dx-filterbuilder.dx-rtl .dx-filterbuilder-group .dx-filterbuilder-group-content .dx-filterbuilder-group-content{padding-left:0;padding-right:26px}.dx-filterbuilder .dx-filterbuilder-action-icon,.dx-filterbuilder .dx-filterbuilder-text{margin-left:0;margin-right:5px}.dx-filterbuilder .dx-filterbuilder-action-icon:focus,.dx-filterbuilder .dx-filterbuilder-item-value-text:focus,.dx-filterbuilder .dx-filterbuilder-text:focus{outline:0}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item{display:inline-block;white-space:nowrap}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-text{display:inline-block;cursor:pointer;white-space:pre}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-text .dx-filterbuilder-range{white-space:nowrap}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-text .dx-filterbuilder-range-separator,.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-text .dx-filterbuilder-text-separator{margin:0 7px;opacity:.3}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-text .dx-filterbuilder-item-value-text,.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-text.dx-filterbuilder-group-operation,.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-text.dx-filterbuilder-item-field,.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-text.dx-filterbuilder-item-operation{min-width:20px;padding:2px 7px 3px}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-text .dx-texteditor{vertical-align:middle;margin-top:-7px;margin-bottom:-4px;display:inline-block}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-action{display:inline-block;cursor:pointer;position:relative}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-item .dx-filterbuilder-action.dx-filterbuilder-action-icon{padding:5px 8px}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-group-content .dx-filterbuilder-group-content{padding-left:26px}.dx-filterbuilder-operations .dx-treeview-item{padding-left:5px}.dx-filterbuilder-operations .dx-rtl .dx-treeview-item{padding-right:5px}.dx-filterbuilder-overlay{white-space:nowrap}.dx-filterbuilder-overlay .dx-treeview .dx-treeview-node{padding-left:0}.dx-filterbuilder-overlay .dx-treeview .dx-treeview-node .dx-treeview-node-container-opened{margin-left:15px}.dx-filterbuilder-overlay .dx-treeview.dx-rtl .dx-treeview-node{padding-right:0}.dx-filterbuilder-overlay .dx-treeview.dx-rtl .dx-treeview-node .dx-treeview-node-container-opened{margin-right:15px}.dx-filterbuilder-overlay .dx-overlay-content.dx-popup-normal{border-radius:0}.dx-filterbuilder-overlay .dx-overlay-content.dx-popup-normal>.dx-popup-content{padding:0}.dx-filterbuilder-overlay .dx-scrollable-container{max-height:360px}.dx-filterbuilder-overlay .dx-menu-items-container{padding:0}.dx-filterbuilder{background-color:#fff}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text{color:#333}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-group-operation{background-color:#d9534f4d}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-group-operation:hover{background-color:#d9534f80}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-group-operation.dx-state-active,.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-group-operation:focus{background-color:#d9534f;color:#fff}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-item-field{background-color:#337ab74d}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-item-field:hover{background-color:#337ab780}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-item-field.dx-state-active,.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-item-field:focus{background-color:#337ab7;color:#fff}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-item-operation{background-color:#5cb85c4d}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-item-operation:hover{background-color:#5cb85c80}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-item-operation.dx-state-active,.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text.dx-filterbuilder-item-operation:focus{background-color:#5cb85c;color:#fff}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text .dx-filterbuilder-item-value-text,.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text .dx-filterbuilder-item-value-text:hover{background-color:#dddddd80}.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text .dx-filterbuilder-item-value-text.dx-state-active,.dx-filterbuilder .dx-filterbuilder-group .dx-filterbuilder-text .dx-filterbuilder-item-value-text:focus{background-color:#ddd;color:#fff}.dx-filterbuilder .dx-filterbuilder-group .dx-icon-plus{color:#5cb85c4d}.dx-filterbuilder .dx-filterbuilder-group .dx-icon-plus:hover{color:#5cb85c80}.dx-filterbuilder .dx-filterbuilder-group .dx-icon-plus.dx-state-active,.dx-filterbuilder .dx-filterbuilder-group .dx-icon-plus:focus{color:#5cb85c}.dx-filterbuilder .dx-filterbuilder-group .dx-icon-remove{color:#d9534f4d}.dx-filterbuilder .dx-filterbuilder-group .dx-icon-remove:hover{color:#d9534f80}.dx-filterbuilder .dx-filterbuilder-group .dx-icon-remove:focus{color:#d9534f}.dx-filterbuilder-overlay.dx-filterbuilder-operations .dx-treeview-item .dx-icon{color:#898989;width:14px;height:14px;background-position:0 0;background-size:14px 14px;padding:0;font-size:14px;text-align:center;line-height:14px}.dx-filterbuilder .dx-filterbuilder-action-icon{margin-bottom:9px}.dx-filterbuilder .dx-filterbuilder-item-value-text,.dx-filterbuilder .dx-filterbuilder-text{border-radius:5px}.dx-filterbuilder .dx-filterbuilder-range-separator{color:#333}.dx-filterbuilder-overlay .dx-treeview-item{padding:5px 15px}.dx-filterbuilder-overlay .dx-rtl .dx-treeview-item{padding-left:15px}.dx-drawer{height:100%;width:100%}.dx-drawer-wrapper{position:relative;overflow:hidden;height:100%}.dx-drawer-panel-content{position:absolute;top:0;bottom:0}.dx-drawer-right .dx-drawer-panel-content{right:0}.dx-drawer-left .dx-drawer-panel-content{left:0}.dx-drawer-panel-content-push-top-or-bottom{width:100%}.dx-drawer-content{overflow:hidden;width:100%;height:100%;top:0}.dx-drawer-shader{z-index:1000;position:absolute;top:0;height:100%;width:100%;background-color:#00000080}.dx-drawer-push.dx-drawer-bottom .dx-drawer-panel-content{top:auto}.dx-drawer-shrink .dx-drawer-panel-content{position:relative;overflow:hidden;-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto;height:100%}.dx-drawer-shrink .dx-drawer-wrapper{-webkit-box-flex:1;-ms-flex:1 0 auto;flex:1 0 auto;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row}.dx-drawer-shrink .dx-drawer-content{position:relative;-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto}.dx-drawer-shrink.dx-drawer-bottom .dx-drawer-wrapper,.dx-drawer-shrink.dx-drawer-top .dx-drawer-wrapper{-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dx-drawer-overlap .dx-drawer-panel-content{overflow:visible}.dx-drawer-overlap .dx-drawer-panel-content.dx-overlay-wrapper{right:auto;left:auto}.dx-drawer-overlap.dx-drawer-left .dx-drawer-wrapper,.dx-drawer-overlap.dx-drawer-right .dx-drawer-wrapper{overflow-y:visible}.dx-drawer-overlap.dx-drawer-bottom .dx-drawer-wrapper,.dx-drawer-overlap.dx-drawer-top .dx-drawer-wrapper{overflow-x:visible}.dx-drawer-overlap.dx-drawer-right.dx-drawer-expand>.dx-drawer-wrapper>.dx-overlay>.dx-overlay-wrapper>.dx-overlay-content,.dx-drawer-overlap.dx-drawer-right.dx-drawer-slide>.dx-drawer-wrapper>.dx-overlay>.dx-overlay-wrapper>.dx-overlay-content{right:0}.dx-htmleditor{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column;border:1px solid #0000}.dx-htmleditor:not(.dx-state-disabled) li[data-list=checked],.dx-htmleditor:not(.dx-state-disabled) li[data-list=unchecked]{cursor:pointer}.dx-htmleditor-add-image-popup-with-tabs>.dx-overlay-content>.dx-popup-content{padding:0}.dx-htmleditor-hidden-content{display:none}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-multiview-wrapper{border-left-color:#0000;border-right-color:#0000;border-bottom-color:#0000}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-fix-ratio-container .dx-textbox{display:inline-block;width:calc(100% - 41px)}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-fix-ratio-container .dx-buttongroup{vertical-align:top;margin-left:5px;width:36px}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-fileuploader-wrapper{padding:0}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-fileuploader-upload-button{display:none}.dx-htmleditor-add-image-popup>.dx-overlay-content .dx-popup-title{border-bottom:0}.dx-quill-container{-webkit-box-sizing:border-box;box-sizing:border-box;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex:1;flex:1;-ms-flex-preferred-size:auto;flex-basis:auto;min-height:1px;margin:0;position:relative;overflow:hidden}.ql-clipboard{left:-100000px;height:1px;overflow-y:hidden;position:absolute;top:50%}.ql-clipboard p{margin:0;padding:0}.dx-htmleditor-content{-webkit-box-sizing:border-box;box-sizing:border-box;line-height:1.42;width:100%;outline:0;overflow-y:auto;padding:12px 15px;white-space:pre-wrap;word-wrap:break-word}.dx-htmleditor-content .dx-variable>span{padding:3px 6px;border-radius:8px;background:#337ab726}.dx-htmleditor-content>*{cursor:text}.dx-htmleditor-content blockquote,.dx-htmleditor-content h1,.dx-htmleditor-content h2,.dx-htmleditor-content h3,.dx-htmleditor-content h4,.dx-htmleditor-content h5,.dx-htmleditor-content h6,.dx-htmleditor-content ol,.dx-htmleditor-content p,.dx-htmleditor-content pre,.dx-htmleditor-content ul{margin:0;padding:0}.dx-htmleditor-content h1,.dx-htmleditor-content h2,.dx-htmleditor-content h3,.dx-htmleditor-content h4,.dx-htmleditor-content h5,.dx-htmleditor-content h6,.dx-htmleditor-content ol,.dx-htmleditor-content p,.dx-htmleditor-content ul{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9}.dx-htmleditor-content table{border-collapse:collapse;table-layout:fixed;width:100%}.dx-htmleditor-content td,.dx-htmleditor-content th{border:1px solid #000;padding:2px 5px}.dx-htmleditor-content ol,.dx-htmleditor-content ul{padding-left:1.5em}.dx-rtl .dx-htmleditor-content ol,.dx-rtl .dx-htmleditor-content ul{padding-left:0;padding-right:1.5em}.dx-htmleditor-content li{list-style-type:none;padding-left:1.5em;position:relative}.dx-htmleditor-content li[data-list=bullet]:before{content:\"•\"}.dx-htmleditor-content li[data-list=checked]:before{content:\"☑\"}.dx-htmleditor-content li[data-list=unchecked]:before{content:\"â˜\"}.dx-htmleditor-content li:before{display:inline-block;margin-left:-1.5em;margin-right:.3em;text-align:right;white-space:nowrap;width:1.2em}.dx-htmleditor-content li>.ql-ui{visibility:hidden}.dx-htmleditor-content li[data-list=checked]>.ql-ui,.dx-htmleditor-content li[data-list=unchecked]>.ql-ui{visibility:visible}.dx-rtl .dx-htmleditor-content li{padding-left:0;padding-right:1.5em}.dx-htmleditor-content li[data-list=ordered]{counter-reset:list-1 list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;counter-increment:list-0}.dx-htmleditor-content li[data-list=ordered]:before{content:counter(list-0,decimal) \". \"}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-1{counter-increment:list-1}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-1:before{content:counter(list-1,lower-alpha) \". \"}.dx-htmleditor-content li.ql-indent-1{counter-reset:list-2 list-3 list-4 list-5 list-6 list-7 list-8 list-9;padding-left:4.5em}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-2{counter-increment:list-2}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-2:before{content:counter(list-2,lower-roman) \". \"}.dx-htmleditor-content li.ql-indent-2{counter-reset:list-3 list-4 list-5 list-6 list-7 list-8 list-9;padding-left:7.5em}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-3{counter-increment:list-3}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-3:before{content:counter(list-3,decimal) \". \"}.dx-htmleditor-content li.ql-indent-3{counter-reset:list-4 list-5 list-6 list-7 list-8 list-9;padding-left:10.5em}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-4{counter-increment:list-4}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-4:before{content:counter(list-4,lower-alpha) \". \"}.dx-htmleditor-content li.ql-indent-4{counter-reset:list-5 list-6 list-7 list-8 list-9;padding-left:13.5em}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-5{counter-increment:list-5}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-5:before{content:counter(list-5,lower-roman) \". \"}.dx-htmleditor-content li.ql-indent-5{counter-reset:list-6 list-7 list-8 list-9;padding-left:16.5em}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-6{counter-increment:list-6}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-6:before{content:counter(list-6,decimal) \". \"}.dx-htmleditor-content li.ql-indent-6{counter-reset:list-7 list-8 list-9;padding-left:19.5em}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-7{counter-increment:list-7}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-7:before{content:counter(list-7,lower-alpha) \". \"}.dx-htmleditor-content li.ql-indent-7{counter-reset:list-8 list-9;padding-left:22.5em}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-8{counter-increment:list-8}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-8:before{content:counter(list-8,lower-roman) \". \"}.dx-htmleditor-content li.ql-indent-8{counter-reset:list-9;padding-left:25.5em}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-9{counter-increment:list-9}.dx-htmleditor-content ol li[data-list=ordered].ql-indent-9:before{content:counter(list-9,decimal) \". \"}.dx-htmleditor-content .ql-indent-1{padding-left:3em}.dx-rtl .dx-htmleditor-content .ql-indent-1{padding-left:0;padding-right:3em}.dx-rtl .dx-htmleditor-content li.ql-indent-1{padding-left:0;padding-right:4.5em}.dx-htmleditor-content .ql-indent-2{padding-left:6em}.dx-rtl .dx-htmleditor-content .ql-indent-2{padding-left:0;padding-right:6em}.dx-rtl .dx-htmleditor-content li.ql-indent-2{padding-left:0;padding-right:7.5em}.dx-htmleditor-content .ql-indent-3{padding-left:9em}.dx-rtl .dx-htmleditor-content .ql-indent-3{padding-left:0;padding-right:9em}.dx-rtl .dx-htmleditor-content li.ql-indent-3{padding-left:0;padding-right:10.5em}.dx-htmleditor-content .ql-indent-4{padding-left:12em}.dx-rtl .dx-htmleditor-content .ql-indent-4{padding-left:0;padding-right:12em}.dx-rtl .dx-htmleditor-content li.ql-indent-4{padding-left:0;padding-right:13.5em}.dx-htmleditor-content .ql-indent-5{padding-left:15em}.dx-rtl .dx-htmleditor-content .ql-indent-5{padding-left:0;padding-right:15em}.dx-rtl .dx-htmleditor-content li.ql-indent-5{padding-left:0;padding-right:16.5em}.dx-htmleditor-content .ql-indent-6{padding-left:18em}.dx-rtl .dx-htmleditor-content .ql-indent-6{padding-left:0;padding-right:18em}.dx-rtl .dx-htmleditor-content li.ql-indent-6{padding-left:0;padding-right:19.5em}.dx-htmleditor-content .ql-indent-7{padding-left:21em}.dx-rtl .dx-htmleditor-content .ql-indent-7{padding-left:0;padding-right:21em}.dx-rtl .dx-htmleditor-content li.ql-indent-7{padding-left:0;padding-right:22.5em}.dx-htmleditor-content .ql-indent-8{padding-left:24em}.dx-rtl .dx-htmleditor-content .ql-indent-8{padding-left:0;padding-right:24em}.dx-rtl .dx-htmleditor-content li.ql-indent-8{padding-left:0;padding-right:25.5em}.dx-htmleditor-content .ql-indent-9{padding-left:27em}.dx-rtl .dx-htmleditor-content .ql-indent-9{padding-left:0;padding-right:27em}.dx-htmleditor-content li.ql-indent-9{padding-left:28.5em}.dx-rtl .dx-htmleditor-content li.ql-indent-9{padding-left:0;padding-right:28.5em}.dx-rtl .dx-htmleditor-content li:before{margin-left:.3em;margin-right:-1.5em;text-align:left}.dx-htmleditor-content table td,.dx-htmleditor-content table th{outline:0}.dx-htmleditor-content .ql-code-block-container{font-family:monospace}.dx-htmleditor-content .ql-code-block-container,.dx-htmleditor-content code{background-color:#bfbfbf26;color:#333c}.dx-htmleditor-content .ql-video{display:block;max-width:100%}.dx-htmleditor-content .ql-video.ql-align-center{margin:0 auto}.dx-htmleditor-content .ql-video.ql-align-right{margin:0 0 0 auto}.dx-htmleditor-content .ql-font-serif{font-family:Georgia,Times New Roman,serif}.dx-htmleditor-content .ql-font-monospace{font-family:Monaco,Courier New,monospace}.dx-htmleditor-content .ql-direction-rtl{direction:rtl;text-align:inherit}.dx-htmleditor-content.ql-blank:before{content:attr(data-placeholder);font-style:italic;left:15px;pointer-events:none;position:absolute;right:15px;color:#999}.dx-htmleditor-content.ql-blank:after{content:attr(data-placeholder);z-index:-1;visibility:hidden}.dx-htmleditor-content.ql-blank[data-placeholder]>p{height:.1px}.dx-htmleditor-content blockquote{padding-left:12px;border-left:4px solid}.dx-rtl .dx-htmleditor-content blockquote{padding-left:0;padding-right:12px;border-left:none;border-right:4px solid}.dx-suggestion-list-wrapper .dx-list .dx-scrollable-content{margin:0}.dx-suggestion-list{min-width:50px}.dx-suggestion-list .dx-list-item{display:block}.dx-suggestion-list .dx-list-item-icon{border-radius:50%;vertical-align:text-bottom}.dx-formdialog-form{min-width:360px}.dx-overlay-content.dx-popup-fullscreen .dx-formdialog-form{min-width:240px}.dx-formdialog-field-target .dx-field-item-content{text-align:right}.dx-rtl .dx-formdialog-field-target .dx-field-item-content{text-align:left}.dx-background-format .dx-icon-background,.dx-background-format .dx-icon-color,.dx-color-format .dx-icon-background,.dx-color-format .dx-icon-color{border-bottom:3px solid #0000}.dx-htmleditor-toolbar-separator{border-left:1px solid #0000}.dx-htmleditor-toolbar-menu-separator{width:100%;border-top:1px solid #0000}.dx-htmleditor-toolbar-menu-separator:before{content:none}.dx-resize-frame{position:absolute;-webkit-box-sizing:content-box;box-sizing:initial;border:1px dashed #789}.dx-resize-frame .dx-resizable-handle-corner-bottom-left,.dx-resize-frame .dx-resizable-handle-corner-bottom-right,.dx-resize-frame .dx-resizable-handle-corner-top-left,.dx-resize-frame .dx-resizable-handle-corner-top-right{border:1px solid #fff;width:11px;height:11px;border-radius:0}.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-bottom-left,.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-bottom-right,.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-top-left,.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-top-right{width:15px;height:15px}.dx-resize-frame .dx-resizable-handle-corner-bottom-right,.dx-resize-frame .dx-resizable-handle-corner-top-right{right:-5.5px}.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-bottom-right,.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-top-right{right:-7.5px}.dx-resize-frame .dx-resizable-handle-corner-bottom-left,.dx-resize-frame .dx-resizable-handle-corner-top-left{left:-5.5px}.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-bottom-left,.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-top-left{left:-7.5px}.dx-resize-frame .dx-resizable-handle-corner-top-left,.dx-resize-frame .dx-resizable-handle-corner-top-right{top:-5.5px}.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-top-left,.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-top-right{top:-7.5px}.dx-resize-frame .dx-resizable-handle-corner-bottom-left,.dx-resize-frame .dx-resizable-handle-corner-bottom-right{bottom:-5.5px}.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-bottom-left,.dx-touch-device.dx-resize-frame .dx-resizable-handle-corner-bottom-right{bottom:-7.5px}.dx-resize-frame .dx-resizable-handle-bottom:after,.dx-resize-frame .dx-resizable-handle-left:after,.dx-resize-frame .dx-resizable-handle-right:after,.dx-resize-frame .dx-resizable-handle-top:after{content:\"\";position:absolute;width:11px;height:11px;border:1px solid #fff}.dx-touch-device.dx-resize-frame .dx-resizable-handle-bottom:after,.dx-touch-device.dx-resize-frame .dx-resizable-handle-left:after,.dx-touch-device.dx-resize-frame .dx-resizable-handle-right:after,.dx-touch-device.dx-resize-frame .dx-resizable-handle-top:after{width:15px;height:15px}.dx-resize-frame .dx-resizable-handle-left:after,.dx-resize-frame .dx-resizable-handle-right:after{top:calc(50% - 5.5px)}.dx-touch-device.dx-resize-frame .dx-resizable-handle-left:after,.dx-touch-device.dx-resize-frame .dx-resizable-handle-right:after{top:calc(50% - 7.5px)}.dx-resize-frame .dx-resizable-handle-bottom:after,.dx-resize-frame .dx-resizable-handle-top:after{left:calc(50% - 5.5px)}.dx-touch-device.dx-resize-frame .dx-resizable-handle-bottom:after,.dx-touch-device.dx-resize-frame .dx-resizable-handle-top:after{left:calc(50% - 7.5px)}.dx-resize-frame .dx-resizable-handle-right:after{right:-5.5px}.dx-touch-device.dx-resize-frame .dx-resizable-handle-right:after{right:-7.5px}.dx-resize-frame .dx-resizable-handle-left:after{left:-5.5px}.dx-touch-device.dx-resize-frame .dx-resizable-handle-left:after{left:-7.5px}.dx-resize-frame .dx-resizable-handle-top:after{top:-5.5px}.dx-touch-device.dx-resize-frame .dx-resizable-handle-top:after{top:-7.5px}.dx-resize-frame .dx-resizable-handle-bottom:after{bottom:-5.5px}.dx-touch-device.dx-resize-frame .dx-resizable-handle-bottom:after{bottom:-7.5px}.dx-mention{padding:1px 0;border-radius:2px}.dx-mention .dx-template-wrapper{white-space:nowrap;display:inline-block}.dx-mention>span{margin:0 2px}.dx-table-resize-frame{position:absolute;pointer-events:none}.dx-table-resize-frame>div{position:absolute;pointer-events:auto;background-color:initial}.dx-table-resize-frame .dx-htmleditor-column-resizer{width:5px;top:0;height:100%;cursor:col-resize}.dx-table-resize-frame .dx-htmleditor-highlighted-column{width:3px;top:0;height:100%}.dx-table-resize-frame .dx-htmleditor-row-resizer{height:5px;left:0;width:100%;cursor:row-resize}.dx-table-resize-frame .dx-htmleditor-highlighted-row{height:3px;left:0;width:100%}.dx-htmleditor{border-color:#ddd}.dx-htmleditor .dx-htmleditor-toolbar-wrapper{padding:5px;position:relative}.dx-htmleditor .dx-htmleditor-toolbar-wrapper:first-child{border-bottom:1px solid #ddd}.dx-htmleditor.dx-state-readonly{border-style:dashed}.dx-htmleditor.dx-state-readonly .dx-htmleditor-toolbar-wrapper:before{position:absolute;top:1px;bottom:1px;left:1px;right:1px;z-index:2;background-color:#fff3;content:\"\";pointer-events:none}.dx-htmleditor.dx-state-readonly .dx-toolbar-button .dx-button.dx-state-disabled{opacity:.5}.dx-htmleditor.dx-htmleditor-outlined{border-radius:4px}.dx-htmleditor.dx-htmleditor-outlined.dx-state-hover{border-color:#337ab766}.dx-htmleditor.dx-htmleditor-outlined.dx-state-active,.dx-htmleditor.dx-htmleditor-outlined.dx-state-focused{border-color:#337ab7}.dx-htmleditor.dx-htmleditor-outlined.dx-invalid{border-color:#d9534f66}.dx-htmleditor.dx-htmleditor-outlined.dx-invalid.dx-state-active,.dx-htmleditor.dx-htmleditor-outlined.dx-invalid.dx-state-focused{border-color:#d9534f}.dx-htmleditor.dx-htmleditor-filled{border-color:#0000;background:#3333330d;border-radius:4px}.dx-htmleditor.dx-htmleditor-filled.dx-state-readonly{border-style:dashed}.dx-htmleditor.dx-htmleditor-filled.dx-state-readonly.dx-state-active,.dx-htmleditor.dx-htmleditor-filled.dx-state-readonly.dx-state-focused{background-color:#33333308}.dx-htmleditor.dx-htmleditor-filled.dx-state-hover,.dx-htmleditor.dx-htmleditor-filled.dx-state-hover.dx-invalid.dx-state-readonly:not(.dx-state-focused){background-color:#337ab712}.dx-htmleditor.dx-htmleditor-filled.dx-state-active,.dx-htmleditor.dx-htmleditor-filled.dx-state-focused{background-color:initial;border-color:#337ab7}.dx-htmleditor.dx-htmleditor-filled.dx-invalid{background-color:#d9534f1a}.dx-htmleditor.dx-htmleditor-filled.dx-invalid.dx-state-active,.dx-htmleditor.dx-htmleditor-filled.dx-invalid.dx-state-focused{background:0 0;border-color:#d9534f}.dx-htmleditor.dx-htmleditor-underlined{border-color:#0000 #0000 #ddd}.dx-htmleditor.dx-htmleditor-underlined .dx-htmleditor-content{padding-left:0}.dx-htmleditor.dx-htmleditor-underlined.dx-state-hover{border-bottom-color:#337ab766}.dx-htmleditor.dx-htmleditor-underlined.dx-state-active,.dx-htmleditor.dx-htmleditor-underlined.dx-state-focused{border-bottom-color:#337ab7}.dx-htmleditor.dx-htmleditor-underlined.dx-state-active.dx-invalid,.dx-htmleditor.dx-htmleditor-underlined.dx-state-focused.dx-invalid{border-bottom-color:#d9534f}.dx-htmleditor.dx-htmleditor-underlined.dx-rtl .dx-htmleditor-content{padding-left:15px;padding-right:0}.dx-htmleditor.dx-htmleditor-underlined.dx-invalid{border-bottom-color:#d9534f66}.dx-htmleditor.dx-htmleditor-underlined.dx-invalid.dx-state-focused{border-color:#0000 #0000 #d9534f}.dx-htmleditor-content blockquote{color:#333c;border-left-color:#ddd}.dx-rtl .dx-htmleditor-content blockquote{border-right-color:#ddd}.dx-htmleditor-content td,.dx-htmleditor-content th{border-color:#ddd}.dx-htmleditor-toolbar{background-color:initial}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text{background-color:#0000002b}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-state-hover,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-state-hover{background-color:#0000001c}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-state-focused,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-state-focused{background-color:#00000024}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-success,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-success{background-color:#5cb85c4d}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-success.dx-state-focused,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-success.dx-state-hover,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-success.dx-state-focused,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-success.dx-state-hover{background-color:#5cb85c33}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-default,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-default{background-color:#337ab74d}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-default.dx-state-focused,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-default.dx-state-hover,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-default.dx-state-focused,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-default.dx-state-hover{background-color:#337ab733}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-danger,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-danger{background-color:#d9534f4d}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-danger.dx-state-focused,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-danger.dx-state-hover,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-danger.dx-state-focused,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-danger.dx-state-hover{background-color:#d9534f33}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-normal,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-normal .dx-icon,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-normal,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-normal .dx-icon{color:#333}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-success,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-success .dx-icon,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-success,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-success .dx-icon{color:#5cb85c}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-default,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-default .dx-icon,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-default,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-default .dx-icon{color:#337ab7}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-danger,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-outlined.dx-button-danger .dx-icon,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-danger,.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-text.dx-button-danger .dx-icon{color:#d9534f}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained{background-color:#fff}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-state-hover{background-color:#f5f5f5}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-state-focused{background-color:#ebebeb}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-button-success{background-color:#5cb85c}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-button-success.dx-state-hover{background-color:#46a046}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-button-success.dx-state-focused{background-color:#419641}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-button-default{background-color:#337ab7}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-button-default.dx-state-hover{background-color:#296293}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-button-default.dx-state-focused{background-color:#265a87}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-button-danger{background-color:#d9534f}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-button-danger.dx-state-hover{background-color:#ce312c}.dx-htmleditor-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-mode-contained.dx-button-danger.dx-state-focused{background-color:#c12e2a}.dx-htmleditor-toolbar .dx-htmleditor-toolbar-separator{height:36px}.dx-htmleditor-toolbar-format.dx-dropdowneditor.dx-editor-filled{background-color:initial}.dx-htmleditor-toolbar-format.dx-background-format .dx-button-content,.dx-htmleditor-toolbar-format.dx-color-format .dx-button-content{padding-bottom:5px}.dx-htmleditor-toolbar-format.dx-size-format{width:105px}.dx-htmleditor-toolbar-separator{border-left-color:#ddd}.dx-htmleditor-toolbar-menu-separator{border-top-color:#ddd}.dx-resize-frame{border-color:#337ab7}.dx-resize-frame .dx-resizable-handle-bottom:after,.dx-resize-frame .dx-resizable-handle-corner-bottom-left,.dx-resize-frame .dx-resizable-handle-corner-bottom-right,.dx-resize-frame .dx-resizable-handle-corner-top-left,.dx-resize-frame .dx-resizable-handle-corner-top-right,.dx-resize-frame .dx-resizable-handle-left:after,.dx-resize-frame .dx-resizable-handle-right:after,.dx-resize-frame .dx-resizable-handle-top:after{background-color:#337ab7}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-tab:first-child{-webkit-box-shadow:inset 0 1px #ddd,inset -1px 0 #ddd,inset 0 0 #ddd,inset 0 0 #ddd;box-shadow:inset 0 1px #ddd,inset -1px 0 #ddd,inset 0 0 #ddd,inset 0 0 #ddd}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-tabpanel.dx-state-focused .dx-tab.dx-tab-selected:first-child{-webkit-box-shadow:inset 0 1px #337ab7,inset -1px 0 #337ab7,inset 0 0 #337ab7;box-shadow:inset 0 1px #337ab7,inset -1px 0 #337ab7,inset 0 0 #337ab7}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-tabpanel.dx-state-focused .dx-tab:first-child{-webkit-box-shadow:inset 0 1px #ddd,inset 0 0 #ddd,inset 0 -1px #337ab7,inset 0 0 #ddd;box-shadow:inset 0 1px #ddd,inset 0 0 #ddd,inset 0 -1px #337ab7,inset 0 0 #ddd}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-collection .dx-field-item:not(.dx-last-col){padding-right:5px}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-collection .dx-field-item:not(.dx-first-col){padding-left:0}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-fileuploader-input-wrapper{padding:60px 20px;border:3px dashed #ddd}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-fileuploader-input-wrapper .dx-fileuploader-input-label{border-width:0}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-fileuploader-dragover .dx-fileuploader-input{padding-top:7px;padding-bottom:8px}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-fileuploader-dragover .dx-fileuploader-input-label{padding-top:8px}.dx-htmleditor-add-image-popup>.dx-overlay-content>.dx-popup-content .dx-fileuploader-dragover .dx-fileuploader-content{background-color:#dddc}.dx-mention{background-color:#ddd;color:#333}.dx-suggestion-list-wrapper{height:100%}.dx-suggestion-list-wrapper.dx-popup-wrapper .dx-overlay-content{border-top-width:0;border-bottom-width:1px}.dx-suggestion-list-wrapper.dx-popup-wrapper .dx-overlay-content.dx-dropdowneditor-overlay-flipped{border-top-width:1px;border-bottom-width:0}.dx-suggestion-list-wrapper .dx-popup-content{height:100%;padding:1px}.dx-suggestion-list-wrapper .dx-list{height:100%;min-height:39.0001px}.dx-suggestion-list-wrapper .dx-list:not(.dx-list-select-decorator-enabled){min-height:33.0001px}.dx-suggestion-list-wrapper .dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item-content{padding:7px 9px}.dx-suggestion-list-wrapper .dx-list-select-all{padding:12px 0 8px}.dx-suggestion-list-wrapper .dx-empty-message,.dx-suggestion-list-wrapper .dx-list-item{border-top:0}.dx-suggestion-list-wrapper .dx-empty-message:last-of-type,.dx-suggestion-list-wrapper .dx-list-item:last-of-type{border-bottom:none}.dx-table-resize-frame>.dx-draggable-dragging+.dx-htmleditor-highlighted-column,.dx-table-resize-frame>.dx-draggable-dragging+.dx-htmleditor-highlighted-row{background-color:#337ab780}.dx-fa-button.dx-fa-button-main .dx-overlay-shader{background-color:#fffc}.dx-fa-button.dx-fa-button-main .dx-overlay-content{min-width:48px;max-height:48px;background-color:#337ab7;color:#fff;overflow:visible;border-radius:24px;-webkit-box-shadow:0 6px 12px #0003;box-shadow:0 6px 12px #0003}.dx-fa-button.dx-fa-button-main .dx-overlay-content.dx-state-hover{background-color:#285f8f}.dx-fa-button.dx-fa-button-main .dx-overlay-content.dx-state-hover .dx-fa-button-icon{background-color:initial}.dx-fa-button.dx-fa-button-main .dx-overlay-content.dx-state-active{background-color:#22527b}.dx-fa-button.dx-fa-button-main .dx-overlay-content.dx-state-active .dx-fa-button-icon{background-color:initial}.dx-fa-button.dx-fa-button-main .dx-overlay-content .dx-fa-button-icon,.dx-fa-button.dx-fa-button-main .dx-overlay-content .dx-fa-button-icon-close{padding:15px;-webkit-box-shadow:none;box-shadow:none;background-color:initial}.dx-fa-button.dx-fa-button-main .dx-overlay-content .dx-fa-button-label-wrapper{position:static}.dx-fa-button.dx-fa-button-main .dx-overlay-content .dx-fa-button-label-wrapper .dx-fa-button-label{background:0 0;color:#fff;-webkit-box-shadow:none;box-shadow:none;border-radius:0;margin-right:0}.dx-fa-button.dx-fa-button-main .dx-overlay-content .dx-inkripple{border-radius:24px}.dx-fa-button.dx-fa-button-main.dx-fa-button-with-label .dx-overlay-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.dx-fa-button.dx-fa-button-main.dx-fa-button-with-label .dx-overlay-content .dx-fa-button-icon,.dx-fa-button.dx-fa-button-main.dx-fa-button-with-label .dx-overlay-content .dx-fa-button-icon-close{padding:15px 0 15px 12px}.dx-fa-button .dx-fa-button-icon,.dx-fa-button .dx-fa-button-icon-close{padding:6px;width:18px;height:18px;-webkit-box-sizing:content-box;box-sizing:initial}.dx-fa-button .dx-fa-button-icon .dx-icon,.dx-fa-button .dx-fa-button-icon-close .dx-icon{font-size:18px}.dx-fa-button .dx-fa-button-icon img,.dx-fa-button .dx-fa-button-icon-close img{width:100%;height:100%}.dx-fa-button .dx-overlay-content{border-radius:50%;cursor:pointer;min-width:30px;max-height:30px;background-color:initial;color:#333;overflow:visible;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:horizontal;-webkit-box-direction:normal;-ms-flex-direction:row;flex-direction:row;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dx-fa-button .dx-overlay-content.dx-fa-button-content-reverse{-webkit-box-orient:horizontal;-webkit-box-direction:reverse;-ms-flex-direction:row-reverse;flex-direction:row-reverse}.dx-fa-button .dx-overlay-content.dx-fa-button-content-reverse .dx-fa-button-label-wrapper{right:auto;left:30px}.dx-fa-button .dx-overlay-content.dx-fa-button-content-reverse .dx-fa-button-label-wrapper .dx-fa-button-label{margin-left:10px;margin-right:auto}.dx-fa-button .dx-overlay-content.dx-state-hover .dx-fa-button-icon{background-color:#ebebeb}.dx-fa-button .dx-overlay-content.dx-state-active .dx-fa-button-icon{background-color:#c2c2c2}.dx-fa-button .dx-overlay-content .dx-fa-button-label-wrapper{position:absolute;right:30px}.dx-fa-button .dx-overlay-content .dx-fa-button-label-wrapper .dx-fa-button-label{background-color:#fff;color:#333;white-space:nowrap;border-radius:4px;padding:0 10px;margin-right:10px;line-height:26px;height:26px;-webkit-box-shadow:0 1px 4px #0003;box-shadow:0 1px 4px #0003;font-size:12px}.dx-fa-button .dx-overlay-content .dx-fa-button-icon{-webkit-box-shadow:0 6px 12px #0003;box-shadow:0 6px 12px #0003;background-color:#fff;border-radius:50%;position:relative}.dx-fa-button .dx-overlay-content .dx-inkripple{overflow:hidden;border-radius:15px}.dx-fa-button.dx-fa-button-main .dx-overlay-content .dx-fa-button-label{padding:0 16px 0 8px;font-size:14px;margin-right:0}.dx-filemanager{height:500px;border:1px solid}.dx-filemanager .dx-filemanager-wrapper{height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dx-filemanager .dx-filemanager-notification-drawer,.dx-filemanager .dx-filemanager-notification-drawer-panel{height:100%}.dx-filemanager .dx-filemanager-notification-popup .dx-overlay-content{min-width:240px;max-width:93vw}@media (min-width:431px){.dx-filemanager .dx-filemanager-notification-popup .dx-overlay-content{max-width:400px}}.dx-filemanager .dx-filemanager-notification-popup .dx-popup-content{padding:15px}.dx-filemanager .dx-filemanager-notification-popup .dx-popup-content .dx-filemanager-progress-box{padding:5px 0 0}.dx-filemanager .dx-filemanager-notification-popup .dx-filemanager-notification-common{padding-bottom:10px;border-bottom-width:1px;border-bottom-style:solid}.dx-filemanager .dx-filemanager-notification-popup .dx-filemanager-notification-common-no-item{border-style:none}.dx-filemanager .dx-drawer-shrink .dx-filemanager-progress-panel{border-left-width:1px;border-left-style:solid}.dx-filemanager .dx-filemanager-progress-panel{width:340px;height:100%}.dx-filemanager .dx-filemanager-progress-panel .dx-filemanager-progress-panel-container{padding:10px 20px 20px}.dx-filemanager .dx-filemanager-progress-panel .dx-filemanager-progress-panel-title{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;padding:0 0 5px 10px}.dx-filemanager .dx-filemanager-progress-panel .dx-filemanager-progress-panel-title .dx-filemanager-progress-panel-title-text{-webkit-box-flex:1;-ms-flex:1 1 auto;flex:1 1 auto;-ms-flex-item-align:center;align-self:center;font-size:18px;font-weight:600}.dx-filemanager .dx-filemanager-progress-panel .dx-filemanager-progress-panel-common .dx-filemanager-progress-box-common{font-weight:600}.dx-filemanager .dx-filemanager-progress-panel .dx-filemanager-progress-panel-separator{height:20px}.dx-filemanager .dx-filemanager-progress-panel .dx-filemanager-i.dx-filemanager-i-cancel{width:16px;height:16px}.dx-filemanager .dx-filemanager-progress-panel .dx-filemanager-progress-panel-details>.dx-filemanager-progress-box{margin-bottom:8px;border-radius:2px}.dx-filemanager .dx-filemanager-progress-box{padding:10px 0 10px 10px;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dx-filemanager .dx-filemanager-progress-box.dx-filemanager-progress-box-without-close-button{padding-right:10px}.dx-filemanager .dx-filemanager-progress-box .dx-filemanager-progress-box-image{margin-right:10px}.dx-filemanager .dx-filemanager-progress-box .dx-filemanager-progress-box-wrapper{-webkit-box-flex:1;-ms-flex:1 auto;flex:1 auto;overflow:hidden}.dx-filemanager .dx-filemanager-progress-box .dx-filemanager-progress-box-common{padding:5px 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dx-filemanager .dx-filemanager-progress-box .dx-filemanager-progress-box-progress-bar,.dx-filemanager .dx-filemanager-progress-box .dx-filemanager-progress-box-status{padding:5px 0}.dx-filemanager .dx-filemanager-progress-box .dx-filemanager-progress-box-close-button{margin-left:5px}.dx-filemanager .dx-filemanager-progress-box-error{border-radius:2px;display:inline-block;border-width:0;padding:2px 8px 3px;font-size:.85em;line-height:normal;word-wrap:break-word;overflow-y:auto;max-height:150px}.dx-filemanager .dx-filemanager-toolbar .dx-filemanager-toolbar-separator-item{width:1px;margin-right:5px}.dx-filemanager .dx-splitter-wrapper.dx-splitter-inactive,.dx-filemanager .dx-splitter-wrapper.dx-splitter-initial{right:3px}.dx-filemanager .dx-filemanager-container{display:-webkit-box;display:-ms-flexbox;display:flex;height:100%;border-top:1px solid;-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden}.dx-filemanager .dx-filemanager-container .dx-filemanager-adaptivity-drawer-panel{height:100%}.dx-filemanager .dx-filemanager-container .dx-filemanager-dirs-panel{padding:5px 10px;height:100%;width:100%;display:block}.dx-filemanager .dx-filemanager-container .dx-drawer-opened .dx-splitter.dx-state-disabled{width:1px}.dx-filemanager .dx-filemanager-container .dx-drawer-shrink .dx-drawer-panel-content{overflow:visible}.dx-filemanager .dx-filemanager-container .dx-drawer-panel-content{display:block;width:30%}.dx-filemanager .dx-filemanager-container .dx-drawer-panel-content.dx-drawer-panel-content-initial{min-width:250px;max-width:300px}.dx-filemanager .dx-filemanager-container .dx-drawer-panel-content.dx-drawer-panel-content-adaptive{max-width:100%}.dx-filemanager .dx-filemanager-dirs-panel{height:100%}.dx-filemanager .dx-filemanager-breadcrumbs{padding:2px 11px;border-bottom:1px solid}.dx-filemanager .dx-filemanager-breadcrumbs .dx-menu-item-content{padding-left:0;padding-right:0}.dx-filemanager .dx-filemanager-breadcrumbs .dx-filemanager-breadcrumbs-parent-folder-item .dx-menu-item-content{padding-left:2px;padding-right:2px}.dx-filemanager .dx-filemanager-breadcrumbs .dx-filemanager-breadcrumbs-separator-item .dx-menu-item-content{width:1px;padding-left:0;padding-right:0;margin:0 10px}.dx-filemanager .dx-filemanager-breadcrumbs .dx-filemanager-breadcrumbs-path-separator-item .dx-menu-item-content{padding-left:1px;padding-right:1px}.dx-filemanager .dx-filemanager-breadcrumbs .dx-filemanager-breadcrumbs-path-separator-item.dx-state-hover,.dx-filemanager .dx-filemanager-breadcrumbs .dx-filemanager-breadcrumbs-separator-item.dx-state-hover{cursor:default}.dx-filemanager .dx-filemanager-editing-container,.dx-filemanager .dx-filemanager-notification-container{position:absolute;top:-5000px;left:-5000px}.dx-filemanager .dx-row .dx-filemanager-file-actions-button{float:right}.dx-filemanager .dx-row .dx-filemanager-file-actions-button .dx-button-content{padding:0}.dx-filemanager .dx-row.dx-row-focused .dx-filemanager-file-actions-button,.dx-filemanager .dx-row.dx-selection .dx-filemanager-file-actions-button,.dx-filemanager .dx-row.dx-state-hover .dx-filemanager-file-actions-button{visibility:visible}.dx-filemanager .dx-filemanager-items-panel{width:100%;height:100%;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-direction:column;flex-direction:column}.dx-filemanager .dx-filemanager-fileuploader-dropzone-placeholder{position:relative;top:0;left:0;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none;z-index:1000}.dx-filemanager .dx-filemanager-thumbnails{width:100%;height:100%;overflow:hidden}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-view-port{width:100%;height:100%;overflow-x:hidden;overflow-y:auto;-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-view-port .dx-filemanager-thumbnails-container{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-view-port .dx-filemanager-thumbnails-item{float:left;text-align:center;cursor:pointer;white-space:nowrap;width:100px;height:100px;border:1px dashed #0000;margin:5px;-webkit-box-sizing:border-box;box-sizing:border-box}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-view-port .dx-filemanager-thumbnails-item .dx-filemanager-thumbnails-item-content{overflow:hidden;padding:13px 0 10px}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-view-port .dx-filemanager-thumbnails-item .dx-filemanager-thumbnails-item-content .dx-filemanager-thumbnails-item-thumbnail{border:0}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-view-port .dx-filemanager-thumbnails-item .dx-filemanager-thumbnails-item-content .dx-filemanager-thumbnails-item-spacer{border:0;padding:0;margin:0;height:10px;visibility:hidden}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-view-port .dx-filemanager-thumbnails-item .dx-filemanager-thumbnails-item-content .dx-filemanager-thumbnails-item-name{overflow:hidden;width:100%;white-space:nowrap;text-overflow:ellipsis}.dx-filemanager .dx-filemanager-details{height:100%;overflow:hidden;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.dx-filemanager .dx-filemanager-details>div{height:100%}.dx-filemanager .dx-filemanager-details .dx-datagrid-rowsview .dx-datagrid-table>tbody>tr.dx-filemanager-parent-directory-item>td>.dx-select-checkbox{display:none}.dx-filemanager .dx-filemanager-details .dx-filemanager-details-item-name-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex;-webkit-box-align:start;-ms-flex-align:start;align-items:flex-start;width:100%}.dx-filemanager .dx-filemanager-details .dx-filemanager-details-item-name-wrapper .dx-filemanager-details-item-name{-webkit-box-flex:1;-ms-flex:1 auto;flex:1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dx-filemanager .dx-filemanager-i.dx-filemanager-i-progress,.dx-filemanager .dx-filemanager-i.dx-icon.dx-filemanager-i-progress{-webkit-animation:dx-filemanager-icon-rotate 1.5s linear infinite;animation:dx-filemanager-icon-rotate 1.5s linear infinite}@-webkit-keyframes dx-filemanager-icon-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}@keyframes dx-filemanager-icon-rotate{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(1turn);transform:rotate(1turn)}}.dx-filemanager-file-actions-button{visibility:hidden;text-align:center}.dx-filemanager-file-actions-button.dx-widget{line-height:100%}.dx-filemanager-file-actions-button .dx-button{border:none;background-color:initial;-webkit-box-shadow:none;box-shadow:none}.dx-filemanager-file-actions-button .dx-button .dx-button-content{padding:10px 11px}.dx-filemanager-file-actions-button .dx-button i{font-style:normal}.dx-filemanager-file-actions-button.dx-filemanager-file-actions-button-activated,.dx-filemanager-file-actions-button:hover{visibility:visible}.dx-filemanager-dirs-tree{width:100%}.dx-filemanager-dirs-tree .dx-treeview-item-content{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:end;-ms-flex-align:end;align-items:flex-end}.dx-filemanager-dirs-tree .dx-treeview-item-content>.dx-icon{-webkit-box-flex:0;-ms-flex:0 0 auto;flex:0 0 auto}.dx-filemanager-dirs-tree .dx-treeview-item-content .dx-filemanager-dirs-tree-item-text{-webkit-box-flex:1;-ms-flex:1 auto;flex:1 auto;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dx-filemanager-dirs-tree .dx-filemanager-focused-item .dx-filemanager-file-actions-button,.dx-filemanager-dirs-tree .dx-treeview-item.dx-state-hover .dx-filemanager-file-actions-button{visibility:visible}.dx-filemanager-dialog.dx-filemanager-dialog-folder-chooser,.dx-filemanager-progresspanel{height:100%;overflow:auto}.dx-filemanager-dialog-folder-chooser>div{height:100%}.dx-filemanager-dialog-popup>.dx-overlay-content{min-width:300px;max-width:400px;min-height:300px;max-height:400px}.dx-filemanager-dialog-name-editor-popup>.dx-overlay-content{max-width:340px;min-height:180px;max-height:180px}.dx-filemanager-dialog-delete-item-popup>.dx-overlay-content{max-width:340px;min-height:180px}.dx-filemanager-dialog-delete-item-popup>.dx-overlay-content .dx-popup-content .dx-filemanager-dialog-delete-item{overflow-wrap:break-word}.dx-filemanager-progresspanel{-webkit-box-sizing:border-box;box-sizing:border-box;padding:5px}.dx-filemanager-progresspanel .dx-filemanager-progressbox{float:left;width:100%;padding-bottom:10px}.dx-filemanager-progresspanel .dx-filemanager-progressbox-cancel-button{margin-top:5px;float:right}.dx-splitter-wrapper{height:100%;width:0;position:absolute;z-index:998;top:0}.dx-splitter-wrapper .dx-splitter-border{z-index:997;height:100%;width:7px;cursor:col-resize}.dx-splitter-wrapper .dx-splitter-border .dx-splitter{height:100%;width:1px;display:block;cursor:col-resize;z-index:999;margin:auto}.dx-splitter-wrapper .dx-splitter-border .dx-splitter.dx-splitter-inactive{z-index:998}.dx-splitter-wrapper .dx-splitter-border .dx-splitter.dx-state-disabled{width:0;cursor:default}.dx-splitter{background-color:#337ab780}.dx-splitter.dx-splitter-inactive{background-color:#ddd}.dx-splitter-border{background-color:initial}.dx-filemanager{border-color:#ddd}.dx-filemanager .dx-filemanager-notification-common{border-color:#ddd;color:#d9534f}.dx-filemanager .dx-drawer-shrink .dx-filemanager-progress-panel{border-left-color:#ddd}.dx-filemanager .dx-filemanager-progress-panel{background-color:#fff}.dx-filemanager .dx-filemanager-progress-panel .dx-filemanager-progress-panel-container{padding-top:6px}.dx-filemanager .dx-filemanager-progress-box-image{width:36px;height:36px;font-size:36px}.dx-filemanager .dx-filemanager-progress-box-error{color:#fff;background:#d9534f}.dx-filemanager .dx-filemanager-progress-box .dx-filemanager-progress-box-close-button{margin-top:9px}.dx-filemanager .dx-filemanager-toolbar{padding:6px 10px;background:#fff;min-height:48px}.dx-filemanager .dx-filemanager-toolbar.dx-filemanager-file-toolbar,.dx-filemanager .dx-filemanager-toolbar.dx-filemanager-file-toolbar .dx-toolbar{background:#f7f7f7}.dx-filemanager .dx-filemanager-toolbar .dx-filemanager-toolbar-separator-item{height:36px;background:#ddd}.dx-filemanager .dx-filemanager-toolbar .dx-filemanager-toolbar-viewmode-item .dx-texteditor{width:150px}.dx-filemanager .dx-filemanager-toolbar .dx-texteditor.dx-editor-filled{background:0 0}.dx-filemanager .dx-filemanager-toolbar .dx-texteditor.dx-editor-filled.dx-state-active,.dx-filemanager .dx-filemanager-toolbar .dx-texteditor.dx-editor-filled.dx-state-focused,.dx-filemanager .dx-filemanager-toolbar .dx-texteditor.dx-editor-filled.dx-state-hover{background:#3333331a}.dx-filemanager .dx-filemanager-toolbar .dx-texteditor.dx-editor-filled.dx-dropdowneditor{border-color:#0000}.dx-filemanager .dx-filemanager-toolbar .dx-texteditor.dx-editor-filled.dx-dropdowneditor .dx-dropdowneditor-icon{background:0 0}.dx-filemanager .dx-filemanager-toolbar .dx-texteditor.dx-editor-filled.dx-dropdowneditor.dx-state-active .dx-dropdowneditor-icon,.dx-filemanager .dx-filemanager-toolbar .dx-texteditor.dx-editor-filled.dx-dropdowneditor.dx-state-hover .dx-dropdowneditor-icon{background:0 0;border-color:#0000}.dx-filemanager .dx-filemanager-toolbar .dx-filemanager-toolbar-has-large-icon .dx-button-content{padding:4px}.dx-filemanager .dx-filemanager-toolbar .dx-toolbar .dx-filemanager-toolbar-viewmode-item .dx-button-content{padding-left:8px;padding-right:8px}.dx-filemanager .dx-filemanager-fileuploader-dropzone-placeholder{border:2px solid #337ab7}.dx-filemanager .dx-filemanager-container{border-top-color:#ddd}.dx-filemanager .dx-filemanager-dirs-panel{border-right-color:#ddd}.dx-filemanager .dx-filemanager-breadcrumbs{border-bottom-color:#ddd}.dx-filemanager .dx-filemanager-breadcrumbs .dx-menu-item.dx-state-focused{background:#ddd;color:#333}.dx-filemanager .dx-filemanager-breadcrumbs .dx-menu-item-content{padding-top:5px;padding-bottom:8px}.dx-filemanager .dx-filemanager-breadcrumbs .dx-filemanager-breadcrumbs-separator-item .dx-menu-item-content{background:#ddd}.dx-filemanager .dx-filemanager-breadcrumbs .dx-filemanager-breadcrumbs-path-separator-item.dx-state-hover,.dx-filemanager .dx-filemanager-breadcrumbs .dx-filemanager-breadcrumbs-separator-item.dx-state-hover{background:0 0}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-item.dx-item-selected{color:#fff;background:#337ab7cc}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-item.dx-state-hover:not(.dx-state-focused):not(.dx-item-selected){background:#0000000a}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-item.dx-state-focused{border:1px solid #337ab7}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-item.dx-item-selected.dx-state-focused{color:#fff;background:#337ab7b3}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-item .dx-filemanager-thumbnails-item-thumbnail{width:36px;height:36px;font-size:36px}.dx-filemanager .dx-filemanager-thumbnails .dx-filemanager-thumbnails-item .dx-filemanager-item-custom-thumbnail{color:#ddd}.dx-filemanager .dx-filemanager-files-view{background:#fff}.dx-filemanager .dx-filemanager-files-view.dx-filemanager-details .dx-filemanager-details-item-thumbnail{font-size:18px;width:18px;height:18px}.dx-filemanager .dx-filemanager-files-view.dx-filemanager-details .dx-datagrid .dx-datagrid-content .dx-datagrid-table .dx-command-select{width:43px;min-width:43px;max-width:43px}.dx-filemanager .dx-filemanager-files-view.dx-filemanager-details .dx-row-focused .dx-filemanager-file-actions-button .dx-button .dx-icon{color:#fff}.dx-filemanager-dirs-tree.dx-treeview .dx-treeview-item-content>i{margin-bottom:0}.dx-filemanager-dirs-tree.dx-treeview .dx-state-focused>.dx-treeview-item{background:#fff}.dx-filemanager-dirs-tree.dx-treeview .dx-state-focused>.dx-treeview-item.dx-state-hover{background:#ebebeb}.dx-filemanager-dirs-tree.dx-treeview .dx-state-focused>.dx-treeview-item *{color:#333}.dx-filemanager-dirs-tree.dx-treeview .dx-treeview-item-without-checkbox>.dx-treeview-item.dx-filemanager-focused-item{background:#ebebeb}.dx-filemanager-dirs-tree.dx-treeview .dx-treeview-item-without-checkbox>.dx-treeview-item.dx-filemanager-focused-item *{color:#333}.dx-filemanager-view-switcher-popup{width:34px}.dx-filemanager-view-switcher-popup .dx-dropdownbutton-popup-wrapper.dx-dropdownbutton-popup-wrapper .dx-list:not(.dx-list-select-decorator-enabled) .dx-list-item-content{padding-top:7px;padding-left:7px;padding-right:8px;text-overflow:clip}.dx-filemanager-dirs-tree.dx-treeview .dx-filemanager-file-actions-button{margin-top:1px;margin-bottom:-1px}.dx-filemanager-dirs-tree.dx-treeview .dx-filemanager-file-actions-button .dx-button .dx-button-content{padding:0}.dx-filemanager-file-actions-button .dx-button{min-width:21px;height:21px}.dx-filemanager-file-actions-button .dx-button .dx-button-content{padding-top:10px;padding-bottom:10px}.dx-filemanager-i.dx-filemanager-i-progress,.dx-filemanager-i.dx-filemanager-i-refresh,.dx-filemanager-i.dx-icon.dx-filemanager-i-progress,.dx-filemanager-i.dx-icon.dx-filemanager-i-refresh{background:url(${___CSS_LOADER_URL_REPLACEMENT_25___});width:22px;height:22px}.dx-filemanager-i.dx-filemanager-i-done,.dx-filemanager-i.dx-icon.dx-filemanager-i-done{background:url(${___CSS_LOADER_URL_REPLACEMENT_26___});width:22px;height:22px}.dx-filemanager-i.dx-filemanager-i-danger,.dx-filemanager-i.dx-icon.dx-filemanager-i-danger{background:url(${___CSS_LOADER_URL_REPLACEMENT_27___});width:22px;height:22px}.dx-filemanager-i.dx-filemanager-i-cancel,.dx-filemanager-i.dx-icon.dx-filemanager-i-cancel{background:url(${___CSS_LOADER_URL_REPLACEMENT_28___});width:22px;height:22px}.dx-diagram{border:1px solid #0000;display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:normal;-ms-flex-flow:column;flex-flow:column;height:600px;min-height:350px}.dx-diagram .dx-diagram-toolbar-wrapper{padding:5px;-webkit-box-flex:0;-ms-flex-positive:0;flex-grow:0}.dx-diagram .dx-diagram-toolbar-wrapper .dx-diagram-toolbar{background-color:initial}.dx-diagram .dx-diagram-content-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1;-ms-flex-preferred-size:0;flex-basis:0;overflow:hidden}.dx-diagram .dx-diagram-content,.dx-diagram .dx-diagram-scroll-view{height:100%;width:100%}.dx-diagram.dx-diagram-fullscreen{left:0;top:0;width:100%!important;height:100%!important;position:fixed;z-index:2}.dx-diagram .dxdi-control{width:auto;height:auto;overflow:visible}.dx-diagram .dxdi-canvas{overflow:hidden}.dx-diagram-toolbox-popup.dx-popup-wrapper .dx-overlay-content{border-radius:0}.dx-diagram-toolbox-popup .dx-popup-title.dx-toolbar{padding:0;background-color:#0000000d}.dx-diagram-toolbox-popup .dx-popup-title .dx-button-content,.dx-diagram-toolbox-popup .dx-popup-title .dx-button.dx-button-has-icon:not(.dx-button-has-text){background-color:initial;border:0;border-radius:0;padding:0;min-width:0}.dx-diagram-toolbox-popup .dx-popup-title .dx-button:not(.dx-closebutton){cursor:inherit;pointer-events:none}.dx-diagram-toolbox-popup .dx-popup-content{padding:0}.dx-diagram-toolbox-popup .dx-popup-content .dx-diagram-toolbox-input{border-color:#0000}.dx-diagram-toolbox-popup .dx-popup-content .dx-diagram-toolbox-input .dx-placeholder:before,.dx-diagram-toolbox-popup .dx-popup-content .dx-diagram-toolbox-input input{min-height:0;font-size:.9em}.dx-diagram-toolbox-popup .dx-popup-content .dx-diagram-toolbox-input .dx-button{border:0;border-radius:0;min-height:14px}.dx-diagram-toolbox-popup .dx-popup-content .dx-diagram-toolbox-panel{position:relative;height:100%;overflow-y:auto}.dx-diagram-toolbox-popup .dx-popup-content .dx-diagram-toolbox-panel>*{position:absolute}.dx-diagram-properties-popup .dx-scrollview,.dx-diagram-toolbox-popup .dx-popup-content .dx-diagram-toolbox-panel>.dx-scrollview{width:100%}.dx-diagram-properties-popup .dx-popup-content{padding:0}.dx-diagram-properties-popup .dx-tabs{border:0}.dx-diagram-properties-popup .dx-tabpanel .dx-multiview-wrapper{border-left:0;border-right:0}.dx-diagram-properties-popup .dx-diagram-properties-panel-group-toolbar .dx-toolbar-items-container{display:block;height:auto}.dx-diagram-properties-popup .dx-diagram-properties-panel-group-toolbar .dx-toolbar-items-container>div{display:-webkit-box;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;height:auto;position:inherit}.dx-diagram-properties-popup .dx-diagram-properties-panel-group-toolbar .dx-toolbar-items-container .dx-toolbar-item{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dx-diagram-properties-popup:not(.dx-diagram-mobile-popup) .dx-tabpanel .dx-multiview-wrapper{border-bottom:0}.dx-diagram-properties-popup.dx-diagram-mobile-popup{width:calc(100% - 2px)!important}.dx-diagram-properties-popup.dx-diagram-mobile-popup .dx-popup-title{border:0;min-height:0;position:relative;z-index:1}.dx-diagram-properties-popup.dx-diagram-mobile-popup .dx-toolbar .dx-toolbar-items-container{height:auto}.dx-diagram-properties-popup.dx-diagram-mobile-popup .dx-toolbar .dx-toolbar-items-container .dx-toolbar-item{padding-top:0;padding-bottom:0}.dx-diagram-properties-popup.dx-diagram-mobile-popup .dx-tabpanel{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-orient:vertical;-webkit-box-direction:reverse;-ms-flex-direction:column-reverse;flex-direction:column-reverse}.dx-diagram-properties-popup.dx-diagram-mobile-popup .dx-tabpanel .dx-multiview-wrapper{border-top:0}.dx-diagram-floating-toolbar-container{position:absolute;z-index:1001;width:100%;-webkit-transition:opacity .4s;transition:opacity .4s}.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container{background:0 0;border-radius:50%;border:0;padding:0}.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container .dx-toolbar{background:0 0}.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container div{border-radius:50%}.dx-diagram-floating-toolbar-container .dx-diagram-toolbar .dx-toolbar-items-container>*{padding-left:0;padding-right:0}.dx-diagram-toolbar .dx-diagram-toolbar-separator{display:table;height:100%;border-left:1px solid #0000}.dx-diagram-toolbar .dx-diagram-toolbar-menu-separator{width:100%;border-top:1px solid #0000}.dx-diagram-toolbar .dx-diagram-toolbar-menu-separator:before{content:none}.dx-diagram-toolbar .dx-diagram-color-edit-item .dx-texteditor,.dx-diagram-toolbar .dx-diagram-image-dropdown-item .dx-texteditor,.dx-dropdownmenu-popup .dx-diagram-color-edit-item .dx-texteditor,.dx-dropdownmenu-popup .dx-diagram-image-dropdown-item .dx-texteditor{width:auto}.dx-diagram-toolbar .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper,.dx-diagram-toolbar .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper,.dx-dropdownmenu-popup .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper,.dx-dropdownmenu-popup .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-align:center;-ms-flex-align:center;align-items:center}.dx-diagram-toolbar .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-diagram-i,.dx-diagram-toolbar .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-diagram-i,.dx-dropdownmenu-popup .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-diagram-i,.dx-dropdownmenu-popup .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-diagram-i{display:block}.dx-diagram-toolbar .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-textbox,.dx-diagram-toolbar .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-textbox,.dx-dropdownmenu-popup .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-textbox,.dx-dropdownmenu-popup .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-textbox{width:0;max-width:0}.dx-diagram-toolbar .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-textbox .dx-texteditor-input,.dx-diagram-toolbar .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-textbox .dx-texteditor-input,.dx-dropdownmenu-popup .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-textbox .dx-texteditor-input,.dx-dropdownmenu-popup .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-textbox .dx-texteditor-input{width:0;padding-left:0}.dx-diagram-mobile-toolbar-color-box-opened .dx-dropdowneditor-overlay{-webkit-transform:none!important;transform:none!important;width:100%!important;height:100%!important}.dx-diagram-mobile-toolbar-color-box-opened .dx-dropdowneditor-overlay .dx-overlay-content{-webkit-transform:none!important;transform:none!important;width:100%!important;top:auto!important;bottom:0!important}.dx-diagram-mobile-toolbar-color-box-opened .dx-dropdowneditor-overlay .dx-overlay-content .dx-popup-content{padding:8px}.dx-diagram-mobile-toolbar-color-box-opened .dx-dropdowneditor-overlay .dx-overlay-content .dx-colorview-container{width:100%}.dx-diagram-mobile-toolbar-color-box-opened .dx-dropdowneditor-overlay .dx-overlay-content .dx-colorview-container .dx-colorview-container-row{display:-webkit-box;display:-ms-flexbox;display:flex}.dx-diagram-mobile-toolbar-color-box-opened .dx-dropdowneditor-overlay .dx-overlay-content .dx-colorview-container .dx-colorview-container-row .dx-colorview-palette-cell{-webkit-box-flex:1;-ms-flex-positive:1;flex-grow:1}.dx-diagram-mobile-toolbar-color-box-opened .dx-dropdowneditor-overlay .dx-overlay-content .dx-colorview-container .dx-colorview-container-row .dx-colorview-palette-cell .dx-colorview-palette{width:100%;min-width:300px}.dx-diagram-mobile-toolbar-color-box-opened .dx-dropdowneditor-overlay .dx-overlay-content .dx-colorview-container .dx-colorview-container-row .dx-colorview-controls-container,.dx-diagram-mobile-toolbar-color-box-opened .dx-dropdowneditor-overlay .dx-overlay-content .dx-colorview-container .dx-colorview-container-row .dx-colorview-hue-scale-cell{margin-left:12px}.dx-diagram-i{background-repeat:no-repeat;background-position:0 0;display:inline-block}.dx-diagram-loading-indicator{position:absolute;top:calc(50% - 32px);left:calc(50% - 32px);width:64px;height:64px}.dx-diagram-touch-context-toolbox .dx-popover-wrapper,.dx-diagram-touchbar-overlay{z-index:1!important}.dx-diagram-touchbar.dx-context-menu .dx-menu-items-container{display:block;height:100%;padding:0}.dx-diagram-touchbar.dx-context-menu .dx-menu-items-container:after{display:block;content:\"\";clear:both}.dx-diagram-touchbar.dx-context-menu .dx-menu-items-container>li{display:block;float:left}.dx-diagram-touchbar.dx-context-menu .dx-menu-item.dx-menu-item-has-text.dx-menu-item-has-icon .dx-menu-item-content .dx-icon{margin:0}.dx-diagram-touchbar.dx-context-menu .dx-menu-item .dx-menu-item-content .dx-menu-item-text{display:none}.dx-diagram-context-toolbox-target,.dx-diagram-touchbar-target{position:absolute;background-color:initial;pointer-events:none}.dx-diagram-context-toolbox-target{width:1px;height:1px}.dx-diagram-context-toolbox .dx-popup-content{padding:8px}.dx-diagram{border-color:#ddd}.dx-diagram .dxdi-control .dxdi-canvas{background-color:#d9d9d9}.dx-diagram .dxdi-control .dxdi-canvas .connector-multi-selection,.dx-diagram .dxdi-control .dxdi-canvas .connector-point-mark,.dx-diagram .dxdi-control .dxdi-canvas .connector-selection,.dx-diagram .dxdi-control .dxdi-canvas .connector-side-mark,.dx-diagram .dxdi-control .dxdi-canvas .extension-line path,.dx-diagram .dxdi-control .dxdi-canvas .item-multi-selection-rect,.dx-diagram .dxdi-control .dxdi-canvas .item-selection-rect,.dx-diagram .dxdi-control .dxdi-canvas .items-selection-rect,.dx-diagram .dxdi-control .dxdi-canvas .selection-mark{stroke:#337ab7}.dx-diagram .dxdi-control .dxdi-canvas .connector-side-mark,.dx-diagram .dxdi-control .dxdi-canvas .extension-line text{fill:#337ab7}.dx-diagram .dxdi-control .dxdi-canvas .connection-mark:not(.selector),.dx-diagram .dxdi-control .dxdi-canvas .connection-point:not(.selector),.dx-diagram .dxdi-control .dxdi-canvas .connection-target,.dx-diagram .dxdi-control .dxdi-canvas .container-target{stroke:#5cb85c}.dx-diagram .dxdi-control .dxdi-canvas .connection-mark:not(.selector).active,.dx-diagram .dxdi-control .dxdi-canvas .connection-point:not(.selector).active{fill:#5cb85c}.dx-diagram .dxdi-control .dxdi-canvas .geometry-mark{stroke:#d9534f}.dx-diagram .dxdi-control .dxdi-canvas .dxdi-main .dxdi-image .dxdi-spinner path{stroke:#606060;stroke-opacity:1}.dx-diagram .dxdi-control .dxdi-canvas .dxdi-main .dxdi-image .dxdi-spinner ellipse{stroke:#606060;stroke-opacity:.55}.dx-diagram .dxdi-control .dxdi-canvas .dxdi-main .dxdi-image .dxdi-user .dxdi-background{fill:#606060;opacity:.55}.dx-diagram .dxdi-control .dxdi-canvas .dxdi-main .dxdi-image .dxdi-warning ellipse{fill:#d9534f}.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .geometry-mark,.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .selection-mark{stroke:#666}.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .item-selection-rect,.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .items-selection-rect{fill:#0000;stroke:#666}.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .items-selection-rect{fill:#90909005}.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .item-multi-selection-rect{fill:#90909005;stroke:#666}.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .connector-multi-selection,.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .connector-point-mark,.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .connector-selection,.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .connector-side-mark{stroke:#666}.dx-diagram .dxdi-control:not(.focused) .dxdi-canvas .connector-side-mark{fill:#666}.dx-diagram .dxdi-text-input-container.connector-text .dxdi-text-input{border-color:#337ab7}.dx-diagram .dx-diagram-toolbar-wrapper{border-bottom:1px solid #ddd}.dx-diagram.dx-diagram-fullscreen{background-color:#fff}.dx-diagram-properties-panel,.dx-diagram-toolbox-panel{background:#fff}.dx-diagram-floating-toolbar-container{border:1px solid #ddd;background:#fff;-webkit-box-shadow:0 1px 8px rgba(0,0,0,.175);box-shadow:0 1px 8px rgba(0,0,0,.175);border-radius:6px;padding:2px}.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container,.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container .dx-button,.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container .dx-toolbar,.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container .dx-toolbar-item,.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container .dx-toolbar-items-container{width:48px;height:48px}.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container .dx-button .dx-button-content,.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container .dx-button-content,.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container .dx-toolbar .dx-button-content,.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container .dx-toolbar-item .dx-button-content,.dx-diagram-floating-toolbar-container.dx-diagram-properties-panel-toolbar-container .dx-toolbar-items-container .dx-button-content{padding-top:0;padding-bottom:0;line-height:44px}.dx-diagram-floating-toolbar-container .dx-toolbar-item{padding:0 2px 0 0}.dx-diagram-toolbox-popup>.dx-overlay-content{-webkit-box-shadow:0 1px 8px rgba(0,0,0,.175);box-shadow:0 1px 8px rgba(0,0,0,.175)}.dx-diagram-toolbox-popup .dx-popup-title.dx-toolbar{font-size:.5em;min-height:12px}.dx-diagram-toolbox-popup .dx-popup-title.dx-toolbar .dx-closebutton{position:static;left:0}.dx-rtl .dx-diagram-toolbox-popup .dx-popup-title.dx-toolbar .dx-closebutton{right:0}.dx-diagram-toolbox-popup .dx-popup-title.dx-toolbar .dx-toolbar-items-container{height:12px}.dx-diagram-toolbox-popup .dx-popup-title .dx-button-content,.dx-diagram-toolbox-popup .dx-popup-title .dx-button.dx-button-has-icon:not(.dx-button-has-text){width:12px;height:12px}.dx-diagram-toolbox-popup .dx-popup-content .dx-diagram-toolbox-input-container,.dx-diagram-toolbox-popup .dx-popup-content .dx-diagram-toolbox-panel,.dx-diagram-toolbox-popup .dx-popup-content .dx-diagram-toolbox-panel .dx-accordion{width:144px}.dx-diagram-toolbox-popup .dx-diagram-toolbox-input-container{border-bottom:1px solid #ddd}.dx-diagram-toolbox-popup .dx-diagram-toolbox-input{margin:2px;-webkit-box-shadow:none;box-shadow:none}.dx-diagram-toolbox-popup .dx-diagram-toolbox-input .dx-placeholder:before,.dx-diagram-toolbox-popup .dx-diagram-toolbox-input .dx-texteditor-input{padding:4px 9px}.dx-diagram-toolbox-popup .dx-diagram-toolbox-input .dx-button .dx-button-content,.dx-diagram-toolbox-popup .dx-diagram-toolbox-input .dx-button.dx-button-has-icon:not(.dx-button-has-text) .dx-button-content{padding:2px}.dx-diagram-toolbox-popup .dx-diagram-toolbox-input .dx-button .dx-icon{font-size:12px}.dx-diagram-toolbox-popup .dx-popup-title .dx-closebutton{width:12px;height:12px;margin:1px 0 0}.dx-diagram-toolbox-popup .dx-popup-title .dx-closebutton .dx-icon{width:10px;height:10px;padding:1px;font-size:8px;line-height:8px;background-position:1px 1px;background-size:8px 8px}.dx-diagram-toolbox-popup.dx-diagram-mobile-popup .dx-popup-content{padding-top:66px}.dx-diagram-toolbox-popup.dx-diagram-mobile-popup .dx-popup-content .dx-diagram-toolbox-input-container{border-top:1px solid #ddd}.dx-diagram-toolbox-panel .dx-accordion .dx-accordion-item{border-left:none;border-right:none}.dx-diagram-toolbox-panel .dx-accordion .dx-accordion-item:first-of-type{border-top:none}.dx-diagram-toolbox-panel .dx-accordion .dx-accordion-item:last-child{border-bottom:none}.dx-diagram-toolbox-panel .dx-item-content.dx-accordion-item-title{padding:6px 12px}.dx-diagram-toolbox-panel .dx-item-content.dx-accordion-item-title .dx-accordion-item-title-caption{font-size:.7em;font-weight:700}.dx-diagram-toolbox-panel .dx-item-content.dx-accordion-item-title:before{font-size:.7em;line-height:1.5em}.dx-diagram-toolbox-panel .dx-item-content.dx-accordion-item-body{padding:6px 12px}.dx-diagram-toolbox-panel .dxdi-toolbox .dxdi-canvas .dxdi-shape-text{opacity:.25}.dx-diagram-properties-popup .dx-multiview-item,.dx-diagram-properties-popup.dx-diagram-properties-popup-notabs .dx-popup-content{padding:8px}.dx-diagram-properties-popup .dx-diagram-properties-panel-group-title{font-weight:700;padding:8px}.dx-diagram-properties-popup .dx-diagram-properties-panel-group-toolbar{padding:0 8px 8px}.dx-diagram-properties-popup .dx-diagram-properties-panel-group-toolbar .dx-toolbar-item{margin-bottom:4px}.dx-diagram-properties-popup .dx-diagram-properties-panel-group-toolbar .dx-toolbar-item.dx-diagram-lg-icon-item .dx-diagram-i{background-size:64px 64px;width:64px;height:64px}.dx-diagram-properties-popup .dx-diagram-properties-panel-group-toolbar:first-child{padding-top:8px}.dx-diagram-properties-popup.dx-diagram-mobile-popup .dx-popup-title{padding:2px 8px 0 0}.dx-diagram-properties-popup.dx-diagram-mobile-popup .dx-tabpanel .dx-tab-selected:before{top:-1px}.dx-diagram-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format){background-color:#e6e6e6}.dx-diagram-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-success{background-color:#449d44}.dx-diagram-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-default{background-color:#285f8f}.dx-diagram-toolbar .dx-format-active:not(.dx-color-format):not(.dx-background-format).dx-button-danger{background-color:#c9302c}.dx-diagram-toolbar .dx-dropdowneditor.dx-editor-filled,.dx-diagram-toolbar .dx-texteditor.dx-editor-filled{background-color:initial}.dx-diagram-toolbar .dx-diagram-toolbar-separator{border-left-color:#ddd}.dx-diagram-toolbar .dx-diagram-toolbar-menu-separator{border-top-color:#ddd}.dx-diagram-toolbar .dx-diagram-toolbar-text{padding:8px 0 9px 15px}.dx-diagram-toolbar .dx-diagram-lg-edit-item .dx-texteditor{width:240px}.dx-diagram-toolbar .dx-diagram-md-edit-item .dx-texteditor{width:150px}.dx-diagram-toolbar .dx-diagram-sm-edit-item .dx-texteditor{width:100px}.dx-diagram-toolbar .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-diagram-i,.dx-diagram-toolbar .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-icon{border-bottom-width:3px;border-bottom-style:solid}.dx-diagram-toolbar .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-diagram-i,.dx-diagram-toolbar .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-icon,.dx-diagram-toolbar .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-diagram-i,.dx-diagram-toolbar .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-icon,.dx-dropdownmenu-popup .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-diagram-i,.dx-dropdownmenu-popup .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-icon,.dx-dropdownmenu-popup .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-diagram-i,.dx-dropdownmenu-popup .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-icon{margin-left:8px;margin-right:7px}.dx-diagram-toolbar .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-icon,.dx-diagram-toolbar .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-icon,.dx-dropdownmenu-popup .dx-diagram-color-edit-item .dx-dropdowneditor-field-template-wrapper .dx-icon,.dx-dropdownmenu-popup .dx-diagram-image-dropdown-item .dx-dropdowneditor-field-template-wrapper .dx-icon{font-size:18px;color:#333}.dx-diagram-touchbar.dx-context-menu .dx-menu-item .dx-menu-item-content{padding:5px}.dx-diagram-touchbar.dx-context-menu .dx-menu-separator{width:1px;height:30px;margin:0}.dx-diagram-i-selectbox-null-icon{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_29___});width:28.08px;height:18px}.dx-diagram-i-connector-begin-none{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_30___});width:28.08px;height:18px}.dx-diagram-i-connector-begin-arrow{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_31___});width:28.08px;height:18px}.dx-diagram-i-connector-begin-outlined-triangle{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_32___});width:28.08px;height:18px}.dx-diagram-i-connector-begin-filled-triangle{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_33___});width:28.08px;height:18px}.dx-diagram-i-connector-end-none{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_34___});width:28.08px;height:18px}.dx-diagram-i-connector-end-arrow{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_35___});width:28.08px;height:18px}.dx-diagram-i-connector-end-outlined-triangle{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_36___});width:28.08px;height:18px}.dx-diagram-i-connector-end-filled-triangle{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_37___});width:28.08px;height:18px}.dx-diagram-i-connector-orthogonal{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_38___});width:28.08px;height:18px}.dx-diagram-i-connector-straight{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_39___});width:28.08px;height:18px}.dx-diagram-i-line-solid{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_40___});width:28.08px;height:18px}.dx-diagram-i-line-dotted{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_41___});width:28.08px;height:18px}.dx-diagram-i-line-dashed{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_42___});width:28.08px;height:18px}.dx-diagram-i-button-fill,.dx-diagram-i-menu-fill{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_43___});width:18px;height:21px}.dx-diagram-i-button-fullscreen,.dx-diagram-i-menu-fullscreen{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_44___});width:18px;height:18px}.dx-diagram-i-button-lock,.dx-diagram-i-menu-lock{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_45___});width:18px;height:18px}.dx-diagram-i-button-unlock,.dx-diagram-i-menu-unlock{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_46___});width:18px;height:18px}.dx-diagram-i-button-send-to-back,.dx-diagram-i-menu-send-to-back{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_47___});width:18px;height:18px}.dx-diagram-i-button-bring-to-front,.dx-diagram-i-menu-bring-to-front{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_48___});width:18px;height:18px}.dx-diagram-i-button-select-all,.dx-diagram-i-menu-select-all{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_49___});width:18px;height:18px}.dx-diagram-i-button-image-delete,.dx-diagram-i-menu-image-delete{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_50___});width:18px;height:18px}.dx-diagram-i-button-image-edit,.dx-diagram-i-menu-image-edit{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_51___});width:18px;height:18px}.dx-diagram-i-button-image-insert,.dx-diagram-i-menu-image-insert{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_52___});width:18px;height:18px}.dx-diagram-i-button-layout-layered-bt{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_53___});width:18px;height:18px}.dx-diagram-i-button-layout-layered-lr{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_54___});width:18px;height:18px}.dx-diagram-i-button-layout-layered-rl{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_55___});width:18px;height:18px}.dx-diagram-i-button-layout-layered-tb{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_56___});width:18px;height:18px}.dx-diagram-i-button-layout-tree-bt{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_57___});width:18px;height:18px}.dx-diagram-i-button-layout-tree-lr{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_58___});width:18px;height:18px}.dx-diagram-i-button-layout-tree-rl{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_59___});width:18px;height:18px}.dx-diagram-i-button-toolbox-open{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_60___});width:18px;height:18px}.dx-diagram-i-button-toolbox-close{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_61___});width:18px;height:18px}.dx-diagram-i-button-layout-tree-tb{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_62___});width:18px;height:18px}.dx-diagram-toolbox-popup .dx-button-has-icon .dx-icon.dx-icon-diagram-toolbox-drag{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_63___});width:12px;height:12px;line-height:12px;background-size:12px 12px}.dx-diagram-i-button-properties-panel-open{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_64___});width:18px;height:18px}.dx-gantt{-webkit-box-orient:vertical;-ms-flex-direction:column;flex-direction:column;width:100%;overflow:hidden}.dx-gantt,.dx-gantt .dx-gantt-main-wrapper{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-direction:normal;position:relative}.dx-gantt .dx-gantt-main-wrapper{-webkit-box-orient:horizontal;-ms-flex-direction:row;flex-direction:row;height:100%}.dx-gantt .dx-gantt-toolbar-separator{display:table;height:100%;border-left:1px solid #0000}.dx-gantt .dx-gantt-treelist-wrapper{display:-webkit-inline-box;display:-ms-inline-flexbox;display:inline-flex}.dx-gantt .dx-gantt-treelist-wrapper .dx-treelist .dx-scrollbar-vertical{display:none}.dx-gantt .dx-gantt-treelist-wrapper .dx-treelist .dx-treelist-headers+.dx-treelist-rowsview{border-top:none}.dx-gantt .dx-splitter-wrapper .dx-splitter-border .dx-splitter{width:2px}.dx-gantt .dx-gantt-view{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;min-width:1px;background-color:#fff}.dx-gantt .dx-gantt-view .dx-gantt-tac-hb{margin-top:-1px}.dx-gantt .dx-gantt-view .dx-scrollable-scrollbar{z-index:100}.dx-gantt .dx-gantt-view .dx-gantt-parent:before{border-left-color:inherit;border-top-color:inherit}.dx-gantt .dx-gantt-view .dx-gantt-parent:after{border-right-color:inherit;border-top-color:inherit}.dx-gantt{border:1px solid #ddd}.dx-gantt .dx-gantt-toolbar-wrapper{padding:5px;border-bottom:1px solid #ddd}.dx-gantt .dx-gantt-toolbar-wrapper .dx-gantt-toolbar-separator{border-left-color:#ddd}.dx-gantt .dx-treelist-text-content{min-height:19px}.dx-gantt .dx-treelist-headers .dx-treelist-table{min-height:32px}.dx-gantt .dx-treelist-icon-container{max-height:19px}.dx-gantt .dx-treelist .dx-treelist-rowsview .dx-selection.dx-row:hover>td,.dx-gantt .dx-treelist .dx-treelist-rowsview .dx-selection.dx-row:hover>tr>td,.dx-gantt .dx-treelist .dx-treelist-rowsview .dx-selection.dx-row>td,.dx-gantt .dx-treelist .dx-treelist-rowsview .dx-selection.dx-row>tr>td{background-color:#e6e6e6}.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row:hover>td,.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row:hover>tr>td,.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row>td,.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row>tr>td{color:#333}.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row.dx-row-lines>td,.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row.dx-row-lines>tr>td,.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row:hover.dx-row-lines>td,.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row:hover.dx-row-lines>tr>td{border-bottom-color:#ddd}.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row.dx-column-lines>td,.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row.dx-column-lines>tr>td,.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row:hover.dx-column-lines>td,.dx-gantt .dx-treelist-rowsview .dx-selection.dx-row:hover.dx-column-lines>tr>td{border-left-color:#ddd;border-right-color:#ddd}.dx-gantt .dx-treelist-rowsview tr:not(.dx-row-focused).dx-selection .dx-treelist-empty-space{color:#333}.dx-gantt .dx-header-row{height:45px}.dx-gantt .dx-gantt-header{color:#959595}.dx-gantt .dx-gantt-header .dx-gantt-hb,.dx-gantt .dx-gantt-header .dx-gantt-tsa,.dx-gantt .dx-gantt-header .dx-gantt-tsac,.dx-gantt .dx-gantt-header .dx-gantt-vb{border-color:#ddd;background-color:#fff}.dx-gantt .dx-gantt-si{text-align:center;vertical-align:middle;padding-left:16px;padding-right:16px}.dx-gantt .dx-gantt-tsa,.dx-gantt .dx-gantt-tsac{border-bottom:1px solid #ddd}.dx-gantt .dx-gantt-hb{border-top:1px solid #ddd}.dx-gantt .dx-gantt-vb{border-left:1px solid #ddd}.dx-gantt .dx-gantt-taskWrapper{padding-top:0}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task,.dx-gantt .dx-gantt-taskWrapper .dx-gantt-titleOut{height:21px;line-height:21px}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task{background-color:#337ab7;border-radius:4px}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task .dx-gantt-tPrg{border-radius:4px;background-color:#0003}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-smallTask{border-radius:4px}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-smallTask .dx-gantt-titleIn{padding:0 2px}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent{height:19px;line-height:19px;background-color:#5cb85c;border-left-color:#5cb85c;border-right-color:#5cb85c;border-top-color:#5cb85c;border-bottom-right-radius:0;border-bottom-left-radius:0}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent:not(.dx-gantt-noPrg) .dx-gantt-tPrg{background-color:#fff3}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent:not(.dx-gantt-smallTask).dx-gantt-cmpl .dx-gantt-tPrg:after,.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent:not(.dx-gantt-smallTask):after,.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent:not(.dx-gantt-smallTask):before,.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent:not(.dx-gantt-smallTask):not(.dx-gantt-noPrg) .dx-gantt-tPrg:before{content:\"\";position:absolute;bottom:-8px;border-width:4px;border-style:solid}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent:before,.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent:not(.dx-gantt-noPrg) .dx-gantt-tPrg:before{left:0;border-right-color:#0000;border-bottom-color:#0000}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent:not(.dx-gantt-noPrg) .dx-gantt-tPrg:before{border-left-color:#fff3;border-top-color:#fff3}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent.dx-gantt-cmpl .dx-gantt-tPrg:after,.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent:after{right:0;border-left-color:#0000;border-bottom-color:#0000}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent.dx-gantt-cmpl:after{border-right-color:#fff3;border-top-color:#fff3}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent.dx-gantt-cmpl .dx-gantt-tPrg:after{border-right-color:#5cb85c;border-top-color:#5cb85c}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-task.dx-gantt-parent .dx-gantt-task-edit-frame{height:19px}.dx-gantt .dx-gantt-taskWrapper .dx-gantt-titleIn{color:#fff;padding:0 7px}.dx-gantt .dx-gantt-taskRes{height:21px;line-height:21px;color:#fff;background-color:#999;border-radius:4px;margin-left:21px;padding-left:4px;padding-right:4px}.dx-gantt .dx-gantt-titleOut{padding-right:20px}.dx-gantt .dx-gantt-milestone{background-color:#333;width:14px;height:14px}.dx-gantt .dx-gantt-task-edit-wrapper{padding-top:0;padding-left:1px}.dx-gantt .dx-gantt-task-edit-wrapper .dx-gantt-task-edit-frame{height:100%;border:1px solid #285f8f;border-radius:4px}.dx-gantt .dx-gantt-task-edit-wrapper .dx-gantt-task-edit-frame .dx-gantt-task-edit-progress{border-color:#0000 #0000 #285f8f}.dx-gantt .dx-gantt-task-edit-wrapper .dx-gantt-task-edit-frame .dx-gantt-task-edit-progress:before{width:12px;height:6px;bottom:-14px;border:1px solid #285f8f}.dx-gantt .dx-gantt-task-edit-wrapper .dx-gantt-task-edit-frame .dx-gantt-task-edit-progress-status{border-radius:4px}.dx-gantt .dx-gantt-task-edit-wrapper-successor{padding-top:0}.dx-gantt .dx-gantt-task-edit-wrapper-successor .dx-gantt-task-edit-frame-successor{height:21px}.dx-gantt .dx-gantt-task-edit-dependency-l,.dx-gantt .dx-gantt-task-edit-dependency-r,.dx-gantt .dx-gantt-task-edit-successor-dependency-l,.dx-gantt .dx-gantt-task-edit-successor-dependency-r{background:#fff;border:1px solid #285f8f;width:10px;height:10px;margin:auto;top:0;bottom:0}.dx-gantt .dx-gantt-task-edit-dependency-r,.dx-gantt .dx-gantt-task-edit-successor-dependency-r{left:-11px}.dx-gantt .dx-gantt-task-edit-dependency-l,.dx-gantt .dx-gantt-task-edit-successor-dependency-l{right:-11px}.dx-gantt .dx-gantt-task-edit-dependency-line{background-color:#333}.dx-gantt .dx-gantt-sel{background-color:#e6e6e6;border-top:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6}.dx-gantt .dx-gantt-tac-hb .dx-gantt-sel{border:none}.dx-gantt .dx-gantt-conn-v{border-left-color:#333}.dx-gantt .dx-gantt-conn-h{border-top-color:#333}.dx-gantt .dx-gantt-arrow{border:5px solid #333}.dx-gantt .dx-gantt-ti,.dx-gantt .dx-gantt-tm{border-left:1px dashed #337ab7}.dx-gantt .dx-gantt-ti{border-right:1px dashed #337ab7;background-color:#337ab726}.dx-gantt .dx-gantt-altRow,.dx-gantt .dx-gantt-collapsable-row{background-color:#f5f5f5}.dx-form.dx-cv-dialog{padding-bottom:8px}.dx-form.dx-cv-dialog .dx-cv-dialog-row{padding-top:12px}.dx-gantt-i.dx-gantt-i-add{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_65___})}.dx-gantt-i.dx-gantt-i-add-sub-task{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_66___})}.dx-gantt-i.dx-gantt-i-add-task{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_67___})}.dx-gantt-i.dx-gantt-i-collapse{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_68___})}.dx-gantt-i.dx-gantt-i-delete{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_69___})}.dx-gantt-i.dx-gantt-i-delete-dependency{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_70___})}.dx-gantt-i.dx-gantt-i-expand{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_71___})}.dx-gantt-i.dx-gantt-i-full-screen{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_72___})}.dx-gantt-i.dx-gantt-i-redo{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_73___})}.dx-gantt-i.dx-gantt-i-task-details{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_74___})}.dx-gantt-i.dx-gantt-i-undo{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_75___})}.dx-gantt-i.dx-gantt-i-zoom-in{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_76___})}.dx-gantt-i.dx-gantt-i-zoom-out{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_77___})}.dx-gantt-i.dx-gantt-i-resource-manager{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_78___})}.dx-gantt-i.dx-gantt-i-toggle-resources{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_79___})}.dx-gantt-i.dx-gantt-i-toggle-dependencies{background-image:url(${___CSS_LOADER_URL_REPLACEMENT_80___})}.dx-sortable{overflow:hidden}.dx-sortable-dragging.dx-sortable-clone{position:absolute;top:0;left:0;-webkit-box-sizing:border-box;box-sizing:border-box;opacity:.9;z-index:2147483647}.dx-sortable-dragging.dx-sortable-clone .dx-inkripple{overflow:hidden}.dx-sortable-dragging.dx-sortable-clone *{cursor:pointer;cursor:-webkit-grabbing;cursor:grabbing}.dx-sortable-source{opacity:.5}.dx-sortable-source-hidden{opacity:0}.dx-sortable-placeholder{position:absolute;top:0;left:0;border:1px solid #337ab7;-webkit-box-sizing:border-box;box-sizing:border-box;z-index:2147483647}.dx-sortable-placeholder-inside{border-width:2px}.dx-sortable-dragging>*{border-color:#337ab780;-webkit-box-shadow:0 1px 3px #0000001a,0 6px 8px #0003;box-shadow:0 1px 3px #0000001a,0 6px 8px #0003}.dx-deferrendering .dx-deferrendering-loadindicator-container{width:100%;height:100%;position:relative}.dx-deferrendering.dx-pending-rendering .dx-invisible-while-pending-rendering,.dx-deferrendering:not(.dx-pending-rendering) .dx-visible-while-pending-rendering{display:none!important}.dx-map-container,.dx-map-shield{position:relative;width:100%;height:100%;color:#000}.dx-map-shield{top:-100%;left:0;background:#00000003;opacity:.01}`, \"\"]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (url, options) {\n if (!options) {\n options = {};\n }\n if (!url) {\n return url;\n }\n url = String(url.__esModule ? url.default : url);\n\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n if (options.hash) {\n url += options.hash;\n }\n\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]|(%20)/.test(url) || options.needQuotes) {\n return \"\\\"\".concat(url.replace(/\"/g, '\\\\\"').replace(/\\n/g, \"\\\\n\"), \"\\\"\");\n }\n return url;\n};","\"use strict\";\n\nmodule.exports = function (i) {\n return i[1];\n};","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');\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\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 // Listen for ready state\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\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? 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(resolve, reject, response);\n\n // Clean up request\n request = null;\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 = 'timeout of ' + config.timeout + 'ms exceeded';\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(createError(timeoutErrorMessage, config, '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 (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\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) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\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 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// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(mergeConfig(axios.defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\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 this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\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 * 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');\n\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(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = arguments[1] || {};\n config.url = arguments[0];\n } else {\n config = config || {};\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 // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.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) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\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');\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\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(\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(\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(\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 };\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 var valueFromConfig2Keys = ['url', 'method', 'data'];\n var mergeDeepPropertiesKeys = ['headers', 'auth', 'proxy', 'params'];\n var defaultToConfig2Keys = [\n 'baseURL', 'transformRequest', 'transformResponse', 'paramsSerializer',\n 'timeout', 'timeoutMessage', 'withCredentials', 'adapter', 'responseType', 'xsrfCookieName',\n 'xsrfHeaderName', 'onUploadProgress', 'onDownloadProgress', 'decompress',\n 'maxContentLength', 'maxBodyLength', 'maxRedirects', 'transport', 'httpAgent',\n 'httpsAgent', 'cancelToken', 'socketPath', 'responseEncoding'\n ];\n var directMergeKeys = ['validateStatus'];\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 function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n }\n\n utils.forEach(valueFromConfig2Keys, function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n }\n });\n\n utils.forEach(mergeDeepPropertiesKeys, mergeDeepProperties);\n\n utils.forEach(defaultToConfig2Keys, function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n config[prop] = getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n utils.forEach(directMergeKeys, function merge(prop) {\n if (prop in config2) {\n config[prop] = getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n config[prop] = getMergedValue(undefined, config1[prop]);\n }\n });\n\n var axiosKeys = valueFromConfig2Keys\n .concat(mergeDeepPropertiesKeys)\n .concat(defaultToConfig2Keys)\n .concat(directMergeKeys);\n\n var otherKeys = Object\n .keys(config1)\n .concat(Object.keys(config2))\n .filter(function filterAxiosKeys(key) {\n return axiosKeys.indexOf(key) === -1;\n });\n\n utils.forEach(otherKeys, mergeDeepProperties);\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');\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 /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\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\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\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)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\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\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\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 = 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 \"<scheme>://\" 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\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 (typeof payload === 'object') && (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 bind = require('./helpers/bind');\n\n/*global toString:true*/\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 toString.call(val) === '[object Array]';\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 (typeof FormData !== 'undefined') && (val instanceof 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) && (val.buffer instanceof ArrayBuffer);\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 typeof URLSearchParams !== 'undefined' && val instanceof 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.replace(/^\\s*/, '').replace(/\\s*$/, '');\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","module.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar definePropertyModule = require('../internals/object-define-property');\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","module.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar createProperty = require('../internals/create-property');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var C = typeof this == 'function' ? this : Array;\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined, 2);\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod != undefined && !(C == Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = iteratorMethod.call(O);\n next = iterator.next;\n result = new C();\n for (;!(step = next.call(iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = toLength(O.length);\n result = new C(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call,no-throw-literal -- required for testing\n method.call(null, argument || function () { throw 1; }, 1);\n });\n};\n","var aFunction = require('../internals/a-function');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar toLength = require('../internals/to-length');\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aFunction(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = toLength(O.length);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPrimitive = require('../internals/to-primitive');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPrimitive(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$<a>') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n // eslint-disable-next-line regexp/no-empty-group -- required for testing\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === RegExp.prototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","var aFunction = require('../internals/a-function');\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n","var anObject = require('../internals/an-object');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nmodule.exports = function (it) {\n var iteratorMethod = getIteratorMethod(it);\n if (typeof iteratorMethod != 'function') {\n throw TypeError(String(it) + ' is not iterable');\n } return anObject(iteratorMethod.call(it));\n};\n","var toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar replace = ''.replace;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var toObject = require('../internals/to-object');\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function hasOwn(it, key) {\n return hasOwnProperty.call(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- requied for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n typeof (NewTarget = dummy.constructor) == 'function' &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = shared.state || (shared.state = new WeakMap());\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n if (wmhas.call(store, it)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (objectHas(it, STATE)) throw new TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var anObject = require('../internals/an-object');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar toLength = require('../internals/to-length');\nvar bind = require('../internals/function-bind-context');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that, 1 + AS_ENTRIES + INTERRUPTED);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator);\n throw error;\n }\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n","var anObject = require('../internals/an-object');\n\nmodule.exports = function (iterator) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) {\n return anObject(returnMethod.call(iterator)).value;\n }\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = IteratorPrototype == undefined || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif ((!IS_PURE || NEW_ITERATOR_PROTOTYPE) && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // eslint-disable-next-line es/no-symbol -- required for testing\n return !Symbol.sham &&\n // Chrome 38 Symbol has incorrect toString conversion\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n (IS_NODE ? V8_VERSION === 38 : V8_VERSION > 37 && V8_VERSION < 41);\n});\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = !fails(function () {\n var url = new URL('b?a=1&b=2&c=3', 'http://a');\n var searchParams = url.searchParams;\n var result = '';\n url.pathname = 'c%20d';\n searchParams.forEach(function (value, key) {\n searchParams['delete']('b');\n result += key + value;\n });\n return (IS_PURE && !url.toJSON)\n || !searchParams.sort\n || url.href !== 'http://a/c%20d?a=1&c=3'\n || searchParams.get('c') !== '3'\n || String(new URLSearchParams('?a=1')) !== 'a=1'\n || !searchParams[ITERATOR]\n // throws in Edge\n || new URL('https://a@b').username !== 'a'\n || new URLSearchParams(new URLSearchParams('a=b')).get('a') !== 'b'\n // not punycoded in Edge\n || new URL('http://теÑÑ‚').host !== 'xn--e1aybc'\n // not escaped in Chrome 62-\n || new URL('http://a#б').hash !== '#%D0%B1'\n // fails in Chrome 66-\n || result !== 'a1c3'\n // throws in Safari\n || new URL('http://x', undefined).host !== 'x';\n});\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","'use strict';\nvar aFunction = require('../internals/a-function');\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var isRegExp = require('../internals/is-regexp');\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? objectKeys(S).concat(getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || propertyIsEnumerable.call(S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","var anObject = require('../internals/an-object');\nvar defineProperties = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject -- old IE */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var has = require('../internals/has');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var redefine = require('../internals/redefine');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n var state;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) {\n createNonEnumerableProperty(value, 'name', key);\n }\n state = enforceInternalState(value);\n if (!state.source) {\n state.source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\nvar shared = require('./shared');\n\nvar nativeExec = RegExp.prototype.exec;\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\n// eslint-disable-next-line regexp/no-assertion-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","// `SameValue` abstract operation\n// https://tc39.es/ecma262/#sec-samevalue\n// eslint-disable-next-line es/no-object-is -- safe\nmodule.exports = Object.is || function is(x, y) {\n // eslint-disable-next-line no-self-compare -- NaN check\n return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar has = require('../internals/has');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.11.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2021 Denis Pushkarev (zloirock.ru)'\n});\n","var anObject = require('../internals/an-object');\nvar aFunction = require('../internals/a-function');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\n// based on https://github.com/bestiejs/punycode.js/blob/master/punycode.js\nvar maxInt = 2147483647; // aka. 0x7FFFFFFF or 2^31-1\nvar base = 36;\nvar tMin = 1;\nvar tMax = 26;\nvar skew = 38;\nvar damp = 700;\nvar initialBias = 72;\nvar initialN = 128; // 0x80\nvar delimiter = '-'; // '\\x2D'\nvar regexNonASCII = /[^\\0-\\u007E]/; // non-ASCII chars\nvar regexSeparators = /[.\\u3002\\uFF0E\\uFF61]/g; // RFC 3490 separators\nvar OVERFLOW_ERROR = 'Overflow: input needs wider integers to process';\nvar baseMinusTMin = base - tMin;\nvar floor = Math.floor;\nvar stringFromCharCode = String.fromCharCode;\n\n/**\n * Creates an array containing the numeric code points of each Unicode\n * character in the string. While JavaScript uses UCS-2 internally,\n * this function will convert a pair of surrogate halves (each of which\n * UCS-2 exposes as separate characters) into a single code point,\n * matching UTF-16.\n */\nvar ucs2decode = function (string) {\n var output = [];\n var counter = 0;\n var length = string.length;\n while (counter < length) {\n var value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n // It's a high surrogate, and there is a next character.\n var extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // Low surrogate.\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n } else {\n // It's an unmatched surrogate; only append this code unit, in case the\n // next code unit is the high surrogate of a surrogate pair.\n output.push(value);\n counter--;\n }\n } else {\n output.push(value);\n }\n }\n return output;\n};\n\n/**\n * Converts a digit/integer into a basic code point.\n */\nvar digitToBasic = function (digit) {\n // 0..25 map to ASCII a..z or A..Z\n // 26..35 map to ASCII 0..9\n return digit + 22 + 75 * (digit < 26);\n};\n\n/**\n * Bias adaptation function as per section 3.4 of RFC 3492.\n * https://tools.ietf.org/html/rfc3492#section-3.4\n */\nvar adapt = function (delta, numPoints, firstTime) {\n var k = 0;\n delta = firstTime ? floor(delta / damp) : delta >> 1;\n delta += floor(delta / numPoints);\n for (; delta > baseMinusTMin * tMax >> 1; k += base) {\n delta = floor(delta / baseMinusTMin);\n }\n return floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n};\n\n/**\n * Converts a string of Unicode symbols (e.g. a domain name label) to a\n * Punycode string of ASCII-only symbols.\n */\n// eslint-disable-next-line max-statements -- TODO\nvar encode = function (input) {\n var output = [];\n\n // Convert the input in UCS-2 to an array of Unicode code points.\n input = ucs2decode(input);\n\n // Cache the length.\n var inputLength = input.length;\n\n // Initialize the state.\n var n = initialN;\n var delta = 0;\n var bias = initialBias;\n var i, currentValue;\n\n // Handle the basic code points.\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < 0x80) {\n output.push(stringFromCharCode(currentValue));\n }\n }\n\n var basicLength = output.length; // number of basic code points.\n var handledCPCount = basicLength; // number of code points that have been handled;\n\n // Finish the basic string with a delimiter unless it's empty.\n if (basicLength) {\n output.push(delimiter);\n }\n\n // Main encoding loop:\n while (handledCPCount < inputLength) {\n // All non-basic code points < n have been handled already. Find the next larger one:\n var m = maxInt;\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue >= n && currentValue < m) {\n m = currentValue;\n }\n }\n\n // Increase `delta` enough to advance the decoder's <n,i> state to <m,0>, but guard against overflow.\n var handledCPCountPlusOne = handledCPCount + 1;\n if (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n throw RangeError(OVERFLOW_ERROR);\n }\n\n delta += (m - n) * handledCPCountPlusOne;\n n = m;\n\n for (i = 0; i < input.length; i++) {\n currentValue = input[i];\n if (currentValue < n && ++delta > maxInt) {\n throw RangeError(OVERFLOW_ERROR);\n }\n if (currentValue == n) {\n // Represent delta as a generalized variable-length integer.\n var q = delta;\n for (var k = base; /* no condition */; k += base) {\n var t = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n if (q < t) break;\n var qMinusT = q - t;\n var baseMinusT = base - t;\n output.push(stringFromCharCode(digitToBasic(t + qMinusT % baseMinusT)));\n q = floor(qMinusT / baseMinusT);\n }\n\n output.push(stringFromCharCode(digitToBasic(q)));\n bias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n delta = 0;\n ++handledCPCount;\n }\n }\n\n ++delta;\n ++n;\n }\n return output.join('');\n};\n\nmodule.exports = function (input) {\n var encoded = [];\n var labels = input.toLowerCase().replace(regexSeparators, '\\u002E').split('.');\n var i, label;\n for (i = 0; i < labels.length; i++) {\n label = labels[i];\n encoded.push(regexNonASCII.test(label) ? 'xn--' + encode(label) : label);\n }\n return encoded.join('.');\n};\n","var global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar bind = require('../internals/function-bind-context');\nvar html = require('../internals/html');\nvar createElement = require('../internals/document-create-element');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins -- safe\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func -- spec requirement\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n typeof postMessage == 'function' &&\n !global.importScripts &&\n location && location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.es/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n if (NATIVE_SYMBOL && has(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n","'use strict';\nvar $ = require('../internals/export');\nvar $reduce = require('../internals/array-reduce').left;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\nvar CHROME_VERSION = require('../internals/engine-v8-version');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar STRICT_METHOD = arrayMethodIsStrict('reduce');\n// Chrome 80-82 has a critical bug\n// https://bugs.chromium.org/p/chromium/issues/detail?id=1049982\nvar CHROME_BUG = !IS_NODE && CHROME_VERSION > 79 && CHROME_VERSION < 83;\n\n// `Array.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-array.prototype.reduce\n$({ target: 'Array', proto: true, forced: !STRICT_METHOD || CHROME_BUG }, {\n reduce: function reduce(callbackfn /* , initialValue */) {\n return $reduce(this, callbackfn, arguments.length, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar fails = require('../internals/fails');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar re = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar fix = function (match, offset, string) {\n var prev = string.charAt(offset - 1);\n var next = string.charAt(offset + 1);\n if ((low.test(match) && !hi.test(next)) || (hi.test(match) && !low.test(prev))) {\n return '\\\\u' + match.charCodeAt(0).toString(16);\n } return match;\n};\n\nvar FORCED = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n // https://github.com/tc39/proposal-well-formed-stringify\n $({ target: 'JSON', stat: true, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var result = $stringify.apply(null, arguments);\n return typeof result == 'string' ? result.replace(re, fix) : result;\n }\n });\n}\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, forced: Object.assign !== assign }, {\n assign: assign\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar global = require('../internals/global');\nvar getBuiltIn = require('../internals/get-built-in');\nvar NativePromise = require('../internals/native-promise-constructor');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar isObject = require('../internals/is-object');\nvar aFunction = require('../internals/a-function');\nvar anInstance = require('../internals/an-instance');\nvar inspectSource = require('../internals/inspect-source');\nvar iterate = require('../internals/iterate');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar promiseResolve = require('../internals/promise-resolve');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar InternalStateModule = require('../internals/internal-state');\nvar isForced = require('../internals/is-forced');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_NODE = require('../internals/engine-is-node');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar NativePromisePrototype = NativePromise && NativePromise.prototype;\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar NATIVE_REJECTION_EVENT = typeof PromiseRejectionEvent == 'function';\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && !NATIVE_REJECTION_EVENT) return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n task.call(global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.es/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function' && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n redefine(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromiseConstructor.prototype);\n }\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.es/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.es/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.es/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.es/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isForced = require('../internals/is-forced');\nvar inheritIfRequired = require('../internals/inherit-if-required');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar isRegExp = require('../internals/is-regexp');\nvar getFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar enforceInternalState = require('../internals/internal-state').enforce;\nvar setSpecies = require('../internals/set-species');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\nvar NativeRegExp = global.RegExp;\nvar RegExpPrototype = NativeRegExp.prototype;\nvar re1 = /a/g;\nvar re2 = /a/g;\n\n// \"new\" should create a new object, old webkit bug\nvar CORRECT_NEW = new NativeRegExp(re1) !== re1;\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y;\n\nvar FORCED = DESCRIPTORS && isForced('RegExp', (!CORRECT_NEW || UNSUPPORTED_Y || fails(function () {\n re2[MATCH] = false;\n // RegExp constructor can alter flags and IsRegExp works correct with @@match\n return NativeRegExp(re1) != re1 || NativeRegExp(re2) == re2 || NativeRegExp(re1, 'i') != '/a/i';\n})));\n\n// `RegExp` constructor\n// https://tc39.es/ecma262/#sec-regexp-constructor\nif (FORCED) {\n var RegExpWrapper = function RegExp(pattern, flags) {\n var thisIsRegExp = this instanceof RegExpWrapper;\n var patternIsRegExp = isRegExp(pattern);\n var flagsAreUndefined = flags === undefined;\n var sticky;\n\n if (!thisIsRegExp && patternIsRegExp && pattern.constructor === RegExpWrapper && flagsAreUndefined) {\n return pattern;\n }\n\n if (CORRECT_NEW) {\n if (patternIsRegExp && !flagsAreUndefined) pattern = pattern.source;\n } else if (pattern instanceof RegExpWrapper) {\n if (flagsAreUndefined) flags = getFlags.call(pattern);\n pattern = pattern.source;\n }\n\n if (UNSUPPORTED_Y) {\n sticky = !!flags && flags.indexOf('y') > -1;\n if (sticky) flags = flags.replace(/y/g, '');\n }\n\n var result = inheritIfRequired(\n CORRECT_NEW ? new NativeRegExp(pattern, flags) : NativeRegExp(pattern, flags),\n thisIsRegExp ? this : RegExpPrototype,\n RegExpWrapper\n );\n\n if (UNSUPPORTED_Y && sticky) {\n var state = enforceInternalState(result);\n state.sticky = true;\n }\n\n return result;\n };\n var proxy = function (key) {\n key in RegExpWrapper || defineProperty(RegExpWrapper, key, {\n configurable: true,\n get: function () { return NativeRegExp[key]; },\n set: function (it) { NativeRegExp[key] = it; }\n });\n };\n var keys = getOwnPropertyNames(NativeRegExp);\n var index = 0;\n while (keys.length > index) proxy(keys[index++]);\n RegExpPrototype.constructor = RegExpWrapper;\n RegExpWrapper.prototype = RegExpPrototype;\n redefine(global, 'RegExp', RegExpWrapper);\n}\n\n// https://tc39.es/ecma262/#sec-get-regexp-@@species\nsetSpecies('RegExp');\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar isObject = require('../internals/is-object');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (str) {\n if (typeof this.exec !== 'function') {\n return nativeTest.call(this, str);\n }\n var result = this.exec(str);\n if (result !== null && !isObject(result)) {\n throw new Error('RegExp exec method returned something other than an Object or null');\n }\n return !!result;\n }\n});\n","'use strict';\nvar redefine = require('../internals/redefine');\nvar anObject = require('../internals/an-object');\nvar fails = require('../internals/fails');\nvar flags = require('../internals/regexp-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n redefine(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var p = String(R.source);\n var rf = R.flags;\n var f = String(rf === undefined && R instanceof RegExp && !('flags' in RegExpPrototype) ? flags.call(R) : rf);\n return '/' + p + '/' + f;\n }, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~String(requireObjectCoercible(this))\n .indexOf(notARegExp(searchString), arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/define-iterator');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@match logic\nfixRegExpWellKnownSymbolLogic('match', 1, function (MATCH, nativeMatch, maybeCallNative) {\n return [\n // `String.prototype.match` method\n // https://tc39.es/ecma262/#sec-string.prototype.match\n function match(regexp) {\n var O = requireObjectCoercible(this);\n var matcher = regexp == undefined ? undefined : regexp[MATCH];\n return matcher !== undefined ? matcher.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));\n },\n // `RegExp.prototype[@@match]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@match\n function (regexp) {\n var res = maybeCallNative(nativeMatch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n if (!rx.global) return regExpExec(rx, S);\n\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n var A = [];\n var n = 0;\n var result;\n while ((result = regExpExec(rx, S)) !== null) {\n var matchStr = String(result[0]);\n A[n] = matchStr;\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n n++;\n }\n return n === 0 ? null : A;\n }\n ];\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar isRegExp = require('../internals/is-regexp');\nvar getRegExpFlags = require('../internals/regexp-flags');\nvar getSubstitution = require('../internals/get-substitution');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar RegExpPrototype = RegExp.prototype;\nvar max = Math.max;\n\nvar stringIndexOf = function (string, searchValue, fromIndex) {\n if (fromIndex > string.length) return -1;\n if (searchValue === '') return fromIndex;\n return string.indexOf(searchValue, fromIndex);\n};\n\n// `String.prototype.replaceAll` method\n// https://tc39.es/ecma262/#sec-string.prototype.replaceall\n$({ target: 'String', proto: true }, {\n replaceAll: function replaceAll(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var IS_REG_EXP, flags, replacer, string, searchString, functionalReplace, searchLength, advanceBy, replacement;\n var position = 0;\n var endOfLastMatch = 0;\n var result = '';\n if (searchValue != null) {\n IS_REG_EXP = isRegExp(searchValue);\n if (IS_REG_EXP) {\n flags = String(requireObjectCoercible('flags' in RegExpPrototype\n ? searchValue.flags\n : getRegExpFlags.call(searchValue)\n ));\n if (!~flags.indexOf('g')) throw TypeError('`.replaceAll` does not allow non-global regexes');\n }\n replacer = searchValue[REPLACE];\n if (replacer !== undefined) {\n return replacer.call(searchValue, O, replaceValue);\n } else if (IS_PURE && IS_REG_EXP) {\n return String(O).replace(searchValue, replaceValue);\n }\n }\n string = String(O);\n searchString = String(searchValue);\n functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n searchLength = searchString.length;\n advanceBy = max(1, searchLength);\n position = stringIndexOf(string, searchString, 0);\n while (position !== -1) {\n if (functionalReplace) {\n replacement = String(replaceValue(searchString, position, string));\n } else {\n replacement = getSubstitution(searchString, string, position, [], undefined, replaceValue);\n }\n result += string.slice(endOfLastMatch, position) + replacement;\n endOfLastMatch = position + searchLength;\n position = stringIndexOf(string, searchString, position + advanceBy);\n }\n if (endOfLastMatch < string.length) {\n result += string.slice(endOfLastMatch);\n }\n return result;\n }\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n});\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar sameValue = require('../internals/same-value');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\n// @@search logic\nfixRegExpWellKnownSymbolLogic('search', 1, function (SEARCH, nativeSearch, maybeCallNative) {\n return [\n // `String.prototype.search` method\n // https://tc39.es/ecma262/#sec-string.prototype.search\n function search(regexp) {\n var O = requireObjectCoercible(this);\n var searcher = regexp == undefined ? undefined : regexp[SEARCH];\n return searcher !== undefined ? searcher.call(regexp, O) : new RegExp(regexp)[SEARCH](String(O));\n },\n // `RegExp.prototype[@@search]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@search\n function (regexp) {\n var res = maybeCallNative(nativeSearch, regexp, this);\n if (res.done) return res.value;\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var previousLastIndex = rx.lastIndex;\n if (!sameValue(previousLastIndex, 0)) rx.lastIndex = 0;\n var result = regExpExec(rx, S);\n if (!sameValue(rx.lastIndex, previousLastIndex)) rx.lastIndex = previousLastIndex;\n return result === null ? -1 : result.index;\n }\n ];\n});\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar has = require('../internals/has');\nvar isObject = require('../internals/is-object');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\n\nif (DESCRIPTORS && typeof NativeSymbol == 'function' && (!('description' in NativeSymbol.prototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : String(arguments[0]);\n var result = this instanceof SymbolWrapper\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n var symbolPrototype = SymbolWrapper.prototype = NativeSymbol.prototype;\n symbolPrototype.constructor = SymbolWrapper;\n\n var symbolToString = symbolPrototype.toString;\n var native = String(NativeSymbol('test')) == 'Symbol(test)';\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n defineProperty(symbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = isObject(this) ? this.valueOf() : this;\n var string = symbolToString.call(symbol);\n if (has(EmptyStringDescriptionStore, symbol)) return '';\n var desc = native ? string.slice(7, -1) : string.replace(regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.array.iterator');\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar redefine = require('../internals/redefine');\nvar redefineAll = require('../internals/redefine-all');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createIteratorConstructor = require('../internals/create-iterator-constructor');\nvar InternalStateModule = require('../internals/internal-state');\nvar anInstance = require('../internals/an-instance');\nvar hasOwn = require('../internals/has');\nvar bind = require('../internals/function-bind-context');\nvar classof = require('../internals/classof');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $fetch = getBuiltIn('fetch');\nvar Headers = getBuiltIn('Headers');\nvar ITERATOR = wellKnownSymbol('iterator');\nvar URL_SEARCH_PARAMS = 'URLSearchParams';\nvar URL_SEARCH_PARAMS_ITERATOR = URL_SEARCH_PARAMS + 'Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalParamsState = InternalStateModule.getterFor(URL_SEARCH_PARAMS);\nvar getInternalIteratorState = InternalStateModule.getterFor(URL_SEARCH_PARAMS_ITERATOR);\n\nvar plus = /\\+/g;\nvar sequences = Array(4);\n\nvar percentSequence = function (bytes) {\n return sequences[bytes - 1] || (sequences[bytes - 1] = RegExp('((?:%[\\\\da-f]{2}){' + bytes + '})', 'gi'));\n};\n\nvar percentDecode = function (sequence) {\n try {\n return decodeURIComponent(sequence);\n } catch (error) {\n return sequence;\n }\n};\n\nvar deserialize = function (it) {\n var result = it.replace(plus, ' ');\n var bytes = 4;\n try {\n return decodeURIComponent(result);\n } catch (error) {\n while (bytes) {\n result = result.replace(percentSequence(bytes--), percentDecode);\n }\n return result;\n }\n};\n\nvar find = /[!'()~]|%20/g;\n\nvar replace = {\n '!': '%21',\n \"'\": '%27',\n '(': '%28',\n ')': '%29',\n '~': '%7E',\n '%20': '+'\n};\n\nvar replacer = function (match) {\n return replace[match];\n};\n\nvar serialize = function (it) {\n return encodeURIComponent(it).replace(find, replacer);\n};\n\nvar parseSearchParams = function (result, query) {\n if (query) {\n var attributes = query.split('&');\n var index = 0;\n var attribute, entry;\n while (index < attributes.length) {\n attribute = attributes[index++];\n if (attribute.length) {\n entry = attribute.split('=');\n result.push({\n key: deserialize(entry.shift()),\n value: deserialize(entry.join('='))\n });\n }\n }\n }\n};\n\nvar updateSearchParams = function (query) {\n this.entries.length = 0;\n parseSearchParams(this.entries, query);\n};\n\nvar validateArgumentsLength = function (passed, required) {\n if (passed < required) throw TypeError('Not enough arguments');\n};\n\nvar URLSearchParamsIterator = createIteratorConstructor(function Iterator(params, kind) {\n setInternalState(this, {\n type: URL_SEARCH_PARAMS_ITERATOR,\n iterator: getIterator(getInternalParamsState(params).entries),\n kind: kind\n });\n}, 'Iterator', function next() {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var step = state.iterator.next();\n var entry = step.value;\n if (!step.done) {\n step.value = kind === 'keys' ? entry.key : kind === 'values' ? entry.value : [entry.key, entry.value];\n } return step;\n});\n\n// `URLSearchParams` constructor\n// https://url.spec.whatwg.org/#interface-urlsearchparams\nvar URLSearchParamsConstructor = function URLSearchParams(/* init */) {\n anInstance(this, URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n var init = arguments.length > 0 ? arguments[0] : undefined;\n var that = this;\n var entries = [];\n var iteratorMethod, iterator, next, step, entryIterator, entryNext, first, second, key;\n\n setInternalState(that, {\n type: URL_SEARCH_PARAMS,\n entries: entries,\n updateURL: function () { /* empty */ },\n updateSearchParams: updateSearchParams\n });\n\n if (init !== undefined) {\n if (isObject(init)) {\n iteratorMethod = getIteratorMethod(init);\n if (typeof iteratorMethod === 'function') {\n iterator = iteratorMethod.call(init);\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n entryIterator = getIterator(anObject(step.value));\n entryNext = entryIterator.next;\n if (\n (first = entryNext.call(entryIterator)).done ||\n (second = entryNext.call(entryIterator)).done ||\n !entryNext.call(entryIterator).done\n ) throw TypeError('Expected sequence with length 2');\n entries.push({ key: first.value + '', value: second.value + '' });\n }\n } else for (key in init) if (hasOwn(init, key)) entries.push({ key: key, value: init[key] + '' });\n } else {\n parseSearchParams(entries, typeof init === 'string' ? init.charAt(0) === '?' ? init.slice(1) : init : init + '');\n }\n }\n};\n\nvar URLSearchParamsPrototype = URLSearchParamsConstructor.prototype;\n\nredefineAll(URLSearchParamsPrototype, {\n // `URLSearchParams.prototype.append` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-append\n append: function append(name, value) {\n validateArgumentsLength(arguments.length, 2);\n var state = getInternalParamsState(this);\n state.entries.push({ key: name + '', value: value + '' });\n state.updateURL();\n },\n // `URLSearchParams.prototype.delete` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-delete\n 'delete': function (name) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index].key === key) entries.splice(index, 1);\n else index++;\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.get` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-get\n get: function get(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) return entries[index].value;\n }\n return null;\n },\n // `URLSearchParams.prototype.getAll` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-getall\n getAll: function getAll(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var result = [];\n var index = 0;\n for (; index < entries.length; index++) {\n if (entries[index].key === key) result.push(entries[index].value);\n }\n return result;\n },\n // `URLSearchParams.prototype.has` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-has\n has: function has(name) {\n validateArgumentsLength(arguments.length, 1);\n var entries = getInternalParamsState(this).entries;\n var key = name + '';\n var index = 0;\n while (index < entries.length) {\n if (entries[index++].key === key) return true;\n }\n return false;\n },\n // `URLSearchParams.prototype.set` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-set\n set: function set(name, value) {\n validateArgumentsLength(arguments.length, 1);\n var state = getInternalParamsState(this);\n var entries = state.entries;\n var found = false;\n var key = name + '';\n var val = value + '';\n var index = 0;\n var entry;\n for (; index < entries.length; index++) {\n entry = entries[index];\n if (entry.key === key) {\n if (found) entries.splice(index--, 1);\n else {\n found = true;\n entry.value = val;\n }\n }\n }\n if (!found) entries.push({ key: key, value: val });\n state.updateURL();\n },\n // `URLSearchParams.prototype.sort` method\n // https://url.spec.whatwg.org/#dom-urlsearchparams-sort\n sort: function sort() {\n var state = getInternalParamsState(this);\n var entries = state.entries;\n // Array#sort is not stable in some engines\n var slice = entries.slice();\n var entry, entriesIndex, sliceIndex;\n entries.length = 0;\n for (sliceIndex = 0; sliceIndex < slice.length; sliceIndex++) {\n entry = slice[sliceIndex];\n for (entriesIndex = 0; entriesIndex < sliceIndex; entriesIndex++) {\n if (entries[entriesIndex].key > entry.key) {\n entries.splice(entriesIndex, 0, entry);\n break;\n }\n }\n if (entriesIndex === sliceIndex) entries.push(entry);\n }\n state.updateURL();\n },\n // `URLSearchParams.prototype.forEach` method\n forEach: function forEach(callback /* , thisArg */) {\n var entries = getInternalParamsState(this).entries;\n var boundFunction = bind(callback, arguments.length > 1 ? arguments[1] : undefined, 3);\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n boundFunction(entry.value, entry.key, this);\n }\n },\n // `URLSearchParams.prototype.keys` method\n keys: function keys() {\n return new URLSearchParamsIterator(this, 'keys');\n },\n // `URLSearchParams.prototype.values` method\n values: function values() {\n return new URLSearchParamsIterator(this, 'values');\n },\n // `URLSearchParams.prototype.entries` method\n entries: function entries() {\n return new URLSearchParamsIterator(this, 'entries');\n }\n}, { enumerable: true });\n\n// `URLSearchParams.prototype[@@iterator]` method\nredefine(URLSearchParamsPrototype, ITERATOR, URLSearchParamsPrototype.entries);\n\n// `URLSearchParams.prototype.toString` method\n// https://url.spec.whatwg.org/#urlsearchparams-stringification-behavior\nredefine(URLSearchParamsPrototype, 'toString', function toString() {\n var entries = getInternalParamsState(this).entries;\n var result = [];\n var index = 0;\n var entry;\n while (index < entries.length) {\n entry = entries[index++];\n result.push(serialize(entry.key) + '=' + serialize(entry.value));\n } return result.join('&');\n}, { enumerable: true });\n\nsetToStringTag(URLSearchParamsConstructor, URL_SEARCH_PARAMS);\n\n$({ global: true, forced: !USE_NATIVE_URL }, {\n URLSearchParams: URLSearchParamsConstructor\n});\n\n// Wrap `fetch` for correct work with polyfilled `URLSearchParams`\n// https://github.com/zloirock/core-js/issues/674\nif (!USE_NATIVE_URL && typeof $fetch == 'function' && typeof Headers == 'function') {\n $({ global: true, enumerable: true, forced: true }, {\n fetch: function fetch(input /* , init */) {\n var args = [input];\n var init, body, headers;\n if (arguments.length > 1) {\n init = arguments[1];\n if (isObject(init)) {\n body = init.body;\n if (classof(body) === URL_SEARCH_PARAMS) {\n headers = init.headers ? new Headers(init.headers) : new Headers();\n if (!headers.has('content-type')) {\n headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8');\n }\n init = create(init, {\n body: createPropertyDescriptor(0, String(body)),\n headers: createPropertyDescriptor(0, headers)\n });\n }\n }\n args.push(init);\n } return $fetch.apply(this, args);\n }\n });\n}\n\nmodule.exports = {\n URLSearchParams: URLSearchParamsConstructor,\n getState: getInternalParamsState\n};\n","'use strict';\n// TODO: in core-js@4, move /modules/ dependencies to public entries for better optimization by tools like `preset-env`\nrequire('../modules/es.string.iterator');\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar USE_NATIVE_URL = require('../internals/native-url');\nvar global = require('../internals/global');\nvar defineProperties = require('../internals/object-define-properties');\nvar redefine = require('../internals/redefine');\nvar anInstance = require('../internals/an-instance');\nvar has = require('../internals/has');\nvar assign = require('../internals/object-assign');\nvar arrayFrom = require('../internals/array-from');\nvar codeAt = require('../internals/string-multibyte').codeAt;\nvar toASCII = require('../internals/string-punycode-to-ascii');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar URLSearchParamsModule = require('../modules/web.url-search-params');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar NativeURL = global.URL;\nvar URLSearchParams = URLSearchParamsModule.URLSearchParams;\nvar getInternalSearchParamsState = URLSearchParamsModule.getState;\nvar setInternalState = InternalStateModule.set;\nvar getInternalURLState = InternalStateModule.getterFor('URL');\nvar floor = Math.floor;\nvar pow = Math.pow;\n\nvar INVALID_AUTHORITY = 'Invalid authority';\nvar INVALID_SCHEME = 'Invalid scheme';\nvar INVALID_HOST = 'Invalid host';\nvar INVALID_PORT = 'Invalid port';\n\nvar ALPHA = /[A-Za-z]/;\n// eslint-disable-next-line regexp/no-obscure-range -- safe\nvar ALPHANUMERIC = /[\\d+-.A-Za-z]/;\nvar DIGIT = /\\d/;\nvar HEX_START = /^(0x|0X)/;\nvar OCT = /^[0-7]+$/;\nvar DEC = /^\\d+$/;\nvar HEX = /^[\\dA-Fa-f]+$/;\n/* eslint-disable no-control-regex -- safe */\nvar FORBIDDEN_HOST_CODE_POINT = /[\\0\\t\\n\\r #%/:?@[\\\\]]/;\nvar FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT = /[\\0\\t\\n\\r #/:?@[\\\\]]/;\nvar LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE = /^[\\u0000-\\u001F ]+|[\\u0000-\\u001F ]+$/g;\nvar TAB_AND_NEW_LINE = /[\\t\\n\\r]/g;\n/* eslint-enable no-control-regex -- safe */\nvar EOF;\n\nvar parseHost = function (url, input) {\n var result, codePoints, index;\n if (input.charAt(0) == '[') {\n if (input.charAt(input.length - 1) != ']') return INVALID_HOST;\n result = parseIPv6(input.slice(1, -1));\n if (!result) return INVALID_HOST;\n url.host = result;\n // opaque host\n } else if (!isSpecial(url)) {\n if (FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT.test(input)) return INVALID_HOST;\n result = '';\n codePoints = arrayFrom(input);\n for (index = 0; index < codePoints.length; index++) {\n result += percentEncode(codePoints[index], C0ControlPercentEncodeSet);\n }\n url.host = result;\n } else {\n input = toASCII(input);\n if (FORBIDDEN_HOST_CODE_POINT.test(input)) return INVALID_HOST;\n result = parseIPv4(input);\n if (result === null) return INVALID_HOST;\n url.host = result;\n }\n};\n\nvar parseIPv4 = function (input) {\n var parts = input.split('.');\n var partsLength, numbers, index, part, radix, number, ipv4;\n if (parts.length && parts[parts.length - 1] == '') {\n parts.pop();\n }\n partsLength = parts.length;\n if (partsLength > 4) return input;\n numbers = [];\n for (index = 0; index < partsLength; index++) {\n part = parts[index];\n if (part == '') return input;\n radix = 10;\n if (part.length > 1 && part.charAt(0) == '0') {\n radix = HEX_START.test(part) ? 16 : 8;\n part = part.slice(radix == 8 ? 1 : 2);\n }\n if (part === '') {\n number = 0;\n } else {\n if (!(radix == 10 ? DEC : radix == 8 ? OCT : HEX).test(part)) return input;\n number = parseInt(part, radix);\n }\n numbers.push(number);\n }\n for (index = 0; index < partsLength; index++) {\n number = numbers[index];\n if (index == partsLength - 1) {\n if (number >= pow(256, 5 - partsLength)) return null;\n } else if (number > 255) return null;\n }\n ipv4 = numbers.pop();\n for (index = 0; index < numbers.length; index++) {\n ipv4 += numbers[index] * pow(256, 3 - index);\n }\n return ipv4;\n};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseIPv6 = function (input) {\n var address = [0, 0, 0, 0, 0, 0, 0, 0];\n var pieceIndex = 0;\n var compress = null;\n var pointer = 0;\n var value, length, numbersSeen, ipv4Piece, number, swaps, swap;\n\n var char = function () {\n return input.charAt(pointer);\n };\n\n if (char() == ':') {\n if (input.charAt(1) != ':') return;\n pointer += 2;\n pieceIndex++;\n compress = pieceIndex;\n }\n while (char()) {\n if (pieceIndex == 8) return;\n if (char() == ':') {\n if (compress !== null) return;\n pointer++;\n pieceIndex++;\n compress = pieceIndex;\n continue;\n }\n value = length = 0;\n while (length < 4 && HEX.test(char())) {\n value = value * 16 + parseInt(char(), 16);\n pointer++;\n length++;\n }\n if (char() == '.') {\n if (length == 0) return;\n pointer -= length;\n if (pieceIndex > 6) return;\n numbersSeen = 0;\n while (char()) {\n ipv4Piece = null;\n if (numbersSeen > 0) {\n if (char() == '.' && numbersSeen < 4) pointer++;\n else return;\n }\n if (!DIGIT.test(char())) return;\n while (DIGIT.test(char())) {\n number = parseInt(char(), 10);\n if (ipv4Piece === null) ipv4Piece = number;\n else if (ipv4Piece == 0) return;\n else ipv4Piece = ipv4Piece * 10 + number;\n if (ipv4Piece > 255) return;\n pointer++;\n }\n address[pieceIndex] = address[pieceIndex] * 256 + ipv4Piece;\n numbersSeen++;\n if (numbersSeen == 2 || numbersSeen == 4) pieceIndex++;\n }\n if (numbersSeen != 4) return;\n break;\n } else if (char() == ':') {\n pointer++;\n if (!char()) return;\n } else if (char()) return;\n address[pieceIndex++] = value;\n }\n if (compress !== null) {\n swaps = pieceIndex - compress;\n pieceIndex = 7;\n while (pieceIndex != 0 && swaps > 0) {\n swap = address[pieceIndex];\n address[pieceIndex--] = address[compress + swaps - 1];\n address[compress + --swaps] = swap;\n }\n } else if (pieceIndex != 8) return;\n return address;\n};\n\nvar findLongestZeroSequence = function (ipv6) {\n var maxIndex = null;\n var maxLength = 1;\n var currStart = null;\n var currLength = 0;\n var index = 0;\n for (; index < 8; index++) {\n if (ipv6[index] !== 0) {\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n currStart = null;\n currLength = 0;\n } else {\n if (currStart === null) currStart = index;\n ++currLength;\n }\n }\n if (currLength > maxLength) {\n maxIndex = currStart;\n maxLength = currLength;\n }\n return maxIndex;\n};\n\nvar serializeHost = function (host) {\n var result, index, compress, ignore0;\n // ipv4\n if (typeof host == 'number') {\n result = [];\n for (index = 0; index < 4; index++) {\n result.unshift(host % 256);\n host = floor(host / 256);\n } return result.join('.');\n // ipv6\n } else if (typeof host == 'object') {\n result = '';\n compress = findLongestZeroSequence(host);\n for (index = 0; index < 8; index++) {\n if (ignore0 && host[index] === 0) continue;\n if (ignore0) ignore0 = false;\n if (compress === index) {\n result += index ? ':' : '::';\n ignore0 = true;\n } else {\n result += host[index].toString(16);\n if (index < 7) result += ':';\n }\n }\n return '[' + result + ']';\n } return host;\n};\n\nvar C0ControlPercentEncodeSet = {};\nvar fragmentPercentEncodeSet = assign({}, C0ControlPercentEncodeSet, {\n ' ': 1, '\"': 1, '<': 1, '>': 1, '`': 1\n});\nvar pathPercentEncodeSet = assign({}, fragmentPercentEncodeSet, {\n '#': 1, '?': 1, '{': 1, '}': 1\n});\nvar userinfoPercentEncodeSet = assign({}, pathPercentEncodeSet, {\n '/': 1, ':': 1, ';': 1, '=': 1, '@': 1, '[': 1, '\\\\': 1, ']': 1, '^': 1, '|': 1\n});\n\nvar percentEncode = function (char, set) {\n var code = codeAt(char, 0);\n return code > 0x20 && code < 0x7F && !has(set, char) ? char : encodeURIComponent(char);\n};\n\nvar specialSchemes = {\n ftp: 21,\n file: null,\n http: 80,\n https: 443,\n ws: 80,\n wss: 443\n};\n\nvar isSpecial = function (url) {\n return has(specialSchemes, url.scheme);\n};\n\nvar includesCredentials = function (url) {\n return url.username != '' || url.password != '';\n};\n\nvar cannotHaveUsernamePasswordPort = function (url) {\n return !url.host || url.cannotBeABaseURL || url.scheme == 'file';\n};\n\nvar isWindowsDriveLetter = function (string, normalized) {\n var second;\n return string.length == 2 && ALPHA.test(string.charAt(0))\n && ((second = string.charAt(1)) == ':' || (!normalized && second == '|'));\n};\n\nvar startsWithWindowsDriveLetter = function (string) {\n var third;\n return string.length > 1 && isWindowsDriveLetter(string.slice(0, 2)) && (\n string.length == 2 ||\n ((third = string.charAt(2)) === '/' || third === '\\\\' || third === '?' || third === '#')\n );\n};\n\nvar shortenURLsPath = function (url) {\n var path = url.path;\n var pathSize = path.length;\n if (pathSize && (url.scheme != 'file' || pathSize != 1 || !isWindowsDriveLetter(path[0], true))) {\n path.pop();\n }\n};\n\nvar isSingleDot = function (segment) {\n return segment === '.' || segment.toLowerCase() === '%2e';\n};\n\nvar isDoubleDot = function (segment) {\n segment = segment.toLowerCase();\n return segment === '..' || segment === '%2e.' || segment === '.%2e' || segment === '%2e%2e';\n};\n\n// States:\nvar SCHEME_START = {};\nvar SCHEME = {};\nvar NO_SCHEME = {};\nvar SPECIAL_RELATIVE_OR_AUTHORITY = {};\nvar PATH_OR_AUTHORITY = {};\nvar RELATIVE = {};\nvar RELATIVE_SLASH = {};\nvar SPECIAL_AUTHORITY_SLASHES = {};\nvar SPECIAL_AUTHORITY_IGNORE_SLASHES = {};\nvar AUTHORITY = {};\nvar HOST = {};\nvar HOSTNAME = {};\nvar PORT = {};\nvar FILE = {};\nvar FILE_SLASH = {};\nvar FILE_HOST = {};\nvar PATH_START = {};\nvar PATH = {};\nvar CANNOT_BE_A_BASE_URL_PATH = {};\nvar QUERY = {};\nvar FRAGMENT = {};\n\n// eslint-disable-next-line max-statements -- TODO\nvar parseURL = function (url, input, stateOverride, base) {\n var state = stateOverride || SCHEME_START;\n var pointer = 0;\n var buffer = '';\n var seenAt = false;\n var seenBracket = false;\n var seenPasswordToken = false;\n var codePoints, char, bufferCodePoints, failure;\n\n if (!stateOverride) {\n url.scheme = '';\n url.username = '';\n url.password = '';\n url.host = null;\n url.port = null;\n url.path = [];\n url.query = null;\n url.fragment = null;\n url.cannotBeABaseURL = false;\n input = input.replace(LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE, '');\n }\n\n input = input.replace(TAB_AND_NEW_LINE, '');\n\n codePoints = arrayFrom(input);\n\n while (pointer <= codePoints.length) {\n char = codePoints[pointer];\n switch (state) {\n case SCHEME_START:\n if (char && ALPHA.test(char)) {\n buffer += char.toLowerCase();\n state = SCHEME;\n } else if (!stateOverride) {\n state = NO_SCHEME;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case SCHEME:\n if (char && (ALPHANUMERIC.test(char) || char == '+' || char == '-' || char == '.')) {\n buffer += char.toLowerCase();\n } else if (char == ':') {\n if (stateOverride && (\n (isSpecial(url) != has(specialSchemes, buffer)) ||\n (buffer == 'file' && (includesCredentials(url) || url.port !== null)) ||\n (url.scheme == 'file' && !url.host)\n )) return;\n url.scheme = buffer;\n if (stateOverride) {\n if (isSpecial(url) && specialSchemes[url.scheme] == url.port) url.port = null;\n return;\n }\n buffer = '';\n if (url.scheme == 'file') {\n state = FILE;\n } else if (isSpecial(url) && base && base.scheme == url.scheme) {\n state = SPECIAL_RELATIVE_OR_AUTHORITY;\n } else if (isSpecial(url)) {\n state = SPECIAL_AUTHORITY_SLASHES;\n } else if (codePoints[pointer + 1] == '/') {\n state = PATH_OR_AUTHORITY;\n pointer++;\n } else {\n url.cannotBeABaseURL = true;\n url.path.push('');\n state = CANNOT_BE_A_BASE_URL_PATH;\n }\n } else if (!stateOverride) {\n buffer = '';\n state = NO_SCHEME;\n pointer = 0;\n continue;\n } else return INVALID_SCHEME;\n break;\n\n case NO_SCHEME:\n if (!base || (base.cannotBeABaseURL && char != '#')) return INVALID_SCHEME;\n if (base.cannotBeABaseURL && char == '#') {\n url.scheme = base.scheme;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n url.cannotBeABaseURL = true;\n state = FRAGMENT;\n break;\n }\n state = base.scheme == 'file' ? FILE : RELATIVE;\n continue;\n\n case SPECIAL_RELATIVE_OR_AUTHORITY:\n if (char == '/' && codePoints[pointer + 1] == '/') {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n pointer++;\n } else {\n state = RELATIVE;\n continue;\n } break;\n\n case PATH_OR_AUTHORITY:\n if (char == '/') {\n state = AUTHORITY;\n break;\n } else {\n state = PATH;\n continue;\n }\n\n case RELATIVE:\n url.scheme = base.scheme;\n if (char == EOF) {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '/' || (char == '\\\\' && isSpecial(url))) {\n state = RELATIVE_SLASH;\n } else if (char == '?') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n url.path = base.path.slice();\n url.path.pop();\n state = PATH;\n continue;\n } break;\n\n case RELATIVE_SLASH:\n if (isSpecial(url) && (char == '/' || char == '\\\\')) {\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n } else if (char == '/') {\n state = AUTHORITY;\n } else {\n url.username = base.username;\n url.password = base.password;\n url.host = base.host;\n url.port = base.port;\n state = PATH;\n continue;\n } break;\n\n case SPECIAL_AUTHORITY_SLASHES:\n state = SPECIAL_AUTHORITY_IGNORE_SLASHES;\n if (char != '/' || buffer.charAt(pointer + 1) != '/') continue;\n pointer++;\n break;\n\n case SPECIAL_AUTHORITY_IGNORE_SLASHES:\n if (char != '/' && char != '\\\\') {\n state = AUTHORITY;\n continue;\n } break;\n\n case AUTHORITY:\n if (char == '@') {\n if (seenAt) buffer = '%40' + buffer;\n seenAt = true;\n bufferCodePoints = arrayFrom(buffer);\n for (var i = 0; i < bufferCodePoints.length; i++) {\n var codePoint = bufferCodePoints[i];\n if (codePoint == ':' && !seenPasswordToken) {\n seenPasswordToken = true;\n continue;\n }\n var encodedCodePoints = percentEncode(codePoint, userinfoPercentEncodeSet);\n if (seenPasswordToken) url.password += encodedCodePoints;\n else url.username += encodedCodePoints;\n }\n buffer = '';\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (seenAt && buffer == '') return INVALID_AUTHORITY;\n pointer -= arrayFrom(buffer).length + 1;\n buffer = '';\n state = HOST;\n } else buffer += char;\n break;\n\n case HOST:\n case HOSTNAME:\n if (stateOverride && url.scheme == 'file') {\n state = FILE_HOST;\n continue;\n } else if (char == ':' && !seenBracket) {\n if (buffer == '') return INVALID_HOST;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PORT;\n if (stateOverride == HOSTNAME) return;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url))\n ) {\n if (isSpecial(url) && buffer == '') return INVALID_HOST;\n if (stateOverride && buffer == '' && (includesCredentials(url) || url.port !== null)) return;\n failure = parseHost(url, buffer);\n if (failure) return failure;\n buffer = '';\n state = PATH_START;\n if (stateOverride) return;\n continue;\n } else {\n if (char == '[') seenBracket = true;\n else if (char == ']') seenBracket = false;\n buffer += char;\n } break;\n\n case PORT:\n if (DIGIT.test(char)) {\n buffer += char;\n } else if (\n char == EOF || char == '/' || char == '?' || char == '#' ||\n (char == '\\\\' && isSpecial(url)) ||\n stateOverride\n ) {\n if (buffer != '') {\n var port = parseInt(buffer, 10);\n if (port > 0xFFFF) return INVALID_PORT;\n url.port = (isSpecial(url) && port === specialSchemes[url.scheme]) ? null : port;\n buffer = '';\n }\n if (stateOverride) return;\n state = PATH_START;\n continue;\n } else return INVALID_PORT;\n break;\n\n case FILE:\n url.scheme = 'file';\n if (char == '/' || char == '\\\\') state = FILE_SLASH;\n else if (base && base.scheme == 'file') {\n if (char == EOF) {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n } else if (char == '?') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.host = base.host;\n url.path = base.path.slice();\n url.query = base.query;\n url.fragment = '';\n state = FRAGMENT;\n } else {\n if (!startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n url.host = base.host;\n url.path = base.path.slice();\n shortenURLsPath(url);\n }\n state = PATH;\n continue;\n }\n } else {\n state = PATH;\n continue;\n } break;\n\n case FILE_SLASH:\n if (char == '/' || char == '\\\\') {\n state = FILE_HOST;\n break;\n }\n if (base && base.scheme == 'file' && !startsWithWindowsDriveLetter(codePoints.slice(pointer).join(''))) {\n if (isWindowsDriveLetter(base.path[0], true)) url.path.push(base.path[0]);\n else url.host = base.host;\n }\n state = PATH;\n continue;\n\n case FILE_HOST:\n if (char == EOF || char == '/' || char == '\\\\' || char == '?' || char == '#') {\n if (!stateOverride && isWindowsDriveLetter(buffer)) {\n state = PATH;\n } else if (buffer == '') {\n url.host = '';\n if (stateOverride) return;\n state = PATH_START;\n } else {\n failure = parseHost(url, buffer);\n if (failure) return failure;\n if (url.host == 'localhost') url.host = '';\n if (stateOverride) return;\n buffer = '';\n state = PATH_START;\n } continue;\n } else buffer += char;\n break;\n\n case PATH_START:\n if (isSpecial(url)) {\n state = PATH;\n if (char != '/' && char != '\\\\') continue;\n } else if (!stateOverride && char == '?') {\n url.query = '';\n state = QUERY;\n } else if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n state = PATH;\n if (char != '/') continue;\n } break;\n\n case PATH:\n if (\n char == EOF || char == '/' ||\n (char == '\\\\' && isSpecial(url)) ||\n (!stateOverride && (char == '?' || char == '#'))\n ) {\n if (isDoubleDot(buffer)) {\n shortenURLsPath(url);\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else if (isSingleDot(buffer)) {\n if (char != '/' && !(char == '\\\\' && isSpecial(url))) {\n url.path.push('');\n }\n } else {\n if (url.scheme == 'file' && !url.path.length && isWindowsDriveLetter(buffer)) {\n if (url.host) url.host = '';\n buffer = buffer.charAt(0) + ':'; // normalize windows drive letter\n }\n url.path.push(buffer);\n }\n buffer = '';\n if (url.scheme == 'file' && (char == EOF || char == '?' || char == '#')) {\n while (url.path.length > 1 && url.path[0] === '') {\n url.path.shift();\n }\n }\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n }\n } else {\n buffer += percentEncode(char, pathPercentEncodeSet);\n } break;\n\n case CANNOT_BE_A_BASE_URL_PATH:\n if (char == '?') {\n url.query = '';\n state = QUERY;\n } else if (char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n url.path[0] += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case QUERY:\n if (!stateOverride && char == '#') {\n url.fragment = '';\n state = FRAGMENT;\n } else if (char != EOF) {\n if (char == \"'\" && isSpecial(url)) url.query += '%27';\n else if (char == '#') url.query += '%23';\n else url.query += percentEncode(char, C0ControlPercentEncodeSet);\n } break;\n\n case FRAGMENT:\n if (char != EOF) url.fragment += percentEncode(char, fragmentPercentEncodeSet);\n break;\n }\n\n pointer++;\n }\n};\n\n// `URL` constructor\n// https://url.spec.whatwg.org/#url-class\nvar URLConstructor = function URL(url /* , base */) {\n var that = anInstance(this, URLConstructor, 'URL');\n var base = arguments.length > 1 ? arguments[1] : undefined;\n var urlString = String(url);\n var state = setInternalState(that, { type: 'URL' });\n var baseState, failure;\n if (base !== undefined) {\n if (base instanceof URLConstructor) baseState = getInternalURLState(base);\n else {\n failure = parseURL(baseState = {}, String(base));\n if (failure) throw TypeError(failure);\n }\n }\n failure = parseURL(state, urlString, null, baseState);\n if (failure) throw TypeError(failure);\n var searchParams = state.searchParams = new URLSearchParams();\n var searchParamsState = getInternalSearchParamsState(searchParams);\n searchParamsState.updateSearchParams(state.query);\n searchParamsState.updateURL = function () {\n state.query = String(searchParams) || null;\n };\n if (!DESCRIPTORS) {\n that.href = serializeURL.call(that);\n that.origin = getOrigin.call(that);\n that.protocol = getProtocol.call(that);\n that.username = getUsername.call(that);\n that.password = getPassword.call(that);\n that.host = getHost.call(that);\n that.hostname = getHostname.call(that);\n that.port = getPort.call(that);\n that.pathname = getPathname.call(that);\n that.search = getSearch.call(that);\n that.searchParams = getSearchParams.call(that);\n that.hash = getHash.call(that);\n }\n};\n\nvar URLPrototype = URLConstructor.prototype;\n\nvar serializeURL = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var username = url.username;\n var password = url.password;\n var host = url.host;\n var port = url.port;\n var path = url.path;\n var query = url.query;\n var fragment = url.fragment;\n var output = scheme + ':';\n if (host !== null) {\n output += '//';\n if (includesCredentials(url)) {\n output += username + (password ? ':' + password : '') + '@';\n }\n output += serializeHost(host);\n if (port !== null) output += ':' + port;\n } else if (scheme == 'file') output += '//';\n output += url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n if (query !== null) output += '?' + query;\n if (fragment !== null) output += '#' + fragment;\n return output;\n};\n\nvar getOrigin = function () {\n var url = getInternalURLState(this);\n var scheme = url.scheme;\n var port = url.port;\n if (scheme == 'blob') try {\n return new URLConstructor(scheme.path[0]).origin;\n } catch (error) {\n return 'null';\n }\n if (scheme == 'file' || !isSpecial(url)) return 'null';\n return scheme + '://' + serializeHost(url.host) + (port !== null ? ':' + port : '');\n};\n\nvar getProtocol = function () {\n return getInternalURLState(this).scheme + ':';\n};\n\nvar getUsername = function () {\n return getInternalURLState(this).username;\n};\n\nvar getPassword = function () {\n return getInternalURLState(this).password;\n};\n\nvar getHost = function () {\n var url = getInternalURLState(this);\n var host = url.host;\n var port = url.port;\n return host === null ? ''\n : port === null ? serializeHost(host)\n : serializeHost(host) + ':' + port;\n};\n\nvar getHostname = function () {\n var host = getInternalURLState(this).host;\n return host === null ? '' : serializeHost(host);\n};\n\nvar getPort = function () {\n var port = getInternalURLState(this).port;\n return port === null ? '' : String(port);\n};\n\nvar getPathname = function () {\n var url = getInternalURLState(this);\n var path = url.path;\n return url.cannotBeABaseURL ? path[0] : path.length ? '/' + path.join('/') : '';\n};\n\nvar getSearch = function () {\n var query = getInternalURLState(this).query;\n return query ? '?' + query : '';\n};\n\nvar getSearchParams = function () {\n return getInternalURLState(this).searchParams;\n};\n\nvar getHash = function () {\n var fragment = getInternalURLState(this).fragment;\n return fragment ? '#' + fragment : '';\n};\n\nvar accessorDescriptor = function (getter, setter) {\n return { get: getter, set: setter, configurable: true, enumerable: true };\n};\n\nif (DESCRIPTORS) {\n defineProperties(URLPrototype, {\n // `URL.prototype.href` accessors pair\n // https://url.spec.whatwg.org/#dom-url-href\n href: accessorDescriptor(serializeURL, function (href) {\n var url = getInternalURLState(this);\n var urlString = String(href);\n var failure = parseURL(url, urlString);\n if (failure) throw TypeError(failure);\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.origin` getter\n // https://url.spec.whatwg.org/#dom-url-origin\n origin: accessorDescriptor(getOrigin),\n // `URL.prototype.protocol` accessors pair\n // https://url.spec.whatwg.org/#dom-url-protocol\n protocol: accessorDescriptor(getProtocol, function (protocol) {\n var url = getInternalURLState(this);\n parseURL(url, String(protocol) + ':', SCHEME_START);\n }),\n // `URL.prototype.username` accessors pair\n // https://url.spec.whatwg.org/#dom-url-username\n username: accessorDescriptor(getUsername, function (username) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(username));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.username = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.username += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.password` accessors pair\n // https://url.spec.whatwg.org/#dom-url-password\n password: accessorDescriptor(getPassword, function (password) {\n var url = getInternalURLState(this);\n var codePoints = arrayFrom(String(password));\n if (cannotHaveUsernamePasswordPort(url)) return;\n url.password = '';\n for (var i = 0; i < codePoints.length; i++) {\n url.password += percentEncode(codePoints[i], userinfoPercentEncodeSet);\n }\n }),\n // `URL.prototype.host` accessors pair\n // https://url.spec.whatwg.org/#dom-url-host\n host: accessorDescriptor(getHost, function (host) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(host), HOST);\n }),\n // `URL.prototype.hostname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hostname\n hostname: accessorDescriptor(getHostname, function (hostname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n parseURL(url, String(hostname), HOSTNAME);\n }),\n // `URL.prototype.port` accessors pair\n // https://url.spec.whatwg.org/#dom-url-port\n port: accessorDescriptor(getPort, function (port) {\n var url = getInternalURLState(this);\n if (cannotHaveUsernamePasswordPort(url)) return;\n port = String(port);\n if (port == '') url.port = null;\n else parseURL(url, port, PORT);\n }),\n // `URL.prototype.pathname` accessors pair\n // https://url.spec.whatwg.org/#dom-url-pathname\n pathname: accessorDescriptor(getPathname, function (pathname) {\n var url = getInternalURLState(this);\n if (url.cannotBeABaseURL) return;\n url.path = [];\n parseURL(url, pathname + '', PATH_START);\n }),\n // `URL.prototype.search` accessors pair\n // https://url.spec.whatwg.org/#dom-url-search\n search: accessorDescriptor(getSearch, function (search) {\n var url = getInternalURLState(this);\n search = String(search);\n if (search == '') {\n url.query = null;\n } else {\n if ('?' == search.charAt(0)) search = search.slice(1);\n url.query = '';\n parseURL(url, search, QUERY);\n }\n getInternalSearchParamsState(url.searchParams).updateSearchParams(url.query);\n }),\n // `URL.prototype.searchParams` getter\n // https://url.spec.whatwg.org/#dom-url-searchparams\n searchParams: accessorDescriptor(getSearchParams),\n // `URL.prototype.hash` accessors pair\n // https://url.spec.whatwg.org/#dom-url-hash\n hash: accessorDescriptor(getHash, function (hash) {\n var url = getInternalURLState(this);\n hash = String(hash);\n if (hash == '') {\n url.fragment = null;\n return;\n }\n if ('#' == hash.charAt(0)) hash = hash.slice(1);\n url.fragment = '';\n parseURL(url, hash, FRAGMENT);\n })\n });\n}\n\n// `URL.prototype.toJSON` method\n// https://url.spec.whatwg.org/#dom-url-tojson\nredefine(URLPrototype, 'toJSON', function toJSON() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\n// `URL.prototype.toString` method\n// https://url.spec.whatwg.org/#URL-stringification-behavior\nredefine(URLPrototype, 'toString', function toString() {\n return serializeURL.call(this);\n}, { enumerable: true });\n\nif (NativeURL) {\n var nativeCreateObjectURL = NativeURL.createObjectURL;\n var nativeRevokeObjectURL = NativeURL.revokeObjectURL;\n // `URL.createObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/createObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeCreateObjectURL) redefine(URLConstructor, 'createObjectURL', function createObjectURL(blob) {\n return nativeCreateObjectURL.apply(NativeURL, arguments);\n });\n // `URL.revokeObjectURL` method\n // https://developer.mozilla.org/en-US/docs/Web/API/URL/revokeObjectURL\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n if (nativeRevokeObjectURL) redefine(URLConstructor, 'revokeObjectURL', function revokeObjectURL(url) {\n return nativeRevokeObjectURL.apply(NativeURL, arguments);\n });\n}\n\nsetToStringTag(URLConstructor, 'URL');\n\n$({ global: true, forced: !USE_NATIVE_URL, sham: !DESCRIPTORS }, {\n URL: URLConstructor\n});\n","/**\r\n * DevExtreme (esm/animation/frame.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = hasWindow() ? getWindow() : {};\r\nimport callOnce from \"../core/utils/call_once\";\r\nvar FRAME_ANIMATION_STEP_TIME = 1e3 / 60;\r\nvar request = function(callback) {\r\n return setTimeout(callback, FRAME_ANIMATION_STEP_TIME)\r\n};\r\nvar cancel = function(requestID) {\r\n clearTimeout(requestID)\r\n};\r\nvar setAnimationFrameMethods = callOnce((function() {\r\n var nativeRequest = window.requestAnimationFrame || window.webkitRequestAnimationFrame || window.mozRequestAnimationFrame || window.oRequestAnimationFrame || window.msRequestAnimationFrame;\r\n var nativeCancel = window.cancelAnimationFrame || window.webkitCancelAnimationFrame || window.mozCancelAnimationFrame || window.oCancelAnimationFrame || window.msCancelAnimationFrame;\r\n if (nativeRequest && nativeCancel) {\r\n request = nativeRequest;\r\n cancel = nativeCancel\r\n }\r\n}));\r\nexport function requestAnimationFrame() {\r\n setAnimationFrameMethods();\r\n return request.apply(window, arguments)\r\n}\r\nexport function cancelAnimationFrame() {\r\n setAnimationFrameMethods();\r\n cancel.apply(window, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/easing.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nvar CSS_TRANSITION_EASING_REGEX = /cubic-bezier\\((\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\s*,\\s*(\\d+(?:\\.\\d+)?)\\)/;\r\nvar TransitionTimingFuncMap = {\r\n linear: \"cubic-bezier(0, 0, 1, 1)\",\r\n swing: \"cubic-bezier(0.445, 0.05, 0.55, 0.95)\",\r\n ease: \"cubic-bezier(0.25, 0.1, 0.25, 1)\",\r\n \"ease-in\": \"cubic-bezier(0.42, 0, 1, 1)\",\r\n \"ease-out\": \"cubic-bezier(0, 0, 0.58, 1)\",\r\n \"ease-in-out\": \"cubic-bezier(0.42, 0, 0.58, 1)\"\r\n};\r\nvar polynomBezier = function(x1, y1, x2, y2) {\r\n var Cx = 3 * x1;\r\n var Bx = 3 * (x2 - x1) - Cx;\r\n var Ax = 1 - Cx - Bx;\r\n var Cy = 3 * y1;\r\n var By = 3 * (y2 - y1) - Cy;\r\n var Ay = 1 - Cy - By;\r\n var bezierX = function(t) {\r\n return t * (Cx + t * (Bx + t * Ax))\r\n };\r\n var derivativeX = function(t) {\r\n return Cx + t * (2 * Bx + 3 * t * Ax)\r\n };\r\n return function(t) {\r\n return function(t) {\r\n return t * (Cy + t * (By + t * Ay))\r\n }(function(t) {\r\n var x = t;\r\n var i = 0;\r\n var z;\r\n while (i < 14) {\r\n z = bezierX(x) - t;\r\n if (Math.abs(z) < .001) {\r\n break\r\n }\r\n x -= z / derivativeX(x);\r\n i++\r\n }\r\n return x\r\n }(t))\r\n }\r\n};\r\nvar easing = {};\r\nexport var convertTransitionTimingFuncToEasing = function(cssTransitionEasing) {\r\n cssTransitionEasing = TransitionTimingFuncMap[cssTransitionEasing] || cssTransitionEasing;\r\n var coeffs = cssTransitionEasing.match(CSS_TRANSITION_EASING_REGEX);\r\n var forceName;\r\n if (!coeffs) {\r\n forceName = \"linear\";\r\n coeffs = TransitionTimingFuncMap[forceName].match(CSS_TRANSITION_EASING_REGEX)\r\n }\r\n coeffs = coeffs.slice(1, 5);\r\n for (var i = 0; i < coeffs.length; i++) {\r\n coeffs[i] = parseFloat(coeffs[i])\r\n }\r\n var easingName = forceName || \"cubicbezier_\" + coeffs.join(\"_\").replace(/\\./g, \"p\");\r\n if (!isFunction(easing[easingName])) {\r\n easing[easingName] = function(x, t, b, c, d) {\r\n return c * polynomBezier(coeffs[0], coeffs[1], coeffs[2], coeffs[3])(t / d) + b\r\n }\r\n }\r\n return easingName\r\n};\r\nexport function setEasing(value) {\r\n easing = value\r\n}\r\nexport function getEasing(name) {\r\n return easing[name]\r\n}\r\n","/**\r\n * DevExtreme (esm/animation/fx.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getTranslateCss,\r\n parseTranslate,\r\n clearCache,\r\n locate,\r\n getTranslate\r\n} from \"./translator\";\r\nimport {\r\n convertTransitionTimingFuncToEasing,\r\n getEasing\r\n} from \"./easing\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"./frame\";\r\nimport {\r\n transitionEndEventName,\r\n transition\r\n} from \"../core/utils/support\";\r\nimport positionUtils from \"./position\";\r\nimport {\r\n removeEvent\r\n} from \"../events/remove\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar removeEventName = addNamespace(removeEvent, \"dxFX\");\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar RELATIVE_VALUE_REGEX = /^([+-])=(.*)/i;\r\nvar ANIM_DATA_KEY = \"dxAnimData\";\r\nvar ANIM_QUEUE_KEY = \"dxAnimQueue\";\r\nvar TRANSFORM_PROP = \"transform\";\r\nvar TransitionAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"none\"\r\n });\r\n if (\"string\" === typeof config.from) {\r\n $element.addClass(config.from)\r\n } else {\r\n setProps($element, config.from)\r\n }\r\n var that = this;\r\n var deferred = new Deferred;\r\n var cleanupWhen = config.cleanupWhen;\r\n config.transitionAnimation = {\r\n deferred: deferred,\r\n finish: function() {\r\n that._finishTransition($element);\r\n if (cleanupWhen) {\r\n when(deferred, cleanupWhen).always((function() {\r\n that._cleanup($element, config)\r\n }))\r\n } else {\r\n that._cleanup($element, config)\r\n }\r\n deferred.resolveWith($element, [config, $element])\r\n }\r\n };\r\n this._completeAnimationCallback($element, config).done((function() {\r\n config.transitionAnimation.finish()\r\n })).fail((function() {\r\n deferred.rejectWith($element, [config, $element])\r\n }));\r\n if (!config.duration) {\r\n config.transitionAnimation.finish()\r\n }\r\n $element.css(\"transform\")\r\n },\r\n animate: function($element, config) {\r\n this._startAnimation($element, config);\r\n return config.transitionAnimation.deferred.promise()\r\n },\r\n _completeAnimationCallback: function($element, config) {\r\n var that = this;\r\n var startTime = Date.now() + config.delay;\r\n var deferred = new Deferred;\r\n var transitionEndFired = new Deferred;\r\n var simulatedTransitionEndFired = new Deferred;\r\n var simulatedEndEventTimer;\r\n var transitionEndEventFullName = transitionEndEventName() + \".dxFX\";\r\n config.transitionAnimation.cleanup = function() {\r\n clearTimeout(simulatedEndEventTimer);\r\n clearTimeout(waitForJSCompleteTimer);\r\n eventsEngine.off($element, transitionEndEventFullName);\r\n eventsEngine.off($element, removeEventName)\r\n };\r\n eventsEngine.one($element, transitionEndEventFullName, (function() {\r\n if (Date.now() - startTime >= config.duration) {\r\n transitionEndFired.reject()\r\n }\r\n }));\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n that.stop($element, config);\r\n deferred.reject()\r\n }));\r\n var waitForJSCompleteTimer = setTimeout((function() {\r\n simulatedEndEventTimer = setTimeout((function() {\r\n simulatedTransitionEndFired.reject()\r\n }), config.duration + config.delay + fx._simulatedTransitionEndDelay);\r\n when(transitionEndFired, simulatedTransitionEndFired).fail(function() {\r\n deferred.resolve()\r\n }.bind(this))\r\n }));\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n $element.css({\r\n transitionProperty: \"all\",\r\n transitionDelay: config.delay + \"ms\",\r\n transitionDuration: config.duration + \"ms\",\r\n transitionTimingFunction: config.easing\r\n });\r\n if (\"string\" === typeof config.to) {\r\n $element[0].className += \" \" + config.to\r\n } else if (config.to) {\r\n setProps($element, config.to)\r\n }\r\n },\r\n _finishTransition: function($element) {\r\n $element.css(\"transition\", \"none\")\r\n },\r\n _cleanup: function($element, config) {\r\n config.transitionAnimation.cleanup();\r\n if (\"string\" === typeof config.from) {\r\n $element.removeClass(config.from);\r\n $element.removeClass(config.to)\r\n }\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n if (!config) {\r\n return\r\n }\r\n if (jumpToEnd) {\r\n config.transitionAnimation.finish()\r\n } else {\r\n if (isPlainObject(config.to)) {\r\n each(config.to, (function(key) {\r\n $element.css(key, $element.css(key))\r\n }))\r\n }\r\n this._finishTransition($element);\r\n this._cleanup($element, config)\r\n }\r\n }\r\n};\r\nvar FrameAnimationStrategy = {\r\n initAnimation: function($element, config) {\r\n setProps($element, config.from)\r\n },\r\n animate: function($element, config) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n if (!config) {\r\n return deferred.reject().promise()\r\n }\r\n each(config.to, (function(prop) {\r\n if (void 0 === config.from[prop]) {\r\n config.from[prop] = that._normalizeValue($element.css(prop))\r\n }\r\n }));\r\n if (config.to[TRANSFORM_PROP]) {\r\n config.from[TRANSFORM_PROP] = that._parseTransform(config.from[TRANSFORM_PROP]);\r\n config.to[TRANSFORM_PROP] = that._parseTransform(config.to[TRANSFORM_PROP])\r\n }\r\n config.frameAnimation = {\r\n to: config.to,\r\n from: config.from,\r\n currentValue: config.from,\r\n easing: convertTransitionTimingFuncToEasing(config.easing),\r\n duration: config.duration,\r\n startTime: (new Date).valueOf(),\r\n finish: function() {\r\n this.currentValue = this.to;\r\n this.draw();\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId);\r\n deferred.resolve()\r\n },\r\n draw: function() {\r\n if (config.draw) {\r\n config.draw(this.currentValue);\r\n return\r\n }\r\n var currentValue = extend({}, this.currentValue);\r\n if (currentValue[TRANSFORM_PROP]) {\r\n currentValue[TRANSFORM_PROP] = map(currentValue[TRANSFORM_PROP], (function(value, prop) {\r\n if (\"translate\" === prop) {\r\n return getTranslateCss(value)\r\n } else if (\"scale\" === prop) {\r\n return \"scale(\" + value + \")\"\r\n } else if (\"rotate\" === prop.substr(0, prop.length - 1)) {\r\n return prop + \"(\" + value + \"deg)\"\r\n }\r\n })).join(\" \")\r\n }\r\n $element.css(currentValue)\r\n }\r\n };\r\n if (config.delay) {\r\n config.frameAnimation.startTime += config.delay;\r\n config.frameAnimation.delayTimeout = setTimeout((function() {\r\n that._startAnimation($element, config)\r\n }), config.delay)\r\n } else {\r\n that._startAnimation($element, config)\r\n }\r\n return deferred.promise()\r\n },\r\n _startAnimation: function($element, config) {\r\n eventsEngine.off($element, removeEventName);\r\n eventsEngine.on($element, removeEventName, (function() {\r\n if (config.frameAnimation) {\r\n cancelAnimationFrame(config.frameAnimation.animationFrameId)\r\n }\r\n }));\r\n this._animationStep($element, config)\r\n },\r\n _parseTransform: function(transformString) {\r\n var result = {};\r\n each(transformString.match(/\\w+\\d*\\w*\\([^)]*\\)\\s*/g), (function(i, part) {\r\n var translateData = parseTranslate(part);\r\n var scaleData = part.match(/scale\\((.+?)\\)/);\r\n var rotateData = part.match(/(rotate.)\\((.+)deg\\)/);\r\n if (translateData) {\r\n result.translate = translateData\r\n }\r\n if (scaleData && scaleData[1]) {\r\n result.scale = parseFloat(scaleData[1])\r\n }\r\n if (rotateData && rotateData[1]) {\r\n result[rotateData[1]] = parseFloat(rotateData[2])\r\n }\r\n }));\r\n return result\r\n },\r\n stop: function($element, config, jumpToEnd) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n cancelAnimationFrame(frameAnimation.animationFrameId);\r\n clearTimeout(frameAnimation.delayTimeout);\r\n if (jumpToEnd) {\r\n frameAnimation.finish()\r\n }\r\n delete config.frameAnimation\r\n },\r\n _animationStep: function($element, config) {\r\n var frameAnimation = config && config.frameAnimation;\r\n if (!frameAnimation) {\r\n return\r\n }\r\n var now = (new Date).valueOf();\r\n if (now >= frameAnimation.startTime + frameAnimation.duration) {\r\n frameAnimation.finish();\r\n return\r\n }\r\n frameAnimation.currentValue = this._calcStepValue(frameAnimation, now - frameAnimation.startTime);\r\n frameAnimation.draw();\r\n var that = this;\r\n frameAnimation.animationFrameId = requestAnimationFrame((function() {\r\n that._animationStep($element, config)\r\n }))\r\n },\r\n _calcStepValue: function(frameAnimation, currentDuration) {\r\n return function calcValueRecursively(from, to) {\r\n var result = Array.isArray(to) ? [] : {};\r\n each(to, (function(propName, endPropValue) {\r\n if (\"string\" === typeof endPropValue && false === parseFloat(endPropValue)) {\r\n return true\r\n }\r\n result[propName] = \"object\" === typeof endPropValue ? calcValueRecursively(from[propName], endPropValue) : function(propName) {\r\n var x = currentDuration / frameAnimation.duration;\r\n var t = currentDuration;\r\n var b = 1 * from[propName];\r\n var c = to[propName] - from[propName];\r\n var d = frameAnimation.duration;\r\n return getEasing(frameAnimation.easing)(x, t, b, c, d)\r\n }(propName)\r\n }));\r\n return result\r\n }(frameAnimation.from, frameAnimation.to)\r\n },\r\n _normalizeValue: function(value) {\r\n var numericValue = parseFloat(value);\r\n if (false === numericValue) {\r\n return value\r\n }\r\n return numericValue\r\n }\r\n};\r\nvar FallbackToNoAnimationStrategy = {\r\n initAnimation: function() {},\r\n animate: function() {\r\n return (new Deferred).resolve().promise()\r\n },\r\n stop: noop,\r\n isSynchronous: true\r\n};\r\nvar getAnimationStrategy = function(config) {\r\n config = config || {};\r\n var animationStrategies = {\r\n transition: transition() ? TransitionAnimationStrategy : FrameAnimationStrategy,\r\n frame: FrameAnimationStrategy,\r\n noAnimation: FallbackToNoAnimationStrategy\r\n };\r\n var strategy = config.strategy || \"transition\";\r\n if (\"css\" === config.type && !transition()) {\r\n strategy = \"noAnimation\"\r\n }\r\n return animationStrategies[strategy]\r\n};\r\nvar baseConfigValidator = function(config, animationType, validate, typeMessage) {\r\n each([\"from\", \"to\"], (function() {\r\n if (!validate(config[this])) {\r\n throw errors.Error(\"E0010\", animationType, this, typeMessage)\r\n }\r\n }))\r\n};\r\nvar isObjectConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return isPlainObject(target)\r\n }), \"a plain object\")\r\n};\r\nvar isStringConfigValidator = function(config, animationType) {\r\n return baseConfigValidator(config, animationType, (function(target) {\r\n return \"string\" === typeof target\r\n }), \"a string\")\r\n};\r\nvar CustomAnimationConfigurator = {\r\n setup: function() {}\r\n};\r\nvar CssAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isStringConfigValidator(config, \"css\")\r\n },\r\n setup: function() {}\r\n};\r\nvar positionAliases = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\"\r\n }\r\n};\r\nvar SlideAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"slide\")\r\n },\r\n setup: function($element, config) {\r\n var location = locate($element);\r\n if (\"slide\" !== config.type) {\r\n var positioningConfig = \"slideIn\" === config.type ? config.from : config.to;\r\n positioningConfig.position = extend({\r\n of: window\r\n }, positionAliases[config.direction]);\r\n setupPosition($element, positioningConfig)\r\n }\r\n this._setUpConfig(location, config.from);\r\n this._setUpConfig(location, config.to);\r\n clearCache($element)\r\n },\r\n _setUpConfig: function(location, config) {\r\n config.left = \"left\" in config ? config.left : \"+=0\";\r\n config.top = \"top\" in config ? config.top : \"+=0\";\r\n this._initNewPosition(location, config)\r\n },\r\n _initNewPosition: function(location, config) {\r\n var position = {\r\n left: config.left,\r\n top: config.top\r\n };\r\n delete config.left;\r\n delete config.top;\r\n var relativeValue = this._getRelativeValue(position.left);\r\n if (void 0 !== relativeValue) {\r\n position.left = relativeValue + location.left\r\n } else {\r\n config.left = 0\r\n }\r\n relativeValue = this._getRelativeValue(position.top);\r\n if (void 0 !== relativeValue) {\r\n position.top = relativeValue + location.top\r\n } else {\r\n config.top = 0\r\n }\r\n config[TRANSFORM_PROP] = getTranslateCss({\r\n x: position.left,\r\n y: position.top\r\n })\r\n },\r\n _getRelativeValue: function(value) {\r\n var relativeValue;\r\n if (\"string\" === typeof value && (relativeValue = RELATIVE_VALUE_REGEX.exec(value))) {\r\n return parseInt(relativeValue[1] + \"1\") * relativeValue[2]\r\n }\r\n }\r\n};\r\nvar FadeAnimationConfigurator = {\r\n setup: function($element, config) {\r\n var _from$opacity, _to$opacity;\r\n var from = config.from;\r\n var to = config.to;\r\n var defaultFromOpacity = \"fadeOut\" === config.type ? 1 : 0;\r\n var defaultToOpacity = \"fadeOut\" === config.type ? 0 : 1;\r\n var fromOpacity = isPlainObject(from) ? String(null !== (_from$opacity = from.opacity) && void 0 !== _from$opacity ? _from$opacity : defaultFromOpacity) : String(from);\r\n var toOpacity = isPlainObject(to) ? String(null !== (_to$opacity = to.opacity) && void 0 !== _to$opacity ? _to$opacity : defaultToOpacity) : String(to);\r\n if (!config.skipElementInitialStyles) {\r\n fromOpacity = $element.css(\"opacity\")\r\n }\r\n switch (config.type) {\r\n case \"fadeIn\":\r\n toOpacity = 1;\r\n break;\r\n case \"fadeOut\":\r\n toOpacity = 0\r\n }\r\n config.from = {\r\n visibility: \"visible\",\r\n opacity: fromOpacity\r\n };\r\n config.to = {\r\n opacity: toOpacity\r\n }\r\n }\r\n};\r\nvar PopAnimationConfigurator = {\r\n validateConfig: function(config) {\r\n isObjectConfigValidator(config, \"pop\")\r\n },\r\n setup: function($element, config) {\r\n var from = config.from;\r\n var to = config.to;\r\n var fromOpacity = \"opacity\" in from ? from.opacity : $element.css(\"opacity\");\r\n var toOpacity = \"opacity\" in to ? to.opacity : 1;\r\n var fromScale = \"scale\" in from ? from.scale : 0;\r\n var toScale = \"scale\" in to ? to.scale : 1;\r\n config.from = {\r\n opacity: fromOpacity\r\n };\r\n var translate = getTranslate($element);\r\n config.from[TRANSFORM_PROP] = this._getCssTransform(translate, fromScale);\r\n config.to = {\r\n opacity: toOpacity\r\n };\r\n config.to[TRANSFORM_PROP] = this._getCssTransform(translate, toScale)\r\n },\r\n _getCssTransform: function(translate, scale) {\r\n return getTranslateCss(translate) + \"scale(\" + scale + \")\"\r\n }\r\n};\r\nvar animationConfigurators = {\r\n custom: CustomAnimationConfigurator,\r\n slide: SlideAnimationConfigurator,\r\n slideIn: SlideAnimationConfigurator,\r\n slideOut: SlideAnimationConfigurator,\r\n fade: FadeAnimationConfigurator,\r\n fadeIn: FadeAnimationConfigurator,\r\n fadeOut: FadeAnimationConfigurator,\r\n pop: PopAnimationConfigurator,\r\n css: CssAnimationConfigurator\r\n};\r\nvar getAnimationConfigurator = function(config) {\r\n var result = animationConfigurators[config.type];\r\n if (!result) {\r\n throw errors.Error(\"E0011\", config.type)\r\n }\r\n return result\r\n};\r\nvar defaultJSConfig = {\r\n type: \"custom\",\r\n from: {},\r\n to: {},\r\n duration: 400,\r\n start: noop,\r\n complete: noop,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\nvar defaultCssConfig = {\r\n duration: 400,\r\n easing: \"ease\",\r\n delay: 0\r\n};\r\n\r\nfunction setupAnimationOnElement() {\r\n var $element = this.element;\r\n var config = this.config;\r\n setupPosition($element, config.from);\r\n setupPosition($element, config.to);\r\n this.configurator.setup($element, config);\r\n $element.data(ANIM_DATA_KEY, this);\r\n if (fx.off) {\r\n config.duration = 0;\r\n config.delay = 0\r\n }\r\n this.strategy.initAnimation($element, config);\r\n if (config.start) {\r\n var element = getPublicElement($element);\r\n config.start.apply(this, [element, config])\r\n }\r\n}\r\nvar onElementAnimationComplete = function(animation) {\r\n var $element = animation.element;\r\n var config = animation.config;\r\n $element.removeData(ANIM_DATA_KEY);\r\n if (config.complete) {\r\n var element = getPublicElement($element);\r\n config.complete.apply(this, [element, config])\r\n }\r\n animation.deferred.resolveWith(this, [$element, config])\r\n};\r\nvar startAnimationOnElement = function() {\r\n var animation = this;\r\n var $element = animation.element;\r\n var config = animation.config;\r\n animation.isStarted = true;\r\n return animation.strategy.animate($element, config).done((function() {\r\n onElementAnimationComplete(animation)\r\n })).fail((function() {\r\n animation.deferred.rejectWith(this, [$element, config])\r\n }))\r\n};\r\nvar stopAnimationOnElement = function(jumpToEnd) {\r\n var $element = this.element;\r\n var config = this.config;\r\n clearTimeout(this.startTimeout);\r\n if (!this.isStarted) {\r\n this.start()\r\n }\r\n this.strategy.stop($element, config, jumpToEnd)\r\n};\r\nvar scopedRemoveEvent = addNamespace(removeEvent, \"dxFXStartAnimation\");\r\nvar subscribeToRemoveEvent = function(animation) {\r\n eventsEngine.off(animation.element, scopedRemoveEvent);\r\n eventsEngine.on(animation.element, scopedRemoveEvent, (function() {\r\n fx.stop(animation.element)\r\n }));\r\n animation.deferred.always((function() {\r\n eventsEngine.off(animation.element, scopedRemoveEvent)\r\n }))\r\n};\r\nvar createAnimation = function(element, initialConfig) {\r\n var defaultConfig = \"css\" === initialConfig.type ? defaultCssConfig : defaultJSConfig;\r\n var config = extend(true, {}, defaultConfig, initialConfig);\r\n var configurator = getAnimationConfigurator(config);\r\n var strategy = getAnimationStrategy(config);\r\n var animation = {\r\n element: $(element),\r\n config: config,\r\n configurator: configurator,\r\n strategy: strategy,\r\n isSynchronous: strategy.isSynchronous,\r\n setup: setupAnimationOnElement,\r\n start: startAnimationOnElement,\r\n stop: stopAnimationOnElement,\r\n deferred: new Deferred\r\n };\r\n if (isFunction(configurator.validateConfig)) {\r\n configurator.validateConfig(config)\r\n }\r\n subscribeToRemoveEvent(animation);\r\n return animation\r\n};\r\nvar animate = function(element, config) {\r\n var $element = $(element);\r\n if (!$element.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var animation = createAnimation($element, config);\r\n pushInAnimationQueue($element, animation);\r\n return animation.deferred.promise()\r\n};\r\n\r\nfunction pushInAnimationQueue($element, animation) {\r\n var queueData = getAnimQueueData($element);\r\n writeAnimQueueData($element, queueData);\r\n queueData.push(animation);\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n}\r\n\r\nfunction getAnimQueueData($element) {\r\n return $element.data(ANIM_QUEUE_KEY) || []\r\n}\r\n\r\nfunction writeAnimQueueData($element, queueData) {\r\n $element.data(ANIM_QUEUE_KEY, queueData)\r\n}\r\nvar destroyAnimQueueData = function($element) {\r\n $element.removeData(ANIM_QUEUE_KEY)\r\n};\r\n\r\nfunction isAnimating($element) {\r\n return !!$element.data(ANIM_DATA_KEY)\r\n}\r\n\r\nfunction shiftFromAnimationQueue($element, queueData) {\r\n queueData = getAnimQueueData($element);\r\n if (!queueData.length) {\r\n return\r\n }\r\n var animation = queueData.shift();\r\n if (0 === queueData.length) {\r\n destroyAnimQueueData($element)\r\n }\r\n executeAnimation(animation).done((function() {\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element)\r\n }\r\n }))\r\n}\r\n\r\nfunction executeAnimation(animation) {\r\n animation.setup();\r\n if (fx.off || animation.isSynchronous) {\r\n animation.start()\r\n } else {\r\n animation.startTimeout = setTimeout((function() {\r\n animation.start()\r\n }))\r\n }\r\n return animation.deferred.promise()\r\n}\r\n\r\nfunction setupPosition($element, config) {\r\n if (!config || !config.position) {\r\n return\r\n }\r\n var win = $(window);\r\n var left = 0;\r\n var top = 0;\r\n var position = positionUtils.calculate($element, config.position);\r\n var offset = $element.offset();\r\n var currentPosition = $element.position();\r\n if (currentPosition.top > offset.top) {\r\n top = win.scrollTop()\r\n }\r\n if (currentPosition.left > offset.left) {\r\n left = win.scrollLeft()\r\n }\r\n extend(config, {\r\n left: position.h.location - offset.left + currentPosition.left - left,\r\n top: position.v.location - offset.top + currentPosition.top - top\r\n });\r\n delete config.position\r\n}\r\n\r\nfunction setProps($element, props) {\r\n each(props, (function(key, value) {\r\n try {\r\n $element.css(key, isFunction(value) ? value() : value)\r\n } catch (e) {}\r\n }))\r\n}\r\nvar stop = function(element, jumpToEnd) {\r\n var $element = $(element);\r\n var queueData = getAnimQueueData($element);\r\n each(queueData, (function(_, animation) {\r\n animation.config.delay = 0;\r\n animation.config.duration = 0;\r\n animation.isSynchronous = true\r\n }));\r\n if (!isAnimating($element)) {\r\n shiftFromAnimationQueue($element, queueData)\r\n }\r\n var animation = $element.data(ANIM_DATA_KEY);\r\n if (animation) {\r\n animation.stop(jumpToEnd)\r\n }\r\n $element.removeData(ANIM_DATA_KEY);\r\n destroyAnimQueueData($element)\r\n};\r\nvar fx = {\r\n off: false,\r\n animationTypes: animationConfigurators,\r\n animate: animate,\r\n createAnimation: createAnimation,\r\n isAnimating: isAnimating,\r\n stop: stop,\r\n _simulatedTransitionEndDelay: 100\r\n};\r\nexport default fx;\r\n","/**\r\n * DevExtreme (esm/animation/position.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n splitPair,\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport browser from \"../core/utils/browser\";\r\nimport {\r\n resetPosition,\r\n move\r\n} from \"./translator\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nvar horzRe = /left|right/;\r\nvar vertRe = /top|bottom/;\r\nvar collisionRe = /fit|flip|none/;\r\nvar scaleRe = /scale\\(.+?\\)/;\r\nvar IS_SAFARI = browser.safari;\r\nvar normalizeAlign = function(raw) {\r\n var result = {\r\n h: \"center\",\r\n v: \"center\"\r\n };\r\n var pair = splitPair(raw);\r\n if (pair) {\r\n each(pair, (function() {\r\n var w = String(this).toLowerCase();\r\n if (horzRe.test(w)) {\r\n result.h = w\r\n } else if (vertRe.test(w)) {\r\n result.v = w\r\n }\r\n }))\r\n }\r\n return result\r\n};\r\nvar normalizeOffset = function(raw) {\r\n return pairToObject(raw)\r\n};\r\nvar normalizeCollision = function(raw) {\r\n var pair = splitPair(raw);\r\n var h = String(pair && pair[0]).toLowerCase();\r\n var v = String(pair && pair[1]).toLowerCase();\r\n if (!collisionRe.test(h)) {\r\n h = \"none\"\r\n }\r\n if (!collisionRe.test(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nvar getAlignFactor = function(align) {\r\n switch (align) {\r\n case \"center\":\r\n return .5;\r\n case \"right\":\r\n case \"bottom\":\r\n return 1;\r\n default:\r\n return 0\r\n }\r\n};\r\nvar inverseAlign = function(align) {\r\n switch (align) {\r\n case \"left\":\r\n return \"right\";\r\n case \"right\":\r\n return \"left\";\r\n case \"top\":\r\n return \"bottom\";\r\n case \"bottom\":\r\n return \"top\";\r\n default:\r\n return align\r\n }\r\n};\r\nvar calculateOversize = function(data, bounds) {\r\n var oversize = 0;\r\n if (data.myLocation < bounds.min) {\r\n oversize += bounds.min - data.myLocation\r\n }\r\n if (data.myLocation > bounds.max) {\r\n oversize += data.myLocation - bounds.max\r\n }\r\n return oversize\r\n};\r\nvar collisionSide = function(direction, data, bounds) {\r\n if (data.myLocation < bounds.min) {\r\n return \"h\" === direction ? \"left\" : \"top\"\r\n }\r\n if (data.myLocation > bounds.max) {\r\n return \"h\" === direction ? \"right\" : \"bottom\"\r\n }\r\n return \"none\"\r\n};\r\nvar initMyLocation = function(data) {\r\n data.myLocation = data.atLocation + getAlignFactor(data.atAlign) * data.atSize - getAlignFactor(data.myAlign) * data.mySize + data.offset\r\n};\r\nvar collisionResolvers = {\r\n fit: function(data, bounds) {\r\n var result = false;\r\n if (data.myLocation > bounds.max) {\r\n data.myLocation = bounds.max;\r\n result = true\r\n }\r\n if (data.myLocation < bounds.min) {\r\n data.myLocation = bounds.min;\r\n result = true\r\n }\r\n data.fit = result\r\n },\r\n flip: function(data, bounds) {\r\n data.flip = false;\r\n if (\"center\" === data.myAlign && \"center\" === data.atAlign) {\r\n return\r\n }\r\n if (data.myLocation < bounds.min || data.myLocation > bounds.max) {\r\n var inverseData = extend({}, data, {\r\n myAlign: inverseAlign(data.myAlign),\r\n atAlign: inverseAlign(data.atAlign),\r\n offset: -data.offset\r\n });\r\n initMyLocation(inverseData);\r\n inverseData.oversize = calculateOversize(inverseData, bounds);\r\n if (inverseData.myLocation >= bounds.min && inverseData.myLocation <= bounds.max || data.oversize > inverseData.oversize) {\r\n data.myLocation = inverseData.myLocation;\r\n data.oversize = inverseData.oversize;\r\n data.flip = true\r\n }\r\n }\r\n },\r\n flipfit: function(data, bounds) {\r\n this.flip(data, bounds);\r\n this.fit(data, bounds)\r\n },\r\n none: function(data) {\r\n data.oversize = 0\r\n }\r\n};\r\nvar scrollbarWidth;\r\nvar calculateScrollbarWidth = function() {\r\n var $scrollDiv = $(\"<div>\").css({\r\n width: 100,\r\n height: 100,\r\n overflow: \"scroll\",\r\n position: \"absolute\",\r\n top: -9999\r\n }).appendTo($(\"body\"));\r\n var result = $scrollDiv.get(0).offsetWidth - $scrollDiv.get(0).clientWidth;\r\n $scrollDiv.remove();\r\n scrollbarWidth = result\r\n};\r\nvar defaultPositionResult = {\r\n h: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n },\r\n v: {\r\n location: 0,\r\n flip: false,\r\n fit: false,\r\n oversize: 0\r\n }\r\n};\r\nvar calculatePosition = function(what, options) {\r\n var $what = $(what);\r\n var currentOffset = $what.offset();\r\n var result = extend(true, {}, defaultPositionResult, {\r\n h: {\r\n location: currentOffset.left\r\n },\r\n v: {\r\n location: currentOffset.top\r\n }\r\n });\r\n if (!options) {\r\n return result\r\n }\r\n var my = normalizeAlign(options.my);\r\n var at = normalizeAlign(options.at);\r\n var of = $(options.of).length && options.of || window;\r\n var offset = normalizeOffset(options.offset);\r\n var collision = normalizeCollision(options.collision);\r\n var boundary = options.boundary;\r\n var boundaryOffset = normalizeOffset(options.boundaryOffset);\r\n var h = {\r\n mySize: getOuterWidth($what),\r\n myAlign: my.h,\r\n atAlign: at.h,\r\n offset: offset.h,\r\n collision: collision.h,\r\n boundaryOffset: boundaryOffset.h\r\n };\r\n var v = {\r\n mySize: getOuterHeight($what),\r\n myAlign: my.v,\r\n atAlign: at.v,\r\n offset: offset.v,\r\n collision: collision.v,\r\n boundaryOffset: boundaryOffset.v\r\n };\r\n if ( of .preventDefault) {\r\n h.atLocation = of .pageX;\r\n v.atLocation = of .pageY;\r\n h.atSize = 0;\r\n v.atSize = 0\r\n } else {\r\n of = $( of );\r\n if (isWindow( of [0])) {\r\n h.atLocation = of .scrollLeft();\r\n v.atLocation = of .scrollTop();\r\n if (\"phone\" === devices.real().deviceType && of [0].visualViewport) {\r\n h.atLocation = Math.max(h.atLocation, of [0].visualViewport.offsetLeft);\r\n v.atLocation = Math.max(v.atLocation, of [0].visualViewport.offsetTop);\r\n h.atSize = of [0].visualViewport.width;\r\n v.atSize = of [0].visualViewport.height\r\n } else {\r\n h.atSize = of [0].innerWidth > of [0].outerWidth ? of [0].innerWidth : getWidth( of );\r\n v.atSize = of [0].innerHeight > of [0].outerHeight || IS_SAFARI ? of [0].innerHeight : getHeight( of )\r\n }\r\n } else if (9 === of [0].nodeType) {\r\n h.atLocation = 0;\r\n v.atLocation = 0;\r\n h.atSize = getWidth( of );\r\n v.atSize = getHeight( of )\r\n } else {\r\n var ofRect = getBoundingRect( of .get(0));\r\n var o = getOffsetWithoutScale( of );\r\n h.atLocation = o.left;\r\n v.atLocation = o.top;\r\n h.atSize = Math.max(ofRect.width, getOuterWidth( of ));\r\n v.atSize = Math.max(ofRect.height, getOuterHeight( of ))\r\n }\r\n }\r\n initMyLocation(h);\r\n initMyLocation(v);\r\n var bounds = function() {\r\n var win = $(window);\r\n var windowWidth = getWidth(win);\r\n var windowHeight = getHeight(win);\r\n var left = win.scrollLeft();\r\n var top = win.scrollTop();\r\n var documentElement = domAdapter.getDocumentElement();\r\n var hZoomLevel = touch ? documentElement.clientWidth / windowWidth : 1;\r\n var vZoomLevel = touch ? documentElement.clientHeight / windowHeight : 1;\r\n if (void 0 === scrollbarWidth) {\r\n calculateScrollbarWidth()\r\n }\r\n var boundaryWidth = windowWidth;\r\n var boundaryHeight = windowHeight;\r\n if (boundary) {\r\n var $boundary = $(boundary);\r\n var boundaryPosition = $boundary.offset();\r\n left = boundaryPosition.left;\r\n top = boundaryPosition.top;\r\n boundaryWidth = getWidth($boundary);\r\n boundaryHeight = getHeight($boundary)\r\n }\r\n return {\r\n h: {\r\n min: left + h.boundaryOffset,\r\n max: left + boundaryWidth / hZoomLevel - h.mySize - h.boundaryOffset\r\n },\r\n v: {\r\n min: top + v.boundaryOffset,\r\n max: top + boundaryHeight / vZoomLevel - v.mySize - v.boundaryOffset\r\n }\r\n }\r\n }();\r\n h.oversize = calculateOversize(h, bounds.h);\r\n v.oversize = calculateOversize(v, bounds.v);\r\n h.collisionSide = collisionSide(\"h\", h, bounds.h);\r\n v.collisionSide = collisionSide(\"v\", v, bounds.v);\r\n if (collisionResolvers[h.collision]) {\r\n collisionResolvers[h.collision](h, bounds.h)\r\n }\r\n if (collisionResolvers[v.collision]) {\r\n collisionResolvers[v.collision](v, bounds.v)\r\n }\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n extend(true, result, {\r\n h: {\r\n location: preciser(h.myLocation),\r\n oversize: preciser(h.oversize),\r\n fit: h.fit,\r\n flip: h.flip,\r\n collisionSide: h.collisionSide\r\n },\r\n v: {\r\n location: preciser(v.myLocation),\r\n oversize: preciser(v.oversize),\r\n fit: v.fit,\r\n flip: v.flip,\r\n collisionSide: v.collisionSide\r\n },\r\n precise: options.precise\r\n });\r\n return result\r\n};\r\nvar setScaleProperty = function(element, scale, transformProp, styleAttr, isEmpty) {\r\n var stylePropIsValid = isDefined(element.style) && !domAdapter.isNode(element.style);\r\n if (stylePropIsValid) {\r\n element.style.transform = isEmpty ? transformProp.replace(scale, \"\") : transformProp\r\n } else {\r\n element.setAttribute(\"style\", isEmpty ? styleAttr.replace(scale, \"\") : styleAttr)\r\n }\r\n};\r\nvar getOffsetWithoutScale = function getOffsetWithoutScale($startElement) {\r\n var _currentElement$getAt, _currentElement$style, _style$match;\r\n var $currentElement = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : $startElement;\r\n var currentElement = $currentElement.get(0);\r\n if (!currentElement) {\r\n return $startElement.offset()\r\n }\r\n var style = (null === (_currentElement$getAt = currentElement.getAttribute) || void 0 === _currentElement$getAt ? void 0 : _currentElement$getAt.call(currentElement, \"style\")) || \"\";\r\n var transform = null === (_currentElement$style = currentElement.style) || void 0 === _currentElement$style ? void 0 : _currentElement$style.transform;\r\n var scale = null === (_style$match = style.match(scaleRe)) || void 0 === _style$match ? void 0 : _style$match[0];\r\n var offset;\r\n if (scale) {\r\n setScaleProperty(currentElement, scale, transform, style, true);\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent());\r\n setScaleProperty(currentElement, scale, transform, style, false)\r\n } else {\r\n offset = getOffsetWithoutScale($startElement, $currentElement.parent())\r\n }\r\n return offset\r\n};\r\nvar position = function(what, options) {\r\n var $what = $(what);\r\n if (!options) {\r\n return $what.offset()\r\n }\r\n resetPosition($what, true);\r\n var offset = getOffsetWithoutScale($what);\r\n var targetPosition = options.h && options.v ? options : calculatePosition($what, options);\r\n var preciser = function(number) {\r\n return options.precise ? number : Math.round(number)\r\n };\r\n move($what, {\r\n left: targetPosition.h.location - preciser(offset.left),\r\n top: targetPosition.v.location - preciser(offset.top)\r\n });\r\n return targetPosition\r\n};\r\nvar offset = function(element) {\r\n element = $(element).get(0);\r\n if (isWindow(element)) {\r\n return null\r\n } else if (element && \"pageY\" in element && \"pageX\" in element) {\r\n return {\r\n top: element.pageY,\r\n left: element.pageX\r\n }\r\n }\r\n return $(element).offset()\r\n};\r\nif (!position.inverseAlign) {\r\n position.inverseAlign = inverseAlign\r\n}\r\nif (!position.normalizeAlign) {\r\n position.normalizeAlign = normalizeAlign\r\n}\r\nexport default {\r\n calculateScrollbarWidth: calculateScrollbarWidth,\r\n calculate: calculatePosition,\r\n setup: position,\r\n offset: offset\r\n};\r\n","/**\r\n * DevExtreme (esm/animation/translator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n type\r\n} from \"../core/utils/type\";\r\nvar TRANSLATOR_DATA_KEY = \"dxTranslator\";\r\nvar TRANSFORM_MATRIX_REGEX = /matrix(3d)?\\((.+?)\\)/;\r\nvar TRANSLATE_REGEX = /translate(?:3d)?\\((.+?)\\)/;\r\nexport var locate = function($element) {\r\n $element = $($element);\r\n var translate = getTranslate($element);\r\n return {\r\n left: translate.x,\r\n top: translate.y\r\n }\r\n};\r\n\r\nfunction isPercentValue(value) {\r\n return \"string\" === type(value) && \"%\" === value[value.length - 1]\r\n}\r\n\r\nfunction cacheTranslate($element, translate) {\r\n if ($element.length) {\r\n elementData($element.get(0), TRANSLATOR_DATA_KEY, translate)\r\n }\r\n}\r\nexport var clearCache = function($element) {\r\n if ($element.length) {\r\n removeData($element.get(0), TRANSLATOR_DATA_KEY)\r\n }\r\n};\r\nexport var getTranslateCss = function(translate) {\r\n translate.x = translate.x || 0;\r\n translate.y = translate.y || 0;\r\n var xValueString = isPercentValue(translate.x) ? translate.x : translate.x + \"px\";\r\n var yValueString = isPercentValue(translate.y) ? translate.y : translate.y + \"px\";\r\n return \"translate(\" + xValueString + \", \" + yValueString + \")\"\r\n};\r\nexport var getTranslate = function($element) {\r\n var result = $element.length ? elementData($element.get(0), TRANSLATOR_DATA_KEY) : null;\r\n if (!result) {\r\n var transformValue = $element.css(\"transform\") || getTranslateCss({\r\n x: 0,\r\n y: 0\r\n });\r\n var matrix = transformValue.match(TRANSFORM_MATRIX_REGEX);\r\n var is3D = matrix && matrix[1];\r\n if (matrix) {\r\n matrix = matrix[2].split(\",\");\r\n if (\"3d\" === is3D) {\r\n matrix = matrix.slice(12, 15)\r\n } else {\r\n matrix.push(0);\r\n matrix = matrix.slice(4, 7)\r\n }\r\n } else {\r\n matrix = [0, 0, 0]\r\n }\r\n result = {\r\n x: parseFloat(matrix[0]),\r\n y: parseFloat(matrix[1]),\r\n z: parseFloat(matrix[2])\r\n };\r\n cacheTranslate($element, result)\r\n }\r\n return result\r\n};\r\nexport var move = function($element, position) {\r\n $element = $($element);\r\n var left = position.left;\r\n var top = position.top;\r\n var translate;\r\n if (void 0 === left) {\r\n translate = getTranslate($element);\r\n translate.y = top || 0\r\n } else if (void 0 === top) {\r\n translate = getTranslate($element);\r\n translate.x = left || 0\r\n } else {\r\n translate = {\r\n x: left || 0,\r\n y: top || 0,\r\n z: 0\r\n };\r\n cacheTranslate($element, translate)\r\n }\r\n $element.css({\r\n transform: getTranslateCss(translate)\r\n });\r\n if (isPercentValue(left) || isPercentValue(top)) {\r\n clearCache($element)\r\n }\r\n};\r\nexport var resetPosition = function($element, finishTransition) {\r\n $element = $($element);\r\n var originalTransition;\r\n var stylesConfig = {\r\n left: 0,\r\n top: 0,\r\n transform: \"none\"\r\n };\r\n if (finishTransition) {\r\n originalTransition = $element.css(\"transition\");\r\n stylesConfig.transition = \"none\"\r\n }\r\n $element.css(stylesConfig);\r\n clearCache($element);\r\n if (finishTransition) {\r\n $element.get(0).offsetHeight;\r\n $element.css(\"transition\", originalTransition)\r\n }\r\n};\r\nexport var parseTranslate = function(translateString) {\r\n var result = translateString.match(TRANSLATE_REGEX);\r\n if (!result || !result[1]) {\r\n return\r\n }\r\n result = result[1].split(\",\");\r\n result = {\r\n x: parseFloat(result[0]),\r\n y: parseFloat(result[1]),\r\n z: parseFloat(result[2])\r\n };\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/core/action.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isPlainObject,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nexport default class Action {\r\n constructor(action, config) {\r\n config = config || {};\r\n this._action = action;\r\n this._context = config.context || getWindow();\r\n this._beforeExecute = config.beforeExecute;\r\n this._afterExecute = config.afterExecute;\r\n this._component = config.component;\r\n this._validatingTargetName = config.validatingTargetName;\r\n var excludeValidators = this._excludeValidators = {};\r\n if (config.excludeValidators) {\r\n for (var i = 0; i < config.excludeValidators.length; i++) {\r\n excludeValidators[config.excludeValidators[i]] = true\r\n }\r\n }\r\n }\r\n execute() {\r\n var e = {\r\n action: this._action,\r\n args: Array.prototype.slice.call(arguments),\r\n context: this._context,\r\n component: this._component,\r\n validatingTargetName: this._validatingTargetName,\r\n cancel: false,\r\n handled: false\r\n };\r\n var beforeExecute = this._beforeExecute;\r\n var afterExecute = this._afterExecute;\r\n var argsBag = e.args[0] || {};\r\n if (!this._validateAction(e)) {\r\n return\r\n }\r\n null === beforeExecute || void 0 === beforeExecute ? void 0 : beforeExecute.call(this._context, e);\r\n if (e.cancel) {\r\n return\r\n }\r\n var result = this._executeAction(e);\r\n if (argsBag.cancel) {\r\n return\r\n }\r\n null === afterExecute || void 0 === afterExecute ? void 0 : afterExecute.call(this._context, e);\r\n return result\r\n }\r\n _validateAction(e) {\r\n var excludeValidators = this._excludeValidators;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n if (!excludeValidators[name]) {\r\n var _executor$validate;\r\n var executor = executors[name];\r\n null === (_executor$validate = executor.validate) || void 0 === _executor$validate ? void 0 : _executor$validate.call(executor, e);\r\n if (e.cancel) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n }\r\n _executeAction(e) {\r\n var result;\r\n var {\r\n executors: executors\r\n } = Action;\r\n for (var name in executors) {\r\n var _executor$execute;\r\n var executor = executors[name];\r\n null === (_executor$execute = executor.execute) || void 0 === _executor$execute ? void 0 : _executor$execute.call(executor, e);\r\n if (e.handled) {\r\n result = e.result;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n static registerExecutor(name, executor) {\r\n if (isPlainObject(name)) {\r\n each(name, Action.registerExecutor);\r\n return\r\n }\r\n Action.executors[name] = executor\r\n }\r\n static unregisterExecutor() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n each(args, (function() {\r\n delete Action.executors[this]\r\n }))\r\n }\r\n}\r\nAction.executors = {};\r\nvar createValidatorByTargetElement = condition => e => {\r\n if (!e.args.length) {\r\n return\r\n }\r\n var args = e.args[0];\r\n var element = args[e.validatingTargetName] || args.element;\r\n if (element && condition($(element))) {\r\n e.cancel = true\r\n }\r\n};\r\nAction.registerExecutor({\r\n disabled: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-disabled, .dx-state-disabled *\"))\r\n },\r\n readOnly: {\r\n validate: createValidatorByTargetElement($target => $target.is(\".dx-state-readonly, .dx-state-readonly *:not(.dx-state-independent)\"))\r\n },\r\n undefined: {\r\n execute: e => {\r\n if (!e.action) {\r\n e.result = void 0;\r\n e.handled = true\r\n }\r\n }\r\n },\r\n func: {\r\n execute: e => {\r\n if (isFunction(e.action)) {\r\n e.result = e.action.call(e.context, e.args[0]);\r\n e.handled = true\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/class.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"./errors\";\r\nimport {\r\n isWindow\r\n} from \"./utils/type\";\r\nvar wrapOverridden = function(baseProto, methodName, method) {\r\n return function() {\r\n var prevCallBase = this.callBase;\r\n this.callBase = baseProto[methodName];\r\n try {\r\n return method.apply(this, arguments)\r\n } finally {\r\n this.callBase = prevCallBase\r\n }\r\n }\r\n};\r\nvar clonePrototype = function(obj) {\r\n var func = function() {};\r\n func.prototype = obj.prototype;\r\n return new func\r\n};\r\nvar redefine = function(members) {\r\n var overridden;\r\n var memberName;\r\n var member;\r\n if (!members) {\r\n return this\r\n }\r\n for (memberName in members) {\r\n member = members[memberName];\r\n overridden = \"function\" === typeof this.prototype[memberName] && \"function\" === typeof member;\r\n this.prototype[memberName] = overridden ? wrapOverridden(this.parent.prototype, memberName, member) : member\r\n }\r\n return this\r\n};\r\nvar include = function() {\r\n var classObj = this;\r\n var argument;\r\n var name;\r\n var i;\r\n var hasClassObjOwnProperty = Object.prototype.hasOwnProperty.bind(classObj);\r\n var isES6Class = !hasClassObjOwnProperty(\"_includedCtors\") && !hasClassObjOwnProperty(\"_includedPostCtors\");\r\n if (isES6Class) {\r\n classObj._includedCtors = classObj._includedCtors.slice(0);\r\n classObj._includedPostCtors = classObj._includedPostCtors.slice(0)\r\n }\r\n for (i = 0; i < arguments.length; i++) {\r\n argument = arguments[i];\r\n if (argument.ctor) {\r\n classObj._includedCtors.push(argument.ctor)\r\n }\r\n if (argument.postCtor) {\r\n classObj._includedPostCtors.push(argument.postCtor)\r\n }\r\n for (name in argument) {\r\n if (\"ctor\" === name || \"postCtor\" === name || \"default\" === name) {\r\n continue\r\n }\r\n classObj.prototype[name] = argument[name]\r\n }\r\n }\r\n return classObj\r\n};\r\nvar subclassOf = function(parentClass) {\r\n var hasParentProperty = Object.prototype.hasOwnProperty.bind(this)(\"parent\");\r\n var isES6Class = !hasParentProperty && this.parent;\r\n if (isES6Class) {\r\n var baseClass = Object.getPrototypeOf(this);\r\n return baseClass === parentClass || baseClass.subclassOf(parentClass)\r\n } else {\r\n if (this.parent === parentClass) {\r\n return true\r\n }\r\n if (!this.parent || !this.parent.subclassOf) {\r\n return false\r\n }\r\n return this.parent.subclassOf(parentClass)\r\n }\r\n};\r\nvar abstract = function() {\r\n throw errors.Error(\"E0001\")\r\n};\r\nvar copyStatic = function() {\r\n var hasOwn = Object.prototype.hasOwnProperty;\r\n return function(source, destination) {\r\n for (var key in source) {\r\n if (!hasOwn.call(source, key)) {\r\n return\r\n }\r\n destination[key] = source[key]\r\n }\r\n }\r\n}();\r\nvar classImpl = function() {};\r\nclassImpl.inherit = function(members) {\r\n var inheritor = function() {\r\n if (!this || isWindow(this) || \"function\" !== typeof this.constructor) {\r\n throw errors.Error(\"E0003\")\r\n }\r\n var instance = this;\r\n var ctor = instance.ctor;\r\n var includedCtors = instance.constructor._includedCtors;\r\n var includedPostCtors = instance.constructor._includedPostCtors;\r\n var i;\r\n for (i = 0; i < includedCtors.length; i++) {\r\n includedCtors[i].call(instance)\r\n }\r\n if (ctor) {\r\n ctor.apply(instance, arguments)\r\n }\r\n for (i = 0; i < includedPostCtors.length; i++) {\r\n includedPostCtors[i].call(instance)\r\n }\r\n };\r\n inheritor.prototype = clonePrototype(this);\r\n copyStatic(this, inheritor);\r\n inheritor.inherit = this.inherit;\r\n inheritor.abstract = abstract;\r\n inheritor.redefine = redefine;\r\n inheritor.include = include;\r\n inheritor.subclassOf = subclassOf;\r\n inheritor.parent = this;\r\n inheritor._includedCtors = this._includedCtors ? this._includedCtors.slice(0) : [];\r\n inheritor._includedPostCtors = this._includedPostCtors ? this._includedPostCtors.slice(0) : [];\r\n inheritor.prototype.constructor = inheritor;\r\n inheritor.redefine(members);\r\n return inheritor\r\n};\r\nclassImpl.abstract = abstract;\r\nexport default classImpl;\r\n","/**\r\n * DevExtreme (esm/core/utils/comparator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n isRenderer\r\n} from \"./type\";\r\nvar hasNegation = function(oldValue, newValue) {\r\n return 1 / oldValue === 1 / newValue\r\n};\r\nexport var equals = function(oldValue, newValue) {\r\n oldValue = toComparable(oldValue, true);\r\n newValue = toComparable(newValue, true);\r\n if (oldValue && newValue && isRenderer(oldValue) && isRenderer(newValue)) {\r\n return newValue.is(oldValue)\r\n }\r\n var oldValueIsNaN = oldValue !== oldValue;\r\n var newValueIsNaN = newValue !== newValue;\r\n if (oldValueIsNaN && newValueIsNaN) {\r\n return true\r\n }\r\n if (0 === oldValue && 0 === newValue) {\r\n return hasNegation(oldValue, newValue)\r\n }\r\n if (null === oldValue || \"object\" !== typeof oldValue || domAdapter.isElementNode(oldValue)) {\r\n return oldValue === newValue\r\n }\r\n return false\r\n};\r\n","/**\r\n * DevExtreme (esm/core/options/option_manager.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n compileGetter,\r\n compileSetter,\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n equals\r\n} from \"../utils/comparator\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../utils/type\";\r\nimport {\r\n normalizeOptions\r\n} from \"./utils\";\r\nvar cachedGetters = {};\r\nvar cachedSetters = {};\r\nexport class OptionManager {\r\n constructor(options, optionsByReference) {\r\n this._options = options;\r\n this._optionsByReference = optionsByReference;\r\n this._changingCallback;\r\n this._changedCallback;\r\n this._namePreparedCallbacks\r\n }\r\n _setByReference(options, rulesOptions) {\r\n extend(true, options, rulesOptions);\r\n for (var fieldName in this._optionsByReference) {\r\n if (Object.prototype.hasOwnProperty.call(rulesOptions, fieldName)) {\r\n options[fieldName] = rulesOptions[fieldName]\r\n }\r\n }\r\n }\r\n _setPreparedValue(name, value, merge, silent) {\r\n var previousValue = this.get(this._options, name, false);\r\n if (!equals(previousValue, value)) {\r\n var path = getPathParts(name);\r\n !silent && this._changingCallback(name, previousValue, value);\r\n cachedSetters[name] = cachedSetters[name] || compileSetter(name);\r\n cachedSetters[name](this._options, value, {\r\n functionsAsIs: true,\r\n merge: isDefined(merge) ? merge : !this._optionsByReference[name],\r\n unwrapObservables: path.length > 1 && !!this._optionsByReference[path[0]]\r\n });\r\n !silent && this._changedCallback(name, value, previousValue)\r\n }\r\n }\r\n _prepareRelevantNames(options, name, value, silent) {\r\n if (isPlainObject(value)) {\r\n for (var valueName in value) {\r\n this._prepareRelevantNames(options, \"\".concat(name, \".\").concat(valueName), value[valueName])\r\n }\r\n }\r\n this._namePreparedCallbacks(options, name, value, silent)\r\n }\r\n get() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._options;\r\n var name = arguments.length > 1 ? arguments[1] : void 0;\r\n var unwrapObservables = arguments.length > 2 ? arguments[2] : void 0;\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](options, {\r\n functionsAsIs: true,\r\n unwrapObservables: unwrapObservables\r\n })\r\n }\r\n set(options, value, merge, silent) {\r\n options = normalizeOptions(options, value);\r\n for (var name in options) {\r\n this._prepareRelevantNames(options, name, options[name], silent)\r\n }\r\n for (var _name in options) {\r\n this._setPreparedValue(_name, options[_name], merge, silent)\r\n }\r\n }\r\n onRelevantNamesPrepared(callBack) {\r\n this._namePreparedCallbacks = callBack\r\n }\r\n onChanging(callBack) {\r\n this._changingCallback = callBack\r\n }\r\n onChanged(callBack) {\r\n this._changedCallback = callBack\r\n }\r\n dispose() {\r\n this._changingCallback = noop;\r\n this._changedCallback = noop\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/options/index.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../utils/type\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../utils/common\";\r\nimport {\r\n OptionManager\r\n} from \"./option_manager\";\r\nimport {\r\n getPathParts\r\n} from \"../utils/data\";\r\nimport {\r\n getFieldName,\r\n getParentName,\r\n convertRulesToOptions,\r\n getNestedOptionValue\r\n} from \"./utils\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nexport class Options {\r\n constructor(options, defaultOptions, optionsByReference, deprecatedOptions) {\r\n this._deprecatedCallback;\r\n this._startChangeCallback;\r\n this._endChangeCallback;\r\n this._default = defaultOptions;\r\n this._deprecated = deprecatedOptions;\r\n this._deprecatedNames = [];\r\n this._initDeprecatedNames();\r\n this._optionManager = new OptionManager(options, optionsByReference);\r\n this._optionManager.onRelevantNamesPrepared((options, name, value, silent) => this._setRelevantNames(options, name, value, silent));\r\n this._cachedOptions = {};\r\n this._rules = []\r\n }\r\n set _initial(value) {\r\n this._initialOptions = value\r\n }\r\n get _initial() {\r\n if (!this._initialOptions) {\r\n var rulesOptions = this._getByRules(this.silent(\"defaultOptionsRules\"));\r\n this._initialOptions = this._default;\r\n this._optionManager._setByReference(this._initialOptions, rulesOptions)\r\n }\r\n return this._initialOptions\r\n }\r\n _initDeprecatedNames() {\r\n for (var optionName in this._deprecated) {\r\n this._deprecatedNames.push(optionName)\r\n }\r\n }\r\n _getByRules(rules) {\r\n rules = Array.isArray(rules) ? this._rules.concat(rules) : this._rules;\r\n return convertRulesToOptions(rules)\r\n }\r\n _notifyDeprecated(option) {\r\n var info = this._deprecated[option];\r\n if (info) {\r\n this._deprecatedCallback(option, info)\r\n }\r\n }\r\n _setRelevantNames(options, name, value, silent) {\r\n if (name) {\r\n var normalizedName = this._normalizeName(name, silent);\r\n if (normalizedName && normalizedName !== name) {\r\n this._setField(options, normalizedName, value);\r\n this._clearField(options, name)\r\n }\r\n }\r\n }\r\n _setField(options, fullName, value) {\r\n var fieldName = \"\";\r\n var fieldObject = null;\r\n do {\r\n fieldName = fieldName ? \".\".concat(fieldName) : \"\";\r\n fieldName = getFieldName(fullName) + fieldName;\r\n fullName = getParentName(fullName);\r\n fieldObject = fullName ? this._optionManager.get(options, fullName, false) : options\r\n } while (!fieldObject);\r\n fieldObject[fieldName] = value\r\n }\r\n _clearField(options, name) {\r\n delete options[name];\r\n var previousFieldName = getParentName(name);\r\n var fieldObject = previousFieldName ? this._optionManager.get(options, previousFieldName, false) : options;\r\n if (fieldObject) {\r\n delete fieldObject[getFieldName(name)]\r\n }\r\n }\r\n _normalizeName(name, silent) {\r\n if (this._deprecatedNames.length && name) {\r\n for (var i = 0; i < this._deprecatedNames.length; i++) {\r\n if (this._deprecatedNames[i] === name) {\r\n var deprecate = this._deprecated[name];\r\n if (deprecate) {\r\n !silent && this._notifyDeprecated(name);\r\n return deprecate.alias || name\r\n }\r\n }\r\n }\r\n }\r\n return name\r\n }\r\n addRules(rules) {\r\n this._rules = rules.concat(this._rules)\r\n }\r\n applyRules(rules) {\r\n var options = this._getByRules(rules);\r\n this.silent(options)\r\n }\r\n dispose() {\r\n this._deprecatedCallback = noop;\r\n this._startChangeCallback = noop;\r\n this._endChangeCallback = noop;\r\n this._optionManager.dispose()\r\n }\r\n onChanging(callBack) {\r\n this._optionManager.onChanging(callBack)\r\n }\r\n onChanged(callBack) {\r\n this._optionManager.onChanged(callBack)\r\n }\r\n onDeprecated(callBack) {\r\n this._deprecatedCallback = callBack\r\n }\r\n onStartChange(callBack) {\r\n this._startChangeCallback = callBack\r\n }\r\n onEndChange(callBack) {\r\n this._endChangeCallback = callBack\r\n }\r\n isInitial(name) {\r\n var value = this.silent(name);\r\n var initialValue = this.initial(name);\r\n var areFunctions = isFunction(value) && isFunction(initialValue);\r\n return areFunctions ? value.toString() === initialValue.toString() : equalByValue(value, initialValue)\r\n }\r\n initial(name) {\r\n return getNestedOptionValue(this._initial, name)\r\n }\r\n option(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, this._normalizeName(options))\r\n } else {\r\n this._startChangeCallback();\r\n try {\r\n this._optionManager.set(options, value)\r\n } finally {\r\n this._endChangeCallback()\r\n }\r\n }\r\n }\r\n silent(options, value) {\r\n var isGetter = arguments.length < 2 && \"object\" !== type(options);\r\n if (isGetter) {\r\n return this._optionManager.get(void 0, options, void 0, true)\r\n } else {\r\n this._optionManager.set(options, value, void 0, true)\r\n }\r\n }\r\n reset(name) {\r\n if (name) {\r\n var fullPath = getPathParts(name);\r\n var value = fullPath.reduce((value, field) => value ? value[field] : this.initial(field), null);\r\n var defaultValue = isObject(value) ? _extends({}, value) : value;\r\n this._optionManager.set(name, defaultValue, false)\r\n }\r\n }\r\n getAliasesByName(name) {\r\n return Object.keys(this._deprecated).filter(aliasName => name === this._deprecated[aliasName].alias)\r\n }\r\n isDeprecated(name) {\r\n return Object.prototype.hasOwnProperty.call(this._deprecated, name)\r\n }\r\n cache(name, options) {\r\n var isGetter = arguments.length < 2;\r\n if (isGetter) {\r\n return this._cachedOptions[name]\r\n } else {\r\n this._cachedOptions[name] = extend(this._cachedOptions[name], options)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/postponed_operations.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"./utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"./utils/type\";\r\nexport class PostponedOperations {\r\n constructor() {\r\n this._postponedOperations = {}\r\n }\r\n add(key, fn, postponedPromise) {\r\n if (key in this._postponedOperations) {\r\n postponedPromise && this._postponedOperations[key].promises.push(postponedPromise)\r\n } else {\r\n var completePromise = new Deferred;\r\n this._postponedOperations[key] = {\r\n fn: fn,\r\n completePromise: completePromise,\r\n promises: postponedPromise ? [postponedPromise] : []\r\n }\r\n }\r\n return this._postponedOperations[key].completePromise.promise()\r\n }\r\n callPostponedOperations() {\r\n for (var key in this._postponedOperations) {\r\n var operation = this._postponedOperations[key];\r\n if (isDefined(operation)) {\r\n if (operation.promises && operation.promises.length) {\r\n when(...operation.promises).done(operation.fn).then(operation.completePromise.resolve)\r\n } else {\r\n operation.fn().done(operation.completePromise.resolve)\r\n }\r\n }\r\n }\r\n this._postponedOperations = {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/component.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Config from \"./config\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n Options\r\n} from \"./options/index\";\r\nimport {\r\n convertRulesToOptions\r\n} from \"./options/utils\";\r\nimport Class from \"./class\";\r\nimport Action from \"./action\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nimport {\r\n PostponedOperations\r\n} from \"./postponed_operations\";\r\nimport {\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getPathParts\r\n} from \"./utils/data\";\r\nvar getEventName = actionName => actionName.charAt(2).toLowerCase() + actionName.substr(3);\r\nvar isInnerOption = optionName => 0 === optionName.indexOf(\"_\", 0);\r\nexport var Component = Class.inherit({\r\n _setDeprecatedOptions() {\r\n this._deprecatedOptions = {}\r\n },\r\n _getDeprecatedOptions() {\r\n return this._deprecatedOptions\r\n },\r\n _getDefaultOptions: () => ({\r\n onInitialized: null,\r\n onOptionChanged: null,\r\n onDisposing: null,\r\n defaultOptionsRules: null\r\n }),\r\n _defaultOptionsRules: () => [],\r\n _setOptionsByDevice(rules) {\r\n this._options.applyRules(rules)\r\n },\r\n _convertRulesToOptions: rules => convertRulesToOptions(rules),\r\n _isInitialOptionValue(name) {\r\n return this._options.isInitial(name)\r\n },\r\n _setOptionsByReference() {\r\n this._optionsByReference = {}\r\n },\r\n _getOptionsByReference() {\r\n return this._optionsByReference\r\n },\r\n ctor() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n _optionChangedCallbacks: _optionChangedCallbacks,\r\n _disposingCallbacks: _disposingCallbacks\r\n } = options;\r\n this.NAME = publicComponentName(this.constructor);\r\n this._eventsStrategy = EventsStrategy.create(this, options.eventsStrategy);\r\n this._updateLockCount = 0;\r\n this._optionChangedCallbacks = _optionChangedCallbacks || Callbacks();\r\n this._disposingCallbacks = _disposingCallbacks || Callbacks();\r\n this.postponedOperations = new PostponedOperations;\r\n this._createOptions(options)\r\n },\r\n _createOptions(options) {\r\n this.beginUpdate();\r\n try {\r\n this._setOptionsByReference();\r\n this._setDeprecatedOptions();\r\n this._options = new Options(this._getDefaultOptions(), this._getDefaultOptions(), this._getOptionsByReference(), this._getDeprecatedOptions());\r\n this._options.onChanging((name, previousValue, value) => this._initialized && this._optionChanging(name, previousValue, value));\r\n this._options.onDeprecated((option, info) => this._logDeprecatedOptionWarning(option, info));\r\n this._options.onChanged((name, value, previousValue) => this._notifyOptionChanged(name, value, previousValue));\r\n this._options.onStartChange(() => this.beginUpdate());\r\n this._options.onEndChange(() => this.endUpdate());\r\n this._options.addRules(this._defaultOptionsRules());\r\n if (options && options.onInitializing) {\r\n options.onInitializing.apply(this, [options])\r\n }\r\n this._setOptionsByDevice(options.defaultOptionsRules);\r\n this._initOptions(options)\r\n } finally {\r\n this.endUpdate()\r\n }\r\n },\r\n _initOptions(options) {\r\n this.option(options)\r\n },\r\n _init() {\r\n this._createOptionChangedAction();\r\n this.on(\"disposing\", args => {\r\n this._disposingCallbacks.fireWith(this, [args])\r\n })\r\n },\r\n _logDeprecatedOptionWarning(option, info) {\r\n var message = info.message || \"Use the '\".concat(info.alias, \"' option instead\");\r\n errors.log(\"W0001\", this.NAME, option, info.since, message)\r\n },\r\n _logDeprecatedComponentWarning(since, alias) {\r\n errors.log(\"W0000\", this.NAME, since, \"Use the '\".concat(alias, \"' widget instead\"))\r\n },\r\n _createOptionChangedAction() {\r\n this._optionChangedAction = this._createActionByOption(\"onOptionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _createDisposingAction() {\r\n this._disposingAction = this._createActionByOption(\"onDisposing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"onDisposing\":\r\n case \"onInitialized\":\r\n break;\r\n case \"onOptionChanged\":\r\n this._createOptionChangedAction()\r\n }\r\n },\r\n _dispose() {\r\n this._optionChangedCallbacks.empty();\r\n this._createDisposingAction();\r\n this._disposingAction();\r\n this._eventsStrategy.dispose();\r\n this._options.dispose();\r\n this._disposed = true\r\n },\r\n _lockUpdate() {\r\n this._updateLockCount++\r\n },\r\n _unlockUpdate() {\r\n this._updateLockCount = Math.max(this._updateLockCount - 1, 0)\r\n },\r\n _isUpdateAllowed() {\r\n return 0 === this._updateLockCount\r\n },\r\n _isInitializingRequired() {\r\n return !this._initializing && !this._initialized\r\n },\r\n isInitialized() {\r\n return this._initialized\r\n },\r\n _commitUpdate() {\r\n this.postponedOperations.callPostponedOperations();\r\n this._isInitializingRequired() && this._initializeComponent()\r\n },\r\n _initializeComponent() {\r\n this._initializing = true;\r\n try {\r\n this._init()\r\n } finally {\r\n this._initializing = false;\r\n this._lockUpdate();\r\n this._createActionByOption(\"onInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })();\r\n this._unlockUpdate();\r\n this._initialized = true\r\n }\r\n },\r\n instance() {\r\n return this\r\n },\r\n beginUpdate: function() {\r\n this._lockUpdate()\r\n },\r\n endUpdate: function() {\r\n this._unlockUpdate();\r\n this._isUpdateAllowed() && this._commitUpdate()\r\n },\r\n _optionChanging: noop,\r\n _notifyOptionChanged(option, value, previousValue) {\r\n if (this._initialized) {\r\n var optionNames = [option].concat(this._options.getAliasesByName(option));\r\n for (var i = 0; i < optionNames.length; i++) {\r\n var name = optionNames[i];\r\n var args = {\r\n name: getPathParts(name)[0],\r\n fullName: name,\r\n value: value,\r\n previousValue: previousValue\r\n };\r\n if (!isInnerOption(name)) {\r\n this._optionChangedCallbacks.fireWith(this, [extend(this._defaultActionArgs(), args)]);\r\n this._optionChangedAction(extend({}, args))\r\n }\r\n if (!this._disposed && this._cancelOptionChange !== name) {\r\n this._optionChanged(args)\r\n }\r\n }\r\n }\r\n },\r\n initialOption(name) {\r\n return this._options.initial(name)\r\n },\r\n _defaultActionConfig() {\r\n return {\r\n context: this,\r\n component: this\r\n }\r\n },\r\n _defaultActionArgs() {\r\n return {\r\n component: this\r\n }\r\n },\r\n _createAction(actionSource, config) {\r\n var action;\r\n return e => {\r\n if (!isDefined(e)) {\r\n e = {}\r\n }\r\n if (!isPlainObject(e)) {\r\n e = {\r\n actionValue: e\r\n }\r\n }\r\n action = action || new Action(actionSource, extend(config, this._defaultActionConfig()));\r\n return action.execute.call(action, extend(e, this._defaultActionArgs()))\r\n }\r\n },\r\n _createActionByOption(optionName, config) {\r\n var _this = this;\r\n var action;\r\n var eventName;\r\n var actionFunc;\r\n var result = function() {\r\n if (!eventName) {\r\n config = config || {};\r\n if (\"string\" !== typeof optionName) {\r\n throw errors.Error(\"E0008\")\r\n }\r\n if (0 === optionName.indexOf(\"on\")) {\r\n eventName = getEventName(optionName)\r\n }\r\n actionFunc = _this.option(optionName)\r\n }\r\n if (!action && !actionFunc && !config.beforeExecute && !config.afterExecute && !_this._eventsStrategy.hasEvent(eventName)) {\r\n return\r\n }\r\n if (!action) {\r\n var beforeExecute = config.beforeExecute;\r\n config.beforeExecute = function() {\r\n for (var _len2 = arguments.length, props = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n props[_key2] = arguments[_key2]\r\n }\r\n beforeExecute && beforeExecute.apply(_this, props);\r\n _this._eventsStrategy.fireEvent(eventName, props[0].args)\r\n };\r\n action = _this._createAction(actionFunc, config)\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n if (Config().wrapActionsBeforeExecute) {\r\n var beforeActionExecute = _this.option(\"beforeActionExecute\") || noop;\r\n var wrappedAction = beforeActionExecute(_this, action, config) || action;\r\n return wrappedAction.apply(_this, args)\r\n }\r\n return action.apply(_this, args)\r\n };\r\n if (Config().wrapActionsBeforeExecute) {\r\n return result\r\n }\r\n var onActionCreated = this.option(\"onActionCreated\") || noop;\r\n return onActionCreated(this, result, config) || result\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n },\r\n hasActionSubscription: function(actionName) {\r\n return !!this._options.silent(actionName) || this._eventsStrategy.hasEvent(getEventName(actionName))\r\n },\r\n isOptionDeprecated(name) {\r\n return this._options.isDeprecated(name)\r\n },\r\n _setOptionWithoutOptionChange(name, value) {\r\n this._cancelOptionChange = name;\r\n this.option(name, value);\r\n this._cancelOptionChange = false\r\n },\r\n _getOptionValue(name, context) {\r\n var value = this.option(name);\r\n if (isFunction(value)) {\r\n return value.bind(context)()\r\n }\r\n return value\r\n },\r\n option() {\r\n return this._options.option(...arguments)\r\n },\r\n resetOption(name) {\r\n this.beginUpdate();\r\n this._options.reset(name);\r\n this.endUpdate()\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/component_registrator_callbacks.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/component_registrator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport callbacks from \"./component_registrator_callbacks\";\r\nimport errors from \"./errors\";\r\nimport {\r\n name as publicComponentName\r\n} from \"./utils/public_component\";\r\nvar registerComponent = function(name, namespace, componentClass) {\r\n if (!componentClass) {\r\n componentClass = namespace\r\n } else {\r\n namespace[name] = componentClass\r\n }\r\n publicComponentName(componentClass, name);\r\n callbacks.fire(name, componentClass)\r\n};\r\nvar registerRendererComponent = function(name, componentClass) {\r\n $.fn[name] = function(options) {\r\n var isMemberInvoke = \"string\" === typeof options;\r\n var result;\r\n if (isMemberInvoke) {\r\n var memberName = options;\r\n var memberArgs = [].slice.call(arguments).slice(1);\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (!instance) {\r\n throw errors.Error(\"E0009\", name)\r\n }\r\n var member = instance[memberName];\r\n var memberValue = member.apply(instance, memberArgs);\r\n if (void 0 === result) {\r\n result = memberValue\r\n }\r\n }))\r\n } else {\r\n this.each((function() {\r\n var instance = componentClass.getInstance(this);\r\n if (instance) {\r\n instance.option(options)\r\n } else {\r\n new componentClass(this, options)\r\n }\r\n }));\r\n result = this\r\n }\r\n return result\r\n }\r\n};\r\ncallbacks.add(registerRendererComponent);\r\nexport default registerComponent;\r\n","/**\r\n * DevExtreme (esm/core/config.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport errors from \"./errors\";\r\nvar config = {\r\n rtlEnabled: false,\r\n defaultCurrency: \"USD\",\r\n defaultUseCurrencyAccountingStyle: true,\r\n oDataFilterToLower: true,\r\n serverDecimalSeparator: \".\",\r\n decimalSeparator: \".\",\r\n thousandsSeparator: \",\",\r\n forceIsoDateParsing: true,\r\n wrapActionsBeforeExecute: true,\r\n useLegacyStoreResult: false,\r\n useJQuery: void 0,\r\n editorStylingMode: void 0,\r\n useLegacyVisibleIndex: false,\r\n floatingActionButtonConfig: {\r\n icon: \"add\",\r\n closeIcon: \"close\",\r\n label: \"\",\r\n position: {\r\n at: \"right bottom\",\r\n my: \"right bottom\",\r\n offset: {\r\n x: -16,\r\n y: -16\r\n }\r\n },\r\n maxSpeedDialActionCount: 5,\r\n shading: false,\r\n direction: \"auto\"\r\n },\r\n optionsParser: optionsString => {\r\n if (\"{\" !== optionsString.trim().charAt(0)) {\r\n optionsString = \"{\" + optionsString + \"}\"\r\n }\r\n try {\r\n return new Function(\"return \" + optionsString)()\r\n } catch (ex) {\r\n throw errors.Error(\"E3018\", ex, optionsString)\r\n }\r\n }\r\n};\r\nvar deprecatedFields = [\"decimalSeparator\", \"thousandsSeparator\"];\r\nvar configMethod = function() {\r\n if (!arguments.length) {\r\n return config\r\n }\r\n var newConfig = arguments.length <= 0 ? void 0 : arguments[0];\r\n deprecatedFields.forEach(deprecatedField => {\r\n if (newConfig[deprecatedField]) {\r\n var message = \"Now, the \".concat(deprecatedField, \" is selected based on the specified locale.\");\r\n errors.log(\"W0003\", \"config\", deprecatedField, \"19.2\", message)\r\n }\r\n });\r\n extend(config, newConfig)\r\n};\r\nif (\"undefined\" !== typeof DevExpress && DevExpress.config) {\r\n configMethod(DevExpress.config)\r\n}\r\nexport default configMethod;\r\n","/**\r\n * DevExtreme (esm/core/devices.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"./utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getWindow,\r\n getNavigator,\r\n hasWindow\r\n} from \"./utils/window\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"./utils/type\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport errors from \"./errors\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport readyCallbacks from \"./utils/ready_callbacks\";\r\nimport resizeCallbacks from \"./utils/resize_callbacks\";\r\nimport {\r\n EventsStrategy\r\n} from \"./events_strategy\";\r\nimport {\r\n sessionStorage as SessionStorage\r\n} from \"./utils/storage\";\r\nimport {\r\n changeCallback,\r\n value as viewPort\r\n} from \"./utils/view_port\";\r\nimport Config from \"./config\";\r\nvar navigator = getNavigator();\r\nvar window = getWindow();\r\nvar KNOWN_UA_TABLE = {\r\n iPhone: \"iPhone\",\r\n iPhone5: \"iPhone\",\r\n iPhone6: \"iPhone\",\r\n iPhone6plus: \"iPhone\",\r\n iPad: \"iPad\",\r\n iPadMini: \"iPad Mini\",\r\n androidPhone: \"Android Mobile\",\r\n androidTablet: \"Android\",\r\n msSurface: \"Windows ARM Tablet PC\",\r\n desktop: \"desktop\"\r\n};\r\nvar DEFAULT_DEVICE = {\r\n deviceType: \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n phone: false,\r\n tablet: false,\r\n android: false,\r\n ios: false,\r\n generic: true,\r\n grade: \"A\",\r\n mac: false\r\n};\r\nvar uaParsers = {\r\n generic(userAgent) {\r\n var isPhone = /windows phone/i.test(userAgent) || userAgent.match(/WPDesktop/);\r\n var isTablet = !isPhone && /Windows(.*)arm(.*)Tablet PC/i.test(userAgent);\r\n var isDesktop = !isPhone && !isTablet && /msapphost/i.test(userAgent);\r\n var isMac = /((intel|ppc) mac os x)/.test(userAgent.toLowerCase());\r\n if (!(isPhone || isTablet || isDesktop || isMac)) {\r\n return\r\n }\r\n return {\r\n deviceType: isPhone ? \"phone\" : isTablet ? \"tablet\" : \"desktop\",\r\n platform: \"generic\",\r\n version: [],\r\n grade: \"A\",\r\n mac: isMac\r\n }\r\n },\r\n ios(userAgent) {\r\n if (!/ip(hone|od|ad)/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /ip(hone|od)/i.test(userAgent);\r\n var matches = userAgent.match(/os (\\d+)_(\\d+)_?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2], 10), parseInt(matches[3] || 0, 10)] : [];\r\n var isIPhone4 = 480 === window.screen.height;\r\n var grade = isIPhone4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"ios\",\r\n version: version,\r\n grade: grade\r\n }\r\n },\r\n android(userAgent) {\r\n if (!/android|htc_|silk/i.test(userAgent)) {\r\n return\r\n }\r\n var isPhone = /mobile/i.test(userAgent);\r\n var matches = userAgent.match(/android (\\d+)\\.?(\\d+)?\\.?(\\d+)?/i);\r\n var version = matches ? [parseInt(matches[1], 10), parseInt(matches[2] || 0, 10), parseInt(matches[3] || 0, 10)] : [];\r\n var worseThan4_4 = version.length > 1 && (version[0] < 4 || 4 === version[0] && version[1] < 4);\r\n var grade = worseThan4_4 ? \"B\" : \"A\";\r\n return {\r\n deviceType: isPhone ? \"phone\" : \"tablet\",\r\n platform: \"android\",\r\n version: version,\r\n grade: grade\r\n }\r\n }\r\n};\r\nclass Devices {\r\n constructor(options) {\r\n this._window = (null === options || void 0 === options ? void 0 : options.window) || window;\r\n this._realDevice = this._getDevice();\r\n this._currentDevice = void 0;\r\n this._currentOrientation = void 0;\r\n this._eventsStrategy = new EventsStrategy(this);\r\n this.changed = Callbacks();\r\n if (hasWindow()) {\r\n readyCallbacks.add(this._recalculateOrientation.bind(this));\r\n resizeCallbacks.add(this._recalculateOrientation.bind(this))\r\n }\r\n }\r\n current(deviceOrName) {\r\n if (deviceOrName) {\r\n this._currentDevice = this._getDevice(deviceOrName);\r\n this._forced = true;\r\n this.changed.fire();\r\n return\r\n }\r\n if (!this._currentDevice) {\r\n deviceOrName = void 0;\r\n try {\r\n deviceOrName = this._getDeviceOrNameFromWindowScope()\r\n } catch (e) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n } finally {\r\n if (!deviceOrName) {\r\n deviceOrName = this._getDeviceNameFromSessionStorage()\r\n }\r\n if (deviceOrName) {\r\n this._forced = true\r\n }\r\n }\r\n this._currentDevice = this._getDevice(deviceOrName)\r\n }\r\n return this._currentDevice\r\n }\r\n real(forceDevice) {\r\n return extend({}, this._realDevice)\r\n }\r\n orientation() {\r\n return this._currentOrientation\r\n }\r\n isForced() {\r\n return this._forced\r\n }\r\n isRippleEmulator() {\r\n return !!this._window.tinyHippos\r\n }\r\n _getCssClasses(device) {\r\n var result = [];\r\n var realDevice = this._realDevice;\r\n device = device || this.current();\r\n if (device.deviceType) {\r\n result.push(\"dx-device-\".concat(device.deviceType));\r\n if (\"desktop\" !== device.deviceType) {\r\n result.push(\"dx-device-mobile\")\r\n }\r\n }\r\n result.push(\"dx-device-\".concat(realDevice.platform));\r\n if (realDevice.version && realDevice.version.length) {\r\n result.push(\"dx-device-\".concat(realDevice.platform, \"-\").concat(realDevice.version[0]))\r\n }\r\n if (this.isSimulator()) {\r\n result.push(\"dx-simulator\")\r\n }\r\n if (Config().rtlEnabled) {\r\n result.push(\"dx-rtl\")\r\n }\r\n return result\r\n }\r\n attachCssClasses(element, device) {\r\n this._deviceClasses = this._getCssClasses(device).join(\" \");\r\n $(element).addClass(this._deviceClasses)\r\n }\r\n detachCssClasses(element) {\r\n $(element).removeClass(this._deviceClasses)\r\n }\r\n isSimulator() {\r\n try {\r\n return this._isSimulator || hasWindow() && this._window.top !== this._window.self && this._window.top[\"dx-force-device\"] || this.isRippleEmulator()\r\n } catch (e) {\r\n return false\r\n }\r\n }\r\n forceSimulator() {\r\n this._isSimulator = true\r\n }\r\n _getDevice(deviceName) {\r\n if (\"genericPhone\" === deviceName) {\r\n deviceName = {\r\n deviceType: \"phone\",\r\n platform: \"generic\",\r\n generic: true\r\n }\r\n }\r\n if (isPlainObject(deviceName)) {\r\n return this._fromConfig(deviceName)\r\n } else {\r\n var ua;\r\n if (deviceName) {\r\n ua = KNOWN_UA_TABLE[deviceName];\r\n if (!ua) {\r\n throw errors.Error(\"E0005\")\r\n }\r\n } else {\r\n ua = navigator.userAgent\r\n }\r\n return this._fromUA(ua)\r\n }\r\n }\r\n _getDeviceOrNameFromWindowScope() {\r\n var result;\r\n if (hasWindow() && (this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"])) {\r\n result = this._window.top[\"dx-force-device-object\"] || this._window.top[\"dx-force-device\"]\r\n }\r\n return result\r\n }\r\n _getDeviceNameFromSessionStorage() {\r\n var sessionStorage = SessionStorage();\r\n if (!sessionStorage) {\r\n return\r\n }\r\n var deviceOrName = sessionStorage.getItem(\"dx-force-device\");\r\n try {\r\n return JSON.parse(deviceOrName)\r\n } catch (ex) {\r\n return deviceOrName\r\n }\r\n }\r\n _fromConfig(config) {\r\n var result = extend({}, DEFAULT_DEVICE, this._currentDevice, config);\r\n var shortcuts = {\r\n phone: \"phone\" === result.deviceType,\r\n tablet: \"tablet\" === result.deviceType,\r\n android: \"android\" === result.platform,\r\n ios: \"ios\" === result.platform,\r\n generic: \"generic\" === result.platform\r\n };\r\n return extend(result, shortcuts)\r\n }\r\n _fromUA(ua) {\r\n var config;\r\n each(uaParsers, (platform, parser) => {\r\n config = parser(ua);\r\n return !config\r\n });\r\n if (config) {\r\n return this._fromConfig(config)\r\n }\r\n return DEFAULT_DEVICE\r\n }\r\n _changeOrientation() {\r\n var $window = $(this._window);\r\n var orientation = getHeight($window) > getWidth($window) ? \"portrait\" : \"landscape\";\r\n if (this._currentOrientation === orientation) {\r\n return\r\n }\r\n this._currentOrientation = orientation;\r\n this._eventsStrategy.fireEvent(\"orientationChanged\", [{\r\n orientation: orientation\r\n }])\r\n }\r\n _recalculateOrientation() {\r\n var windowWidth = getWidth(this._window);\r\n if (this._currentWidth === windowWidth) {\r\n return\r\n }\r\n this._currentWidth = windowWidth;\r\n this._changeOrientation()\r\n }\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n }\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n}\r\nvar devices = new Devices;\r\nvar viewPortElement = viewPort();\r\nif (viewPortElement) {\r\n devices.attachCssClasses(viewPortElement)\r\n}\r\nchangeCallback.add((viewPort, prevViewport) => {\r\n devices.detachCssClasses(prevViewport);\r\n devices.attachCssClasses(viewPort)\r\n});\r\nexport default devices;\r\n","/**\r\n * DevExtreme (esm/core/dom_adapter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport injector from \"./utils/dependency_injector\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getShadowElementsFromPoint\r\n} from \"./utils/shadow_dom\";\r\nvar ELEMENT_NODE = 1;\r\nvar TEXT_NODE = 3;\r\nvar DOCUMENT_NODE = 9;\r\nvar DOCUMENT_FRAGMENT_NODE = 11;\r\nvar nativeDOMAdapterStrategy = {\r\n querySelectorAll: (element, selector) => element.querySelectorAll(selector),\r\n elementMatches(element, selector) {\r\n var matches = element.matches || element.matchesSelector || element.mozMatchesSelector || element.msMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector || (selector => {\r\n var doc = element.document || element.ownerDocument;\r\n if (!doc) {\r\n return false\r\n }\r\n var items = this.querySelectorAll(doc, selector);\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] === element) {\r\n return true\r\n }\r\n }\r\n });\r\n return matches.call(element, selector)\r\n },\r\n createElement(tagName, context) {\r\n context = context || this._document;\r\n return context.createElement(tagName)\r\n },\r\n createElementNS(ns, tagName, context) {\r\n context = context || this._document;\r\n return context.createElementNS(ns, tagName)\r\n },\r\n createTextNode(text, context) {\r\n context = context || this._document;\r\n return context.createTextNode(text)\r\n },\r\n isNode: element => element && \"object\" === typeof element && \"nodeType\" in element && \"nodeName\" in element,\r\n isElementNode: element => element && element.nodeType === ELEMENT_NODE,\r\n isTextNode: element => element && element.nodeType === TEXT_NODE,\r\n isDocument: element => element && element.nodeType === DOCUMENT_NODE,\r\n isDocumentFragment: element => element && element.nodeType === DOCUMENT_FRAGMENT_NODE,\r\n removeElement(element) {\r\n var parentNode = element && element.parentNode;\r\n if (parentNode) {\r\n parentNode.removeChild(element)\r\n }\r\n },\r\n insertElement(parentElement, newElement, nextSiblingElement) {\r\n if (parentElement && newElement && parentElement !== newElement) {\r\n if (nextSiblingElement) {\r\n parentElement.insertBefore(newElement, nextSiblingElement)\r\n } else {\r\n parentElement.appendChild(newElement)\r\n }\r\n }\r\n },\r\n getAttribute: (element, name) => element.getAttribute(name),\r\n setAttribute(element, name, value) {\r\n element.setAttribute(name, value)\r\n },\r\n removeAttribute(element, name) {\r\n element.removeAttribute(name)\r\n },\r\n setProperty(element, name, value) {\r\n element[name] = value\r\n },\r\n setText(element, text) {\r\n if (element) {\r\n element.textContent = text\r\n }\r\n },\r\n setClass(element, className, isAdd) {\r\n if (1 === element.nodeType && className) {\r\n isAdd ? element.classList.add(className) : element.classList.remove(className)\r\n }\r\n },\r\n setStyle(element, name, value) {\r\n element.style[name] = value || \"\"\r\n },\r\n _document: \"undefined\" === typeof document ? void 0 : document,\r\n getDocument() {\r\n return this._document\r\n },\r\n getActiveElement(element) {\r\n var activeElementHolder = this.getRootNode(element);\r\n return activeElementHolder.activeElement\r\n },\r\n getRootNode(element) {\r\n var _element$getRootNode, _element$getRootNode2;\r\n return null !== (_element$getRootNode = null === element || void 0 === element ? void 0 : null === (_element$getRootNode2 = element.getRootNode) || void 0 === _element$getRootNode2 ? void 0 : _element$getRootNode2.call(element)) && void 0 !== _element$getRootNode ? _element$getRootNode : this._document\r\n },\r\n getBody() {\r\n return this._document.body\r\n },\r\n createDocumentFragment() {\r\n return this._document.createDocumentFragment()\r\n },\r\n getDocumentElement() {\r\n return this._document.documentElement\r\n },\r\n getLocation() {\r\n return this._document.location\r\n },\r\n getSelection() {\r\n return this._document.selection\r\n },\r\n getReadyState() {\r\n return this._document.readyState\r\n },\r\n getHead() {\r\n return this._document.head\r\n },\r\n hasDocumentProperty(property) {\r\n return property in this._document\r\n },\r\n listen(element, event, callback, options) {\r\n if (!element || !(\"addEventListener\" in element)) {\r\n return noop\r\n }\r\n element.addEventListener(event, callback, options);\r\n return () => {\r\n element.removeEventListener(event, callback)\r\n }\r\n },\r\n elementsFromPoint(x, y, element) {\r\n var activeElementHolder = this.getRootNode(element);\r\n if (activeElementHolder.host) {\r\n return getShadowElementsFromPoint(x, y, activeElementHolder)\r\n }\r\n return activeElementHolder.elementsFromPoint(x, y)\r\n }\r\n};\r\nexport default injector(nativeDOMAdapterStrategy);\r\n","/**\r\n * DevExtreme (esm/core/template_manager.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"./renderer\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isRenderer\r\n} from \"./utils/type\";\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n FunctionTemplate\r\n} from \"./templates/function_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"./templates/empty_template\";\r\nimport {\r\n findTemplates,\r\n suitableTemplatesByName,\r\n templateKey,\r\n getNormalizedTemplateArgs,\r\n validateTemplateSource,\r\n defaultCreateElement,\r\n acquireTemplate\r\n} from \"./utils/template_manager\";\r\nvar TEXT_NODE = 3;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"template\";\r\nvar TEMPLATE_OPTIONS_NAME = \"dxTemplate\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar DX_POLYMORPH_WIDGET_TEMPLATE = new FunctionTemplate(_ref => {\r\n var {\r\n model: model,\r\n parent: parent\r\n } = _ref;\r\n var widgetName = model.widget;\r\n if (!widgetName) {\r\n return $()\r\n }\r\n var widgetElement = $(\"<div>\");\r\n var widgetOptions = model.options || {};\r\n if (parent) {\r\n parent._createComponent(widgetElement, widgetName, widgetOptions)\r\n } else {\r\n widgetElement[widgetName](widgetOptions)\r\n }\r\n return widgetElement\r\n});\r\nexport class TemplateManager {\r\n constructor(createElement, anonymousTemplateName) {\r\n this._tempTemplates = [];\r\n this._defaultTemplates = {};\r\n this._anonymousTemplateName = anonymousTemplateName || ANONYMOUS_TEMPLATE_NAME;\r\n this._createElement = createElement || defaultCreateElement;\r\n this._createTemplateIfNeeded = this._createTemplateIfNeeded.bind(this)\r\n }\r\n static createDefaultOptions() {\r\n return {\r\n integrationOptions: {\r\n watchMethod: function(fn, callback) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n if (!options.skipImmediate) {\r\n callback(fn())\r\n }\r\n return noop\r\n },\r\n templates: {\r\n \"dx-polymorph-widget\": DX_POLYMORPH_WIDGET_TEMPLATE\r\n },\r\n useDeferUpdateForTemplates: true\r\n }\r\n }\r\n }\r\n get anonymousTemplateName() {\r\n return this._anonymousTemplateName\r\n }\r\n addDefaultTemplates(templates) {\r\n this._defaultTemplates = extend({}, this._defaultTemplates, templates)\r\n }\r\n dispose() {\r\n this._tempTemplates.forEach(tempTemplate => {\r\n tempTemplate.template.dispose && tempTemplate.template.dispose()\r\n });\r\n this._tempTemplates = []\r\n }\r\n extractTemplates($el) {\r\n var templates = this._extractTemplates($el);\r\n var anonymousTemplateMeta = this._extractAnonymousTemplate($el);\r\n return {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n }\r\n }\r\n _extractTemplates($el) {\r\n var templates = findTemplates($el, TEMPLATE_OPTIONS_NAME);\r\n var suitableTemplates = suitableTemplatesByName(templates);\r\n templates.forEach(_ref2 => {\r\n var {\r\n element: element,\r\n options: {\r\n name: name\r\n }\r\n } = _ref2;\r\n if (element === suitableTemplates[name]) {\r\n $(element).addClass(TEMPLATE_WRAPPER_CLASS).detach()\r\n } else {\r\n $(element).remove()\r\n }\r\n });\r\n return Object.keys(suitableTemplates).map(name => ({\r\n name: name,\r\n template: this._createTemplate(suitableTemplates[name])\r\n }))\r\n }\r\n _extractAnonymousTemplate($el) {\r\n var $anonymousTemplate = $el.contents().detach();\r\n var $notJunkTemplateContent = $anonymousTemplate.filter((_, element) => {\r\n var isTextNode = element.nodeType === TEXT_NODE;\r\n var isEmptyText = $(element).text().trim().length < 1;\r\n return !(isTextNode && isEmptyText)\r\n });\r\n return $notJunkTemplateContent.length > 0 ? {\r\n template: this._createTemplate($anonymousTemplate),\r\n name: this._anonymousTemplateName\r\n } : {}\r\n }\r\n _createTemplateIfNeeded(templateSource) {\r\n var cachedTemplate = this._tempTemplates.filter(tempTemplate => tempTemplate.source === templateKey(templateSource))[0];\r\n if (cachedTemplate) {\r\n return cachedTemplate.template\r\n }\r\n var template = this._createTemplate(templateSource);\r\n this._tempTemplates.push({\r\n template: template,\r\n source: templateKey(templateSource)\r\n });\r\n return template\r\n }\r\n _createTemplate(templateSource) {\r\n return this._createElement(validateTemplateSource(templateSource))\r\n }\r\n getTemplate(templateSource, templates, _ref3, context) {\r\n var {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n } = _ref3;\r\n if (!isFunction(templateSource)) {\r\n return acquireTemplate(templateSource, this._createTemplateIfNeeded, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates)\r\n }\r\n return new FunctionTemplate(options => {\r\n var templateSourceResult = templateSource.apply(context, getNormalizedTemplateArgs(options));\r\n if (!isDefined(templateSourceResult)) {\r\n return new EmptyTemplate\r\n }\r\n var dispose = false;\r\n var template = acquireTemplate(templateSourceResult, templateSource => {\r\n if (templateSource.nodeType || isRenderer(templateSource) && !$(templateSource).is(\"script\")) {\r\n return new FunctionTemplate(() => templateSource)\r\n }\r\n dispose = true;\r\n return this._createTemplate(templateSource)\r\n }, templates, isAsyncTemplate, skipTemplates, this._defaultTemplates);\r\n var result = template.render(options);\r\n dispose && template.dispose && template.dispose();\r\n return result\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/dom_component.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport config from \"./config\";\r\nimport errors from \"./errors\";\r\nimport windowResizeCallbacks from \"../core/utils/resize_callbacks\";\r\nimport {\r\n Component\r\n} from \"./component\";\r\nimport {\r\n TemplateManager\r\n} from \"./template_manager\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"./utils/public_component\";\r\nimport {\r\n addShadowDomStyles\r\n} from \"./utils/shadow_dom\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n extend\r\n} from \"./utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isFunction\r\n} from \"./utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n resize as resizeEvent,\r\n visibility as visibilityEvents\r\n} from \"../events/short\";\r\nvar {\r\n abstract: abstract\r\n} = Component;\r\nvar DOMComponent = Component.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n width: void 0,\r\n height: void 0,\r\n rtlEnabled: config().rtlEnabled,\r\n elementAttr: {},\r\n disabled: false,\r\n integrationOptions: {}\r\n }, this._useTemplates() ? TemplateManager.createDefaultOptions() : {})\r\n },\r\n ctor(element, options) {\r\n this._customClass = null;\r\n this._createElement(element);\r\n attachInstanceToElement(this._$element, this, this._dispose);\r\n this.callBase(options)\r\n },\r\n _createElement(element) {\r\n this._$element = $(element)\r\n },\r\n _getSynchronizableOptionsForCreateComponent: () => [\"rtlEnabled\", \"disabled\", \"templatesRenderAsynchronously\"],\r\n _checkFunctionValueDeprecation: function(optionNames) {\r\n if (!this.option(\"_ignoreFunctionValueDeprecation\")) {\r\n optionNames.forEach(optionName => {\r\n if (isFunction(this.option(optionName))) {\r\n errors.log(\"W0017\", optionName)\r\n }\r\n })\r\n }\r\n },\r\n _visibilityChanged: abstract,\r\n _dimensionChanged: abstract,\r\n _init() {\r\n this.callBase();\r\n this._checkFunctionValueDeprecation([\"width\", \"height\", \"maxHeight\", \"maxWidth\", \"minHeight\", \"minWidth\", \"popupHeight\", \"popupWidth\"]);\r\n this._attachWindowResizeCallback();\r\n this._initTemplateManager()\r\n },\r\n _setOptionsByDevice(instanceCustomRules) {\r\n this.callBase([].concat(this.constructor._classCustomRules || [], instanceCustomRules || []))\r\n },\r\n _isInitialOptionValue(name) {\r\n var isCustomOption = this.constructor._classCustomRules && Object.prototype.hasOwnProperty.call(this._convertRulesToOptions(this.constructor._classCustomRules), name);\r\n return !isCustomOption && this.callBase(name)\r\n },\r\n _attachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n var windowResizeCallBack = this._windowResizeCallBack = this._dimensionChanged.bind(this);\r\n windowResizeCallbacks.add(windowResizeCallBack)\r\n }\r\n },\r\n _isDimensionChangeSupported() {\r\n return this._dimensionChanged !== abstract\r\n },\r\n _renderComponent() {\r\n this._initMarkup();\r\n hasWindow() && this._render()\r\n },\r\n _initMarkup() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.option() || {};\r\n this._renderElementAttributes();\r\n this._toggleRTLDirection(rtlEnabled);\r\n this._renderVisibilityChange();\r\n this._renderDimensions()\r\n },\r\n _render() {\r\n this._attachVisibilityChangeHandlers();\r\n addShadowDomStyles(this.$element())\r\n },\r\n _renderElementAttributes() {\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option() || {};\r\n var attributes = extend({}, elementAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$element().attr(attributes).removeClass(this._customClass).addClass(classNames);\r\n this._customClass = classNames\r\n },\r\n _renderVisibilityChange() {\r\n if (this._isDimensionChangeSupported()) {\r\n this._attachDimensionChangeHandlers()\r\n }\r\n if (this._isVisibilityChangeSupported()) {\r\n var $element = this.$element();\r\n $element.addClass(\"dx-visibility-change-handler\")\r\n }\r\n },\r\n _renderDimensions() {\r\n var $element = this.$element();\r\n var element = $element.get(0);\r\n var width = this._getOptionValue(\"width\", element);\r\n var height = this._getOptionValue(\"height\", element);\r\n if (this._isCssUpdateRequired(element, height, width)) {\r\n $element.css({\r\n width: null === width ? \"\" : width,\r\n height: null === height ? \"\" : height\r\n })\r\n }\r\n },\r\n _isCssUpdateRequired: (element, height, width) => !!(isDefined(width) || isDefined(height) || element.style.width || element.style.height),\r\n _attachDimensionChangeHandlers() {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n resizeEvent.off($el, {\r\n namespace: namespace\r\n });\r\n resizeEvent.on($el, () => this._dimensionChanged(), {\r\n namespace: namespace\r\n })\r\n },\r\n _attachVisibilityChangeHandlers() {\r\n if (this._isVisibilityChangeSupported()) {\r\n var $el = this.$element();\r\n var namespace = \"\".concat(this.NAME, \"VisibilityChange\");\r\n this._isHidden = !this._isVisible();\r\n visibilityEvents.off($el, {\r\n namespace: namespace\r\n });\r\n visibilityEvents.on($el, () => this._checkVisibilityChanged(\"shown\"), () => this._checkVisibilityChanged(\"hiding\"), {\r\n namespace: namespace\r\n })\r\n }\r\n },\r\n _isVisible() {\r\n var $element = this.$element();\r\n return $element.is(\":visible\")\r\n },\r\n _checkVisibilityChanged(action) {\r\n var isVisible = this._isVisible();\r\n if (isVisible) {\r\n if (\"hiding\" === action && !this._isHidden) {\r\n this._visibilityChanged(false);\r\n this._isHidden = true\r\n } else if (\"shown\" === action && this._isHidden) {\r\n this._isHidden = false;\r\n this._visibilityChanged(true)\r\n }\r\n }\r\n },\r\n _isVisibilityChangeSupported() {\r\n return this._visibilityChanged !== abstract && hasWindow()\r\n },\r\n _clean: noop,\r\n _modelByElement() {\r\n var {\r\n modelByElement: modelByElement\r\n } = this.option();\r\n var $element = this.$element();\r\n return modelByElement ? modelByElement($element) : void 0\r\n },\r\n _invalidate() {\r\n if (this._isUpdateAllowed()) {\r\n throw errors.Error(\"E0007\")\r\n }\r\n this._requireRefresh = true\r\n },\r\n _refresh() {\r\n this._clean();\r\n this._renderComponent()\r\n },\r\n _dispose() {\r\n this._templateManager && this._templateManager.dispose();\r\n this.callBase();\r\n this._clean();\r\n this._detachWindowResizeCallback()\r\n },\r\n _detachWindowResizeCallback() {\r\n if (this._isDimensionChangeSupported()) {\r\n windowResizeCallbacks.remove(this._windowResizeCallBack)\r\n }\r\n },\r\n _toggleRTLDirection(rtl) {\r\n var $element = this.$element();\r\n $element.toggleClass(\"dx-rtl\", rtl)\r\n },\r\n _createComponent(element, component) {\r\n var config = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var synchronizableOptions = grep(this._getSynchronizableOptionsForCreateComponent(), value => !(value in config));\r\n var {\r\n integrationOptions: integrationOptions\r\n } = this.option();\r\n var {\r\n nestedComponentOptions: nestedComponentOptions\r\n } = this.option();\r\n nestedComponentOptions = nestedComponentOptions || noop;\r\n var nestedComponentConfig = extend({\r\n integrationOptions: integrationOptions\r\n }, nestedComponentOptions(this));\r\n synchronizableOptions.forEach(optionName => nestedComponentConfig[optionName] = this.option(optionName));\r\n this._extendConfig(config, nestedComponentConfig);\r\n var instance = void 0;\r\n if (isString(component)) {\r\n var $element = $(element)[component](config);\r\n instance = $element[component](\"instance\")\r\n } else if (element) {\r\n instance = component.getInstance(element);\r\n if (instance) {\r\n instance.option(config)\r\n } else {\r\n instance = new component(element, config)\r\n }\r\n }\r\n if (instance) {\r\n var optionChangedHandler = _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (synchronizableOptions.includes(name)) {\r\n instance.option(name, value)\r\n }\r\n };\r\n this.on(\"optionChanged\", optionChangedHandler);\r\n instance.on(\"disposing\", () => this.off(\"optionChanged\", optionChangedHandler))\r\n }\r\n return instance\r\n },\r\n _extendConfig(config, extendConfig) {\r\n each(extendConfig, (key, value) => {\r\n !Object.prototype.hasOwnProperty.call(config, key) && (config[key] = value)\r\n })\r\n },\r\n _defaultActionConfig() {\r\n var $element = this.$element();\r\n var context = this._modelByElement($element);\r\n return extend(this.callBase(), {\r\n context: context\r\n })\r\n },\r\n _defaultActionArgs() {\r\n var $element = this.$element();\r\n var model = this._modelByElement($element);\r\n var element = this.element();\r\n return extend(this.callBase(), {\r\n element: element,\r\n model: model\r\n })\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this._renderDimensions();\r\n break;\r\n case \"rtlEnabled\":\r\n this._invalidate();\r\n break;\r\n case \"elementAttr\":\r\n this._renderElementAttributes();\r\n break;\r\n case \"disabled\":\r\n case \"integrationOptions\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _removeAttributes(element) {\r\n var attrs = element.attributes;\r\n for (var i = attrs.length - 1; i >= 0; i--) {\r\n var attr = attrs[i];\r\n if (attr) {\r\n var {\r\n name: name\r\n } = attr;\r\n if (!name.indexOf(\"aria-\") || -1 !== name.indexOf(\"dx-\") || \"role\" === name || \"style\" === name || \"tabindex\" === name) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n }\r\n },\r\n _removeClasses(element) {\r\n element.className = element.className.split(\" \").filter(cssClass => 0 !== cssClass.lastIndexOf(\"dx-\", 0)).join(\" \")\r\n },\r\n _updateDOMComponent(renderRequired) {\r\n if (renderRequired) {\r\n this._renderComponent()\r\n } else if (this._requireRefresh) {\r\n this._requireRefresh = false;\r\n this._refresh()\r\n }\r\n },\r\n endUpdate() {\r\n var renderRequired = this._isInitializingRequired();\r\n this.callBase();\r\n this._isUpdateAllowed() && this._updateDOMComponent(renderRequired)\r\n },\r\n $element() {\r\n return this._$element\r\n },\r\n element() {\r\n var $element = this.$element();\r\n return getPublicElement($element)\r\n },\r\n dispose() {\r\n var element = this.$element().get(0);\r\n cleanDataRecursive(element, true);\r\n element.textContent = \"\";\r\n this._removeAttributes(element);\r\n this._removeClasses(element)\r\n },\r\n resetOption(optionName) {\r\n this.callBase(optionName);\r\n if (\"width\" === optionName || \"height\" === optionName) {\r\n var initialOption = this.initialOption(optionName);\r\n !isDefined(initialOption) && this.$element().css(optionName, \"\")\r\n }\r\n },\r\n _getAnonymousTemplateName() {\r\n return\r\n },\r\n _initTemplateManager() {\r\n if (this._templateManager || !this._useTemplates()) {\r\n return\r\n }\r\n var {\r\n integrationOptions: integrationOptions = {}\r\n } = this.option();\r\n var {\r\n createTemplate: createTemplate\r\n } = integrationOptions;\r\n this._templateManager = new TemplateManager(createTemplate, this._getAnonymousTemplateName());\r\n this._initTemplates()\r\n },\r\n _initTemplates() {\r\n var {\r\n templates: templates,\r\n anonymousTemplateMeta: anonymousTemplateMeta\r\n } = this._templateManager.extractTemplates(this.$element());\r\n var anonymousTemplate = this.option(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name));\r\n templates.forEach(_ref2 => {\r\n var {\r\n name: name,\r\n template: template\r\n } = _ref2;\r\n this._options.silent(\"integrationOptions.templates.\".concat(name), template)\r\n });\r\n if (anonymousTemplateMeta.name && !anonymousTemplate) {\r\n this._options.silent(\"integrationOptions.templates.\".concat(anonymousTemplateMeta.name), anonymousTemplateMeta.template);\r\n this._options.silent(\"_hasAnonymousTemplateContent\", true)\r\n }\r\n },\r\n _getTemplateByOption(optionName) {\r\n return this._getTemplate(this.option(optionName))\r\n },\r\n _getTemplate(templateSource) {\r\n var templates = this.option(\"integrationOptions.templates\");\r\n var isAsyncTemplate = this.option(\"templatesRenderAsynchronously\");\r\n var skipTemplates = this.option(\"integrationOptions.skipTemplates\");\r\n return this._templateManager.getTemplate(templateSource, templates, {\r\n isAsyncTemplate: isAsyncTemplate,\r\n skipTemplates: skipTemplates\r\n }, this)\r\n },\r\n _saveTemplate(name, template) {\r\n this._setOptionWithoutOptionChange(\"integrationOptions.templates.\" + name, this._templateManager._createTemplate(template))\r\n },\r\n _useTemplates: () => true\r\n});\r\nDOMComponent.getInstance = function(element) {\r\n return getInstanceByElement($(element), this)\r\n};\r\nDOMComponent.defaultOptions = function(rule) {\r\n this._classCustomRules = this._classCustomRules || [];\r\n this._classCustomRules.push(rule)\r\n};\r\nexport default DOMComponent;\r\n","/**\r\n * DevExtreme (esm/core/element.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar strategy = function(element) {\r\n return element && element.get(0)\r\n};\r\nexport function getPublicElement(element) {\r\n return strategy(element)\r\n}\r\nexport function setPublicElementWrapper(newStrategy) {\r\n strategy = newStrategy\r\n}\r\n","/**\r\n * DevExtreme (esm/core/element_data.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"./dom_adapter\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport MemorizedCallbacks from \"./memorized_callbacks\";\r\nvar dataMap = new WeakMap;\r\nvar strategy;\r\nexport var strategyChanging = new MemorizedCallbacks;\r\nvar beforeCleanDataFunc = function() {};\r\nvar afterCleanDataFunc = function() {};\r\nexport var setDataStrategy = function(value) {\r\n strategyChanging.fire(value);\r\n strategy = value;\r\n var cleanData = strategy.cleanData;\r\n strategy.cleanData = function(nodes) {\r\n beforeCleanDataFunc(nodes);\r\n var result = cleanData.call(this, nodes);\r\n afterCleanDataFunc(nodes);\r\n return result\r\n }\r\n};\r\nsetDataStrategy({\r\n data: function() {\r\n var element = arguments[0];\r\n var key = arguments[1];\r\n var value = arguments[2];\r\n if (!element) {\r\n return\r\n }\r\n var elementData = dataMap.get(element);\r\n if (!elementData) {\r\n elementData = {};\r\n dataMap.set(element, elementData)\r\n }\r\n if (void 0 === key) {\r\n return elementData\r\n }\r\n if (2 === arguments.length) {\r\n return elementData[key]\r\n }\r\n elementData[key] = value;\r\n return value\r\n },\r\n removeData: function(element, key) {\r\n if (!element) {\r\n return\r\n }\r\n if (void 0 === key) {\r\n dataMap.delete(element)\r\n } else {\r\n var elementData = dataMap.get(element);\r\n if (elementData) {\r\n delete elementData[key]\r\n }\r\n }\r\n },\r\n cleanData: function(elements) {\r\n for (var i = 0; i < elements.length; i++) {\r\n eventsEngine.off(elements[i]);\r\n dataMap.delete(elements[i])\r\n }\r\n }\r\n});\r\nexport function getDataStrategy() {\r\n return strategy\r\n}\r\nexport function data() {\r\n return strategy.data.apply(this, arguments)\r\n}\r\nexport function beforeCleanData(callback) {\r\n beforeCleanDataFunc = callback\r\n}\r\nexport function afterCleanData(callback) {\r\n afterCleanDataFunc = callback\r\n}\r\nexport function cleanData(nodes) {\r\n return strategy.cleanData.call(this, nodes)\r\n}\r\nexport function removeData(element, key) {\r\n return strategy.removeData.call(this, element, key)\r\n}\r\nexport function cleanDataRecursive(element, cleanSelf) {\r\n if (!domAdapter.isElementNode(element)) {\r\n return\r\n }\r\n var childElements = element.getElementsByTagName(\"*\");\r\n strategy.cleanData(childElements);\r\n if (cleanSelf) {\r\n strategy.cleanData([element])\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/errors.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"./utils/error\";\r\nexport default errorUtils({\r\n E0001: \"Method is not implemented\",\r\n E0002: \"Member name collision: {0}\",\r\n E0003: \"A class must be instantiated using the 'new' keyword\",\r\n E0004: \"The NAME property of the component is not specified\",\r\n E0005: \"Unknown device\",\r\n E0006: \"Unknown endpoint key is requested\",\r\n E0007: \"'Invalidate' method is called outside the update transaction\",\r\n E0008: \"Type of the option name is not appropriate to create an action\",\r\n E0009: \"Component '{0}' has not been initialized for an element\",\r\n E0010: \"Animation configuration with the '{0}' type requires '{1}' configuration as {2}\",\r\n E0011: \"Unknown animation type '{0}'\",\r\n E0012: \"jQuery version is too old. Please upgrade jQuery to 1.10.0 or later\",\r\n E0013: \"KnockoutJS version is too old. Please upgrade KnockoutJS to 2.3.0 or later\",\r\n E0014: \"The 'release' method shouldn't be called for an unlocked Lock object\",\r\n E0015: \"Queued task returned an unexpected result\",\r\n E0017: \"Event namespace is not defined\",\r\n E0018: \"DevExpress.ui.DevExpressPopup widget is required\",\r\n E0020: \"Template engine '{0}' is not supported\",\r\n E0021: \"Unknown theme is set: {0}\",\r\n E0022: \"LINK[rel=DevExpress-theme] tags must go before DevExpress included scripts\",\r\n E0023: \"Template name is not specified\",\r\n E0024: \"DevExtreme bundle already included\",\r\n E0025: \"Unexpected argument type\",\r\n E0100: \"Unknown validation type is detected\",\r\n E0101: \"Misconfigured range validation rule is detected\",\r\n E0102: \"Misconfigured comparison validation rule is detected\",\r\n E0103: \"validationCallback of an asynchronous rule should return a jQuery or a native promise\",\r\n E0110: \"Unknown validation group is detected\",\r\n E0120: \"Adapter for a DevExpressValidator component cannot be configured\",\r\n E0121: \"The 'customItem' parameter of the 'onCustomItemCreating' function is empty or contains invalid data. Assign a custom object or a Promise that is resolved after the item is created.\",\r\n W0000: \"'{0}' is deprecated in {1}. {2}\",\r\n W0001: \"{0} - '{1}' option is deprecated in {2}. {3}\",\r\n W0002: \"{0} - '{1}' method is deprecated in {2}. {3}\",\r\n W0003: \"{0} - '{1}' property is deprecated in {2}. {3}\",\r\n W0004: \"Timeout for theme loading is over: {0}\",\r\n W0005: \"'{0}' event is deprecated in {1}. {2}\",\r\n W0006: \"Invalid recurrence rule: '{0}'\",\r\n W0007: \"'{0}' Globalize culture is not defined\",\r\n W0008: \"Invalid view name: '{0}'\",\r\n W0009: \"Invalid time zone name: '{0}'\",\r\n W0010: \"{0} is deprecated in {1}. {2}\",\r\n W0011: \"Number parsing is invoked while the parser is not defined\",\r\n W0012: \"Date parsing is invoked while the parser is not defined\",\r\n W0013: \"'{0}' file is deprecated in {1}. {2}\",\r\n W0014: \"{0} - '{1}' type is deprecated in {2}. {3}\",\r\n W0015: \"Instead of returning a value from the '{0}' function, write it into the '{1}' field of the function's parameter.\",\r\n W0016: 'The \"{0}\" option does not accept the \"{1}\" value since v{2}. {3}.',\r\n W0017: 'Setting the \"{0}\" property with a function is deprecated since v21.2',\r\n W0018: 'Setting the \"position\" property with a function is deprecated since v21.2'\r\n});\r\n","/**\r\n * DevExtreme (esm/core/events_strategy.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"./utils/callbacks\";\r\nimport {\r\n each\r\n} from \"./utils/iterator\";\r\nimport {\r\n isFunction,\r\n isPlainObject\r\n} from \"./utils/type\";\r\nexport class EventsStrategy {\r\n constructor(owner) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n this._events = {};\r\n this._owner = owner;\r\n this._options = options\r\n }\r\n static create(owner, strategy) {\r\n if (strategy) {\r\n return isFunction(strategy) ? strategy(owner) : strategy\r\n } else {\r\n return new EventsStrategy(owner)\r\n }\r\n }\r\n hasEvent(eventName) {\r\n var callbacks = this._events[eventName];\r\n return callbacks ? callbacks.has() : false\r\n }\r\n fireEvent(eventName, eventArgs) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n callbacks.fireWith(this._owner, eventArgs)\r\n }\r\n return this._owner\r\n }\r\n on(eventName, eventHandler) {\r\n if (isPlainObject(eventName)) {\r\n each(eventName, (e, h) => {\r\n this.on(e, h)\r\n })\r\n } else {\r\n var callbacks = this._events[eventName];\r\n if (!callbacks) {\r\n callbacks = Callbacks({\r\n syncStrategy: this._options.syncStrategy\r\n });\r\n this._events[eventName] = callbacks\r\n }\r\n var addFn = callbacks.originalAdd || callbacks.add;\r\n addFn.call(callbacks, eventHandler)\r\n }\r\n }\r\n off(eventName, eventHandler) {\r\n var callbacks = this._events[eventName];\r\n if (callbacks) {\r\n if (isFunction(eventHandler)) {\r\n callbacks.remove(eventHandler)\r\n } else {\r\n callbacks.empty()\r\n }\r\n }\r\n }\r\n dispose() {\r\n each(this._events, (eventName, event) => {\r\n event.empty()\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/guid.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"./class\";\r\nvar Guid = Class.inherit({\r\n ctor: function(value) {\r\n if (value) {\r\n value = String(value)\r\n }\r\n this._value = this._normalize(value || this._generate())\r\n },\r\n _normalize: function(value) {\r\n value = value.replace(/[^a-f0-9]/gi, \"\").toLowerCase();\r\n while (value.length < 32) {\r\n value += \"0\"\r\n }\r\n return [value.substr(0, 8), value.substr(8, 4), value.substr(12, 4), value.substr(16, 4), value.substr(20, 12)].join(\"-\")\r\n },\r\n _generate: function() {\r\n var value = \"\";\r\n for (var i = 0; i < 32; i++) {\r\n value += Math.round(15 * Math.random()).toString(16)\r\n }\r\n return value\r\n },\r\n toString: function() {\r\n return this._value\r\n },\r\n valueOf: function() {\r\n return this._value\r\n },\r\n toJSON: function() {\r\n return this._value\r\n }\r\n});\r\nexport default Guid;\r\n","/**\r\n * DevExtreme (esm/core/memorized_callbacks.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport Callbacks from \"./utils/callbacks\";\r\nexport default class MemorizedCallbacks {\r\n constructor() {\r\n this.memory = [];\r\n this.callbacks = Callbacks()\r\n }\r\n add(fn) {\r\n each(this.memory, (_, item) => fn.apply(fn, item));\r\n this.callbacks.add(fn)\r\n }\r\n remove(fn) {\r\n this.callbacks.remove(fn)\r\n }\r\n fire() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n this.memory.push(args);\r\n this.callbacks.fire.apply(this.callbacks, args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/options/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../devices\";\r\nimport {\r\n isEmptyObject,\r\n isFunction\r\n} from \"../utils/type\";\r\nimport {\r\n findBestMatches\r\n} from \"../utils/common\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport {\r\n compileGetter\r\n} from \"../utils/data\";\r\nvar cachedGetters = {};\r\nexport var convertRulesToOptions = rules => {\r\n var currentDevice = devices.current();\r\n return rules.reduce((options, _ref) => {\r\n var {\r\n device: device,\r\n options: ruleOptions\r\n } = _ref;\r\n var deviceFilter = device || {};\r\n var match = isFunction(deviceFilter) ? deviceFilter(currentDevice) : deviceMatch(currentDevice, deviceFilter);\r\n if (match) {\r\n extend(true, options, ruleOptions)\r\n }\r\n return options\r\n }, {})\r\n};\r\nexport var normalizeOptions = (options, value) => \"string\" !== typeof options ? options : {\r\n [options]: value\r\n};\r\nexport var deviceMatch = (device, filter) => isEmptyObject(filter) || findBestMatches(device, [filter]).length > 0;\r\nexport var getFieldName = fullName => fullName.substr(fullName.lastIndexOf(\".\") + 1);\r\nexport var getParentName = fullName => fullName.substr(0, fullName.lastIndexOf(\".\"));\r\nexport var getNestedOptionValue = function(optionsObject, name) {\r\n cachedGetters[name] = cachedGetters[name] || compileGetter(name);\r\n return cachedGetters[name](optionsObject, {\r\n functionsAsIs: true\r\n })\r\n};\r\nexport var createDefaultOptionRules = function() {\r\n var options = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/core/renderer_base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n cleanDataRecursive,\r\n removeData,\r\n data as elementData\r\n} from \"./element_data\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nimport {\r\n isObject,\r\n isWindow,\r\n isPlainObject,\r\n isString,\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n type\r\n} from \"./utils/type\";\r\nimport {\r\n styleProp,\r\n normalizeStyleProp\r\n} from \"./utils/style\";\r\nimport {\r\n getOffset,\r\n getWindowByElement\r\n} from \"./utils/size\";\r\nimport {\r\n parseHTML,\r\n isTablePart\r\n} from \"./utils/html_parser\";\r\nvar window = getWindow();\r\nvar renderer;\r\nvar initRender = function(selector, context) {\r\n if (!selector) {\r\n this.length = 0;\r\n return this\r\n }\r\n if (\"string\" === typeof selector) {\r\n if (\"body\" === selector) {\r\n this[0] = context ? context.body : domAdapter.getBody();\r\n this.length = 1;\r\n return this\r\n }\r\n context = context || domAdapter.getDocument();\r\n if (\"<\" === selector[0]) {\r\n this[0] = domAdapter.createElement(selector.slice(1, -1), context);\r\n this.length = 1;\r\n return this\r\n } [].push.apply(this, domAdapter.querySelectorAll(context, selector));\r\n return this\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n this[0] = selector;\r\n this.length = 1;\r\n return this\r\n } else if (Array.isArray(selector)) {\r\n [].push.apply(this, selector);\r\n return this\r\n }\r\n return renderer(selector.toArray ? selector.toArray() : [selector])\r\n};\r\nrenderer = function(selector, context) {\r\n return new initRender(selector, context)\r\n};\r\nrenderer.fn = {\r\n dxRenderer: true\r\n};\r\ninitRender.prototype = renderer.fn;\r\nvar repeatMethod = function(methodName, args) {\r\n for (var i = 0; i < this.length; i++) {\r\n var item = renderer(this[i]);\r\n item[methodName].apply(item, args)\r\n }\r\n return this\r\n};\r\nvar setAttributeValue = function(element, attrName, value) {\r\n if (void 0 !== value && null !== value && false !== value) {\r\n domAdapter.setAttribute(element, attrName, value)\r\n } else {\r\n domAdapter.removeAttribute(element, attrName)\r\n }\r\n};\r\ninitRender.prototype.show = function() {\r\n return this.toggle(true)\r\n};\r\ninitRender.prototype.hide = function() {\r\n return this.toggle(false)\r\n};\r\ninitRender.prototype.toggle = function(value) {\r\n if (this[0]) {\r\n this.toggleClass(\"dx-state-invisible\", !value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.attr = function(attrName, value) {\r\n if (this.length > 1 && arguments.length > 1) {\r\n return repeatMethod.call(this, \"attr\", arguments)\r\n }\r\n if (!this[0]) {\r\n if (isObject(attrName) || void 0 !== value) {\r\n return this\r\n } else {\r\n return\r\n }\r\n }\r\n if (!this[0].getAttribute) {\r\n return this.prop(attrName, value)\r\n }\r\n if (\"string\" === typeof attrName && 1 === arguments.length) {\r\n var result = this[0].getAttribute(attrName);\r\n return null == result ? void 0 : result\r\n } else if (isPlainObject(attrName)) {\r\n for (var key in attrName) {\r\n this.attr(key, attrName[key])\r\n }\r\n } else {\r\n setAttributeValue(this[0], attrName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.removeAttr = function(attrName) {\r\n this[0] && domAdapter.removeAttribute(this[0], attrName);\r\n return this\r\n};\r\ninitRender.prototype.prop = function(propName, value) {\r\n if (!this[0]) {\r\n return this\r\n }\r\n if (\"string\" === typeof propName && 1 === arguments.length) {\r\n return this[0][propName]\r\n } else if (isPlainObject(propName)) {\r\n for (var key in propName) {\r\n this.prop(key, propName[key])\r\n }\r\n } else {\r\n domAdapter.setProperty(this[0], propName, value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.addClass = function(className) {\r\n return this.toggleClass(className, true)\r\n};\r\ninitRender.prototype.removeClass = function(className) {\r\n return this.toggleClass(className, false)\r\n};\r\ninitRender.prototype.hasClass = function(className) {\r\n if (!this[0] || void 0 === this[0].className) {\r\n return false\r\n }\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n if (this[0].classList) {\r\n if (this[0].classList.contains(classNames[i])) {\r\n return true\r\n }\r\n } else {\r\n var _className = isString(this[0].className) ? this[0].className : domAdapter.getAttribute(this[0], \"class\");\r\n if ((_className || \"\").split(\" \").indexOf(classNames[i]) >= 0) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n};\r\ninitRender.prototype.toggleClass = function(className, value) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"toggleClass\", arguments)\r\n }\r\n if (!this[0] || !className) {\r\n return this\r\n }\r\n value = void 0 === value ? !this.hasClass(className) : value;\r\n var classNames = className.split(\" \");\r\n for (var i = 0; i < classNames.length; i++) {\r\n domAdapter.setClass(this[0], classNames[i], value)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.html = function(value) {\r\n if (!arguments.length) {\r\n return this[0].innerHTML\r\n }\r\n this.empty();\r\n if (\"string\" === typeof value && !isTablePart(value) || \"number\" === typeof value) {\r\n this[0].innerHTML = value;\r\n return this\r\n }\r\n return this.append(parseHTML(value))\r\n};\r\nvar appendElements = function(element, nextSibling) {\r\n if (!this[0] || !element) {\r\n return\r\n }\r\n if (\"string\" === typeof element) {\r\n element = parseHTML(element)\r\n } else if (element.nodeType) {\r\n element = [element]\r\n } else if (isNumeric(element)) {\r\n element = [domAdapter.createTextNode(element)]\r\n }\r\n for (var i = 0; i < element.length; i++) {\r\n var item = element[i];\r\n var container = this[0];\r\n var wrapTR = \"TABLE\" === container.tagName && \"TR\" === item.tagName;\r\n if (wrapTR && container.tBodies && container.tBodies.length) {\r\n container = container.tBodies[0]\r\n }\r\n domAdapter.insertElement(container, item.nodeType ? item : item[0], nextSibling)\r\n }\r\n};\r\nvar setCss = function(name, value) {\r\n if (!this[0] || !this[0].style) {\r\n return\r\n }\r\n if (null === value || \"number\" === typeof value && isNaN(value)) {\r\n return\r\n }\r\n name = styleProp(name);\r\n for (var i = 0; i < this.length; i++) {\r\n this[i].style[name] = normalizeStyleProp(name, value)\r\n }\r\n};\r\ninitRender.prototype.css = function(name, value) {\r\n if (isString(name)) {\r\n if (2 === arguments.length) {\r\n setCss.call(this, name, value)\r\n } else {\r\n if (!this[0]) {\r\n return\r\n }\r\n name = styleProp(name);\r\n var result = window.getComputedStyle(this[0])[name] || this[0].style[name];\r\n return isNumeric(result) ? result.toString() : result\r\n }\r\n } else if (isPlainObject(name)) {\r\n for (var key in name) {\r\n setCss.call(this, key, name[key])\r\n }\r\n }\r\n return this\r\n};\r\ninitRender.prototype.prepend = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.prepend(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element, this[0].firstChild]);\r\n return this\r\n};\r\ninitRender.prototype.append = function(element) {\r\n if (arguments.length > 1) {\r\n for (var i = 0; i < arguments.length; i++) {\r\n this.append(arguments[i])\r\n }\r\n return this\r\n }\r\n appendElements.apply(this, [element]);\r\n return this\r\n};\r\ninitRender.prototype.prependTo = function(element) {\r\n if (this.length > 1) {\r\n for (var i = this.length - 1; i >= 0; i--) {\r\n renderer(this[i]).prependTo(element)\r\n }\r\n return this\r\n }\r\n element = renderer(element);\r\n if (element[0]) {\r\n domAdapter.insertElement(element[0], this[0], element[0].firstChild)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.appendTo = function(element) {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"appendTo\", arguments)\r\n }\r\n domAdapter.insertElement(renderer(element)[0], this[0]);\r\n return this\r\n};\r\ninitRender.prototype.insertBefore = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.insertAfter = function(element) {\r\n if (element && element[0]) {\r\n domAdapter.insertElement(element[0].parentNode, this[0], element[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.before = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0])\r\n }\r\n return this\r\n};\r\ninitRender.prototype.after = function(element) {\r\n if (this[0]) {\r\n domAdapter.insertElement(this[0].parentNode, element[0], this[0].nextSibling)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrap = function(wrapper) {\r\n if (this[0]) {\r\n var wrap = renderer(wrapper);\r\n wrap.insertBefore(this);\r\n wrap.append(this)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.wrapInner = function(wrapper) {\r\n var contents = this.contents();\r\n if (contents.length) {\r\n contents.wrap(wrapper)\r\n } else {\r\n this.append(wrapper)\r\n }\r\n return this\r\n};\r\ninitRender.prototype.replaceWith = function(element) {\r\n if (!(element && element[0])) {\r\n return\r\n }\r\n if (element.is(this)) {\r\n return this\r\n }\r\n element.insertBefore(this);\r\n this.remove();\r\n return element\r\n};\r\ninitRender.prototype.remove = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"remove\", arguments)\r\n }\r\n cleanDataRecursive(this[0], true);\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.detach = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"detach\", arguments)\r\n }\r\n domAdapter.removeElement(this[0]);\r\n return this\r\n};\r\ninitRender.prototype.empty = function() {\r\n if (this.length > 1) {\r\n return repeatMethod.call(this, \"empty\", arguments)\r\n }\r\n cleanDataRecursive(this[0]);\r\n domAdapter.setText(this[0], \"\");\r\n return this\r\n};\r\ninitRender.prototype.clone = function() {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n result.push(this[i].cloneNode(true))\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.text = function(value) {\r\n if (!arguments.length) {\r\n var result = \"\";\r\n for (var i = 0; i < this.length; i++) {\r\n result += this[i] && this[i].textContent || \"\"\r\n }\r\n return result\r\n }\r\n var text = isFunction(value) ? value() : value;\r\n cleanDataRecursive(this[0], false);\r\n domAdapter.setText(this[0], isDefined(text) ? text : \"\");\r\n return this\r\n};\r\ninitRender.prototype.val = function(value) {\r\n if (1 === arguments.length) {\r\n return this.prop(\"value\", isDefined(value) ? value : \"\")\r\n }\r\n return this.prop(\"value\")\r\n};\r\ninitRender.prototype.contents = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = [];\r\n result.push.apply(result, this[0].childNodes);\r\n return renderer(result)\r\n};\r\ninitRender.prototype.find = function(selector) {\r\n var result = renderer();\r\n if (!selector) {\r\n return result\r\n }\r\n var nodes = [];\r\n var i;\r\n if (\"string\" === typeof selector) {\r\n selector = selector.trim();\r\n for (i = 0; i < this.length; i++) {\r\n var element = this[i];\r\n if (domAdapter.isElementNode(element)) {\r\n var elementId = element.getAttribute(\"id\");\r\n var queryId = elementId || \"dx-query-children\";\r\n if (!elementId) {\r\n setAttributeValue(element, \"id\", queryId)\r\n }\r\n queryId = \"[id='\" + queryId + \"'] \";\r\n var querySelector = queryId + selector.replace(/([^\\\\])(,)/g, \"$1, \" + queryId);\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, querySelector));\r\n setAttributeValue(element, \"id\", elementId)\r\n } else if (domAdapter.isDocument(element) || domAdapter.isDocumentFragment(element)) {\r\n nodes.push.apply(nodes, domAdapter.querySelectorAll(element, selector))\r\n }\r\n }\r\n } else {\r\n for (i = 0; i < this.length; i++) {\r\n selector = domAdapter.isNode(selector) ? selector : selector[0];\r\n if (this[i] !== selector && this[i].contains(selector)) {\r\n nodes.push(selector)\r\n }\r\n }\r\n }\r\n return result.add(nodes)\r\n};\r\nvar isVisible = function(_, element) {\r\n var _element$host;\r\n element = null !== (_element$host = element.host) && void 0 !== _element$host ? _element$host : element;\r\n if (!element.nodeType) {\r\n return true\r\n }\r\n return !!(element.offsetWidth || element.offsetHeight || element.getClientRects().length)\r\n};\r\ninitRender.prototype.filter = function(selector) {\r\n if (!selector) {\r\n return renderer()\r\n }\r\n if (\":visible\" === selector) {\r\n return this.filter(isVisible)\r\n } else if (\":hidden\" === selector) {\r\n return this.filter((function(_, element) {\r\n return !isVisible(_, element)\r\n }))\r\n }\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var item = this[i];\r\n if (domAdapter.isElementNode(item) && \"string\" === type(selector)) {\r\n domAdapter.elementMatches(item, selector) && result.push(item)\r\n } else if (domAdapter.isNode(selector) || isWindow(selector)) {\r\n selector === item && result.push(item)\r\n } else if (isFunction(selector)) {\r\n selector.call(item, i, item) && result.push(item)\r\n } else {\r\n for (var j = 0; j < selector.length; j++) {\r\n selector[j] === item && result.push(item)\r\n }\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.not = function(selector) {\r\n var result = [];\r\n var nodes = this.filter(selector).toArray();\r\n for (var i = 0; i < this.length; i++) {\r\n if (-1 === nodes.indexOf(this[i])) {\r\n result.push(this[i])\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.is = function(selector) {\r\n return !!this.filter(selector).length\r\n};\r\ninitRender.prototype.children = function(selector) {\r\n var result = [];\r\n for (var i = 0; i < this.length; i++) {\r\n var nodes = this[i] ? this[i].childNodes : [];\r\n for (var j = 0; j < nodes.length; j++) {\r\n if (domAdapter.isElementNode(nodes[j])) {\r\n result.push(nodes[j])\r\n }\r\n }\r\n }\r\n result = renderer(result);\r\n return selector ? result.filter(selector) : result\r\n};\r\ninitRender.prototype.siblings = function() {\r\n var element = this[0];\r\n if (!element || !element.parentNode) {\r\n return renderer()\r\n }\r\n var result = [];\r\n var parentChildNodes = element.parentNode.childNodes || [];\r\n for (var i = 0; i < parentChildNodes.length; i++) {\r\n var node = parentChildNodes[i];\r\n if (domAdapter.isElementNode(node) && node !== element) {\r\n result.push(node)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.each = function(callback) {\r\n for (var i = 0; i < this.length; i++) {\r\n if (false === callback.call(this[i], i, this[i])) {\r\n break\r\n }\r\n }\r\n};\r\ninitRender.prototype.index = function(element) {\r\n if (!element) {\r\n return this.parent().children().index(this)\r\n }\r\n element = renderer(element);\r\n return this.toArray().indexOf(element[0])\r\n};\r\ninitRender.prototype.get = function(index) {\r\n return this[index < 0 ? this.length + index : index]\r\n};\r\ninitRender.prototype.eq = function(index) {\r\n index = index < 0 ? this.length + index : index;\r\n return renderer(this[index])\r\n};\r\ninitRender.prototype.first = function() {\r\n return this.eq(0)\r\n};\r\ninitRender.prototype.last = function() {\r\n return this.eq(-1)\r\n};\r\ninitRender.prototype.parent = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var result = renderer(this[0].parentNode);\r\n return !selector || result.is(selector) ? result : renderer()\r\n};\r\ninitRender.prototype.parents = function(selector) {\r\n var result = [];\r\n var parent = this.parent();\r\n while (parent && parent[0] && !domAdapter.isDocument(parent[0])) {\r\n if (domAdapter.isElementNode(parent[0])) {\r\n if (!selector || parent.is(selector)) {\r\n result.push(parent.get(0))\r\n }\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer(result)\r\n};\r\ninitRender.prototype.closest = function(selector) {\r\n if (this.is(selector)) {\r\n return this\r\n }\r\n var parent = this.parent();\r\n while (parent && parent.length) {\r\n if (parent.is(selector)) {\r\n return parent\r\n }\r\n parent = parent.parent()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.next = function(selector) {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var next = renderer(this[0].nextSibling);\r\n if (!arguments.length) {\r\n return next\r\n }\r\n while (next && next.length) {\r\n if (next.is(selector)) {\r\n return next\r\n }\r\n next = next.next()\r\n }\r\n return renderer()\r\n};\r\ninitRender.prototype.prev = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n return renderer(this[0].previousSibling)\r\n};\r\ninitRender.prototype.add = function(selector) {\r\n var targets = renderer(selector);\r\n var result = this.toArray();\r\n for (var i = 0; i < targets.length; i++) {\r\n var target = targets[i];\r\n if (-1 === result.indexOf(target)) {\r\n result.push(target)\r\n }\r\n }\r\n return renderer(result)\r\n};\r\nvar emptyArray = [];\r\ninitRender.prototype.splice = function() {\r\n return renderer(emptyArray.splice.apply(this, arguments))\r\n};\r\ninitRender.prototype.slice = function() {\r\n return renderer(emptyArray.slice.apply(this, arguments))\r\n};\r\ninitRender.prototype.toArray = function() {\r\n return emptyArray.slice.call(this)\r\n};\r\ninitRender.prototype.offset = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n return getOffset(this[0])\r\n};\r\ninitRender.prototype.offsetParent = function() {\r\n if (!this[0]) {\r\n return renderer()\r\n }\r\n var offsetParent = renderer(this[0].offsetParent);\r\n while (offsetParent[0] && \"static\" === offsetParent.css(\"position\")) {\r\n offsetParent = renderer(offsetParent[0].offsetParent)\r\n }\r\n offsetParent = offsetParent[0] ? offsetParent : renderer(domAdapter.getDocumentElement());\r\n return offsetParent\r\n};\r\ninitRender.prototype.position = function() {\r\n if (!this[0]) {\r\n return\r\n }\r\n var offset;\r\n var marginTop = parseFloat(this.css(\"marginTop\"));\r\n var marginLeft = parseFloat(this.css(\"marginLeft\"));\r\n if (\"fixed\" === this.css(\"position\")) {\r\n offset = this[0].getBoundingClientRect();\r\n return {\r\n top: offset.top - marginTop,\r\n left: offset.left - marginLeft\r\n }\r\n }\r\n offset = this.offset();\r\n var offsetParent = this.offsetParent();\r\n var parentOffset = {\r\n top: 0,\r\n left: 0\r\n };\r\n if (\"HTML\" !== offsetParent[0].nodeName) {\r\n parentOffset = offsetParent.offset()\r\n }\r\n parentOffset = {\r\n top: parentOffset.top + parseFloat(offsetParent.css(\"borderTopWidth\")),\r\n left: parentOffset.left + parseFloat(offsetParent.css(\"borderLeftWidth\"))\r\n };\r\n return {\r\n top: offset.top - parentOffset.top - marginTop,\r\n left: offset.left - parentOffset.left - marginLeft\r\n }\r\n};\r\n[{\r\n name: \"scrollLeft\",\r\n offsetProp: \"pageXOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(value, win.pageYOffset)\r\n }\r\n}, {\r\n name: \"scrollTop\",\r\n offsetProp: \"pageYOffset\",\r\n scrollWindow: function(win, value) {\r\n win.scrollTo(win.pageXOffset, value)\r\n }\r\n}].forEach((function(directionStrategy) {\r\n var propName = directionStrategy.name;\r\n initRender.prototype[propName] = function(value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n var window = getWindowByElement(this[0]);\r\n if (void 0 === value) {\r\n return window ? window[directionStrategy.offsetProp] : this[0][propName]\r\n }\r\n if (window) {\r\n directionStrategy.scrollWindow(window, value)\r\n } else {\r\n this[0][propName] = value\r\n }\r\n return this\r\n }\r\n}));\r\ninitRender.prototype.data = function(key, value) {\r\n if (!this[0]) {\r\n return\r\n }\r\n if (arguments.length < 2) {\r\n return elementData.call(renderer, this[0], key)\r\n }\r\n elementData.call(renderer, this[0], key, value);\r\n return this\r\n};\r\ninitRender.prototype.removeData = function(key) {\r\n this[0] && removeData(this[0], key);\r\n return this\r\n};\r\nvar rendererWrapper = function() {\r\n return renderer.apply(this, arguments)\r\n};\r\nObject.defineProperty(rendererWrapper, \"fn\", {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return renderer.fn\r\n },\r\n set: function(value) {\r\n renderer.fn = value\r\n }\r\n});\r\nexport default {\r\n set: function(strategy) {\r\n renderer = strategy\r\n },\r\n get: function() {\r\n return rendererWrapper\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/renderer.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport rendererBase from \"./renderer_base\";\r\nexport default rendererBase.get();\r\n","/**\r\n * DevExtreme (esm/core/resize_observer.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"./utils/common\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nvar ResizeObserverMock = {\r\n observe: noop,\r\n unobserve: noop,\r\n disconnect: noop\r\n};\r\nclass ResizeObserverSingleton {\r\n constructor() {\r\n if (!hasWindow() || !window.ResizeObserver) {\r\n return ResizeObserverMock\r\n }\r\n this._callbacksMap = new Map;\r\n this._observer = new window.ResizeObserver(entries => {\r\n entries.forEach(entry => {\r\n var _this$_callbacksMap$g;\r\n null === (_this$_callbacksMap$g = this._callbacksMap.get(entry.target)) || void 0 === _this$_callbacksMap$g ? void 0 : _this$_callbacksMap$g(entry)\r\n })\r\n })\r\n }\r\n observe(element, callback) {\r\n this._callbacksMap.set(element, callback);\r\n this._observer.observe(element)\r\n }\r\n unobserve(element) {\r\n this._callbacksMap.delete(element);\r\n this._observer.unobserve(element)\r\n }\r\n disconnect() {\r\n this._callbacksMap.clear();\r\n this._observer.disconnect()\r\n }\r\n}\r\nvar resizeObserverSingleton = new ResizeObserverSingleton;\r\nexport default resizeObserverSingleton;\r\n","/**\r\n * DevExtreme (esm/core/templates/bindable_template.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport {\r\n isPrimitive\r\n} from \"../utils/type\";\r\nvar watchChanges = function(rawData, watchMethod, fields, fieldsMap, callback) {\r\n var fieldsDispose;\r\n var globalDispose = ((data, watchMethod, callback) => watchMethod(() => data, callback))(rawData, watchMethod, (function(dataWithRawFields) {\r\n fieldsDispose && fieldsDispose();\r\n if (isPrimitive(dataWithRawFields)) {\r\n callback(dataWithRawFields);\r\n return\r\n }\r\n fieldsDispose = function(data, watchMethod, fields, fieldsMap, callback) {\r\n var resolvedData = {};\r\n var missedFields = fields.slice();\r\n var watchHandlers = fields.map((function(name) {\r\n var fieldGetter = fieldsMap[name];\r\n return watchMethod(fieldGetter ? () => fieldGetter(data) : () => data[name], (function(value) {\r\n resolvedData[name] = value;\r\n if (missedFields.length) {\r\n var index = missedFields.indexOf(name);\r\n if (index >= 0) {\r\n missedFields.splice(index, 1)\r\n }\r\n }\r\n if (!missedFields.length) {\r\n callback(resolvedData)\r\n }\r\n }))\r\n }));\r\n return function() {\r\n watchHandlers.forEach(dispose => dispose())\r\n }\r\n }(dataWithRawFields, watchMethod, fields, fieldsMap, callback)\r\n }));\r\n return function() {\r\n fieldsDispose && fieldsDispose();\r\n globalDispose && globalDispose()\r\n }\r\n};\r\nexport class BindableTemplate extends TemplateBase {\r\n constructor(render, fields, watchMethod, fieldsMap) {\r\n super();\r\n this._render = render;\r\n this._fields = fields;\r\n this._fieldsMap = fieldsMap || {};\r\n this._watchMethod = watchMethod\r\n }\r\n _renderCore(options) {\r\n var $container = $(options.container);\r\n var dispose = watchChanges(options.model, this._watchMethod, this._fields, this._fieldsMap, data => {\r\n $container.empty();\r\n this._render($container, data, options.model)\r\n });\r\n eventsEngine.on($container, removeEvent, dispose);\r\n return $container.contents()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/child_default_template.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class ChildDefaultTemplate extends TemplateBase {\r\n constructor(name) {\r\n super();\r\n this.name = name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/empty_template.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nexport class EmptyTemplate extends TemplateBase {\r\n _renderCore() {\r\n return $()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/function_template.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nexport class FunctionTemplate extends TemplateBase {\r\n constructor(render) {\r\n super();\r\n this._render = render\r\n }\r\n _renderCore(options) {\r\n return normalizeTemplateElement(this._render(options))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template_base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nimport {\r\n contains\r\n} from \"../utils/dom\";\r\nimport {\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport errors from \"../errors\";\r\nexport var renderedCallbacks = Callbacks({\r\n syncStrategy: true\r\n});\r\nexport class TemplateBase {\r\n render(options) {\r\n options = options || {};\r\n var onRendered = options.onRendered;\r\n delete options.onRendered;\r\n var $result;\r\n if (options.renovated && options.transclude && this._element) {\r\n $result = $(\"<div>\").append(this._element).contents()\r\n } else {\r\n $result = this._renderCore(options)\r\n }\r\n this._ensureResultInContainer($result, options.container);\r\n renderedCallbacks.fire($result, options.container);\r\n onRendered && onRendered();\r\n return $result\r\n }\r\n _ensureResultInContainer($result, container) {\r\n if (!container) {\r\n return\r\n }\r\n var $container = $(container);\r\n var resultInContainer = contains($container.get(0), $result.get(0));\r\n $container.append($result);\r\n if (resultInContainer) {\r\n return\r\n }\r\n var resultInBody = domAdapter.getBody().contains($container.get(0));\r\n if (!resultInBody) {\r\n return\r\n }\r\n triggerShownEvent($result)\r\n }\r\n _renderCore() {\r\n throw errors.Error(\"E0001\")\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/http_request.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"./utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"./utils/dependency_injector\";\r\nvar nativeXMLHttpRequest = {\r\n getXhr: function() {\r\n return new window.XMLHttpRequest\r\n }\r\n};\r\nexport default injector(nativeXMLHttpRequest);\r\n","/**\r\n * DevExtreme (esm/core/utils/ajax.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred\r\n} from \"./deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport httpRequest from \"../../core/http_request\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extendFromObject\r\n} from \"./extend\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport injector from \"./dependency_injector\";\r\nvar SUCCESS = \"success\";\r\nvar ERROR = \"error\";\r\nvar TIMEOUT = \"timeout\";\r\nvar NO_CONTENT = \"nocontent\";\r\nvar PARSER_ERROR = \"parsererror\";\r\nvar isStatusSuccess = function(status) {\r\n return 200 <= status && status < 300\r\n};\r\nvar hasContent = function(status) {\r\n return 204 !== status\r\n};\r\nvar paramsConvert = function(params) {\r\n var result = [];\r\n for (var name in params) {\r\n var value = params[name];\r\n if (void 0 === value) {\r\n continue\r\n }\r\n if (null === value) {\r\n value = \"\"\r\n }\r\n if (\"function\" === typeof value) {\r\n value = value()\r\n }\r\n result.push(encodeURIComponent(name) + \"=\" + encodeURIComponent(value))\r\n }\r\n return result.join(\"&\")\r\n};\r\nvar createScript = function(options) {\r\n var script = domAdapter.createElement(\"script\");\r\n for (var name in options) {\r\n script[name] = options[name]\r\n }\r\n return script\r\n};\r\nvar removeScript = function(scriptNode) {\r\n scriptNode.parentNode.removeChild(scriptNode)\r\n};\r\nvar appendToHead = function(element) {\r\n return domAdapter.getHead().appendChild(element)\r\n};\r\nvar evalScript = function(code) {\r\n var script = createScript({\r\n text: code\r\n });\r\n appendToHead(script);\r\n removeScript(script)\r\n};\r\nvar evalCrossDomainScript = function(url) {\r\n var script = createScript({\r\n src: url\r\n });\r\n return new Promise((function(resolve, reject) {\r\n var events = {\r\n load: resolve,\r\n error: reject\r\n };\r\n var loadHandler = function(e) {\r\n events[e.type]();\r\n removeScript(script)\r\n };\r\n for (var event in events) {\r\n domAdapter.listen(script, event, loadHandler)\r\n }\r\n appendToHead(script)\r\n }))\r\n};\r\nvar getAcceptHeader = function(options) {\r\n var dataType = options.dataType || \"*\";\r\n var scriptAccept = \"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript\";\r\n var accepts = {\r\n \"*\": \"*/*\",\r\n text: \"text/plain\",\r\n html: \"text/html\",\r\n xml: \"application/xml, text/xml\",\r\n json: \"application/json, text/javascript\",\r\n jsonp: scriptAccept,\r\n script: scriptAccept\r\n };\r\n extendFromObject(accepts, options.accepts, true);\r\n return accepts[dataType] ? accepts[dataType] + (\"*\" !== dataType ? \", */*; q=0.01\" : \"\") : accepts[\"*\"]\r\n};\r\nvar getContentTypeHeader = function(options) {\r\n var defaultContentType;\r\n if (options.data && !options.upload && \"GET\" !== getMethod(options)) {\r\n defaultContentType = \"application/x-www-form-urlencoded;charset=utf-8\"\r\n }\r\n return options.contentType || defaultContentType\r\n};\r\nvar getDataFromResponse = function(xhr) {\r\n return xhr.responseType && \"text\" !== xhr.responseType || \"string\" !== typeof xhr.responseText ? xhr.response : xhr.responseText\r\n};\r\nvar postProcess = function(deferred, xhr, dataType) {\r\n var data = getDataFromResponse(xhr);\r\n switch (dataType) {\r\n case \"jsonp\":\r\n evalScript(data);\r\n break;\r\n case \"script\":\r\n evalScript(data);\r\n deferred.resolve(data, SUCCESS, xhr);\r\n break;\r\n case \"json\":\r\n try {\r\n deferred.resolve(JSON.parse(data), SUCCESS, xhr)\r\n } catch (e) {\r\n deferred.reject(xhr, PARSER_ERROR, e)\r\n }\r\n break;\r\n default:\r\n deferred.resolve(data, SUCCESS, xhr)\r\n }\r\n};\r\nvar isCrossDomain = function(url) {\r\n if (!hasWindow()) {\r\n return true\r\n }\r\n var crossDomain = false;\r\n var originAnchor = domAdapter.createElement(\"a\");\r\n var urlAnchor = domAdapter.createElement(\"a\");\r\n originAnchor.href = window.location.href;\r\n try {\r\n urlAnchor.href = url;\r\n urlAnchor.href = urlAnchor.href;\r\n crossDomain = originAnchor.protocol + \"//\" + originAnchor.host !== urlAnchor.protocol + \"//\" + urlAnchor.host\r\n } catch (e) {\r\n crossDomain = true\r\n }\r\n return crossDomain\r\n};\r\nvar setHttpTimeout = function(timeout, xhr) {\r\n return timeout && setTimeout((function() {\r\n xhr.customStatus = TIMEOUT;\r\n xhr.abort()\r\n }), timeout)\r\n};\r\nvar getJsonpOptions = function(options) {\r\n if (\"jsonp\" === options.dataType) {\r\n var random = Math.random().toString().replace(/\\D/g, \"\");\r\n var callbackName = options.jsonpCallback || \"dxCallback\" + Date.now() + \"_\" + random;\r\n var callbackParameter = options.jsonp || \"callback\";\r\n options.data = options.data || {};\r\n options.data[callbackParameter] = callbackName;\r\n return callbackName\r\n }\r\n};\r\nvar getRequestOptions = function(options, headers) {\r\n var params = options.data;\r\n var paramsAlreadyString = \"string\" === typeof params;\r\n var url = options.url || window.location.href;\r\n if (!paramsAlreadyString && !options.cache) {\r\n params = params || {};\r\n params._ = Date.now()\r\n }\r\n if (params && !options.upload) {\r\n if (!paramsAlreadyString) {\r\n params = paramsConvert(params)\r\n }\r\n if (\"GET\" === getMethod(options)) {\r\n if (\"\" !== params) {\r\n url += (url.indexOf(\"?\") > -1 ? \"&\" : \"?\") + params\r\n }\r\n params = null\r\n } else if (headers[\"Content-Type\"] && headers[\"Content-Type\"].indexOf(\"application/x-www-form-urlencoded\") > -1) {\r\n params = params.replace(/%20/g, \"+\")\r\n }\r\n }\r\n return {\r\n url: url,\r\n parameters: params\r\n }\r\n};\r\n\r\nfunction getMethod(options) {\r\n return (options.method || \"GET\").toUpperCase()\r\n}\r\nvar getRequestHeaders = function(options) {\r\n var headers = options.headers || {};\r\n headers[\"Content-Type\"] = headers[\"Content-Type\"] || getContentTypeHeader(options);\r\n headers.Accept = headers.Accept || getAcceptHeader(options);\r\n if (!options.crossDomain && !headers[\"X-Requested-With\"]) {\r\n headers[\"X-Requested-With\"] = \"XMLHttpRequest\"\r\n }\r\n return headers\r\n};\r\nvar sendRequest = function(options) {\r\n var xhr = httpRequest.getXhr();\r\n var d = new Deferred;\r\n var result = d.promise();\r\n var async = isDefined(options.async) ? options.async : true;\r\n var dataType = options.dataType;\r\n var timeout = options.timeout || 0;\r\n var timeoutId;\r\n options.crossDomain = isCrossDomain(options.url);\r\n var needScriptEvaluation = \"jsonp\" === dataType || \"script\" === dataType;\r\n if (void 0 === options.cache) {\r\n options.cache = !needScriptEvaluation\r\n }\r\n var callbackName = getJsonpOptions(options);\r\n var headers = getRequestHeaders(options);\r\n var requestOptions = getRequestOptions(options, headers);\r\n var url = requestOptions.url;\r\n var parameters = requestOptions.parameters;\r\n if (callbackName) {\r\n window[callbackName] = function(data) {\r\n d.resolve(data, SUCCESS, xhr)\r\n }\r\n }\r\n if (options.crossDomain && needScriptEvaluation) {\r\n evalCrossDomainScript(url).then((function() {\r\n if (\"jsonp\" === dataType) {\r\n return\r\n }\r\n d.resolve(null, SUCCESS, xhr)\r\n }), (function() {\r\n d.reject(xhr, ERROR)\r\n }));\r\n return result\r\n }\r\n if (options.crossDomain && !(\"withCredentials\" in xhr)) {\r\n d.reject(xhr, ERROR);\r\n return result\r\n }\r\n xhr.open(getMethod(options), url, async, options.username, options.password);\r\n if (async) {\r\n xhr.timeout = timeout;\r\n timeoutId = setHttpTimeout(timeout, xhr)\r\n }\r\n xhr.onreadystatechange = function(e) {\r\n if (4 === xhr.readyState) {\r\n clearTimeout(timeoutId);\r\n if (isStatusSuccess(xhr.status)) {\r\n if (hasContent(xhr.status)) {\r\n postProcess(d, xhr, dataType)\r\n } else {\r\n d.resolve(null, NO_CONTENT, xhr)\r\n }\r\n } else {\r\n d.reject(xhr, xhr.customStatus || ERROR)\r\n }\r\n }\r\n };\r\n if (options.upload) {\r\n xhr.upload.onprogress = options.upload.onprogress;\r\n xhr.upload.onloadstart = options.upload.onloadstart;\r\n xhr.upload.onabort = options.upload.onabort\r\n }\r\n if (options.xhrFields) {\r\n for (var field in options.xhrFields) {\r\n xhr[field] = options.xhrFields[field]\r\n }\r\n }\r\n if (\"arraybuffer\" === options.responseType) {\r\n xhr.responseType = options.responseType\r\n }\r\n for (var name in headers) {\r\n if (Object.prototype.hasOwnProperty.call(headers, name) && isDefined(headers[name])) {\r\n xhr.setRequestHeader(name, headers[name])\r\n }\r\n }\r\n if (options.beforeSend) {\r\n options.beforeSend(xhr)\r\n }\r\n xhr.send(parameters);\r\n result.abort = function() {\r\n xhr.abort()\r\n };\r\n return result\r\n};\r\nexport default injector({\r\n sendRequest: sendRequest\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/array.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n orderEach\r\n} from \"./object\";\r\nimport config from \"../config\";\r\n\r\nfunction createOccurrenceMap(array) {\r\n return array.reduce((map, value) => {\r\n var _map$value;\r\n map[value] = (null !== (_map$value = map[value]) && void 0 !== _map$value ? _map$value : 0) + 1;\r\n return map\r\n }, {})\r\n}\r\nexport var wrapToArray = function(item) {\r\n return Array.isArray(item) ? item : [item]\r\n};\r\nexport var getUniqueValues = function(values) {\r\n return [...new Set(values)]\r\n};\r\nexport var getIntersection = function(firstArray, secondArray) {\r\n var secondArrayMap = createOccurrenceMap(secondArray);\r\n return firstArray.filter(value => secondArrayMap[value]--)\r\n};\r\nexport var removeDuplicates = function() {\r\n var from = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : [];\r\n var toRemove = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : [];\r\n var toRemoveMap = createOccurrenceMap(toRemove);\r\n return from.filter(value => !toRemoveMap[value]--)\r\n};\r\nexport var normalizeIndexes = function(items, indexPropName, currentItem, needIndexCallback) {\r\n var indexedItems = {};\r\n var {\r\n useLegacyVisibleIndex: useLegacyVisibleIndex\r\n } = config();\r\n var currentIndex = 0;\r\n var shouldUpdateIndex = item => !isDefined(item[indexPropName]) && (!needIndexCallback || needIndexCallback(item));\r\n items.forEach(item => {\r\n var index = item[indexPropName];\r\n if (index >= 0) {\r\n indexedItems[index] = indexedItems[index] || [];\r\n if (item === currentItem) {\r\n indexedItems[index].unshift(item)\r\n } else {\r\n indexedItems[index].push(item)\r\n }\r\n } else {\r\n item[indexPropName] = void 0\r\n }\r\n });\r\n if (!useLegacyVisibleIndex) {\r\n items.forEach(item => {\r\n if (shouldUpdateIndex(item)) {\r\n while (indexedItems[currentIndex]) {\r\n currentIndex++\r\n }\r\n indexedItems[currentIndex] = [item];\r\n currentIndex++\r\n }\r\n })\r\n }\r\n currentIndex = 0;\r\n orderEach(indexedItems, (function(index, items) {\r\n items.forEach(item => {\r\n if (index >= 0) {\r\n item[indexPropName] = currentIndex++\r\n }\r\n })\r\n }));\r\n if (useLegacyVisibleIndex) {\r\n items.forEach(item => {\r\n if (shouldUpdateIndex(item)) {\r\n item[indexPropName] = currentIndex++\r\n }\r\n })\r\n }\r\n};\r\nexport var groupBy = (array, getGroupName) => array.reduce((groupedResult, item) => {\r\n var _groupedResult$groupN;\r\n var groupName = getGroupName(item);\r\n groupedResult[groupName] = null !== (_groupedResult$groupN = groupedResult[groupName]) && void 0 !== _groupedResult$groupN ? _groupedResult$groupN : [];\r\n groupedResult[groupName].push(item);\r\n return groupedResult\r\n}, {});\r\n","/**\r\n * DevExtreme (esm/core/utils/array_compare.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"./type\";\r\nvar getKeyWrapper = function(item, getKey) {\r\n var key = getKey(item);\r\n if (isObject(key)) {\r\n try {\r\n return JSON.stringify(key)\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nvar getSameNewByOld = function(oldItem, newItems, newIndexByKey, getKey) {\r\n var key = getKeyWrapper(oldItem, getKey);\r\n return newItems[newIndexByKey[key]]\r\n};\r\nexport var isKeysEqual = function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nexport var findChanges = function(oldItems, newItems, getKey, isItemEquals) {\r\n var oldIndexByKey = {};\r\n var newIndexByKey = {};\r\n var addedCount = 0;\r\n var removeCount = 0;\r\n var result = [];\r\n oldItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n oldIndexByKey[key] = index\r\n }));\r\n newItems.forEach((function(item, index) {\r\n var key = getKeyWrapper(item, getKey);\r\n newIndexByKey[key] = index\r\n }));\r\n var itemCount = Math.max(oldItems.length, newItems.length);\r\n for (var index = 0; index < itemCount + addedCount; index++) {\r\n var newItem = newItems[index];\r\n var oldNextIndex = index - addedCount + removeCount;\r\n var nextOldItem = oldItems[oldNextIndex];\r\n var isRemoved = !newItem || nextOldItem && !getSameNewByOld(nextOldItem, newItems, newIndexByKey, getKey);\r\n if (isRemoved) {\r\n if (nextOldItem) {\r\n result.push({\r\n type: \"remove\",\r\n key: getKey(nextOldItem),\r\n index: index,\r\n oldItem: nextOldItem\r\n });\r\n removeCount++;\r\n index--\r\n }\r\n } else {\r\n var key = getKeyWrapper(newItem, getKey);\r\n var oldIndex = oldIndexByKey[key];\r\n var oldItem = oldItems[oldIndex];\r\n if (!oldItem) {\r\n addedCount++;\r\n result.push({\r\n type: \"insert\",\r\n data: newItem,\r\n index: index\r\n })\r\n } else if (oldIndex === oldNextIndex) {\r\n if (!isItemEquals(oldItem, newItem)) {\r\n result.push({\r\n type: \"update\",\r\n data: newItem,\r\n key: getKey(newItem),\r\n index: index,\r\n oldItem: oldItem\r\n })\r\n }\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/browser.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n getNavigator\r\n} from \"./window\";\r\nvar navigator = getNavigator();\r\nvar webkitRegExp = /(webkit)[ /]([\\w.]+)/;\r\nvar mozillaRegExp = /(mozilla)(?:.*? rv:([\\w.]+))/;\r\nvar browserFromUA = ua => {\r\n ua = ua.toLowerCase();\r\n var result = {};\r\n var matches = webkitRegExp.exec(ua) || ua.indexOf(\"compatible\") < 0 && mozillaRegExp.exec(ua) || [];\r\n var browserName = matches[1];\r\n var browserVersion = matches[2];\r\n if (\"webkit\" === browserName) {\r\n result.webkit = true;\r\n if (ua.indexOf(\"chrome\") >= 0 || ua.indexOf(\"crios\") >= 0) {\r\n browserName = \"chrome\";\r\n browserVersion = /(?:chrome|crios)\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"fxios\") >= 0) {\r\n browserName = \"mozilla\";\r\n browserVersion = /fxios\\/(\\d+\\.\\d+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else if (ua.indexOf(\"safari\") >= 0 && /version|phantomjs/.test(ua)) {\r\n browserName = \"safari\";\r\n browserVersion = /(?:version|phantomjs)\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n } else {\r\n browserName = \"unknown\";\r\n browserVersion = /applewebkit\\/([0-9.]+)/.exec(ua);\r\n browserVersion = browserVersion && browserVersion[1]\r\n }\r\n }\r\n if (browserName) {\r\n result[browserName] = true;\r\n result.version = browserVersion\r\n }\r\n return result\r\n};\r\nexport default extend({\r\n _fromUA: browserFromUA\r\n}, browserFromUA(navigator.userAgent));\r\n","/**\r\n * DevExtreme (esm/core/utils/call_once.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar callOnce = function(handler) {\r\n var result;\r\n var _wrappedHandler = function() {\r\n result = handler.apply(this, arguments);\r\n _wrappedHandler = function() {\r\n return result\r\n };\r\n return result\r\n };\r\n return function() {\r\n return _wrappedHandler.apply(this, arguments)\r\n }\r\n};\r\nexport default callOnce;\r\n","/**\r\n * DevExtreme (esm/core/utils/callbacks.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar Callback = function(options) {\r\n this._options = options || {};\r\n this._list = [];\r\n this._queue = [];\r\n this._firing = false;\r\n this._fired = false;\r\n this._firingIndexes = []\r\n};\r\nCallback.prototype._fireCore = function(context, args) {\r\n var firingIndexes = this._firingIndexes;\r\n var list = this._list;\r\n var stopOnFalse = this._options.stopOnFalse;\r\n var step = firingIndexes.length;\r\n for (firingIndexes[step] = 0; firingIndexes[step] < list.length; firingIndexes[step]++) {\r\n var result = list[firingIndexes[step]].apply(context, args);\r\n if (false === result && stopOnFalse) {\r\n break\r\n }\r\n }\r\n firingIndexes.pop()\r\n};\r\nCallback.prototype.add = function(fn) {\r\n if (\"function\" === typeof fn && (!this._options.unique || !this.has(fn))) {\r\n this._list.push(fn)\r\n }\r\n return this\r\n};\r\nCallback.prototype.remove = function(fn) {\r\n var list = this._list;\r\n var firingIndexes = this._firingIndexes;\r\n var index = list.indexOf(fn);\r\n if (index > -1) {\r\n list.splice(index, 1);\r\n if (this._firing && firingIndexes.length) {\r\n for (var step = 0; step < firingIndexes.length; step++) {\r\n if (index <= firingIndexes[step]) {\r\n firingIndexes[step]--\r\n }\r\n }\r\n }\r\n }\r\n return this\r\n};\r\nCallback.prototype.has = function(fn) {\r\n var list = this._list;\r\n return fn ? list.indexOf(fn) > -1 : !!list.length\r\n};\r\nCallback.prototype.empty = function(fn) {\r\n this._list = [];\r\n return this\r\n};\r\nCallback.prototype.fireWith = function(context, args) {\r\n var queue = this._queue;\r\n args = args || [];\r\n args = args.slice ? args.slice() : args;\r\n if (this._options.syncStrategy) {\r\n this._firing = true;\r\n this._fireCore(context, args)\r\n } else {\r\n queue.push([context, args]);\r\n if (this._firing) {\r\n return\r\n }\r\n this._firing = true;\r\n while (queue.length) {\r\n var memory = queue.shift();\r\n this._fireCore(memory[0], memory[1])\r\n }\r\n }\r\n this._firing = false;\r\n this._fired = true;\r\n return this\r\n};\r\nCallback.prototype.fire = function() {\r\n this.fireWith(this, arguments)\r\n};\r\nCallback.prototype.fired = function() {\r\n return this._fired\r\n};\r\nvar Callbacks = function(options) {\r\n return new Callback(options)\r\n};\r\nexport default Callbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/common.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport Guid from \"../guid\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../utils/deferred\";\r\nimport {\r\n toComparable\r\n} from \"./data\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isObject,\r\n type\r\n} from \"./type\";\r\nexport var ensureDefined = function(value, defaultValue) {\r\n return isDefined(value) ? value : defaultValue\r\n};\r\nexport var executeAsync = function(action, context) {\r\n var deferred = new Deferred;\r\n var normalizedContext = context || this;\r\n var task = {\r\n promise: deferred.promise(),\r\n abort: function() {\r\n clearTimeout(timerId);\r\n deferred.rejectWith(normalizedContext)\r\n }\r\n };\r\n var callback = function() {\r\n var result = action.call(normalizedContext);\r\n if (result && result.done && isFunction(result.done)) {\r\n result.done((function() {\r\n deferred.resolveWith(normalizedContext)\r\n }))\r\n } else {\r\n deferred.resolveWith(normalizedContext)\r\n }\r\n };\r\n var timerId = (arguments[2] || setTimeout)(callback, \"number\" === typeof context ? context : 0);\r\n return task\r\n};\r\nvar delayedFuncs = [];\r\nvar delayedNames = [];\r\nvar delayedDeferreds = [];\r\nvar executingName;\r\nvar deferExecute = function(name, func, deferred) {\r\n if (executingName && executingName !== name) {\r\n delayedFuncs.push(func);\r\n delayedNames.push(name);\r\n deferred = deferred || new Deferred;\r\n delayedDeferreds.push(deferred);\r\n return deferred\r\n } else {\r\n var oldExecutingName = executingName;\r\n var currentDelayedCount = delayedDeferreds.length;\r\n executingName = name;\r\n var result = func();\r\n if (!result) {\r\n if (delayedDeferreds.length > currentDelayedCount) {\r\n result = when.apply(this, delayedDeferreds.slice(currentDelayedCount))\r\n } else if (deferred) {\r\n deferred.resolve()\r\n }\r\n }\r\n executingName = oldExecutingName;\r\n if (deferred && result && result.done) {\r\n result.done(deferred.resolve).fail(deferred.reject)\r\n }\r\n if (!executingName && delayedFuncs.length) {\r\n (\"render\" === delayedNames.shift() ? deferRender : deferUpdate)(delayedFuncs.shift(), delayedDeferreds.shift())\r\n }\r\n return result || when()\r\n }\r\n};\r\nexport var deferRender = function(func, deferred) {\r\n return deferExecute(\"render\", func, deferred)\r\n};\r\nexport var deferUpdate = function(func, deferred) {\r\n return deferExecute(\"update\", func, deferred)\r\n};\r\nexport var deferRenderer = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"render\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var deferUpdater = function(func) {\r\n return function() {\r\n var that = this;\r\n return deferExecute(\"update\", (function() {\r\n return func.call(that)\r\n }))\r\n }\r\n};\r\nexport var findBestMatches = function(targetFilter, items, mapFn) {\r\n var bestMatches = [];\r\n var maxMatchCount = 0;\r\n each(items, (index, itemSrc) => {\r\n var matchCount = 0;\r\n var item = mapFn ? mapFn(itemSrc) : itemSrc;\r\n each(targetFilter, (paramName, targetValue) => {\r\n var value = item[paramName];\r\n if (void 0 === value) {\r\n return\r\n }\r\n if (match(value, targetValue)) {\r\n matchCount++;\r\n return\r\n }\r\n matchCount = -1;\r\n return false\r\n });\r\n if (matchCount < maxMatchCount) {\r\n return\r\n }\r\n if (matchCount > maxMatchCount) {\r\n bestMatches.length = 0;\r\n maxMatchCount = matchCount\r\n }\r\n bestMatches.push(itemSrc)\r\n });\r\n return bestMatches\r\n};\r\nvar match = function(value, targetValue) {\r\n if (Array.isArray(value) && Array.isArray(targetValue)) {\r\n var mismatch = false;\r\n each(value, (index, valueItem) => {\r\n if (valueItem !== targetValue[index]) {\r\n mismatch = true;\r\n return false\r\n }\r\n });\r\n if (mismatch) {\r\n return false\r\n }\r\n return true\r\n }\r\n if (value === targetValue) {\r\n return true\r\n }\r\n return false\r\n};\r\nexport var splitPair = function(raw) {\r\n var _raw$x, _raw$y;\r\n switch (type(raw)) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 2);\r\n case \"object\":\r\n return [null !== (_raw$x = raw.x) && void 0 !== _raw$x ? _raw$x : raw.h, null !== (_raw$y = raw.y) && void 0 !== _raw$y ? _raw$y : raw.v];\r\n case \"number\":\r\n return [raw];\r\n case \"array\":\r\n return raw;\r\n default:\r\n return null\r\n }\r\n};\r\nexport var normalizeKey = function(id) {\r\n var key = isString(id) ? id : id.toString();\r\n var arr = key.match(/[^a-zA-Z0-9_]/g);\r\n arr && each(arr, (_, sign) => {\r\n key = key.replace(sign, \"__\" + sign.charCodeAt() + \"__\")\r\n });\r\n return key\r\n};\r\nexport var denormalizeKey = function(key) {\r\n var arr = key.match(/__\\d+__/g);\r\n arr && arr.forEach(char => {\r\n var charCode = parseInt(char.replace(\"__\", \"\"));\r\n key = key.replace(char, String.fromCharCode(charCode))\r\n });\r\n return key\r\n};\r\nexport var pairToObject = function(raw, preventRound) {\r\n var pair = splitPair(raw);\r\n var h = preventRound ? parseFloat(pair && pair[0]) : parseInt(pair && pair[0], 10);\r\n var v = preventRound ? parseFloat(pair && pair[1]) : parseInt(pair && pair[1], 10);\r\n if (!isFinite(h)) {\r\n h = 0\r\n }\r\n if (!isFinite(v)) {\r\n v = h\r\n }\r\n return {\r\n h: h,\r\n v: v\r\n }\r\n};\r\nexport var getKeyHash = function(key) {\r\n if (key instanceof Guid) {\r\n return key.toString()\r\n } else if (isObject(key) || Array.isArray(key)) {\r\n try {\r\n var keyHash = JSON.stringify(key);\r\n return \"{}\" === keyHash ? key : keyHash\r\n } catch (e) {\r\n return key\r\n }\r\n }\r\n return key\r\n};\r\nexport var escapeRegExp = function(string) {\r\n return string.replace(/[[\\]{}\\-()*+?.\\\\^$|\\s]/g, \"\\\\$&\")\r\n};\r\nexport var applyServerDecimalSeparator = function(value) {\r\n var separator = config().serverDecimalSeparator;\r\n if (isDefined(value)) {\r\n value = value.toString().replace(\".\", separator)\r\n }\r\n return value\r\n};\r\nexport var noop = function() {};\r\nexport var asyncNoop = function() {\r\n return (new Deferred).resolve().promise()\r\n};\r\nexport var grep = function(elements, checkFunction, invert) {\r\n var result = [];\r\n var check;\r\n var expectedCheck = !invert;\r\n for (var i = 0; i < elements.length; i++) {\r\n check = !!checkFunction(elements[i], i);\r\n if (check === expectedCheck) {\r\n result.push(elements[i])\r\n }\r\n }\r\n return result\r\n};\r\nvar arraysEqualByValue = function(array1, array2, depth) {\r\n if (array1.length !== array2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < array1.length; i++) {\r\n if (!equalByValue(array1[i], array2[i], depth + 1)) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nvar objectsEqualByValue = function(object1, object2, depth, strict) {\r\n for (var propertyName in object1) {\r\n if (Object.prototype.hasOwnProperty.call(object1, propertyName) && !equalByValue(object1[propertyName], object2[propertyName], depth + 1, strict)) {\r\n return false\r\n }\r\n }\r\n for (var _propertyName in object2) {\r\n if (!(_propertyName in object1)) {\r\n return false\r\n }\r\n }\r\n return true\r\n};\r\nvar maxEqualityDepth = 3;\r\nexport var equalByValue = function(object1, object2) {\r\n var depth = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;\r\n var strict = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : true;\r\n object1 = toComparable(object1, true);\r\n object2 = toComparable(object2, true);\r\n var comparisonResult = strict ? object1 === object2 : object1 == object2;\r\n if (comparisonResult || depth >= maxEqualityDepth) {\r\n return true\r\n }\r\n if (isObject(object1) && isObject(object2)) {\r\n return objectsEqualByValue(object1, object2, depth, strict)\r\n } else if (Array.isArray(object1) && Array.isArray(object2)) {\r\n return arraysEqualByValue(object1, object2, depth)\r\n }\r\n return false\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/console.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nvar noop = function() {};\r\nvar getConsoleMethod = function(method) {\r\n if (\"undefined\" === typeof console || !isFunction(console[method])) {\r\n return noop\r\n }\r\n return console[method].bind(console)\r\n};\r\nexport var logger = {\r\n info: getConsoleMethod(\"info\"),\r\n warn: getConsoleMethod(\"warn\"),\r\n error: getConsoleMethod(\"error\")\r\n};\r\nexport var debug = function() {\r\n function assert(condition, message) {\r\n if (!condition) {\r\n throw new Error(message)\r\n }\r\n }\r\n return {\r\n assert: assert,\r\n assertParam: function(parameter, message) {\r\n assert(null !== parameter && void 0 !== parameter, message)\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/utils/data.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport Class from \"../class\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"./object\";\r\nimport {\r\n isObject,\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar unwrapVariable = variableWrapper.unwrap;\r\nvar isWrapped = variableWrapper.isWrapped;\r\nvar assign = variableWrapper.assign;\r\nvar bracketsToDots = function(expr) {\r\n return expr.replace(/\\[/g, \".\").replace(/\\]/g, \"\")\r\n};\r\nexport var getPathParts = function(name) {\r\n return bracketsToDots(name).split(\".\")\r\n};\r\nvar readPropValue = function(obj, propName, options) {\r\n options = options || {};\r\n if (\"this\" === propName) {\r\n return unwrap(obj, options)\r\n }\r\n return unwrap(obj[propName], options)\r\n};\r\nvar assignPropValue = function(obj, propName, value, options) {\r\n if (\"this\" === propName) {\r\n throw new errors.Error(\"E4016\")\r\n }\r\n var propValue = obj[propName];\r\n if (options.unwrapObservables && isWrapped(propValue)) {\r\n assign(propValue, value)\r\n } else {\r\n obj[propName] = value\r\n }\r\n};\r\nvar prepareOptions = function(options) {\r\n options = options || {};\r\n options.unwrapObservables = void 0 !== options.unwrapObservables ? options.unwrapObservables : true;\r\n return options\r\n};\r\n\r\nfunction unwrap(value, options) {\r\n return options.unwrapObservables ? unwrapVariable(value) : value\r\n}\r\nexport var compileGetter = function(expr) {\r\n if (arguments.length > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n if (!expr || \"this\" === expr) {\r\n return function(obj) {\r\n return obj\r\n }\r\n }\r\n if (\"string\" === typeof expr) {\r\n var path = getPathParts(expr);\r\n return function(obj, options) {\r\n options = prepareOptions(options);\r\n var functionAsIs = options.functionsAsIs;\r\n var hasDefaultValue = \"defaultValue\" in options;\r\n var current = unwrap(obj, options);\r\n for (var i = 0; i < path.length; i++) {\r\n if (!current) {\r\n if (null == current && hasDefaultValue) {\r\n return options.defaultValue\r\n }\r\n break\r\n }\r\n var pathPart = path[i];\r\n if (hasDefaultValue && isObject(current) && !(pathPart in current)) {\r\n return options.defaultValue\r\n }\r\n var next = unwrap(current[pathPart], options);\r\n if (!functionAsIs && isFunction(next)) {\r\n next = next.call(current)\r\n }\r\n current = next\r\n }\r\n return current\r\n }\r\n }\r\n if (Array.isArray(expr)) {\r\n return combineGetters(expr)\r\n }\r\n if (isFunction(expr)) {\r\n return expr\r\n }\r\n};\r\n\r\nfunction combineGetters(getters) {\r\n var compiledGetters = {};\r\n for (var i = 0, l = getters.length; i < l; i++) {\r\n var getter = getters[i];\r\n compiledGetters[getter] = compileGetter(getter)\r\n }\r\n return function(obj, options) {\r\n var result;\r\n each(compiledGetters, (function(name) {\r\n var value = this(obj, options);\r\n if (void 0 === value) {\r\n return\r\n }\r\n var current = result || (result = {});\r\n var path = name.split(\".\");\r\n var last = path.length - 1;\r\n for (var _i = 0; _i < last; _i++) {\r\n var pathItem = path[_i];\r\n if (!(pathItem in current)) {\r\n current[pathItem] = {}\r\n }\r\n current = current[pathItem]\r\n }\r\n current[path[last]] = value\r\n }));\r\n return result\r\n }\r\n}\r\nvar ensurePropValueDefined = function(obj, propName, value, options) {\r\n if (isDefined(value)) {\r\n return value\r\n }\r\n var newValue = {};\r\n assignPropValue(obj, propName, newValue, options);\r\n return newValue\r\n};\r\nexport var compileSetter = function(expr) {\r\n expr = getPathParts(expr || \"this\");\r\n var lastLevelIndex = expr.length - 1;\r\n return function(obj, value, options) {\r\n options = prepareOptions(options);\r\n var currentValue = unwrap(obj, options);\r\n expr.forEach((function(propertyName, levelIndex) {\r\n var propertyValue = readPropValue(currentValue, propertyName, options);\r\n var isPropertyFunc = !options.functionsAsIs && isFunction(propertyValue) && !isWrapped(propertyValue);\r\n if (levelIndex === lastLevelIndex) {\r\n if (options.merge && isPlainObject(value) && (!isDefined(propertyValue) || isPlainObject(propertyValue))) {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n deepExtendArraySafe(propertyValue, value, false, true)\r\n } else if (isPropertyFunc) {\r\n currentValue[propertyName](value)\r\n } else {\r\n assignPropValue(currentValue, propertyName, value, options)\r\n }\r\n } else {\r\n propertyValue = ensurePropValueDefined(currentValue, propertyName, propertyValue, options);\r\n if (isPropertyFunc) {\r\n propertyValue = propertyValue.call(currentValue)\r\n }\r\n currentValue = propertyValue\r\n }\r\n }))\r\n }\r\n};\r\nexport var toComparable = function(value, caseSensitive) {\r\n if (value instanceof Date) {\r\n return value.getTime()\r\n }\r\n if (value && value instanceof Class && value.valueOf) {\r\n return value.valueOf()\r\n }\r\n if (!caseSensitive && \"string\" === typeof value) {\r\n return value.toLowerCase()\r\n }\r\n return value\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/date/toMilliseconds.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar timeIntervals = {\r\n millisecond: 1,\r\n second: 1e3,\r\n minute: 6e4,\r\n hour: 36e5,\r\n day: 864e5,\r\n week: 6048e5,\r\n month: 2592e6,\r\n quarter: 7776e6,\r\n year: 31536e6\r\n};\r\nexport function toMilliseconds(value) {\r\n return timeIntervals[value]\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/date.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject,\r\n isString,\r\n isDate,\r\n isDefined,\r\n isNumeric\r\n} from \"./type\";\r\nimport {\r\n adjust\r\n} from \"./math\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport {\r\n toMilliseconds\r\n} from \"../../renovation/ui/common/utils/date/index\";\r\nvar DAYS_IN_WEEK = 7;\r\nvar THURSDAY_WEEK_NUMBER = 4;\r\nvar SUNDAY_WEEK_NUMBER = 7;\r\nvar USUAL_WEEK_COUNT_IN_YEAR = 52;\r\nvar dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"week\", \"month\", \"quarter\", \"year\"];\r\nvar getDatesInterval = function(startDate, endDate, intervalUnit) {\r\n var delta = endDate.getTime() - startDate.getTime();\r\n var millisecondCount = toMilliseconds(intervalUnit) || 1;\r\n return Math.floor(delta / millisecondCount)\r\n};\r\nvar getNextDateUnit = function(unit, withWeeks) {\r\n var interval = getDateUnitInterval(unit);\r\n switch (interval) {\r\n case \"millisecond\":\r\n return \"second\";\r\n case \"second\":\r\n return \"minute\";\r\n case \"minute\":\r\n return \"hour\";\r\n case \"hour\":\r\n return \"day\";\r\n case \"day\":\r\n return withWeeks ? \"week\" : \"month\";\r\n case \"week\":\r\n return \"month\";\r\n case \"month\":\r\n return \"quarter\";\r\n case \"quarter\":\r\n case \"year\":\r\n return \"year\";\r\n default:\r\n return 0\r\n }\r\n};\r\nvar convertMillisecondsToDateUnits = function(value) {\r\n var i;\r\n var dateUnitCount;\r\n var dateUnitInterval;\r\n var dateUnitIntervals = [\"millisecond\", \"second\", \"minute\", \"hour\", \"day\", \"month\", \"year\"];\r\n var result = {};\r\n for (i = dateUnitIntervals.length - 1; i >= 0; i--) {\r\n dateUnitInterval = dateUnitIntervals[i];\r\n dateUnitCount = Math.floor(value / toMilliseconds(dateUnitInterval));\r\n if (dateUnitCount > 0) {\r\n result[dateUnitInterval + \"s\"] = dateUnitCount;\r\n value -= convertDateUnitToMilliseconds(dateUnitInterval, dateUnitCount)\r\n }\r\n }\r\n return result\r\n};\r\nvar dateToMilliseconds = function(tickInterval) {\r\n var milliseconds = 0;\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n milliseconds += convertDateUnitToMilliseconds(key.substr(0, key.length - 1), value)\r\n }))\r\n }\r\n if (isString(tickInterval)) {\r\n milliseconds = convertDateUnitToMilliseconds(tickInterval, 1)\r\n }\r\n return milliseconds\r\n};\r\n\r\nfunction convertDateUnitToMilliseconds(dateUnit, count) {\r\n return toMilliseconds(dateUnit) * count\r\n}\r\n\r\nfunction getDateUnitInterval(tickInterval) {\r\n var maxInterval = -1;\r\n var i;\r\n if (isString(tickInterval)) {\r\n return tickInterval\r\n }\r\n if (isObject(tickInterval)) {\r\n each(tickInterval, (function(key, value) {\r\n for (i = 0; i < dateUnitIntervals.length; i++) {\r\n if (value && (key === dateUnitIntervals[i] + \"s\" || key === dateUnitIntervals[i]) && maxInterval < i) {\r\n maxInterval = i\r\n }\r\n }\r\n }));\r\n return dateUnitIntervals[maxInterval]\r\n }\r\n return \"\"\r\n}\r\nvar tickIntervalToFormatMap = {\r\n millisecond: \"millisecond\",\r\n second: \"longtime\",\r\n minute: \"shorttime\",\r\n hour: \"shorttime\",\r\n day: \"day\",\r\n week: \"day\",\r\n month: \"month\",\r\n quarter: \"quarter\",\r\n year: \"year\"\r\n};\r\n\r\nfunction getDateFormatByTickInterval(tickInterval) {\r\n return tickIntervalToFormatMap[getDateUnitInterval(tickInterval)] || \"\"\r\n}\r\nvar getQuarter = function(month) {\r\n return Math.floor(month / 3)\r\n};\r\nvar getFirstQuarterMonth = function(month) {\r\n return 3 * getQuarter(month)\r\n};\r\n\r\nfunction correctDateWithUnitBeginning(date, dateInterval, withCorrection, firstDayOfWeek) {\r\n date = new Date(date.getTime());\r\n var oldDate = new Date(date.getTime());\r\n var firstQuarterMonth;\r\n var month;\r\n var dateUnitInterval = getDateUnitInterval(dateInterval);\r\n switch (dateUnitInterval) {\r\n case \"second\":\r\n date = new Date(1e3 * Math.floor(oldDate.getTime() / 1e3));\r\n break;\r\n case \"minute\":\r\n date = new Date(6e4 * Math.floor(oldDate.getTime() / 6e4));\r\n break;\r\n case \"hour\":\r\n date = new Date(36e5 * Math.floor(oldDate.getTime() / 36e5));\r\n break;\r\n case \"year\":\r\n date.setMonth(0);\r\n case \"month\":\r\n date.setDate(1);\r\n case \"day\":\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"week\":\r\n date = getFirstWeekDate(date, firstDayOfWeek || 0);\r\n date.setHours(0, 0, 0, 0);\r\n break;\r\n case \"quarter\":\r\n firstQuarterMonth = getFirstQuarterMonth(date.getMonth());\r\n month = date.getMonth();\r\n date.setDate(1);\r\n date.setHours(0, 0, 0, 0);\r\n if (month !== firstQuarterMonth) {\r\n date.setMonth(firstQuarterMonth)\r\n }\r\n }\r\n if (withCorrection && \"hour\" !== dateUnitInterval && \"minute\" !== dateUnitInterval && \"second\" !== dateUnitInterval) {\r\n fixTimezoneGap(oldDate, date)\r\n }\r\n return date\r\n}\r\n\r\nfunction trimTime(date) {\r\n return correctDateWithUnitBeginning(date, \"day\")\r\n}\r\nvar setToDayEnd = function(date) {\r\n var result = trimTime(date);\r\n result.setDate(result.getDate() + 1);\r\n return new Date(result.getTime() - 1)\r\n};\r\nvar getDatesDifferences = function(date1, date2) {\r\n var counter = 0;\r\n var differences = {\r\n year: date1.getFullYear() !== date2.getFullYear(),\r\n month: date1.getMonth() !== date2.getMonth(),\r\n day: date1.getDate() !== date2.getDate(),\r\n hour: date1.getHours() !== date2.getHours(),\r\n minute: date1.getMinutes() !== date2.getMinutes(),\r\n second: date1.getSeconds() !== date2.getSeconds(),\r\n millisecond: date1.getMilliseconds() !== date2.getMilliseconds()\r\n };\r\n each(differences, (function(key, value) {\r\n if (value) {\r\n counter++\r\n }\r\n }));\r\n if (0 === counter && 0 !== getTimezonesDifference(date1, date2)) {\r\n differences.hour = true;\r\n counter++\r\n }\r\n differences.count = counter;\r\n return differences\r\n};\r\n\r\nfunction addDateInterval(value, interval, dir) {\r\n var result = new Date(value.getTime());\r\n var intervalObject = isString(interval) ? getDateIntervalByString(interval.toLowerCase()) : isNumeric(interval) ? convertMillisecondsToDateUnits(interval) : interval;\r\n if (intervalObject.years) {\r\n result.setFullYear(result.getFullYear() + intervalObject.years * dir)\r\n }\r\n if (intervalObject.quarters) {\r\n result.setMonth(result.getMonth() + 3 * intervalObject.quarters * dir)\r\n }\r\n if (intervalObject.months) {\r\n result.setMonth(result.getMonth() + intervalObject.months * dir)\r\n }\r\n if (intervalObject.weeks) {\r\n result.setDate(result.getDate() + 7 * intervalObject.weeks * dir)\r\n }\r\n if (intervalObject.days) {\r\n result.setDate(result.getDate() + intervalObject.days * dir)\r\n }\r\n if (intervalObject.hours) {\r\n result.setTime(result.getTime() + 36e5 * intervalObject.hours * dir)\r\n }\r\n if (intervalObject.minutes) {\r\n result.setTime(result.getTime() + 6e4 * intervalObject.minutes * dir)\r\n }\r\n if (intervalObject.seconds) {\r\n result.setTime(result.getTime() + 1e3 * intervalObject.seconds * dir)\r\n }\r\n if (intervalObject.milliseconds) {\r\n result.setTime(result.getTime() + intervalObject.milliseconds * dir)\r\n }\r\n return result\r\n}\r\nvar addInterval = function(value, interval, isNegative) {\r\n var dir = isNegative ? -1 : 1;\r\n return isDate(value) ? addDateInterval(value, interval, dir) : adjust(value + interval * dir, interval)\r\n};\r\nvar getSequenceByInterval = function(min, max, interval) {\r\n var intervals = [];\r\n var cur;\r\n intervals.push(isDate(min) ? new Date(min.getTime()) : min);\r\n cur = min;\r\n while (cur < max) {\r\n cur = addInterval(cur, interval);\r\n intervals.push(cur)\r\n }\r\n return intervals\r\n};\r\nvar getViewFirstCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 0, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date), date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date), date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewLastCellDate = function(viewType, date) {\r\n if (\"month\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), getLastMonthDay(date))\r\n }\r\n if (\"year\" === viewType) {\r\n return createDateWithFullYear(date.getFullYear(), 11, date.getDate())\r\n }\r\n if (\"decade\" === viewType) {\r\n return createDateWithFullYear(getFirstYearInDecade(date) + 9, date.getMonth(), date.getDate())\r\n }\r\n if (\"century\" === viewType) {\r\n return createDateWithFullYear(getFirstDecadeInCentury(date) + 90, date.getMonth(), date.getDate())\r\n }\r\n};\r\nvar getViewMinBoundaryDate = function(viewType, date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth(), 1);\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(0);\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date))\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date))\r\n }\r\n return resultDate\r\n};\r\nvar getViewMaxBoundaryDate = function(viewType, date) {\r\n var resultDate = new Date(date);\r\n resultDate.setDate(getLastMonthDay(date));\r\n if (\"month\" === viewType) {\r\n return resultDate\r\n }\r\n resultDate.setMonth(11);\r\n resultDate.setDate(getLastMonthDay(resultDate));\r\n if (\"year\" === viewType) {\r\n return resultDate\r\n }\r\n if (\"decade\" === viewType) {\r\n resultDate.setFullYear(getFirstYearInDecade(date) + 9)\r\n }\r\n if (\"century\" === viewType) {\r\n resultDate.setFullYear(getFirstDecadeInCentury(date) + 99)\r\n }\r\n return resultDate\r\n};\r\n\r\nfunction getLastMonthDay(date) {\r\n var resultDate = createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0);\r\n return resultDate.getDate()\r\n}\r\nvar getViewUp = function(typeView) {\r\n switch (typeView) {\r\n case \"month\":\r\n return \"year\";\r\n case \"year\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"century\"\r\n }\r\n};\r\nvar getViewDown = function(typeView) {\r\n switch (typeView) {\r\n case \"century\":\r\n return \"decade\";\r\n case \"decade\":\r\n return \"year\";\r\n case \"year\":\r\n return \"month\"\r\n }\r\n};\r\nvar getDifferenceInMonth = function(typeView) {\r\n var difference = 1;\r\n if (\"year\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"decade\" === typeView) {\r\n difference = 120\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 1200\r\n }\r\n return difference\r\n};\r\nvar getDifferenceInMonthForCells = function(typeView) {\r\n var difference = 1;\r\n if (\"decade\" === typeView) {\r\n difference = 12\r\n }\r\n if (\"century\" === typeView) {\r\n difference = 120\r\n }\r\n return difference\r\n};\r\n\r\nfunction getDateIntervalByString(intervalString) {\r\n var result = {};\r\n switch (intervalString) {\r\n case \"year\":\r\n result.years = 1;\r\n break;\r\n case \"month\":\r\n result.months = 1;\r\n break;\r\n case \"quarter\":\r\n result.months = 3;\r\n break;\r\n case \"week\":\r\n result.weeks = 1;\r\n break;\r\n case \"day\":\r\n result.days = 1;\r\n break;\r\n case \"hour\":\r\n result.hours = 1;\r\n break;\r\n case \"minute\":\r\n result.minutes = 1;\r\n break;\r\n case \"second\":\r\n result.seconds = 1;\r\n break;\r\n case \"millisecond\":\r\n result.milliseconds = 1\r\n }\r\n return result\r\n}\r\n\r\nfunction sameDate(date1, date2) {\r\n return sameMonthAndYear(date1, date2) && date1.getDate() === date2.getDate()\r\n}\r\n\r\nfunction sameMonthAndYear(date1, date2) {\r\n return sameYear(date1, date2) && date1.getMonth() === date2.getMonth()\r\n}\r\n\r\nfunction sameYear(date1, date2) {\r\n return date1 && date2 && date1.getFullYear() === date2.getFullYear()\r\n}\r\n\r\nfunction sameHoursAndMinutes(date1, date2) {\r\n return date1 && date2 && date1.getHours() === date2.getHours() && date1.getMinutes() === date2.getMinutes()\r\n}\r\nvar sameDecade = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startDecadeDate1 = date1.getFullYear() - date1.getFullYear() % 10;\r\n var startDecadeDate2 = date2.getFullYear() - date2.getFullYear() % 10;\r\n return date1 && date2 && startDecadeDate1 === startDecadeDate2\r\n};\r\nvar sameCentury = function(date1, date2) {\r\n if (!isDefined(date1) || !isDefined(date2)) {\r\n return\r\n }\r\n var startCenturyDate1 = date1.getFullYear() - date1.getFullYear() % 100;\r\n var startCenturyDate2 = date2.getFullYear() - date2.getFullYear() % 100;\r\n return date1 && date2 && startCenturyDate1 === startCenturyDate2\r\n};\r\n\r\nfunction getFirstDecadeInCentury(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 100\r\n}\r\n\r\nfunction getFirstYearInDecade(date) {\r\n return date && date.getFullYear() - date.getFullYear() % 10\r\n}\r\nvar getShortDateFormat = function() {\r\n return \"yyyy/MM/dd\"\r\n};\r\nvar getFirstMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth(), 1)\r\n};\r\nvar getLastMonthDate = function(date) {\r\n if (!isDefined(date)) {\r\n return\r\n }\r\n return createDateWithFullYear(date.getFullYear(), date.getMonth() + 1, 0)\r\n};\r\n\r\nfunction getFirstWeekDate(date, firstDayOfWeek) {\r\n var delta = (date.getDay() - firstDayOfWeek + DAYS_IN_WEEK) % DAYS_IN_WEEK;\r\n var result = new Date(date);\r\n result.setDate(date.getDate() - delta);\r\n return result\r\n}\r\n\r\nfunction getUTCTime(date) {\r\n return Date.UTC(date.getFullYear(), date.getMonth(), date.getDate())\r\n}\r\n\r\nfunction getDayNumber(date) {\r\n var ms = getUTCTime(date) - getUTCTime(getFirstDateInYear(date.getFullYear()));\r\n return 1 + Math.floor(ms / toMilliseconds(\"day\"))\r\n}\r\n\r\nfunction getFirstDateInYear(year) {\r\n return new Date(year, 0, 1)\r\n}\r\n\r\nfunction getLastDateInYear(year) {\r\n return new Date(year, 11, 31)\r\n}\r\n\r\nfunction getDayWeekNumber(date, firstDayOfWeek) {\r\n var day = date.getDay() - firstDayOfWeek + 1;\r\n if (day <= 0) {\r\n day += DAYS_IN_WEEK\r\n }\r\n return day\r\n}\r\n\r\nfunction getWeekNumber(date, firstDayOfWeek, rule) {\r\n var firstWeekDayInYear = getDayWeekNumber(getFirstDateInYear(date.getFullYear()), firstDayOfWeek);\r\n var lastWeekDayInYear = getDayWeekNumber(getLastDateInYear(date.getFullYear()), firstDayOfWeek);\r\n var daysInFirstWeek = DAYS_IN_WEEK - firstWeekDayInYear + 1;\r\n var weekNumber = Math.ceil((getDayNumber(date) - daysInFirstWeek) / 7);\r\n switch (rule) {\r\n case \"fullWeek\":\r\n if (daysInFirstWeek === DAYS_IN_WEEK) {\r\n weekNumber++\r\n }\r\n if (0 === weekNumber) {\r\n var lastDateInPreviousYear = getLastDateInYear(date.getFullYear() - 1);\r\n return getWeekNumber(lastDateInPreviousYear, firstDayOfWeek, rule)\r\n }\r\n return weekNumber;\r\n case \"firstDay\":\r\n if (daysInFirstWeek > 0) {\r\n weekNumber++\r\n }\r\n var isSunday = firstWeekDayInYear === SUNDAY_WEEK_NUMBER || lastWeekDayInYear === SUNDAY_WEEK_NUMBER;\r\n if (weekNumber > USUAL_WEEK_COUNT_IN_YEAR && !isSunday || 54 === weekNumber) {\r\n weekNumber = 1\r\n }\r\n return weekNumber;\r\n case \"firstFourDays\":\r\n if (daysInFirstWeek > 3) {\r\n weekNumber++\r\n }\r\n var isThursday = firstWeekDayInYear === THURSDAY_WEEK_NUMBER || lastWeekDayInYear === THURSDAY_WEEK_NUMBER;\r\n if (weekNumber > USUAL_WEEK_COUNT_IN_YEAR && !isThursday) {\r\n weekNumber = 1\r\n }\r\n if (0 === weekNumber) {\r\n var _lastDateInPreviousYear = getLastDateInYear(date.getFullYear() - 1);\r\n return getWeekNumber(_lastDateInPreviousYear, firstDayOfWeek, rule)\r\n }\r\n return weekNumber\r\n }\r\n}\r\nvar normalizeDateByWeek = function(date, currentDate) {\r\n var differenceInDays = dateUtils.getDatesInterval(date, currentDate, \"day\");\r\n var resultDate = new Date(date);\r\n if (differenceInDays >= 6) {\r\n resultDate = new Date(resultDate.setDate(resultDate.getDate() + 7))\r\n }\r\n return resultDate\r\n};\r\nvar dateInRange = function(date, min, max, format) {\r\n if (\"date\" === format) {\r\n min = min && dateUtils.correctDateWithUnitBeginning(min, \"day\");\r\n max = max && dateUtils.correctDateWithUnitBeginning(max, \"day\");\r\n date = date && dateUtils.correctDateWithUnitBeginning(date, \"day\")\r\n }\r\n return normalizeDate(date, min, max) === date\r\n};\r\nvar intervalsOverlap = function(options) {\r\n var {\r\n firstMin: firstMin,\r\n firstMax: firstMax,\r\n secondMin: secondMin,\r\n secondMax: secondMax\r\n } = options;\r\n return firstMin <= secondMin && secondMin <= firstMax || firstMin > secondMin && firstMin < secondMax || firstMin < secondMax && firstMax > secondMax\r\n};\r\nvar dateTimeFromDecimal = function(number) {\r\n var hours = Math.floor(number);\r\n var minutes = number % 1 * 60;\r\n return {\r\n hours: hours,\r\n minutes: minutes\r\n }\r\n};\r\nvar roundDateByStartDayHour = function(date, startDayHour) {\r\n var startTime = this.dateTimeFromDecimal(startDayHour);\r\n var result = new Date(date);\r\n if (date.getHours() === startTime.hours && date.getMinutes() < startTime.minutes || date.getHours() < startTime.hours) {\r\n result.setHours(startTime.hours, startTime.minutes, 0, 0)\r\n }\r\n return result\r\n};\r\n\r\nfunction normalizeDate(date, min, max) {\r\n var normalizedDate = date;\r\n if (!isDefined(date)) {\r\n return date\r\n }\r\n if (isDefined(min) && date < min) {\r\n normalizedDate = min\r\n }\r\n if (isDefined(max) && date > max) {\r\n normalizedDate = max\r\n }\r\n return normalizedDate\r\n}\r\n\r\nfunction fixTimezoneGap(oldDate, newDate) {\r\n if (!isDefined(oldDate)) {\r\n return\r\n }\r\n var diff = newDate.getHours() - oldDate.getHours();\r\n if (0 === diff) {\r\n return\r\n }\r\n var sign = 1 === diff || -23 === diff ? -1 : 1;\r\n var trial = new Date(newDate.getTime() + 36e5 * sign);\r\n if (sign > 0 || trial.getDate() === newDate.getDate()) {\r\n newDate.setTime(trial.getTime())\r\n }\r\n}\r\nvar roundToHour = function(date) {\r\n var result = new Date(date.getTime());\r\n result.setHours(result.getHours() + 1);\r\n result.setMinutes(0);\r\n return result\r\n};\r\n\r\nfunction getTimezonesDifference(min, max) {\r\n return 60 * (max.getTimezoneOffset() - min.getTimezoneOffset()) * 1e3\r\n}\r\nvar makeDate = function(date) {\r\n return new Date(date)\r\n};\r\nvar getDatesOfInterval = function(startDate, endDate, step) {\r\n var result = [];\r\n var currentDate = new Date(startDate.getTime());\r\n while (currentDate < endDate) {\r\n result.push(new Date(currentDate.getTime()));\r\n currentDate = this.addInterval(currentDate, step)\r\n }\r\n return result\r\n};\r\nvar createDateWithFullYear = function(year) {\r\n var result = new Date(...arguments);\r\n result.setFullYear(year);\r\n return result\r\n};\r\nvar dateUtils = {\r\n dateUnitIntervals: dateUnitIntervals,\r\n convertMillisecondsToDateUnits: convertMillisecondsToDateUnits,\r\n dateToMilliseconds: dateToMilliseconds,\r\n getNextDateUnit: getNextDateUnit,\r\n convertDateUnitToMilliseconds: convertDateUnitToMilliseconds,\r\n getDateUnitInterval: getDateUnitInterval,\r\n getDateFormatByTickInterval: getDateFormatByTickInterval,\r\n getDatesDifferences: getDatesDifferences,\r\n correctDateWithUnitBeginning: correctDateWithUnitBeginning,\r\n trimTime: trimTime,\r\n setToDayEnd: setToDayEnd,\r\n roundDateByStartDayHour: roundDateByStartDayHour,\r\n dateTimeFromDecimal: dateTimeFromDecimal,\r\n addDateInterval: addDateInterval,\r\n addInterval: addInterval,\r\n getSequenceByInterval: getSequenceByInterval,\r\n getDateIntervalByString: getDateIntervalByString,\r\n sameHoursAndMinutes: sameHoursAndMinutes,\r\n sameDate: sameDate,\r\n sameMonthAndYear: sameMonthAndYear,\r\n sameMonth: sameMonthAndYear,\r\n sameYear: sameYear,\r\n sameDecade: sameDecade,\r\n sameCentury: sameCentury,\r\n getDifferenceInMonth: getDifferenceInMonth,\r\n getDifferenceInMonthForCells: getDifferenceInMonthForCells,\r\n getFirstYearInDecade: getFirstYearInDecade,\r\n getFirstDecadeInCentury: getFirstDecadeInCentury,\r\n getShortDateFormat: getShortDateFormat,\r\n getViewFirstCellDate: getViewFirstCellDate,\r\n getViewLastCellDate: getViewLastCellDate,\r\n getViewDown: getViewDown,\r\n getViewUp: getViewUp,\r\n getLastMonthDay: getLastMonthDay,\r\n getLastMonthDate: getLastMonthDate,\r\n getFirstMonthDate: getFirstMonthDate,\r\n getFirstWeekDate: getFirstWeekDate,\r\n getWeekNumber: getWeekNumber,\r\n normalizeDateByWeek: normalizeDateByWeek,\r\n getQuarter: getQuarter,\r\n getFirstQuarterMonth: getFirstQuarterMonth,\r\n dateInRange: dateInRange,\r\n intervalsOverlap: intervalsOverlap,\r\n roundToHour: roundToHour,\r\n normalizeDate: normalizeDate,\r\n getViewMinBoundaryDate: getViewMinBoundaryDate,\r\n getViewMaxBoundaryDate: getViewMaxBoundaryDate,\r\n fixTimezoneGap: fixTimezoneGap,\r\n getTimezonesDifference: getTimezonesDifference,\r\n makeDate: makeDate,\r\n getDatesInterval: getDatesInterval,\r\n getDatesOfInterval: getDatesOfInterval,\r\n createDateWithFullYear: createDateWithFullYear\r\n};\r\ndateUtils.sameView = function(view, date1, date2) {\r\n return dateUtils[camelize(\"same \" + view)](date1, date2)\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/core/utils/date_serialization.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n getFormatter as getLDMLFormatter\r\n} from \"../../localization/ldml/date.formatter\";\r\nimport defaultDateNames from \"../../localization/default_date_names\";\r\nimport {\r\n isString,\r\n isDate,\r\n isNumeric as isNumber\r\n} from \"./type\";\r\nvar NUMBER_SERIALIZATION_FORMAT = \"number\";\r\nvar DATE_SERIALIZATION_FORMAT = \"yyyy/MM/dd\";\r\nvar DATETIME_SERIALIZATION_FORMAT = \"yyyy/MM/dd HH:mm:ss\";\r\nvar ISO8601_PATTERN = /^(\\d{4,})(-)?(\\d{2})(-)?(\\d{2})(?:T(\\d{2})(:)?(\\d{2})?(:)?(\\d{2}(?:\\.(\\d{1,3})\\d*)?)?)?(Z|([+-])(\\d{2})(:)?(\\d{2})?)?$/;\r\nvar ISO8601_TIME_PATTERN = /^(\\d{2}):(\\d{2})(:(\\d{2}))?$/;\r\nvar ISO8601_PATTERN_PARTS = [\"\", \"yyyy\", \"\", \"MM\", \"\", \"dd\", \"THH\", \"\", \"mm\", \"\", \"ss\", \".SSS\"];\r\nvar DATE_SERIALIZATION_PATTERN = /^(\\d{4})\\/(\\d{2})\\/(\\d{2})$/;\r\nvar MILLISECOND_LENGHT = 3;\r\nvar dateParser = function(text, skipISO8601Parsing) {\r\n var result;\r\n if (isString(text) && !skipISO8601Parsing) {\r\n result = parseISO8601String(text)\r\n }\r\n return result || parseDate(text)\r\n};\r\n\r\nfunction getTimePart(part) {\r\n return +part || 0\r\n}\r\n\r\nfunction parseDate(text) {\r\n var isDefaultSerializationFormat = getDateSerializationFormat(text) === DATE_SERIALIZATION_FORMAT;\r\n var parsedValue = !isDate(text) && Date.parse(text);\r\n if (!parsedValue && isDefaultSerializationFormat) {\r\n var parts = text.match(DATE_SERIALIZATION_PATTERN);\r\n if (parts) {\r\n var newDate = new Date(getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[3]));\r\n newDate.setFullYear(getTimePart(parts[1]));\r\n newDate.setMonth(getTimePart(parts[2]) - 1);\r\n newDate.setDate(getTimePart(parts[3]));\r\n return newDate\r\n }\r\n }\r\n return isNumber(parsedValue) ? new Date(parsedValue) : text\r\n}\r\n\r\nfunction parseISO8601String(text) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return new Date(0, 0, 0, getTimePart(parts[1]), getTimePart(parts[2]), getTimePart(parts[4]))\r\n }\r\n return\r\n }\r\n var year = getTimePart(parts[1]);\r\n var month = --parts[3];\r\n var day = parts[5];\r\n var timeZoneHour = 0;\r\n var timeZoneMinute = 0;\r\n var correctYear = d => {\r\n year < 100 && d.setFullYear(year);\r\n return d\r\n };\r\n timeZoneHour = getTimePart(parts[14]);\r\n timeZoneMinute = getTimePart(parts[16]);\r\n if (\"-\" === parts[13]) {\r\n timeZoneHour = -timeZoneHour;\r\n timeZoneMinute = -timeZoneMinute\r\n }\r\n var hour = getTimePart(parts[6]) - timeZoneHour;\r\n var minute = getTimePart(parts[8]) - timeZoneMinute;\r\n var second = getTimePart(parts[10]);\r\n var millisecond = function(part) {\r\n part = part || \"\";\r\n return getTimePart(part) * Math.pow(10, MILLISECOND_LENGHT - part.length)\r\n }(parts[11]);\r\n if (parts[12]) {\r\n return correctYear(new Date(Date.UTC(year, month, day, hour, minute, second, millisecond)))\r\n }\r\n return correctYear(new Date(year, month, day, hour, minute, second, millisecond))\r\n}\r\nvar getIso8601Format = function(text, useUtc) {\r\n var parts = text.match(ISO8601_PATTERN);\r\n var result = \"\";\r\n if (!parts) {\r\n parts = text.match(ISO8601_TIME_PATTERN);\r\n if (parts) {\r\n return parts[3] ? \"HH:mm:ss\" : \"HH:mm\"\r\n }\r\n return\r\n }\r\n for (var i = 1; i < ISO8601_PATTERN_PARTS.length; i++) {\r\n if (parts[i]) {\r\n result += ISO8601_PATTERN_PARTS[i] || parts[i]\r\n }\r\n }\r\n if (\"Z\" === parts[12]) {\r\n result += \"'Z'\"\r\n }\r\n if (parts[14]) {\r\n if (parts[15]) {\r\n result += \"xxx\"\r\n } else if (parts[16]) {\r\n result += \"xx\"\r\n } else {\r\n result += \"x\"\r\n }\r\n }\r\n return result\r\n};\r\nvar deserializeDate = function(value) {\r\n if (\"number\" === typeof value) {\r\n return new Date(value)\r\n }\r\n return dateParser(value, !config().forceIsoDateParsing)\r\n};\r\nvar serializeDate = function(value, serializationFormat) {\r\n if (!serializationFormat) {\r\n return value\r\n }\r\n if (!isDate(value)) {\r\n return null\r\n }\r\n if (serializationFormat === NUMBER_SERIALIZATION_FORMAT) {\r\n return value && value.valueOf ? value.valueOf() : null\r\n }\r\n return getLDMLFormatter(serializationFormat, defaultDateNames)(value)\r\n};\r\nvar getDateSerializationFormat = function(value) {\r\n if (\"number\" === typeof value) {\r\n return NUMBER_SERIALIZATION_FORMAT\r\n } else if (isString(value)) {\r\n var format;\r\n if (config().forceIsoDateParsing) {\r\n format = getIso8601Format(value)\r\n }\r\n if (format) {\r\n return format\r\n } else if (value.indexOf(\":\") >= 0) {\r\n return DATETIME_SERIALIZATION_FORMAT\r\n } else {\r\n return DATE_SERIALIZATION_FORMAT\r\n }\r\n } else if (value) {\r\n return null\r\n }\r\n};\r\nexport default {\r\n dateParser: dateParser,\r\n deserializeDate: deserializeDate,\r\n serializeDate: serializeDate,\r\n getDateSerializationFormat: getDateSerializationFormat\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/deferred.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDeferred,\r\n isDefined,\r\n isPromise\r\n} from \"../utils/type\";\r\nimport {\r\n extend\r\n} from \"../utils/extend\";\r\nimport Callbacks from \"../utils/callbacks\";\r\nvar deferredConfig = [{\r\n method: \"resolve\",\r\n handler: \"done\",\r\n state: \"resolved\"\r\n}, {\r\n method: \"reject\",\r\n handler: \"fail\",\r\n state: \"rejected\"\r\n}, {\r\n method: \"notify\",\r\n handler: \"progress\"\r\n}];\r\nvar _DeferredObj = function() {\r\n var that = this;\r\n this._state = \"pending\";\r\n this._promise = {};\r\n deferredConfig.forEach(function(config) {\r\n var methodName = config.method;\r\n this[methodName + \"Callbacks\"] = Callbacks();\r\n this[methodName] = function() {\r\n return this[methodName + \"With\"](this._promise, arguments)\r\n }.bind(this);\r\n this._promise[config.handler] = function(handler) {\r\n if (!handler) {\r\n return this\r\n }\r\n var callbacks = that[methodName + \"Callbacks\"];\r\n if (callbacks.fired()) {\r\n handler.apply(that[methodName + \"Context\"], that[methodName + \"Args\"])\r\n } else {\r\n callbacks.add(function(context, args) {\r\n handler.apply(context, args)\r\n }.bind(this))\r\n }\r\n return this\r\n }\r\n }.bind(this));\r\n this._promise.always = function(handler) {\r\n return this.done(handler).fail(handler)\r\n };\r\n this._promise.catch = function(handler) {\r\n return this.then(null, handler)\r\n };\r\n this._promise.then = function(resolve, reject) {\r\n var result = new _DeferredObj;\r\n [\"done\", \"fail\"].forEach(function(method) {\r\n var callback = \"done\" === method ? resolve : reject;\r\n this[method]((function() {\r\n if (!callback) {\r\n result[\"done\" === method ? \"resolve\" : \"reject\"].apply(this, arguments);\r\n return\r\n }\r\n var callbackResult = callback && callback.apply(this, arguments);\r\n if (isDeferred(callbackResult)) {\r\n callbackResult.done(result.resolve).fail(result.reject)\r\n } else if (isPromise(callbackResult)) {\r\n callbackResult.then(result.resolve, result.reject)\r\n } else {\r\n result.resolve.apply(this, isDefined(callbackResult) ? [callbackResult] : arguments)\r\n }\r\n }))\r\n }.bind(this));\r\n return result.promise()\r\n };\r\n this._promise.state = function() {\r\n return that._state\r\n };\r\n this._promise.promise = function(args) {\r\n return args ? extend(args, that._promise) : that._promise\r\n };\r\n this._promise.promise(this)\r\n};\r\ndeferredConfig.forEach((function(config) {\r\n var methodName = config.method;\r\n var state = config.state;\r\n _DeferredObj.prototype[methodName + \"With\"] = function(context, args) {\r\n var callbacks = this[methodName + \"Callbacks\"];\r\n if (\"pending\" === this.state()) {\r\n this[methodName + \"Args\"] = args;\r\n this[methodName + \"Context\"] = context;\r\n if (state) {\r\n this._state = state\r\n }\r\n callbacks.fire(context, args)\r\n }\r\n return this\r\n }\r\n}));\r\nexport function fromPromise(promise, context) {\r\n if (isDeferred(promise)) {\r\n return promise\r\n } else if (isPromise(promise)) {\r\n var d = new _DeferredObj;\r\n promise.then((function() {\r\n d.resolveWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }), (function() {\r\n d.rejectWith.apply(d, [context].concat([\r\n [].slice.call(arguments)\r\n ]))\r\n }));\r\n return d\r\n }\r\n return (new _DeferredObj).resolveWith(context, [promise])\r\n}\r\nvar whenFunc = function() {\r\n if (1 === arguments.length) {\r\n return fromPromise(arguments[0])\r\n }\r\n var values = [].slice.call(arguments);\r\n var contexts = [];\r\n var resolvedCount = 0;\r\n var deferred = new _DeferredObj;\r\n var updateState = function(i) {\r\n return function(value) {\r\n contexts[i] = this;\r\n values[i] = arguments.length > 1 ? [].slice.call(arguments) : value;\r\n resolvedCount++;\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n }\r\n };\r\n for (var i = 0; i < values.length; i++) {\r\n if (isDeferred(values[i])) {\r\n values[i].promise().done(updateState(i)).fail(deferred.reject)\r\n } else {\r\n resolvedCount++\r\n }\r\n }\r\n if (resolvedCount === values.length) {\r\n deferred.resolveWith(contexts, values)\r\n }\r\n return deferred.promise()\r\n};\r\nexport function setStrategy(value) {\r\n _DeferredObj = value.Deferred;\r\n whenFunc = value.when\r\n}\r\nexport function Deferred() {\r\n return new _DeferredObj\r\n}\r\nexport function when() {\r\n return whenFunc.apply(this, arguments)\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/dependency_injector.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction\r\n} from \"./type\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport Class from \"../class\";\r\nexport default function(object) {\r\n var BaseClass = Class.inherit(object);\r\n var InjectedClass = BaseClass;\r\n var instance = new InjectedClass(object);\r\n var initialFields = {};\r\n var injectFields = function(injectionObject, initial) {\r\n each(injectionObject, (function(key) {\r\n if (isFunction(instance[key])) {\r\n if (initial || !object[key]) {\r\n object[key] = function() {\r\n return instance[key].apply(object, arguments)\r\n }\r\n }\r\n } else {\r\n if (initial) {\r\n initialFields[key] = object[key]\r\n }\r\n object[key] = instance[key]\r\n }\r\n }))\r\n };\r\n injectFields(object, true);\r\n object.inject = function(injectionObject) {\r\n InjectedClass = InjectedClass.inherit(injectionObject);\r\n instance = new InjectedClass;\r\n injectFields(injectionObject)\r\n };\r\n object.resetInjection = function() {\r\n extend(object, initialFields);\r\n InjectedClass = BaseClass;\r\n instance = new BaseClass\r\n };\r\n return object\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/dom.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n each\r\n} from \"./iterator\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isWindow\r\n} from \"./type\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nvar window = getWindow();\r\nexport var resetActiveElement = () => {\r\n var activeElement = domAdapter.getActiveElement();\r\n if (activeElement && activeElement !== domAdapter.getBody()) {\r\n var _activeElement$blur;\r\n null === (_activeElement$blur = activeElement.blur) || void 0 === _activeElement$blur ? void 0 : _activeElement$blur.call(activeElement)\r\n }\r\n};\r\nexport var clearSelection = () => {\r\n var selection = window.getSelection();\r\n if (!selection) {\r\n return\r\n }\r\n if (\"Caret\" === selection.type) {\r\n return\r\n }\r\n if (selection.empty) {\r\n selection.empty()\r\n } else if (selection.removeAllRanges) {\r\n try {\r\n selection.removeAllRanges()\r\n } catch (e) {}\r\n }\r\n};\r\nexport var closestCommonParent = (startTarget, endTarget) => {\r\n var $startTarget = $(startTarget);\r\n var $endTarget = $(endTarget);\r\n if ($startTarget[0] === $endTarget[0]) {\r\n return $startTarget[0]\r\n }\r\n var $startParents = $startTarget.parents();\r\n var $endParents = $endTarget.parents();\r\n var startingParent = Math.min($startParents.length, $endParents.length);\r\n for (var i = -startingParent; i < 0; i++) {\r\n if ($startParents.get(i) === $endParents.get(i)) {\r\n return $startParents.get(i)\r\n }\r\n }\r\n};\r\nexport var extractTemplateMarkup = element => {\r\n element = $(element);\r\n var templateTag = element.length && element.filter((function() {\r\n var $node = $(this);\r\n return $node.is(\"script[type]\") && $node.attr(\"type\").indexOf(\"script\") < 0\r\n }));\r\n if (templateTag.length) {\r\n return templateTag.eq(0).html()\r\n } else {\r\n element = $(\"<div>\").append(element);\r\n return element.html()\r\n }\r\n};\r\nexport var normalizeTemplateElement = element => {\r\n var $element = isDefined(element) && (element.nodeType || isRenderer(element)) ? $(element) : $(\"<div>\").html(element).contents();\r\n if (1 === $element.length) {\r\n if ($element.is(\"script\")) {\r\n $element = normalizeTemplateElement($element.html().trim())\r\n } else if ($element.is(\"table\")) {\r\n $element = $element.children(\"tbody\").contents()\r\n }\r\n }\r\n return $element\r\n};\r\nexport var clipboardText = (event, text) => {\r\n var clipboard = event.originalEvent && event.originalEvent.clipboardData || window.clipboardData;\r\n if (!text) {\r\n return clipboard && clipboard.getData(\"Text\")\r\n }\r\n clipboard && clipboard.setData(\"Text\", text)\r\n};\r\nexport var contains = (container, element) => {\r\n if (!element) {\r\n return false\r\n }\r\n if (domAdapter.isTextNode(element)) {\r\n element = element.parentNode\r\n }\r\n if (domAdapter.isDocument(container)) {\r\n return container.documentElement.contains(element)\r\n }\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\nexport var createTextElementHiddenCopy = (element, text, options) => {\r\n var elementStyles = window.getComputedStyle($(element).get(0));\r\n var includePaddings = options && options.includePaddings;\r\n return $(\"<div>\").text(text).css({\r\n fontStyle: elementStyles.fontStyle,\r\n fontVariant: elementStyles.fontVariant,\r\n fontWeight: elementStyles.fontWeight,\r\n fontSize: elementStyles.fontSize,\r\n fontFamily: elementStyles.fontFamily,\r\n letterSpacing: elementStyles.letterSpacing,\r\n border: elementStyles.border,\r\n paddingTop: includePaddings ? elementStyles.paddingTop : \"\",\r\n paddingRight: includePaddings ? elementStyles.paddingRight : \"\",\r\n paddingBottom: includePaddings ? elementStyles.paddingBottom : \"\",\r\n paddingLeft: includePaddings ? elementStyles.paddingLeft : \"\",\r\n visibility: \"hidden\",\r\n whiteSpace: \"pre\",\r\n position: \"absolute\",\r\n float: \"left\"\r\n })\r\n};\r\nexport var insertBefore = (element, newElement) => {\r\n if (newElement) {\r\n domAdapter.insertElement(element.parentNode, newElement, element)\r\n }\r\n return element\r\n};\r\nexport var replaceWith = (element, newElement) => {\r\n if (!(newElement && newElement[0])) {\r\n return\r\n }\r\n if (newElement.is(element)) {\r\n return element\r\n }\r\n each(newElement, (_, currentElement) => {\r\n insertBefore(element[0], currentElement)\r\n });\r\n element.remove();\r\n return newElement\r\n};\r\nexport var isElementInDom = $element => {\r\n var element = null === $element || void 0 === $element ? void 0 : $element.get(0);\r\n var shadowHost = null === element || void 0 === element ? void 0 : element.getRootNode().host;\r\n return !!$(shadowHost || element).closest(getWindow().document).length\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/error.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n logger\r\n} from \"./console\";\r\nimport {\r\n format\r\n} from \"./string\";\r\nimport {\r\n version\r\n} from \"../version\";\r\nvar ERROR_URL = \"http://js.devexpress.com/error/\" + version.split(\".\").slice(0, 2).join(\"_\") + \"/\";\r\nexport default function(baseErrors, errors) {\r\n var exports = {\r\n ERROR_MESSAGES: extend(errors, baseErrors),\r\n Error: function() {\r\n return makeError([].slice.call(arguments))\r\n },\r\n log: function(id) {\r\n var method = \"log\";\r\n if (/^E\\d+$/.test(id)) {\r\n method = \"error\"\r\n } else if (/^W\\d+$/.test(id)) {\r\n method = \"warn\"\r\n }\r\n logger[method](\"log\" === method ? id : combineMessage([].slice.call(arguments)))\r\n }\r\n };\r\n\r\n function combineMessage(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n return formatMessage(id, formatDetails(id, args))\r\n }\r\n\r\n function formatDetails(id, args) {\r\n args = [exports.ERROR_MESSAGES[id]].concat(args);\r\n return format.apply(this, args).replace(/\\.*\\s*?$/, \"\")\r\n }\r\n\r\n function formatMessage(id, details) {\r\n return format.apply(this, [\"{0} - {1}. See:\\n{2}\", id, details, getErrorUrl(id)])\r\n }\r\n\r\n function makeError(args) {\r\n var id = args[0];\r\n args = args.slice(1);\r\n var details = formatDetails(id, args);\r\n var url = getErrorUrl(id);\r\n var message = formatMessage(id, details);\r\n return extend(new Error(message), {\r\n __id: id,\r\n __details: details,\r\n url: url\r\n })\r\n }\r\n\r\n function getErrorUrl(id) {\r\n return ERROR_URL + id\r\n }\r\n return exports\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/extend.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isPlainObject\r\n} from \"./type\";\r\nexport var extendFromObject = function(target, source, overrideExistingValues) {\r\n target = target || {};\r\n for (var prop in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, prop)) {\r\n var value = source[prop];\r\n if (!(prop in target) || overrideExistingValues) {\r\n target[prop] = value\r\n }\r\n }\r\n }\r\n return target\r\n};\r\nexport var extend = function extend(target) {\r\n target = target || {};\r\n var i = 1;\r\n var deep = false;\r\n if (\"boolean\" === typeof target) {\r\n deep = target;\r\n target = arguments[1] || {};\r\n i++\r\n }\r\n for (; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n if (null == source) {\r\n continue\r\n }\r\n for (var key in source) {\r\n var targetValue = target[key];\r\n var sourceValue = source[key];\r\n var sourceValueIsArray = false;\r\n var clone = void 0;\r\n if (\"__proto__\" === key || \"constructor\" === key || target === sourceValue) {\r\n continue\r\n }\r\n if (deep && sourceValue && (isPlainObject(sourceValue) || (sourceValueIsArray = Array.isArray(sourceValue)))) {\r\n if (sourceValueIsArray) {\r\n clone = targetValue && Array.isArray(targetValue) ? targetValue : []\r\n } else {\r\n clone = targetValue && isPlainObject(targetValue) ? targetValue : {}\r\n }\r\n target[key] = extend(deep, clone, sourceValue)\r\n } else if (void 0 !== sourceValue) {\r\n target[key] = sourceValue\r\n }\r\n }\r\n }\r\n return target\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/html_parser.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar isTagName = /<([a-z][^/\\0>\\x20\\t\\r\\n\\f]+)/i;\r\nvar tagWrappers = {\r\n default: {\r\n tagsCount: 0,\r\n startTags: \"\",\r\n endTags: \"\"\r\n },\r\n thead: {\r\n tagsCount: 1,\r\n startTags: \"<table>\",\r\n endTags: \"</table>\"\r\n },\r\n td: {\r\n tagsCount: 3,\r\n startTags: \"<table><tbody><tr>\",\r\n endTags: \"</tr></tbody></table>\"\r\n },\r\n col: {\r\n tagsCount: 2,\r\n startTags: \"<table><colgroup>\",\r\n endTags: \"</colgroup></table>\"\r\n },\r\n tr: {\r\n tagsCount: 2,\r\n startTags: \"<table><tbody>\",\r\n endTags: \"</tbody></table>\"\r\n }\r\n};\r\ntagWrappers.tbody = tagWrappers.colgroup = tagWrappers.caption = tagWrappers.tfoot = tagWrappers.thead;\r\ntagWrappers.th = tagWrappers.td;\r\nexport var parseHTML = function(html) {\r\n if (\"string\" !== typeof html) {\r\n return null\r\n }\r\n var fragment = domAdapter.createDocumentFragment();\r\n var container = fragment.appendChild(domAdapter.createElement(\"div\"));\r\n var tags = isTagName.exec(html);\r\n var firstRootTag = tags && tags[1].toLowerCase();\r\n var tagWrapper = tagWrappers[firstRootTag] || tagWrappers.default;\r\n container.innerHTML = tagWrapper.startTags + html + tagWrapper.endTags;\r\n for (var i = 0; i < tagWrapper.tagsCount; i++) {\r\n container = container.lastChild\r\n }\r\n return [...container.childNodes]\r\n};\r\nexport var isTablePart = function(html) {\r\n var tags = isTagName.exec(html);\r\n return tags && tags[1] in tagWrappers\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/icon.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SVG_ICON_CLASS = \"dx-svg-icon\";\r\nexport var getImageSourceType = source => {\r\n if (!source || \"string\" !== typeof source) {\r\n return false\r\n }\r\n if (/^\\s*<svg[^>]*>(.|\\r?\\n)*?<\\/svg>\\s*$/i.test(source)) {\r\n return \"svg\"\r\n }\r\n if (/data:.*base64|\\.|[^<\\s]\\/{1,1}/.test(source)) {\r\n return \"image\"\r\n }\r\n if (/^[\\w-_]+$/.test(source)) {\r\n return \"dxIcon\"\r\n }\r\n if (/^\\s?([\\w-_]\\s?)+$/.test(source)) {\r\n return \"fontIcon\"\r\n }\r\n return false\r\n};\r\nexport var getImageContainer = source => {\r\n switch (getImageSourceType(source)) {\r\n case \"image\":\r\n return $(\"<img>\").attr(\"src\", source).addClass(ICON_CLASS);\r\n case \"fontIcon\":\r\n return $(\"<i>\").addClass(\"\".concat(ICON_CLASS, \" \").concat(source));\r\n case \"dxIcon\":\r\n return $(\"<i>\").addClass(\"\".concat(ICON_CLASS, \" \").concat(ICON_CLASS, \"-\").concat(source));\r\n case \"svg\":\r\n return $(\"<i>\").addClass(\"\".concat(ICON_CLASS, \" \").concat(SVG_ICON_CLASS)).append(source);\r\n default:\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/inflector.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"./iterator\";\r\nvar _normalize = function(text) {\r\n if (void 0 === text || null === text) {\r\n return \"\"\r\n }\r\n return String(text)\r\n};\r\nvar _upperCaseFirst = function(text) {\r\n return _normalize(text).charAt(0).toUpperCase() + text.substr(1)\r\n};\r\nvar _chop = function(text) {\r\n return _normalize(text).replace(/([a-z\\d])([A-Z])/g, \"$1 $2\").split(/[\\s_-]+/)\r\n};\r\nexport var dasherize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return p.toLowerCase()\r\n })).join(\"-\")\r\n};\r\nexport var underscore = function(text) {\r\n return dasherize(text).replace(/-/g, \"_\")\r\n};\r\nexport var camelize = function(text, upperFirst) {\r\n return map(_chop(text), (function(p, i) {\r\n p = p.toLowerCase();\r\n if (upperFirst || i > 0) {\r\n p = _upperCaseFirst(p)\r\n }\r\n return p\r\n })).join(\"\")\r\n};\r\nexport var humanize = function(text) {\r\n return _upperCaseFirst(dasherize(text).replace(/-/g, \" \"))\r\n};\r\nexport var titleize = function(text) {\r\n return map(_chop(text), (function(p) {\r\n return _upperCaseFirst(p.toLowerCase())\r\n })).join(\" \")\r\n};\r\nvar DIGIT_CHARS = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\"];\r\nexport var captionize = function(name) {\r\n var captionList = [];\r\n var i;\r\n var char;\r\n var isPrevCharNewWord = false;\r\n var isNewWord = false;\r\n for (i = 0; i < name.length; i++) {\r\n char = name.charAt(i);\r\n isNewWord = char === char.toUpperCase() && \"-\" !== char && \")\" !== char && \"/\" !== char || char in DIGIT_CHARS;\r\n if (\"_\" === char || \".\" === char) {\r\n char = \" \";\r\n isNewWord = true\r\n } else if (0 === i) {\r\n char = char.toUpperCase();\r\n isNewWord = true\r\n } else if (!isPrevCharNewWord && isNewWord) {\r\n if (captionList.length > 0) {\r\n captionList.push(\" \")\r\n }\r\n }\r\n captionList.push(char);\r\n isPrevCharNewWord = isNewWord\r\n }\r\n return captionList.join(\"\")\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/iterator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar map = (values, callback) => {\r\n if (Array.isArray(values)) {\r\n return values.map(callback)\r\n }\r\n var result = [];\r\n for (var key in values) {\r\n result.push(callback(values[key], key))\r\n }\r\n return result\r\n};\r\nvar each = (values, callback) => {\r\n if (!values) {\r\n return\r\n }\r\n if (\"length\" in values) {\r\n for (var i = 0; i < values.length; i++) {\r\n if (false === callback.call(values[i], i, values[i])) {\r\n break\r\n }\r\n }\r\n } else {\r\n for (var key in values) {\r\n if (false === callback.call(values[key], key, values[key])) {\r\n break\r\n }\r\n }\r\n }\r\n return values\r\n};\r\nvar reverseEach = (array, callback) => {\r\n if (!array || !(\"length\" in array) || 0 === array.length) {\r\n return\r\n }\r\n for (var i = array.length - 1; i >= 0; i--) {\r\n if (false === callback.call(array[i], i, array[i])) {\r\n break\r\n }\r\n }\r\n};\r\nexport {\r\n map,\r\n each,\r\n reverseEach\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/math.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isExponential\r\n} from \"./type\";\r\nvar sign = function(value) {\r\n if (0 === value) {\r\n return 0\r\n }\r\n return value / Math.abs(value)\r\n};\r\nvar fitIntoRange = function(value, minValue, maxValue) {\r\n var isMinValueUndefined = !minValue && 0 !== minValue;\r\n var isMaxValueUndefined = !maxValue && 0 !== maxValue;\r\n isMinValueUndefined && (minValue = !isMaxValueUndefined ? Math.min(value, maxValue) : value);\r\n isMaxValueUndefined && (maxValue = !isMinValueUndefined ? Math.max(value, minValue) : value);\r\n return Math.min(Math.max(value, minValue), maxValue)\r\n};\r\nvar inRange = function(value, minValue, maxValue) {\r\n return value >= minValue && value <= maxValue\r\n};\r\n\r\nfunction getExponent(value) {\r\n return Math.abs(parseInt(value.toExponential().split(\"e\")[1]))\r\n}\r\n\r\nfunction getExponentialNotation(value) {\r\n var parts = value.toExponential().split(\"e\");\r\n var mantissa = parseFloat(parts[0]);\r\n var exponent = parseInt(parts[1]);\r\n return {\r\n exponent: exponent,\r\n mantissa: mantissa\r\n }\r\n}\r\n\r\nfunction multiplyInExponentialForm(value, exponentShift) {\r\n var exponentialNotation = getExponentialNotation(value);\r\n return parseFloat(\"\".concat(exponentialNotation.mantissa, \"e\").concat(exponentialNotation.exponent + exponentShift))\r\n}\r\n\r\nfunction _isEdgeBug() {\r\n return \"0.000300\" !== 3e-4.toPrecision(3)\r\n}\r\n\r\nfunction adjust(value, interval) {\r\n var precision = getPrecision(interval || 0) + 2;\r\n var separatedValue = value.toString().split(\".\");\r\n var sourceValue = value;\r\n var absValue = Math.abs(value);\r\n var separatedAdjustedValue;\r\n var isExponentValue = isExponential(value);\r\n var integerPart = absValue > 1 ? 10 : 0;\r\n if (1 === separatedValue.length) {\r\n return value\r\n }\r\n if (!isExponentValue) {\r\n if (isExponential(interval)) {\r\n precision = separatedValue[0].length + getExponent(interval)\r\n }\r\n value = absValue;\r\n value = value - Math.floor(value) + integerPart\r\n }\r\n precision = _isEdgeBug() && getExponent(value) > 6 || precision > 7 ? 15 : 7;\r\n if (!isExponentValue) {\r\n separatedAdjustedValue = parseFloat(value.toPrecision(precision)).toString().split(\".\");\r\n if (separatedAdjustedValue[0] === integerPart.toString()) {\r\n return parseFloat(separatedValue[0] + \".\" + separatedAdjustedValue[1])\r\n }\r\n }\r\n return parseFloat(sourceValue.toPrecision(precision))\r\n}\r\n\r\nfunction getPrecision(value) {\r\n var str = value.toString();\r\n if (str.indexOf(\".\") < 0) {\r\n return 0\r\n }\r\n var mantissa = str.split(\".\");\r\n var positionOfDelimiter = mantissa[1].indexOf(\"e\");\r\n return positionOfDelimiter >= 0 ? positionOfDelimiter : mantissa[1].length\r\n}\r\n\r\nfunction getRoot(x, n) {\r\n if (x < 0 && n % 2 !== 1) {\r\n return NaN\r\n }\r\n var y = Math.pow(Math.abs(x), 1 / n);\r\n return n % 2 === 1 && x < 0 ? -y : y\r\n}\r\n\r\nfunction solveCubicEquation(a, b, c, d) {\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n c = d;\r\n if (Math.abs(a) < 1e-8) {\r\n a = b;\r\n b = c;\r\n if (Math.abs(a) < 1e-8) {\r\n return []\r\n }\r\n return [-b / a]\r\n }\r\n var D2 = b * b - 4 * a * c;\r\n if (Math.abs(D2) < 1e-8) {\r\n return [-b / (2 * a)]\r\n } else if (D2 > 0) {\r\n return [(-b + Math.sqrt(D2)) / (2 * a), (-b - Math.sqrt(D2)) / (2 * a)]\r\n }\r\n return []\r\n }\r\n var p = (3 * a * c - b * b) / (3 * a * a);\r\n var q = (2 * b * b * b - 9 * a * b * c + 27 * a * a * d) / (27 * a * a * a);\r\n var roots;\r\n var u;\r\n if (Math.abs(p) < 1e-8) {\r\n roots = [getRoot(-q, 3)]\r\n } else if (Math.abs(q) < 1e-8) {\r\n roots = [0].concat(p < 0 ? [Math.sqrt(-p), -Math.sqrt(-p)] : [])\r\n } else {\r\n var D3 = q * q / 4 + p * p * p / 27;\r\n if (Math.abs(D3) < 1e-8) {\r\n roots = [-1.5 * q / p, 3 * q / p]\r\n } else if (D3 > 0) {\r\n u = getRoot(-q / 2 - Math.sqrt(D3), 3);\r\n roots = [u - p / (3 * u)]\r\n } else {\r\n u = 2 * Math.sqrt(-p / 3);\r\n var t = Math.acos(3 * q / p / u) / 3;\r\n var k = 2 * Math.PI / 3;\r\n roots = [u * Math.cos(t), u * Math.cos(t - k), u * Math.cos(t - 2 * k)]\r\n }\r\n }\r\n for (var i = 0; i < roots.length; i++) {\r\n roots[i] -= b / (3 * a)\r\n }\r\n return roots\r\n}\r\n\r\nfunction trunc(value) {\r\n return Math.trunc ? Math.trunc(value) : value > 0 ? Math.floor(value) : Math.ceil(value)\r\n}\r\n\r\nfunction getRemainderByDivision(dividend, divider, digitsCount) {\r\n if (divider === parseInt(divider)) {\r\n return dividend % divider\r\n }\r\n var quotient = roundFloatPart(dividend / divider, digitsCount);\r\n return (quotient - parseInt(quotient)) * divider\r\n}\r\n\r\nfunction getExponentLength(value) {\r\n var _valueString$split$;\r\n var valueString = value.toString();\r\n return (null === (_valueString$split$ = valueString.split(\".\")[1]) || void 0 === _valueString$split$ ? void 0 : _valueString$split$.length) || parseInt(valueString.split(\"e-\")[1]) || 0\r\n}\r\n\r\nfunction roundFloatPart(value) {\r\n var digitsCount = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : 0;\r\n return parseFloat(value.toFixed(digitsCount))\r\n}\r\nexport {\r\n sign,\r\n fitIntoRange,\r\n inRange,\r\n adjust,\r\n getPrecision,\r\n getExponent,\r\n getRoot,\r\n solveCubicEquation,\r\n trunc,\r\n roundFloatPart,\r\n getExponentLength,\r\n getRemainderByDivision,\r\n multiplyInExponentialForm\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/object.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isNumeric,\r\n isPlainObject,\r\n isObject\r\n} from \"./type\";\r\nimport variableWrapper from \"./variable_wrapper\";\r\nvar clone = function() {\r\n function Clone() {}\r\n return function(obj) {\r\n Clone.prototype = obj;\r\n return new Clone\r\n }\r\n}();\r\nvar orderEach = function(map, func) {\r\n var keys = [];\r\n var key;\r\n var i;\r\n for (key in map) {\r\n if (Object.prototype.hasOwnProperty.call(map, key)) {\r\n keys.push(key)\r\n }\r\n }\r\n keys.sort((function(x, y) {\r\n var isNumberX = isNumeric(x);\r\n var isNumberY = isNumeric(y);\r\n if (isNumberX && isNumberY) {\r\n return x - y\r\n }\r\n if (isNumberX && !isNumberY) {\r\n return -1\r\n }\r\n if (!isNumberX && isNumberY) {\r\n return 1\r\n }\r\n if (x < y) {\r\n return -1\r\n }\r\n if (x > y) {\r\n return 1\r\n }\r\n return 0\r\n }));\r\n for (i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n func(key, map[key])\r\n }\r\n};\r\nvar assignValueToProperty = function(target, property, value, assignByReference) {\r\n if (!assignByReference && variableWrapper.isWrapped(target[property])) {\r\n variableWrapper.assign(target[property], value)\r\n } else {\r\n target[property] = value\r\n }\r\n};\r\nvar deepExtendArraySafe = function deepExtendArraySafe(target, changes, extendComplexObject, assignByReference) {\r\n var prevValue;\r\n var newValue;\r\n for (var name in changes) {\r\n prevValue = target[name];\r\n newValue = changes[name];\r\n if (\"__proto__\" === name || \"constructor\" === name || target === newValue) {\r\n continue\r\n }\r\n if (isPlainObject(newValue)) {\r\n var goDeeper = extendComplexObject ? isObject(prevValue) : isPlainObject(prevValue);\r\n newValue = deepExtendArraySafe(goDeeper ? prevValue : {}, newValue, extendComplexObject, assignByReference)\r\n }\r\n if (void 0 !== newValue && prevValue !== newValue) {\r\n assignValueToProperty(target, name, newValue, assignByReference)\r\n }\r\n }\r\n return target\r\n};\r\nexport {\r\n clone,\r\n orderEach,\r\n deepExtendArraySafe\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/position.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport {\r\n isWindow\r\n} from \"../utils/type\";\r\nvar getDefaultAlignment = isRtlEnabled => {\r\n var rtlEnabled = null !== isRtlEnabled && void 0 !== isRtlEnabled ? isRtlEnabled : config().rtlEnabled;\r\n return rtlEnabled ? \"right\" : \"left\"\r\n};\r\nvar getBoundingRect = element => {\r\n if (isWindow(element)) {\r\n return {\r\n width: element.outerWidth,\r\n height: element.outerHeight\r\n }\r\n }\r\n return element.getBoundingClientRect()\r\n};\r\nexport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/public_component.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined\r\n} from \"./type\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nvar COMPONENT_NAMES_DATA_KEY = \"dxComponents\";\r\nvar ANONYMOUS_COMPONENT_DATA_KEY = \"dxPrivateComponent\";\r\nvar componentNames = new WeakMap;\r\nvar nextAnonymousComponent = 0;\r\nvar getName = function(componentClass, newName) {\r\n if (isDefined(newName)) {\r\n componentNames.set(componentClass, newName);\r\n return\r\n }\r\n if (!componentNames.has(componentClass)) {\r\n var generatedName = ANONYMOUS_COMPONENT_DATA_KEY + nextAnonymousComponent++;\r\n componentNames.set(componentClass, generatedName);\r\n return generatedName\r\n }\r\n return componentNames.get(componentClass)\r\n};\r\nexport function attachInstanceToElement($element, componentInstance, disposeFn) {\r\n var data = elementData($element.get(0));\r\n var name = getName(componentInstance.constructor);\r\n data[name] = componentInstance;\r\n if (disposeFn) {\r\n eventsEngine.one($element, removeEvent, (function() {\r\n disposeFn.call(componentInstance)\r\n }))\r\n }\r\n if (!data[COMPONENT_NAMES_DATA_KEY]) {\r\n data[COMPONENT_NAMES_DATA_KEY] = []\r\n }\r\n data[COMPONENT_NAMES_DATA_KEY].push(name)\r\n}\r\nexport function getInstanceByElement($element, componentClass) {\r\n var name = getName(componentClass);\r\n return elementData($element.get(0), name)\r\n}\r\nexport {\r\n getName as name\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/ready_callbacks.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport injector from \"./dependency_injector\";\r\nimport {\r\n hasWindow\r\n} from \"./window\";\r\nimport callOnce from \"./call_once\";\r\nvar callbacks = [];\r\nvar subscribeReady = callOnce(() => {\r\n var removeListener = domAdapter.listen(domAdapter.getDocument(), \"DOMContentLoaded\", () => {\r\n readyCallbacks.fire();\r\n removeListener()\r\n })\r\n});\r\nvar readyCallbacks = {\r\n add: callback => {\r\n var windowExists = hasWindow();\r\n if (windowExists && \"loading\" !== domAdapter.getReadyState()) {\r\n callback()\r\n } else {\r\n callbacks.push(callback);\r\n windowExists && subscribeReady()\r\n }\r\n },\r\n fire: () => {\r\n callbacks.forEach(callback => callback());\r\n callbacks = []\r\n }\r\n};\r\nexport default injector(readyCallbacks);\r\n","/**\r\n * DevExtreme (esm/core/utils/resize_callbacks.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"./window\";\r\nimport domAdapter from \"../dom_adapter\";\r\nimport Callbacks from \"./callbacks\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nimport callOnce from \"./call_once\";\r\nvar resizeCallbacks = function() {\r\n var prevSize;\r\n var callbacks = Callbacks();\r\n var originalCallbacksAdd = callbacks.add;\r\n var originalCallbacksRemove = callbacks.remove;\r\n if (!hasWindow()) {\r\n return callbacks\r\n }\r\n var formatSize = function() {\r\n var window = getWindow();\r\n return {\r\n width: window.innerWidth,\r\n height: window.innerHeight\r\n }\r\n };\r\n var handleResize = function() {\r\n var now = formatSize();\r\n if (now.width === prevSize.width && now.height === prevSize.height) {\r\n return\r\n }\r\n var changedDimension;\r\n if (now.width === prevSize.width) {\r\n changedDimension = \"height\"\r\n }\r\n if (now.height === prevSize.height) {\r\n changedDimension = \"width\"\r\n }\r\n prevSize = now;\r\n callbacks.fire(changedDimension)\r\n };\r\n var setPrevSize = callOnce((function() {\r\n prevSize = formatSize()\r\n }));\r\n var removeListener;\r\n callbacks.add = function() {\r\n var result = originalCallbacksAdd.apply(callbacks, arguments);\r\n setPrevSize();\r\n readyCallbacks.add((function() {\r\n if (!removeListener && callbacks.has()) {\r\n removeListener = domAdapter.listen(getWindow(), \"resize\", handleResize)\r\n }\r\n }));\r\n return result\r\n };\r\n callbacks.remove = function() {\r\n var result = originalCallbacksRemove.apply(callbacks, arguments);\r\n if (!callbacks.has() && removeListener) {\r\n removeListener();\r\n removeListener = void 0\r\n }\r\n return result\r\n };\r\n return callbacks\r\n}();\r\nexport default resizeCallbacks;\r\n","/**\r\n * DevExtreme (esm/core/utils/selection_filter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"./common\";\r\nimport {\r\n isString,\r\n isObject\r\n} from \"./type\";\r\nexport var SelectionFilterCreator = function(selectedItemKeys, isSelectAll) {\r\n this.getLocalFilter = function(keyGetter, equalKeys, equalByReference, keyExpr) {\r\n equalKeys = void 0 === equalKeys ? equalByValue : equalKeys;\r\n return functionFilter.bind(this, equalKeys, keyGetter, equalByReference, keyExpr)\r\n };\r\n this.getExpr = function(keyExpr) {\r\n if (!keyExpr) {\r\n return\r\n }\r\n var filterExpr;\r\n selectedItemKeys.forEach((function(key, index) {\r\n filterExpr = filterExpr || [];\r\n var filterExprPart;\r\n if (index > 0) {\r\n filterExpr.push(isSelectAll ? \"and\" : \"or\")\r\n }\r\n if (isString(keyExpr)) {\r\n filterExprPart = getFilterForPlainKey(keyExpr, key)\r\n } else {\r\n filterExprPart = function(keyExpr, itemKeyValue) {\r\n var filterExpr = [];\r\n for (var i = 0, length = keyExpr.length; i < length; i++) {\r\n var currentKeyExpr = keyExpr[i];\r\n var currentKeyValue = itemKeyValue && itemKeyValue[currentKeyExpr];\r\n var filterExprPart = getFilterForPlainKey(currentKeyExpr, currentKeyValue);\r\n if (!filterExprPart) {\r\n break\r\n }\r\n if (i > 0) {\r\n filterExpr.push(isSelectAll ? \"or\" : \"and\")\r\n }\r\n filterExpr.push(filterExprPart)\r\n }\r\n return filterExpr\r\n }(keyExpr, key)\r\n }\r\n filterExpr.push(filterExprPart)\r\n }));\r\n if (filterExpr && 1 === filterExpr.length) {\r\n filterExpr = filterExpr[0]\r\n }\r\n return filterExpr\r\n };\r\n this.getCombinedFilter = function(keyExpr, dataSourceFilter) {\r\n var filterExpr = this.getExpr(keyExpr);\r\n var combinedFilter = filterExpr;\r\n if (isSelectAll && dataSourceFilter) {\r\n if (filterExpr) {\r\n combinedFilter = [];\r\n combinedFilter.push(filterExpr);\r\n combinedFilter.push(dataSourceFilter)\r\n } else {\r\n combinedFilter = dataSourceFilter\r\n }\r\n }\r\n return combinedFilter\r\n };\r\n var selectedItemKeyHashesMap;\r\n var normalizeKeys = function(keys, keyOf, keyExpr) {\r\n return Array.isArray(keyExpr) ? keys.map(key => keyOf(key)) : keys\r\n };\r\n\r\n function functionFilter(equalKeys, keyOf, equalByReference, keyExpr, item) {\r\n var key = keyOf(item);\r\n var keyHash;\r\n var i;\r\n if (!equalByReference) {\r\n keyHash = getKeyHash(key);\r\n if (!isObject(keyHash)) {\r\n var selectedKeyHashesMap = function(keyOf, keyExpr) {\r\n if (!selectedItemKeyHashesMap) {\r\n selectedItemKeyHashesMap = {};\r\n var normalizedKeys = normalizeKeys(selectedItemKeys, keyOf, keyExpr);\r\n for (var i = 0; i < normalizedKeys.length; i++) {\r\n selectedItemKeyHashesMap[getKeyHash(normalizedKeys[i])] = true\r\n }\r\n }\r\n return selectedItemKeyHashesMap\r\n }(keyOf, keyExpr);\r\n if (selectedKeyHashesMap[keyHash]) {\r\n return !isSelectAll\r\n }\r\n return !!isSelectAll\r\n }\r\n }\r\n for (i = 0; i < selectedItemKeys.length; i++) {\r\n if (equalKeys(selectedItemKeys[i], key)) {\r\n return !isSelectAll\r\n }\r\n }\r\n return !!isSelectAll\r\n }\r\n\r\n function getFilterForPlainKey(keyExpr, keyValue) {\r\n if (void 0 === keyValue) {\r\n return\r\n }\r\n return [keyExpr, isSelectAll ? \"<>\" : \"=\", keyValue]\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/shadow_dom.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar DX_RULE_PREFIX = \"dx-\";\r\nvar ownerDocumentStyleSheet = null;\r\n\r\nfunction createConstructedStyleSheet(rootNode) {\r\n try {\r\n return new CSSStyleSheet\r\n } catch (err) {\r\n var styleElement = rootNode.ownerDocument.createElement(\"style\");\r\n rootNode.appendChild(styleElement);\r\n return styleElement.sheet\r\n }\r\n}\r\n\r\nfunction processRules(targetStyleSheet, styleSheets, needApplyAllStyles) {\r\n for (var i = 0; i < styleSheets.length; i++) {\r\n var sheet = styleSheets[i];\r\n try {\r\n for (var j = 0; j < sheet.cssRules.length; j++) {\r\n insertRule(targetStyleSheet, sheet.cssRules[j], needApplyAllStyles)\r\n }\r\n } catch (err) {}\r\n }\r\n}\r\n\r\nfunction insertRule(targetStyleSheet, rule, needApplyAllStyles) {\r\n var _rule$selectorText, _rule$cssRules, _rule$cssRules$, _rule$cssRules$$selec, _rule$name, _rule$style;\r\n var isDxRule = needApplyAllStyles || (null === (_rule$selectorText = rule.selectorText) || void 0 === _rule$selectorText ? void 0 : _rule$selectorText.includes(DX_RULE_PREFIX)) || (null === (_rule$cssRules = rule.cssRules) || void 0 === _rule$cssRules ? void 0 : null === (_rule$cssRules$ = _rule$cssRules[0]) || void 0 === _rule$cssRules$ ? void 0 : null === (_rule$cssRules$$selec = _rule$cssRules$.selectorText) || void 0 === _rule$cssRules$$selec ? void 0 : _rule$cssRules$$selec.includes(DX_RULE_PREFIX)) || (null === (_rule$name = rule.name) || void 0 === _rule$name ? void 0 : _rule$name.startsWith(DX_RULE_PREFIX)) || \"DXIcons\" === (null === (_rule$style = rule.style) || void 0 === _rule$style ? void 0 : _rule$style.fontFamily);\r\n if (isDxRule) {\r\n targetStyleSheet.insertRule(rule.cssText, targetStyleSheet.cssRules.length)\r\n }\r\n}\r\nexport function addShadowDomStyles($element) {\r\n var _el$getRootNode;\r\n var el = $element.get(0);\r\n var root = null === (_el$getRootNode = el.getRootNode) || void 0 === _el$getRootNode ? void 0 : _el$getRootNode.call(el);\r\n if (!(null !== root && void 0 !== root && root.host)) {\r\n return\r\n }\r\n if (!ownerDocumentStyleSheet) {\r\n ownerDocumentStyleSheet = createConstructedStyleSheet(root);\r\n processRules(ownerDocumentStyleSheet, el.ownerDocument.styleSheets, false)\r\n }\r\n var currentShadowDomStyleSheet = createConstructedStyleSheet(root);\r\n processRules(currentShadowDomStyleSheet, root.styleSheets, true);\r\n root.adoptedStyleSheets = [ownerDocumentStyleSheet, currentShadowDomStyleSheet]\r\n}\r\n\r\nfunction isPositionInElementRectangle(element, x, y) {\r\n var rect = element.getBoundingClientRect();\r\n return rect && x >= rect.left && x < rect.right && y >= rect.top && y < rect.bottom\r\n}\r\n\r\nfunction createQueue() {\r\n var shiftIndex = 0;\r\n var items = [];\r\n return {\r\n push(item) {\r\n items.push(item);\r\n return this\r\n },\r\n shift() {\r\n shiftIndex++;\r\n return items[shiftIndex - 1]\r\n },\r\n get length() {\r\n return items.length - shiftIndex\r\n },\r\n get items() {\r\n return items\r\n }\r\n }\r\n}\r\nexport function getShadowElementsFromPoint(x, y, root) {\r\n var elementQueue = createQueue().push(root);\r\n while (elementQueue.length) {\r\n var el = elementQueue.shift();\r\n for (var i = 0; i < el.childNodes.length; i++) {\r\n var childNode = el.childNodes[i];\r\n if (childNode.nodeType === Node.ELEMENT_NODE && isPositionInElementRectangle(childNode, x, y) && \"none\" !== getComputedStyle(childNode).pointerEvents) {\r\n elementQueue.push(childNode)\r\n }\r\n }\r\n }\r\n var result = elementQueue.items.reverse();\r\n result.pop();\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/size.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isWindow,\r\n isString,\r\n isNumeric,\r\n isRenderer\r\n} from \"../utils/type\";\r\nvar window = getWindow();\r\nvar SPECIAL_HEIGHT_VALUES = [\"auto\", \"none\", \"inherit\", \"initial\"];\r\nvar getSizeByStyles = function(elementStyles, styles) {\r\n var result = 0;\r\n styles.forEach((function(style) {\r\n result += parseFloat(elementStyles[style]) || 0\r\n }));\r\n return result\r\n};\r\nexport var getElementBoxParams = function(name, elementStyles) {\r\n var beforeName = \"width\" === name ? \"Left\" : \"Top\";\r\n var afterName = \"width\" === name ? \"Right\" : \"Bottom\";\r\n return {\r\n padding: getSizeByStyles(elementStyles, [\"padding\" + beforeName, \"padding\" + afterName]),\r\n border: getSizeByStyles(elementStyles, [\"border\" + beforeName + \"Width\", \"border\" + afterName + \"Width\"]),\r\n margin: getSizeByStyles(elementStyles, [\"margin\" + beforeName, \"margin\" + afterName])\r\n }\r\n};\r\nvar getElementComputedStyle = function(element) {\r\n var _element$ownerDocumen;\r\n var view = (null === element || void 0 === element ? void 0 : null === (_element$ownerDocumen = element.ownerDocument) || void 0 === _element$ownerDocumen ? void 0 : _element$ownerDocumen.defaultView) || window;\r\n return view.getComputedStyle && view.getComputedStyle(element)\r\n};\r\nvar getCSSProperty = function(element, styles, name, defaultValue) {\r\n var _element$style;\r\n return (null === styles || void 0 === styles ? void 0 : styles[name]) || (null === (_element$style = element.style) || void 0 === _element$style ? void 0 : _element$style[name]) || defaultValue\r\n};\r\nvar boxIndices = {\r\n content: 0,\r\n padding: 1,\r\n border: 2,\r\n margin: 3,\r\n \"content-box\": 0,\r\n \"border-box\": 2\r\n};\r\nvar dimensionComponents = {\r\n width: [\"left\", \"right\"],\r\n height: [\"top\", \"bottom\"]\r\n};\r\n\r\nfunction getComponentThickness(elem, dimension, component, styles) {\r\n var get = (elem, styles, field) => parseFloat(getCSSProperty(elem, styles, field, \"0\")) || 0;\r\n var suffix = \"border\" === component ? \"-width\" : \"\";\r\n return get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][0]).concat(suffix)) + get(elem, styles, \"\".concat(component, \"-\").concat(dimensionComponents[dimension][1]).concat(suffix))\r\n}\r\nexport var getSize = function(element, dimension, box) {\r\n var offsetFieldName = \"width\" === dimension ? \"offsetWidth\" : \"offsetHeight\";\r\n var styles = getElementComputedStyle(element);\r\n var result = getCSSProperty(element, styles, dimension);\r\n if (\"\" === result || \"auto\" === result) {\r\n result = element[offsetFieldName]\r\n }\r\n result = parseFloat(result) || 0;\r\n var currentBox = getCSSProperty(element, styles, \"boxSizing\", \"content-box\");\r\n var targetBox = box || currentBox;\r\n var targetBoxIndex = boxIndices[targetBox];\r\n var currentBoxIndex = boxIndices[currentBox];\r\n if (void 0 === targetBoxIndex || void 0 === currentBoxIndex) {\r\n throw new Error\r\n }\r\n if (currentBoxIndex === targetBoxIndex) {\r\n return result\r\n }\r\n var coeff = Math.sign(targetBoxIndex - currentBoxIndex);\r\n var padding = false;\r\n var border = false;\r\n var margin = false;\r\n var scrollThickness = false;\r\n if (1 === coeff) {\r\n targetBoxIndex += 1;\r\n currentBoxIndex += 1\r\n }\r\n for (var boxPart = currentBoxIndex; boxPart !== targetBoxIndex; boxPart += coeff) {\r\n switch (boxPart) {\r\n case boxIndices.content:\r\n break;\r\n case boxIndices.padding:\r\n padding = coeff * getComponentThickness(element, dimension, \"padding\", styles);\r\n break;\r\n case boxIndices.border:\r\n border = coeff * getComponentThickness(element, dimension, \"border\", styles);\r\n break;\r\n case boxIndices.margin:\r\n margin = coeff * getComponentThickness(element, dimension, \"margin\", styles)\r\n }\r\n }\r\n if (padding || border) {\r\n var paddingAndBorder = (false === padding ? coeff * getComponentThickness(element, dimension, \"padding\", styles) : padding) + (false === border ? coeff * getComponentThickness(element, dimension, \"border\", styles) : border);\r\n scrollThickness = coeff * Math.max(0, Math.floor(element[offsetFieldName] - result - coeff * paddingAndBorder)) || 0\r\n }\r\n return result + margin + padding + border + scrollThickness\r\n};\r\nvar getContainerHeight = function(container) {\r\n return isWindow(container) ? container.innerHeight : container.offsetHeight\r\n};\r\nexport var parseHeight = function(value, container) {\r\n if (value.indexOf(\"px\") > 0) {\r\n value = parseInt(value.replace(\"px\", \"\"))\r\n } else if (value.indexOf(\"%\") > 0) {\r\n value = parseInt(value.replace(\"%\", \"\")) * getContainerHeight(container) / 100\r\n } else if (!isNaN(value)) {\r\n value = parseInt(value)\r\n } else if (value.indexOf(\"vh\") > 0) {\r\n value = window.innerHeight / 100 * parseInt(value.replace(\"vh\", \"\"))\r\n }\r\n return value\r\n};\r\nvar getHeightWithOffset = function(value, offset, container) {\r\n if (!value) {\r\n return null\r\n }\r\n if (SPECIAL_HEIGHT_VALUES.indexOf(value) > -1) {\r\n return offset ? null : value\r\n }\r\n if (isString(value)) {\r\n value = parseHeight(value, container)\r\n }\r\n if (isNumeric(value)) {\r\n return Math.max(0, value + offset)\r\n }\r\n var operationString = offset < 0 ? \" - \" : \" \";\r\n return \"calc(\" + value + operationString + Math.abs(offset) + \"px)\"\r\n};\r\nexport var addOffsetToMaxHeight = function(value, offset, container) {\r\n var maxHeight = getHeightWithOffset(value, offset, container);\r\n return null !== maxHeight ? maxHeight : \"none\"\r\n};\r\nexport var addOffsetToMinHeight = function(value, offset, container) {\r\n var minHeight = getHeightWithOffset(value, offset, container);\r\n return null !== minHeight ? minHeight : 0\r\n};\r\nexport var getVerticalOffsets = function(element, withMargins) {\r\n if (!element) {\r\n return 0\r\n }\r\n var boxParams = getElementBoxParams(\"height\", window.getComputedStyle(element));\r\n return boxParams.padding + boxParams.border + (withMargins ? boxParams.margin : 0)\r\n};\r\nexport var getVisibleHeight = function(element) {\r\n if (element) {\r\n var boundingClientRect = element.getBoundingClientRect();\r\n if (boundingClientRect.height) {\r\n return boundingClientRect.height\r\n }\r\n }\r\n return 0\r\n};\r\nexport var implementationsMap = {\r\n getWidth: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return elementSizeHelper(\"width\", ...args)\r\n },\r\n setWidth: function() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return elementSizeHelper(\"width\", ...args)\r\n },\r\n getHeight: function() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return elementSizeHelper(\"height\", ...args)\r\n },\r\n setHeight: function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n return elementSizeHelper(\"height\", ...args)\r\n },\r\n getOuterWidth: function() {\r\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\r\n args[_key5] = arguments[_key5]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n setOuterWidth: function() {\r\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\r\n args[_key6] = arguments[_key6]\r\n }\r\n return elementSizeHelper(\"outerWidth\", ...args)\r\n },\r\n getOuterHeight: function() {\r\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\r\n args[_key7] = arguments[_key7]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n setOuterHeight: function() {\r\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\r\n args[_key8] = arguments[_key8]\r\n }\r\n return elementSizeHelper(\"outerHeight\", ...args)\r\n },\r\n getInnerWidth: function() {\r\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\r\n args[_key9] = arguments[_key9]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n setInnerWidth: function() {\r\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\r\n args[_key10] = arguments[_key10]\r\n }\r\n return elementSizeHelper(\"innerWidth\", ...args)\r\n },\r\n getInnerHeight: function() {\r\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\r\n args[_key11] = arguments[_key11]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n },\r\n setInnerHeight: function() {\r\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\r\n args[_key12] = arguments[_key12]\r\n }\r\n return elementSizeHelper(\"innerHeight\", ...args)\r\n }\r\n};\r\n\r\nfunction elementSizeHelper(sizeProperty, el, value) {\r\n return 2 === arguments.length ? elementSize(el, sizeProperty) : elementSize(el, sizeProperty, value)\r\n}\r\nexport var getWidth = el => implementationsMap.getWidth(el);\r\nexport var setWidth = (el, value) => implementationsMap.setWidth(el, value);\r\nexport var getHeight = el => implementationsMap.getHeight(el);\r\nexport var setHeight = (el, value) => implementationsMap.setHeight(el, value);\r\nexport var getOuterWidth = (el, includeMargin) => implementationsMap.getOuterWidth(el, includeMargin || false);\r\nexport var setOuterWidth = (el, value) => implementationsMap.setOuterWidth(el, value);\r\nexport var getOuterHeight = (el, includeMargin) => implementationsMap.getOuterHeight(el, includeMargin || false);\r\nexport var setOuterHeight = (el, value) => implementationsMap.setOuterHeight(el, value);\r\nexport var getInnerWidth = el => implementationsMap.getInnerWidth(el);\r\nexport var setInnerWidth = (el, value) => implementationsMap.setInnerWidth(el, value);\r\nexport var getInnerHeight = el => implementationsMap.getInnerHeight(el);\r\nexport var setInnerHeight = (el, value) => implementationsMap.setInnerHeight(el, value);\r\nvar elementSize = function elementSize(el, sizeProperty, value) {\r\n var partialName = sizeProperty.toLowerCase().indexOf(\"width\") >= 0 ? \"Width\" : \"Height\";\r\n var propName = partialName.toLowerCase();\r\n var isOuter = 0 === sizeProperty.indexOf(\"outer\");\r\n var isInner = 0 === sizeProperty.indexOf(\"inner\");\r\n var isGetter = 2 === arguments.length || \"boolean\" === typeof value;\r\n if (isRenderer(el)) {\r\n if (el.length > 1 && !isGetter) {\r\n for (var i = 0; i < el.length; i++) {\r\n elementSize(el[i], sizeProperty, value)\r\n }\r\n return\r\n }\r\n el = el[0]\r\n }\r\n if (!el) {\r\n return\r\n }\r\n if (isWindow(el)) {\r\n return isOuter ? el[\"inner\" + partialName] : domAdapter.getDocumentElement()[\"client\" + partialName]\r\n }\r\n if (domAdapter.isDocument(el)) {\r\n var documentElement = domAdapter.getDocumentElement();\r\n var body = domAdapter.getBody();\r\n return Math.max(body[\"scroll\" + partialName], body[\"offset\" + partialName], documentElement[\"scroll\" + partialName], documentElement[\"offset\" + partialName], documentElement[\"client\" + partialName])\r\n }\r\n if (isGetter) {\r\n var box = \"content\";\r\n if (isOuter) {\r\n box = value ? \"margin\" : \"border\"\r\n }\r\n if (isInner) {\r\n box = \"padding\"\r\n }\r\n return getSize(el, propName, box)\r\n }\r\n if (isNumeric(value)) {\r\n var elementStyles = getElementComputedStyle(el);\r\n var sizeAdjustment = getElementBoxParams(propName, elementStyles);\r\n var isBorderBox = \"border-box\" === elementStyles.boxSizing;\r\n value = Number(value);\r\n if (isOuter) {\r\n value -= isBorderBox ? 0 : sizeAdjustment.border + sizeAdjustment.padding\r\n } else if (isInner) {\r\n value += isBorderBox ? sizeAdjustment.border : -sizeAdjustment.padding\r\n } else if (isBorderBox) {\r\n value += sizeAdjustment.border + sizeAdjustment.padding\r\n }\r\n }\r\n value += isNumeric(value) ? \"px\" : \"\";\r\n domAdapter.setStyle(el, propName, value);\r\n return null\r\n};\r\nexport var getWindowByElement = el => isWindow(el) ? el : el.defaultView;\r\nexport var getOffset = el => {\r\n if (!el.getClientRects().length) {\r\n return {\r\n top: 0,\r\n left: 0\r\n }\r\n }\r\n var rect = el.getBoundingClientRect();\r\n var win = getWindowByElement(el.ownerDocument);\r\n var docElem = el.ownerDocument.documentElement;\r\n return {\r\n top: rect.top + win.pageYOffset - docElem.clientTop,\r\n left: rect.left + win.pageXOffset - docElem.clientLeft\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/storage.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nvar getSessionStorage = function() {\r\n var sessionStorage;\r\n try {\r\n sessionStorage = window.sessionStorage\r\n } catch (e) {}\r\n return sessionStorage\r\n};\r\nexport {\r\n getSessionStorage as sessionStorage\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/string.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"./type\";\r\nexport var encodeHtml = function() {\r\n var encodeRegExp = [new RegExp(\"&\", \"g\"), new RegExp('\"', \"g\"), new RegExp(\"'\", \"g\"), new RegExp(\"<\", \"g\"), new RegExp(\">\", \"g\")];\r\n return function(str) {\r\n return String(str).replace(encodeRegExp[0], \"&\").replace(encodeRegExp[1], \""\").replace(encodeRegExp[2], \"'\").replace(encodeRegExp[3], \"<\").replace(encodeRegExp[4], \">\")\r\n }\r\n}();\r\nvar splitQuad = function(raw) {\r\n switch (typeof raw) {\r\n case \"string\":\r\n return raw.split(/\\s+/, 4);\r\n case \"object\":\r\n return [raw.x || raw.h || raw.left, raw.y || raw.v || raw.top, raw.x || raw.h || raw.right, raw.y || raw.v || raw.bottom];\r\n case \"number\":\r\n return [raw];\r\n default:\r\n return raw\r\n }\r\n};\r\nexport var quadToObject = function(raw) {\r\n var quad = splitQuad(raw);\r\n var left = parseInt(quad && quad[0], 10);\r\n var top = parseInt(quad && quad[1], 10);\r\n var right = parseInt(quad && quad[2], 10);\r\n var bottom = parseInt(quad && quad[3], 10);\r\n if (!isFinite(left)) {\r\n left = 0\r\n }\r\n if (!isFinite(top)) {\r\n top = left\r\n }\r\n if (!isFinite(right)) {\r\n right = left\r\n }\r\n if (!isFinite(bottom)) {\r\n bottom = top\r\n }\r\n return {\r\n top: top,\r\n right: right,\r\n bottom: bottom,\r\n left: left\r\n }\r\n};\r\nexport function format(template) {\r\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\r\n values[_key - 1] = arguments[_key]\r\n }\r\n if (isFunction(template)) {\r\n return template(...values)\r\n }\r\n values.forEach((value, index) => {\r\n if (isString(value)) {\r\n value = value.replace(/\\$/g, \"$$$$\")\r\n }\r\n var placeholderReg = new RegExp(\"\\\\{\" + index + \"\\\\}\", \"gm\");\r\n template = template.replace(placeholderReg, value)\r\n });\r\n return template\r\n}\r\nexport var replaceAll = function(text, searchToken, replacementToken) {\r\n return text.replace(new RegExp(\"(\" + (str = searchToken, (str + \"\").replace(/([+*?.[^\\]$(){}><|=!:])/g, \"\\\\$1\")) + \")\", \"gi\"), replacementToken);\r\n var str\r\n};\r\nexport var isEmpty = function() {\r\n var SPACE_REGEXP = /\\s/g;\r\n return function(text) {\r\n return !text || !text.replace(SPACE_REGEXP, \"\")\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/core/utils/style.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n camelize\r\n} from \"./inflector\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n isNumeric,\r\n isString\r\n} from \"./type\";\r\nimport domAdapter from \"../dom_adapter\";\r\nvar jsPrefixes = [\"\", \"Webkit\", \"Moz\", \"O\", \"Ms\"];\r\nvar cssPrefixes = {\r\n \"\": \"\",\r\n Webkit: \"-webkit-\",\r\n Moz: \"-moz-\",\r\n O: \"-o-\",\r\n ms: \"-ms-\"\r\n};\r\nvar getStyles = callOnce((function() {\r\n return domAdapter.createElement(\"dx\").style\r\n}));\r\nvar forEachPrefixes = function(prop, callBack) {\r\n prop = camelize(prop, true);\r\n var result;\r\n for (var i = 0, cssPrefixesCount = jsPrefixes.length; i < cssPrefixesCount; i++) {\r\n var jsPrefix = jsPrefixes[i];\r\n var prefixedProp = jsPrefix + prop;\r\n var lowerPrefixedProp = camelize(prefixedProp);\r\n result = callBack(lowerPrefixedProp, jsPrefix);\r\n if (void 0 === result) {\r\n result = callBack(prefixedProp, jsPrefix)\r\n }\r\n if (void 0 !== result) {\r\n break\r\n }\r\n }\r\n return result || \"\"\r\n};\r\nvar styleProp = function(name) {\r\n if (name in getStyles()) {\r\n return name\r\n }\r\n var originalName = name;\r\n name = name.charAt(0).toUpperCase() + name.substr(1);\r\n for (var i = 1; i < jsPrefixes.length; i++) {\r\n var prefixedProp = jsPrefixes[i].toLowerCase() + name;\r\n if (prefixedProp in getStyles()) {\r\n return prefixedProp\r\n }\r\n }\r\n return originalName\r\n};\r\nvar stylePropPrefix = function(prop) {\r\n return forEachPrefixes(prop, (function(specific, jsPrefix) {\r\n if (specific in getStyles()) {\r\n return cssPrefixes[jsPrefix]\r\n }\r\n }))\r\n};\r\nvar pxExceptions = [\"fillOpacity\", \"columnCount\", \"flexGrow\", \"flexShrink\", \"fontWeight\", \"lineHeight\", \"opacity\", \"zIndex\", \"zoom\"];\r\nvar parsePixelValue = function(value) {\r\n if (isNumeric(value)) {\r\n return value\r\n } else if (isString(value)) {\r\n return Number(value.replace(\"px\", \"\"))\r\n }\r\n return NaN\r\n};\r\nvar normalizeStyleProp = function(prop, value) {\r\n if (isNumeric(value) && -1 === pxExceptions.indexOf(prop)) {\r\n value += \"px\"\r\n }\r\n return value\r\n};\r\nvar setDimensionProperty = function(elements, propertyName, value) {\r\n if (elements) {\r\n value = isNumeric(value) ? value += \"px\" : value;\r\n for (var i = 0; i < elements.length; ++i) {\r\n elements[i].style[propertyName] = value\r\n }\r\n }\r\n};\r\nvar setWidth = function(elements, value) {\r\n setDimensionProperty(elements, \"width\", value)\r\n};\r\nvar setHeight = function(elements, value) {\r\n setDimensionProperty(elements, \"height\", value)\r\n};\r\nexport {\r\n styleProp,\r\n stylePropPrefix,\r\n normalizeStyleProp,\r\n parsePixelValue,\r\n setWidth,\r\n setHeight\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/support.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nimport callOnce from \"./call_once\";\r\nimport {\r\n getNavigator,\r\n hasProperty\r\n} from \"./window\";\r\nimport devices from \"../devices\";\r\nimport {\r\n stylePropPrefix,\r\n styleProp\r\n} from \"./style\";\r\nvar {\r\n maxTouchPoints: maxTouchPoints\r\n} = getNavigator();\r\nvar transitionEndEventNames = {\r\n webkitTransition: \"webkitTransitionEnd\",\r\n MozTransition: \"transitionend\",\r\n OTransition: \"oTransitionEnd\",\r\n transition: \"transitionend\"\r\n};\r\nvar supportProp = function(prop) {\r\n return !!styleProp(prop)\r\n};\r\nvar isNativeScrollingSupported = function() {\r\n var {\r\n platform: platform,\r\n mac: isMac\r\n } = devices.real();\r\n var isNativeScrollDevice = \"ios\" === platform || \"android\" === platform || isMac;\r\n return isNativeScrollDevice\r\n};\r\nvar inputType = function(type) {\r\n if (\"text\" === type) {\r\n return true\r\n }\r\n var input = domAdapter.createElement(\"input\");\r\n try {\r\n input.setAttribute(\"type\", type);\r\n input.value = \"wrongValue\";\r\n return !input.value\r\n } catch (e) {\r\n return false\r\n }\r\n};\r\nvar detectTouchEvents = function(hasWindowProperty, maxTouchPoints) {\r\n return (hasWindowProperty(\"ontouchstart\") || !!maxTouchPoints) && !hasWindowProperty(\"callPhantom\")\r\n};\r\nvar detectPointerEvent = function(hasWindowProperty) {\r\n return hasWindowProperty(\"PointerEvent\")\r\n};\r\nvar touchEvents = detectTouchEvents(hasProperty, maxTouchPoints);\r\nvar pointerEvents = detectPointerEvent(hasProperty);\r\nvar touchPointersPresent = !!maxTouchPoints;\r\nexport {\r\n touchEvents,\r\n pointerEvents,\r\n styleProp,\r\n stylePropPrefix,\r\n supportProp,\r\n inputType\r\n};\r\nexport var touch = touchEvents || pointerEvents && touchPointersPresent;\r\nexport var transition = callOnce((function() {\r\n return supportProp(\"transition\")\r\n}));\r\nexport var transitionEndEventName = callOnce((function() {\r\n return transitionEndEventNames[styleProp(\"transition\")]\r\n}));\r\nexport var animation = callOnce((function() {\r\n return supportProp(\"animation\")\r\n}));\r\nexport var nativeScrolling = isNativeScrollingSupported();\r\n","/**\r\n * DevExtreme (esm/core/templates/template_engine_registry.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../utils/type\";\r\nimport errors from \"../errors\";\r\nvar templateEngines = {};\r\nvar currentTemplateEngine;\r\nexport function registerTemplateEngine(name, templateEngine) {\r\n templateEngines[name] = templateEngine\r\n}\r\nexport function setTemplateEngine(templateEngine) {\r\n if (isString(templateEngine)) {\r\n currentTemplateEngine = templateEngines[templateEngine];\r\n if (!currentTemplateEngine) {\r\n throw errors.Error(\"E0020\", templateEngine)\r\n }\r\n } else {\r\n currentTemplateEngine = templateEngine\r\n }\r\n}\r\nexport function getCurrentTemplateEngine() {\r\n return currentTemplateEngine\r\n}\r\n","/**\r\n * DevExtreme (esm/core/templates/template_engines.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extractTemplateMarkup\r\n} from \"../utils/dom\";\r\nimport {\r\n registerTemplateEngine\r\n} from \"./template_engine_registry\";\r\nregisterTemplateEngine(\"jquery-tmpl\", {\r\n compile: element => extractTemplateMarkup(element),\r\n render: (template, data) => jQuery.tmpl(template, data)\r\n});\r\nregisterTemplateEngine(\"jsrender\", {\r\n compile: element => (jQuery ? jQuery : jsrender).templates(extractTemplateMarkup(element)),\r\n render: (template, data) => template.render(data)\r\n});\r\nregisterTemplateEngine(\"mustache\", {\r\n compile: element => extractTemplateMarkup(element),\r\n render: (template, data) => Mustache.render(template, data)\r\n});\r\nregisterTemplateEngine(\"hogan\", {\r\n compile: element => Hogan.compile(extractTemplateMarkup(element)),\r\n render: (template, data) => template.render(data)\r\n});\r\nregisterTemplateEngine(\"underscore\", {\r\n compile: element => _.template(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\nregisterTemplateEngine(\"handlebars\", {\r\n compile: element => Handlebars.compile(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\nregisterTemplateEngine(\"doT\", {\r\n compile: element => doT.template(extractTemplateMarkup(element)),\r\n render: (template, data) => template(data)\r\n});\r\n","/**\r\n * DevExtreme (esm/core/templates/template.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport {\r\n TemplateBase\r\n} from \"./template_base\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"../utils/dom\";\r\nimport {\r\n getCurrentTemplateEngine,\r\n registerTemplateEngine,\r\n setTemplateEngine\r\n} from \"./template_engine_registry\";\r\nimport \"./template_engines\";\r\nregisterTemplateEngine(\"default\", {\r\n compile: element => normalizeTemplateElement(element),\r\n render: (template, model, index) => template.clone()\r\n});\r\nsetTemplateEngine(\"default\");\r\nexport class Template extends TemplateBase {\r\n constructor(element) {\r\n super();\r\n this._element = element\r\n }\r\n _renderCore(options) {\r\n var transclude = options.transclude;\r\n if (!transclude && !this._compiledTemplate) {\r\n this._compiledTemplate = getCurrentTemplateEngine().compile(this._element)\r\n }\r\n return $(\"<div>\").append(transclude ? this._element : getCurrentTemplateEngine().render(this._compiledTemplate, options.model, options.index)).contents()\r\n }\r\n source() {\r\n return $(this._element).clone()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/template_manager.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport config from \"../config\";\r\nimport devices from \"../devices\";\r\nimport Errors from \"../errors\";\r\nimport $ from \"../renderer\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../templates/child_default_template\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../templates/empty_template\";\r\nimport {\r\n Template\r\n} from \"../templates/template\";\r\nimport {\r\n TemplateBase\r\n} from \"../templates/template_base\";\r\nimport {\r\n groupBy\r\n} from \"./array\";\r\nimport {\r\n findBestMatches\r\n} from \"./common\";\r\nimport {\r\n normalizeTemplateElement\r\n} from \"./dom\";\r\nimport {\r\n extend\r\n} from \"./extend\";\r\nimport {\r\n isFunction,\r\n isRenderer\r\n} from \"./type\";\r\nexport var findTemplates = (element, name) => {\r\n var templates = $(element).contents().filter(\"[\".concat(\"data-options\", '*=\"').concat(name, '\"]'));\r\n return [].slice.call(templates).map(element => {\r\n var optionsString = $(element).attr(\"data-options\") || \"\";\r\n return {\r\n element: element,\r\n options: config().optionsParser(optionsString)[name]\r\n }\r\n }).filter(template => !!template.options)\r\n};\r\nexport var suitableTemplatesByName = rawTemplates => {\r\n var templatesMap = groupBy(rawTemplates, template => template.options.name);\r\n if (templatesMap[void 0]) {\r\n throw Errors.Error(\"E0023\")\r\n }\r\n var result = {};\r\n Object.keys(templatesMap).forEach(name => {\r\n var _findBestMatches$;\r\n var suitableTemplate = null === (_findBestMatches$ = findBestMatches(devices.current(), templatesMap[name], template => template.options)[0]) || void 0 === _findBestMatches$ ? void 0 : _findBestMatches$.element;\r\n if (suitableTemplate) {\r\n result[name] = suitableTemplate\r\n }\r\n });\r\n return result\r\n};\r\nexport var addOneRenderedCall = template => {\r\n var render = template.render.bind(template);\r\n return extend({}, template, {\r\n render(options) {\r\n var templateResult = render(options);\r\n options && options.onRendered && options.onRendered();\r\n return templateResult\r\n }\r\n })\r\n};\r\nexport var getNormalizedTemplateArgs = options => {\r\n var args = [];\r\n if (\"model\" in options) {\r\n args.push(options.model)\r\n }\r\n if (\"index\" in options) {\r\n args.push(options.index)\r\n }\r\n args.push(options.container);\r\n return args\r\n};\r\nexport var validateTemplateSource = templateSource => \"string\" === typeof templateSource ? normalizeTemplateElement(templateSource) : templateSource;\r\nexport var templateKey = templateSource => isRenderer(templateSource) && templateSource[0] || templateSource;\r\nexport var defaultCreateElement = element => new Template(element);\r\nexport var acquireIntegrationTemplate = (templateSource, templates, isAsyncTemplate, skipTemplates) => {\r\n var integrationTemplate = null;\r\n if (!skipTemplates || -1 === skipTemplates.indexOf(templateSource)) {\r\n integrationTemplate = templates[templateSource];\r\n if (integrationTemplate && !(integrationTemplate instanceof TemplateBase) && !isAsyncTemplate) {\r\n integrationTemplate = addOneRenderedCall(integrationTemplate)\r\n }\r\n }\r\n return integrationTemplate\r\n};\r\nexport var acquireTemplate = (templateSource, createTemplate, templates, isAsyncTemplate, skipTemplates, defaultTemplates) => {\r\n if (null == templateSource) {\r\n return new EmptyTemplate\r\n }\r\n if (templateSource instanceof ChildDefaultTemplate) {\r\n return defaultTemplates[templateSource.name]\r\n }\r\n if (templateSource instanceof TemplateBase) {\r\n return templateSource\r\n }\r\n if (isFunction(templateSource.render) && !isRenderer(templateSource)) {\r\n return isAsyncTemplate ? templateSource : addOneRenderedCall(templateSource)\r\n }\r\n if (templateSource.nodeType || isRenderer(templateSource)) {\r\n return createTemplate($(templateSource))\r\n }\r\n return acquireIntegrationTemplate(templateSource, templates, isAsyncTemplate, skipTemplates) || defaultTemplates[templateSource] || createTemplate(templateSource)\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/type.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar types = {\r\n \"[object Array]\": \"array\",\r\n \"[object Date]\": \"date\",\r\n \"[object Object]\": \"object\",\r\n \"[object String]\": \"string\",\r\n \"[object Null]\": \"null\"\r\n};\r\nvar type = function(object) {\r\n var typeOfObject = Object.prototype.toString.call(object);\r\n return \"object\" === typeof object ? types[typeOfObject] || \"object\" : typeof object\r\n};\r\nvar isBoolean = function(object) {\r\n return \"boolean\" === typeof object\r\n};\r\nvar isExponential = function(value) {\r\n return isNumeric(value) && -1 !== value.toString().indexOf(\"e\")\r\n};\r\nvar isDate = function(object) {\r\n return \"date\" === type(object)\r\n};\r\nvar isDefined = function(object) {\r\n return null !== object && void 0 !== object\r\n};\r\nvar isFunction = function(object) {\r\n return \"function\" === typeof object\r\n};\r\nvar isString = function(object) {\r\n return \"string\" === typeof object\r\n};\r\nvar isNumeric = function(object) {\r\n return \"number\" === typeof object && isFinite(object) || !isNaN(object - parseFloat(object))\r\n};\r\nvar isObject = function(object) {\r\n return \"object\" === type(object)\r\n};\r\nvar isEmptyObject = function(object) {\r\n var property;\r\n for (property in object) {\r\n return false\r\n }\r\n return true\r\n};\r\nvar isPlainObject = function(object) {\r\n if (!object || \"[object Object]\" !== Object.prototype.toString.call(object)) {\r\n return false\r\n }\r\n var proto = Object.getPrototypeOf(object);\r\n var ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\r\n return \"function\" === typeof ctor && Object.toString.call(ctor) === Object.toString.call(Object)\r\n};\r\nvar isPrimitive = function(value) {\r\n return -1 === [\"object\", \"array\", \"function\"].indexOf(type(value))\r\n};\r\nvar isWindow = function(object) {\r\n return null != object && object === object.window\r\n};\r\nvar isRenderer = function(object) {\r\n return !!object && !!(object.jquery || object.dxRenderer)\r\n};\r\nvar isPromise = function(object) {\r\n return !!object && isFunction(object.then)\r\n};\r\nvar isDeferred = function(object) {\r\n return !!object && isFunction(object.done) && isFunction(object.fail)\r\n};\r\nvar isEvent = function(object) {\r\n return !!(object && object.preventDefault)\r\n};\r\nexport {\r\n isBoolean,\r\n isExponential,\r\n isDate,\r\n isDefined,\r\n isFunction,\r\n isString,\r\n isNumeric,\r\n isObject,\r\n isEmptyObject,\r\n isPlainObject,\r\n isPrimitive,\r\n isWindow,\r\n isRenderer,\r\n isPromise,\r\n isDeferred,\r\n type,\r\n isEvent\r\n};\r\n","/**\r\n * DevExtreme (esm/core/utils/variable_wrapper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n logger\r\n} from \"./console\";\r\nimport dependencyInjector from \"./dependency_injector\";\r\nexport default dependencyInjector({\r\n isWrapped: function() {\r\n return false\r\n },\r\n isWritableWrapped: function() {\r\n return false\r\n },\r\n wrap: function(value) {\r\n return value\r\n },\r\n unwrap: function(value) {\r\n return value\r\n },\r\n assign: function() {\r\n logger.error(\"Method 'assign' should not be used for not wrapped variables. Use 'isWrapped' method for ensuring.\")\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/version.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function compare(x, y, maxLevel) {\r\n function normalizeArg(value) {\r\n if (\"string\" === typeof value) {\r\n return value.split(\".\")\r\n }\r\n if (\"number\" === typeof value) {\r\n return [value]\r\n }\r\n return value\r\n }\r\n x = normalizeArg(x);\r\n y = normalizeArg(y);\r\n var length = Math.max(x.length, y.length);\r\n if (isFinite(maxLevel)) {\r\n length = Math.min(length, maxLevel)\r\n }\r\n for (var i = 0; i < length; i++) {\r\n var xItem = parseInt(x[i] || 0, 10);\r\n var yItem = parseInt(y[i] || 0, 10);\r\n if (xItem < yItem) {\r\n return -1\r\n }\r\n if (xItem > yItem) {\r\n return 1\r\n }\r\n }\r\n return 0\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/view_port.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../renderer\";\r\nimport readyCallbacks from \"./ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport callbacks from \"./callbacks\";\r\nvar changeCallback = callbacks();\r\nvar $originalViewPort = $();\r\nvar value = function() {\r\n var $current;\r\n return function(element) {\r\n if (!arguments.length) {\r\n return $current\r\n }\r\n var $element = $(element);\r\n $originalViewPort = $element;\r\n var isNewViewportFound = !!$element.length;\r\n var prevViewPort = value();\r\n $current = isNewViewportFound ? $element : $(\"body\");\r\n changeCallback.fire(isNewViewportFound ? value() : $(), prevViewPort)\r\n }\r\n}();\r\nready((function() {\r\n value(\".dx-viewport\")\r\n}));\r\nexport {\r\n value,\r\n changeCallback\r\n};\r\nexport function originalViewPort() {\r\n return $originalViewPort\r\n}\r\n","/**\r\n * DevExtreme (esm/core/utils/window.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../dom_adapter\";\r\nvar hasWindowValue = \"undefined\" !== typeof window;\r\nvar hasWindow = () => hasWindowValue;\r\nvar windowObject = hasWindow() ? window : void 0;\r\nif (!windowObject) {\r\n windowObject = {};\r\n windowObject.window = windowObject\r\n}\r\nvar getWindow = () => windowObject;\r\nvar setWindow = (newWindowObject, hasWindow) => {\r\n if (void 0 === hasWindow) {\r\n hasWindowValue = \"undefined\" !== typeof window && window === newWindowObject\r\n } else {\r\n hasWindowValue = hasWindow\r\n }\r\n windowObject = newWindowObject\r\n};\r\nvar hasProperty = prop => hasWindow() && prop in windowObject;\r\nvar defaultScreenFactorFunc = width => {\r\n if (width < 768) {\r\n return \"xs\"\r\n } else if (width < 992) {\r\n return \"sm\"\r\n } else if (width < 1200) {\r\n return \"md\"\r\n } else {\r\n return \"lg\"\r\n }\r\n};\r\nvar getCurrentScreenFactor = screenFactorCallback => {\r\n var screenFactorFunc = screenFactorCallback || defaultScreenFactorFunc;\r\n var windowWidth = domAdapter.getDocumentElement().clientWidth;\r\n return screenFactorFunc(windowWidth)\r\n};\r\nvar getNavigator = () => hasWindow() ? windowObject.navigator : {\r\n userAgent: \"\"\r\n};\r\nexport {\r\n hasWindow,\r\n getWindow,\r\n setWindow,\r\n hasProperty,\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n getNavigator\r\n};\r\n","/**\r\n * DevExtreme (esm/core/version.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var version = \"22.2.3\";\r\n","/**\r\n * DevExtreme (esm/data/abstract_store.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n processRequestResultLock\r\n} from \"./utils\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport storeHelper from \"./store_helper\";\r\nvar queryByOptions = storeHelper.queryByOptions;\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nvar storeImpl = {};\r\nvar Store = Class.inherit({\r\n ctor: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy = new EventsStrategy(this);\r\n each([\"onLoaded\", \"onLoading\", \"onInserted\", \"onInserting\", \"onUpdated\", \"onUpdating\", \"onPush\", \"onRemoved\", \"onRemoving\", \"onModified\", \"onModifying\"], (function(_, optionName) {\r\n if (optionName in options) {\r\n that.on(optionName.slice(2).toLowerCase(), options[optionName])\r\n }\r\n }));\r\n this._key = options.key;\r\n this._errorHandler = options.errorHandler;\r\n this._useDefaultSearch = true\r\n },\r\n _clearCache: noop,\r\n _customLoadOptions: function() {\r\n return null\r\n },\r\n key: function() {\r\n return this._key\r\n },\r\n keyOf: function(obj) {\r\n if (!this._keyGetter) {\r\n this._keyGetter = compileGetter(this.key())\r\n }\r\n return this._keyGetter(obj)\r\n },\r\n _requireKey: function() {\r\n if (!this.key()) {\r\n throw errors.Error(\"E4005\")\r\n }\r\n },\r\n load: function(options) {\r\n var that = this;\r\n options = options || {};\r\n this._eventsStrategy.fireEvent(\"loading\", [options]);\r\n return this._withLock(this._loadImpl(options)).done((function(result) {\r\n that._eventsStrategy.fireEvent(\"loaded\", [result, options])\r\n }))\r\n },\r\n _loadImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options).enumerate()\r\n },\r\n _withLock: function(task) {\r\n var result = new Deferred;\r\n task.done((function() {\r\n var that = this;\r\n var args = arguments;\r\n processRequestResultLock.promise().done((function() {\r\n result.resolveWith(that, args)\r\n }))\r\n })).fail((function() {\r\n result.rejectWith(this, arguments)\r\n }));\r\n return result\r\n },\r\n createQuery: abstract,\r\n totalCount: function(options) {\r\n return this._totalCountImpl(options)\r\n },\r\n _totalCountImpl: function(options) {\r\n return queryByOptions(this.createQuery(options), options, true).count()\r\n },\r\n byKey: function(key, extraOptions) {\r\n return this._addFailHandlers(this._withLock(this._byKeyImpl(key, extraOptions)))\r\n },\r\n _byKeyImpl: abstract,\r\n insert: function(values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"inserting\", [values]);\r\n return that._addFailHandlers(that._insertImpl(values).done((function(callbackValues, callbackKey) {\r\n that._eventsStrategy.fireEvent(\"inserted\", [callbackValues, callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _insertImpl: abstract,\r\n update: function(key, values) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"updating\", [key, values]);\r\n return that._addFailHandlers(that._updateImpl(key, values).done((function() {\r\n that._eventsStrategy.fireEvent(\"updated\", [key, values]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _updateImpl: abstract,\r\n push: function(changes) {\r\n var beforePushArgs = {\r\n changes: changes,\r\n waitFor: []\r\n };\r\n this._eventsStrategy.fireEvent(\"beforePush\", [beforePushArgs]);\r\n when(...beforePushArgs.waitFor).done(() => {\r\n this._pushImpl(changes);\r\n this._eventsStrategy.fireEvent(\"push\", [changes])\r\n })\r\n },\r\n _pushImpl: noop,\r\n remove: function(key) {\r\n var that = this;\r\n that._eventsStrategy.fireEvent(\"modifying\");\r\n that._eventsStrategy.fireEvent(\"removing\", [key]);\r\n return that._addFailHandlers(that._removeImpl(key).done((function(callbackKey) {\r\n that._eventsStrategy.fireEvent(\"removed\", [callbackKey]);\r\n that._eventsStrategy.fireEvent(\"modified\")\r\n })))\r\n },\r\n _removeImpl: abstract,\r\n _addFailHandlers: function(deferred) {\r\n return deferred.fail(this._errorHandler).fail(handleError)\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nStore.create = function(alias, options) {\r\n if (!(alias in storeImpl)) {\r\n throw errors.Error(\"E4020\", alias)\r\n }\r\n return new storeImpl[alias](options)\r\n};\r\nStore.registerClass = function(type, alias) {\r\n if (alias) {\r\n storeImpl[alias] = type\r\n }\r\n return type\r\n};\r\nStore.inherit = function(inheritor) {\r\n return function(members, alias) {\r\n var type = inheritor.apply(this, [members]);\r\n Store.registerClass(type, alias);\r\n return type\r\n }\r\n}(Store.inherit);\r\nexport default Store;\r\n","/**\r\n * DevExtreme (esm/data/array_query.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../core/utils/data\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n errors,\r\n handleError as handleDataError\r\n} from \"./errors\";\r\nimport {\r\n aggregators,\r\n isGroupCriterion,\r\n isUnaryOperation,\r\n normalizeBinaryCriterion,\r\n isConjunctiveOperator as isConjunctiveOperatorChecker\r\n} from \"./utils\";\r\nvar Iterator = Class.inherit({\r\n toArray: function() {\r\n var result = [];\r\n this.reset();\r\n while (this.next()) {\r\n result.push(this.current())\r\n }\r\n return result\r\n },\r\n countable: function() {\r\n return false\r\n }\r\n});\r\nvar ArrayIterator = Iterator.inherit({\r\n ctor: function(array) {\r\n this.array = array;\r\n this.index = -1\r\n },\r\n next: function() {\r\n if (this.index + 1 < this.array.length) {\r\n this.index++;\r\n return true\r\n }\r\n return false\r\n },\r\n current: function() {\r\n return this.array[this.index]\r\n },\r\n reset: function() {\r\n this.index = -1\r\n },\r\n toArray: function() {\r\n return this.array.slice(0)\r\n },\r\n countable: function() {\r\n return true\r\n },\r\n count: function() {\r\n return this.array.length\r\n }\r\n});\r\nvar WrappedIterator = Iterator.inherit({\r\n ctor: function(iter) {\r\n this.iter = iter\r\n },\r\n next: function() {\r\n return this.iter.next()\r\n },\r\n current: function() {\r\n return this.iter.current()\r\n },\r\n reset: function() {\r\n return this.iter.reset()\r\n }\r\n});\r\nvar MapIterator = WrappedIterator.inherit({\r\n ctor: function(iter, mapper) {\r\n this.callBase(iter);\r\n this.index = -1;\r\n this.mapper = mapper\r\n },\r\n current: function() {\r\n return this.mapper(this.callBase(), this.index)\r\n },\r\n next: function() {\r\n var hasNext = this.callBase();\r\n if (hasNext) {\r\n this.index++\r\n }\r\n return hasNext\r\n }\r\n});\r\nvar defaultCompare = function(xValue, yValue) {\r\n xValue = toComparable(xValue);\r\n yValue = toComparable(yValue);\r\n if (null === xValue && null !== yValue) {\r\n return -1\r\n }\r\n if (null !== xValue && null === yValue) {\r\n return 1\r\n }\r\n if (void 0 === xValue && void 0 !== yValue) {\r\n return 1\r\n }\r\n if (void 0 !== xValue && void 0 === yValue) {\r\n return -1\r\n }\r\n if (xValue < yValue) {\r\n return -1\r\n }\r\n if (xValue > yValue) {\r\n return 1\r\n }\r\n return 0\r\n};\r\nvar SortIterator = Iterator.inherit({\r\n ctor: function(iter, getter, desc, compare) {\r\n if (!(iter instanceof MapIterator)) {\r\n iter = new MapIterator(iter, this._wrap)\r\n }\r\n this.iter = iter;\r\n this.rules = [{\r\n getter: getter,\r\n desc: desc,\r\n compare: compare\r\n }]\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n var result = new SortIterator(this.sortedIter || this.iter, getter, desc, compare);\r\n if (!this.sortedIter) {\r\n result.rules = this.rules.concat(result.rules)\r\n }\r\n return result\r\n },\r\n next: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.next()\r\n },\r\n current: function() {\r\n this._ensureSorted();\r\n return this.sortedIter.current()\r\n },\r\n reset: function() {\r\n delete this.sortedIter\r\n },\r\n countable: function() {\r\n return this.sortedIter || this.iter.countable()\r\n },\r\n count: function() {\r\n if (this.sortedIter) {\r\n return this.sortedIter.count()\r\n }\r\n return this.iter.count()\r\n },\r\n _ensureSorted: function() {\r\n var that = this;\r\n if (that.sortedIter) {\r\n return\r\n }\r\n each(that.rules, (function() {\r\n this.getter = compileGetter(this.getter)\r\n }));\r\n that.sortedIter = new MapIterator(new ArrayIterator(this.iter.toArray().sort((function(x, y) {\r\n return that._compare(x, y)\r\n }))), that._unwrap)\r\n },\r\n _wrap: function(record, index) {\r\n return {\r\n index: index,\r\n value: record\r\n }\r\n },\r\n _unwrap: function(wrappedItem) {\r\n return wrappedItem.value\r\n },\r\n _compare: function(x, y) {\r\n var xIndex = x.index;\r\n var yIndex = y.index;\r\n x = x.value;\r\n y = y.value;\r\n if (x === y) {\r\n return xIndex - yIndex\r\n }\r\n for (var i = 0, rulesCount = this.rules.length; i < rulesCount; i++) {\r\n var rule = this.rules[i];\r\n var xValue = rule.getter(x);\r\n var yValue = rule.getter(y);\r\n var compare = rule.compare || defaultCompare;\r\n var compareResult = compare(xValue, yValue);\r\n if (compareResult) {\r\n return rule.desc ? -compareResult : compareResult\r\n }\r\n }\r\n return xIndex - yIndex\r\n }\r\n});\r\nvar compileCriteria = function() {\r\n var toString = function(value) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n };\r\n\r\n function compileEquals(getter, value, negate) {\r\n return function(obj) {\r\n obj = toComparable(getter(obj));\r\n var result = function(value) {\r\n return \"\" === value || 0 === value || false === value\r\n }(value) ? obj === value : obj == value;\r\n if (negate) {\r\n result = !result\r\n }\r\n return result\r\n }\r\n }\r\n return function(crit) {\r\n if (isFunction(crit)) {\r\n return crit\r\n }\r\n if (isGroupCriterion(crit)) {\r\n return function(crit) {\r\n var ops = [];\r\n var isConjunctiveOperator = false;\r\n var isConjunctiveNextOperator = false;\r\n each(crit, (function() {\r\n if (Array.isArray(this) || isFunction(this)) {\r\n if (ops.length > 1 && isConjunctiveOperator !== isConjunctiveNextOperator) {\r\n throw new errors.Error(\"E4019\")\r\n }\r\n ops.push(compileCriteria(this));\r\n isConjunctiveOperator = isConjunctiveNextOperator;\r\n isConjunctiveNextOperator = true\r\n } else {\r\n isConjunctiveNextOperator = isConjunctiveOperatorChecker(this)\r\n }\r\n }));\r\n return function(d) {\r\n var result = isConjunctiveOperator;\r\n for (var i = 0; i < ops.length; i++) {\r\n if (ops[i](d) !== isConjunctiveOperator) {\r\n result = !isConjunctiveOperator;\r\n break\r\n }\r\n }\r\n return result\r\n }\r\n }(crit)\r\n }\r\n if (isUnaryOperation(crit)) {\r\n return function(crit) {\r\n var op = crit[0];\r\n var criteria = compileCriteria(crit[1]);\r\n if (\"!\" === op) {\r\n return function(obj) {\r\n return !criteria(obj)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n return function(crit) {\r\n crit = normalizeBinaryCriterion(crit);\r\n var getter = compileGetter(crit[0]);\r\n var op = crit[1];\r\n var value = crit[2];\r\n value = toComparable(value);\r\n var compare = (obj, operatorFn) => {\r\n obj = toComparable(getter(obj));\r\n return (null == value || null == obj) && value !== obj ? false : operatorFn(obj, value)\r\n };\r\n switch (op.toLowerCase()) {\r\n case \"=\":\r\n return compileEquals(getter, value);\r\n case \"<>\":\r\n return compileEquals(getter, value, true);\r\n case \">\":\r\n return obj => compare(obj, (a, b) => a > b);\r\n case \"<\":\r\n return obj => compare(obj, (a, b) => a < b);\r\n case \">=\":\r\n return obj => compare(obj, (a, b) => a >= b);\r\n case \"<=\":\r\n return obj => compare(obj, (a, b) => a <= b);\r\n case \"startswith\":\r\n return function(obj) {\r\n return 0 === toComparable(toString(getter(obj))).indexOf(value)\r\n };\r\n case \"endswith\":\r\n return function(obj) {\r\n var getterValue = toComparable(toString(getter(obj)));\r\n var searchValue = toString(value);\r\n if (getterValue.length < searchValue.length) {\r\n return false\r\n }\r\n var index = getterValue.lastIndexOf(value);\r\n return -1 !== index && index === getterValue.length - value.length\r\n };\r\n case \"contains\":\r\n return function(obj) {\r\n return toComparable(toString(getter(obj))).indexOf(value) > -1\r\n };\r\n case \"notcontains\":\r\n return function(obj) {\r\n return -1 === toComparable(toString(getter(obj))).indexOf(value)\r\n }\r\n }\r\n throw errors.Error(\"E4003\", op)\r\n }(crit)\r\n }\r\n}();\r\nvar FilterIterator = WrappedIterator.inherit({\r\n ctor: function(iter, criteria) {\r\n this.callBase(iter);\r\n this.criteria = compileCriteria(criteria)\r\n },\r\n next: function() {\r\n while (this.iter.next()) {\r\n if (this.criteria(this.current())) {\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n});\r\nvar GroupIterator = Iterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.iter = iter;\r\n this.getter = getter\r\n },\r\n next: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.next()\r\n },\r\n current: function() {\r\n this._ensureGrouped();\r\n return this.groupedIter.current()\r\n },\r\n reset: function() {\r\n delete this.groupedIter\r\n },\r\n countable: function() {\r\n return !!this.groupedIter\r\n },\r\n count: function() {\r\n return this.groupedIter.count()\r\n },\r\n _ensureGrouped: function() {\r\n if (this.groupedIter) {\r\n return\r\n }\r\n var hash = {};\r\n var keys = [];\r\n var iter = this.iter;\r\n var getter = compileGetter(this.getter);\r\n iter.reset();\r\n while (iter.next()) {\r\n var current = iter.current();\r\n var key = getter(current);\r\n if (key in hash) {\r\n hash[key].push(current)\r\n } else {\r\n hash[key] = [current];\r\n keys.push(key)\r\n }\r\n }\r\n this.groupedIter = new ArrayIterator(map(keys, (function(key) {\r\n return {\r\n key: key,\r\n items: hash[key]\r\n }\r\n })))\r\n }\r\n});\r\nvar SelectIterator = WrappedIterator.inherit({\r\n ctor: function(iter, getter) {\r\n this.callBase(iter);\r\n this.getter = compileGetter(getter)\r\n },\r\n current: function() {\r\n return this.getter(this.callBase())\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return this.iter.count()\r\n }\r\n});\r\nvar SliceIterator = WrappedIterator.inherit({\r\n ctor: function(iter, skip, take) {\r\n this.callBase(iter);\r\n this.skip = Math.max(0, skip);\r\n this.take = Math.max(0, take);\r\n this.pos = 0\r\n },\r\n next: function() {\r\n if (this.pos >= this.skip + this.take) {\r\n return false\r\n }\r\n while (this.pos < this.skip && this.iter.next()) {\r\n this.pos++\r\n }\r\n this.pos++;\r\n return this.iter.next()\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this.pos = 0\r\n },\r\n countable: function() {\r\n return this.iter.countable()\r\n },\r\n count: function() {\r\n return Math.min(this.iter.count() - this.skip, this.take)\r\n }\r\n});\r\nvar arrayQueryImpl = function arrayQueryImpl(iter, queryOptions) {\r\n queryOptions = queryOptions || {};\r\n if (!(iter instanceof Iterator)) {\r\n iter = new ArrayIterator(iter)\r\n }\r\n var handleError = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleDataError(error)\r\n };\r\n var aggregateCore = function(aggregator) {\r\n var d = (new Deferred).fail(handleError);\r\n var seed;\r\n var step = aggregator.step;\r\n var finalize = aggregator.finalize;\r\n try {\r\n iter.reset();\r\n if (\"seed\" in aggregator) {\r\n seed = aggregator.seed\r\n } else {\r\n seed = iter.next() ? iter.current() : NaN\r\n }\r\n var accumulator = seed;\r\n while (iter.next()) {\r\n accumulator = step(accumulator, iter.current())\r\n }\r\n d.resolve(finalize ? finalize(accumulator) : accumulator)\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n };\r\n var standardAggregate = function(name) {\r\n return aggregateCore(aggregators[name])\r\n };\r\n var select = function(getter) {\r\n if (!isFunction(getter) && !Array.isArray(getter)) {\r\n getter = [].slice.call(arguments)\r\n }\r\n return chainQuery(new SelectIterator(iter, getter))\r\n };\r\n var selectProp = function(name) {\r\n return select(compileGetter(name))\r\n };\r\n\r\n function chainQuery(iter) {\r\n return arrayQueryImpl(iter, queryOptions)\r\n }\r\n return {\r\n toArray: function() {\r\n return iter.toArray()\r\n },\r\n enumerate: function() {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.toArray())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n },\r\n sortBy: function(getter, desc, compare) {\r\n return chainQuery(new SortIterator(iter, getter, desc, compare))\r\n },\r\n thenBy: function(getter, desc, compare) {\r\n if (iter instanceof SortIterator) {\r\n return chainQuery(iter.thenBy(getter, desc, compare))\r\n }\r\n throw errors.Error(\"E4004\")\r\n },\r\n filter: function(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n criteria = [].slice.call(arguments)\r\n }\r\n return chainQuery(new FilterIterator(iter, criteria))\r\n },\r\n slice: function(skip, take) {\r\n if (void 0 === take) {\r\n take = Number.MAX_VALUE\r\n }\r\n return chainQuery(new SliceIterator(iter, skip, take))\r\n },\r\n select: select,\r\n groupBy: function(getter) {\r\n return chainQuery(new GroupIterator(iter, getter))\r\n },\r\n aggregate: function(seed, step, finalize) {\r\n if (arguments.length < 2) {\r\n return aggregateCore({\r\n step: arguments[0]\r\n })\r\n }\r\n return aggregateCore({\r\n seed: seed,\r\n step: step,\r\n finalize: finalize\r\n })\r\n },\r\n count: function() {\r\n if (iter.countable()) {\r\n var d = (new Deferred).fail(handleError);\r\n try {\r\n d.resolve(iter.count())\r\n } catch (x) {\r\n d.reject(x)\r\n }\r\n return d.promise()\r\n }\r\n return standardAggregate(\"count\")\r\n },\r\n sum: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).sum()\r\n }\r\n return standardAggregate(\"sum\")\r\n },\r\n min: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).min()\r\n }\r\n return standardAggregate(\"min\")\r\n },\r\n max: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).max()\r\n }\r\n return standardAggregate(\"max\")\r\n },\r\n avg: function(getter) {\r\n if (getter) {\r\n return selectProp(getter).avg()\r\n }\r\n return standardAggregate(\"avg\")\r\n }\r\n }\r\n};\r\nexport default arrayQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/array_store.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\nimport Query from \"./query\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport {\r\n indexByKey,\r\n insert,\r\n applyBatch,\r\n update,\r\n remove\r\n} from \"./array_utils\";\r\nvar ArrayStore = Store.inherit({\r\n ctor: function(options) {\r\n if (Array.isArray(options)) {\r\n options = {\r\n data: options\r\n }\r\n } else {\r\n options = options || {}\r\n }\r\n this.callBase(options);\r\n var initialArray = options.data;\r\n if (initialArray && !Array.isArray(initialArray)) {\r\n throw errors.Error(\"E4006\")\r\n }\r\n this._array = initialArray || []\r\n },\r\n createQuery: function() {\r\n return Query(this._array, {\r\n errorHandler: this._errorHandler\r\n })\r\n },\r\n _byKeyImpl: function(key) {\r\n var index = indexByKey(this, this._array, key);\r\n if (-1 === index) {\r\n return rejectedPromise(errors.Error(\"E4009\"))\r\n }\r\n return trivialPromise(this._array[index])\r\n },\r\n _insertImpl: function(values) {\r\n return insert(this, this._array, values)\r\n },\r\n _pushImpl: function(changes) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this._array,\r\n changes: changes\r\n })\r\n },\r\n _updateImpl: function(key, values) {\r\n return update(this, this._array, key, values)\r\n },\r\n _removeImpl: function(key) {\r\n return remove(this, this._array, key)\r\n },\r\n clear: function() {\r\n this._eventsStrategy.fireEvent(\"modifying\");\r\n this._array = [];\r\n this._eventsStrategy.fireEvent(\"modified\")\r\n }\r\n}, \"array\");\r\nexport default ArrayStore;\r\n","/**\r\n * DevExtreme (esm/data/array_utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isObject,\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport {\r\n deepExtendArraySafe\r\n} from \"../core/utils/object\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n keysEqual,\r\n rejectedPromise,\r\n trivialPromise\r\n} from \"./utils\";\r\n\r\nfunction hasKey(target, keyOrKeys) {\r\n var key;\r\n var keys = \"string\" === typeof keyOrKeys ? keyOrKeys.split() : keyOrKeys.slice();\r\n while (keys.length) {\r\n key = keys.shift();\r\n if (key in target) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction findItems(keyInfo, items, key, groupCount) {\r\n var childItems;\r\n var result;\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n childItems = items[i].items || items[i].collapsedItems || [];\r\n result = findItems(keyInfo, childItems || [], key, groupCount - 1);\r\n if (result) {\r\n return result\r\n }\r\n }\r\n } else if (indexByKey(keyInfo, items, key) >= 0) {\r\n return items\r\n }\r\n}\r\n\r\nfunction getItems(keyInfo, items, key, groupCount) {\r\n if (groupCount) {\r\n return findItems(keyInfo, items, key, groupCount) || []\r\n }\r\n return items\r\n}\r\n\r\nfunction generateDataByKeyMap(keyInfo, array) {\r\n if (keyInfo.key() && (!array._dataByKeyMap || array._dataByKeyMapLength !== array.length)) {\r\n var dataByKeyMap = {};\r\n var arrayLength = array.length;\r\n for (var i = 0; i < arrayLength; i++) {\r\n dataByKeyMap[JSON.stringify(keyInfo.keyOf(array[i]))] = array[i]\r\n }\r\n array._dataByKeyMap = dataByKeyMap;\r\n array._dataByKeyMapLength = arrayLength\r\n }\r\n}\r\n\r\nfunction getCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n}\r\n\r\nfunction getHasKeyCacheValue(array, key) {\r\n if (array._dataByKeyMap) {\r\n return array._dataByKeyMap[JSON.stringify(key)]\r\n }\r\n return true\r\n}\r\n\r\nfunction setDataByKeyMapValue(array, key, data) {\r\n if (array._dataByKeyMap) {\r\n array._dataByKeyMap[JSON.stringify(key)] = data;\r\n array._dataByKeyMapLength += data ? 1 : -1\r\n }\r\n}\r\n\r\nfunction cloneInstanceWithChangedPaths(instance, changes, clonedInstances) {\r\n clonedInstances = clonedInstances || new WeakMap;\r\n var result = instance ? Object.create(Object.getPrototypeOf(instance)) : {};\r\n if (instance) {\r\n clonedInstances.set(instance, result)\r\n }\r\n var instanceWithoutPrototype = _extends({}, instance);\r\n deepExtendArraySafe(result, instanceWithoutPrototype, true, true);\r\n for (var name in instanceWithoutPrototype) {\r\n var value = instanceWithoutPrototype[name];\r\n var change = null === changes || void 0 === changes ? void 0 : changes[name];\r\n if (isObject(value) && !isPlainObject(value) && isObject(change) && !clonedInstances.has(value)) {\r\n result[name] = cloneInstanceWithChangedPaths(value, change, clonedInstances)\r\n }\r\n }\r\n for (var _name in result) {\r\n var prop = result[_name];\r\n if (isObject(prop) && clonedInstances.has(prop)) {\r\n result[_name] = clonedInstances.get(prop)\r\n }\r\n }\r\n return result\r\n}\r\n\r\nfunction createObjectWithChanges(target, changes) {\r\n var result = cloneInstanceWithChangedPaths(target, changes);\r\n return deepExtendArraySafe(result, changes, true, true)\r\n}\r\n\r\nfunction applyBatch(_ref) {\r\n var {\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: useInsertIndex,\r\n immutable: immutable,\r\n disableCache: disableCache,\r\n logError: logError,\r\n skipCopying: skipCopying\r\n } = _ref;\r\n var resultItems = true === immutable ? [...data] : data;\r\n changes.forEach(item => {\r\n var items = \"insert\" === item.type ? resultItems : getItems(keyInfo, resultItems, item.key, groupCount);\r\n !disableCache && generateDataByKeyMap(keyInfo, items);\r\n switch (item.type) {\r\n case \"update\":\r\n update(keyInfo, items, item.key, item.data, true, immutable, logError);\r\n break;\r\n case \"insert\":\r\n insert(keyInfo, items, item.data, useInsertIndex && isDefined(item.index) ? item.index : -1, true, logError, skipCopying);\r\n break;\r\n case \"remove\":\r\n remove(keyInfo, items, item.key, true, logError)\r\n }\r\n });\r\n return resultItems\r\n}\r\n\r\nfunction getErrorResult(isBatch, logError, errorCode) {\r\n return !isBatch ? rejectedPromise(errors.Error(errorCode)) : logError && errors.log(errorCode)\r\n}\r\n\r\nfunction applyChanges(data, changes) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var {\r\n keyExpr: keyExpr = \"id\",\r\n immutable: immutable = true\r\n } = options;\r\n var keyGetter = compileGetter(keyExpr);\r\n var keyInfo = {\r\n key: () => keyExpr,\r\n keyOf: obj => keyGetter(obj)\r\n };\r\n return applyBatch({\r\n keyInfo: keyInfo,\r\n data: data,\r\n changes: changes,\r\n immutable: immutable,\r\n disableCache: true,\r\n logError: true\r\n })\r\n}\r\n\r\nfunction update(keyInfo, array, key, data, isBatch, immutable, logError) {\r\n var target;\r\n var keyExpr = keyInfo.key();\r\n if (keyExpr) {\r\n if (hasKey(data, keyExpr) && !keysEqual(keyExpr, key, keyInfo.keyOf(data))) {\r\n return getErrorResult(isBatch, logError, \"E4017\")\r\n }\r\n target = getCacheValue(array, key);\r\n if (!target) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n target = array[index];\r\n if (true === immutable && isDefined(target)) {\r\n var newTarget = createObjectWithChanges(target, data);\r\n array[index] = newTarget;\r\n return !isBatch && trivialPromise(newTarget, key)\r\n }\r\n }\r\n } else {\r\n target = key\r\n }\r\n deepExtendArraySafe(target, data, true);\r\n if (!isBatch) {\r\n if (config().useLegacyStoreResult) {\r\n return trivialPromise(key, data)\r\n } else {\r\n return trivialPromise(target, key)\r\n }\r\n }\r\n}\r\n\r\nfunction insert(keyInfo, array, data, index, isBatch, logError, skipCopying) {\r\n var keyValue;\r\n var keyExpr = keyInfo.key();\r\n var obj = isPlainObject(data) && !skipCopying ? extend({}, data) : data;\r\n if (keyExpr) {\r\n keyValue = keyInfo.keyOf(obj);\r\n if (void 0 === keyValue || \"object\" === typeof keyValue && isEmptyObject(keyValue)) {\r\n if (Array.isArray(keyExpr)) {\r\n throw errors.Error(\"E4007\")\r\n }\r\n keyValue = obj[keyExpr] = String(new Guid)\r\n } else if (void 0 !== array[indexByKey(keyInfo, array, keyValue)]) {\r\n return getErrorResult(isBatch, logError, \"E4008\")\r\n }\r\n } else {\r\n keyValue = obj\r\n }\r\n if (index >= 0) {\r\n array.splice(index, 0, obj)\r\n } else {\r\n array.push(obj)\r\n }\r\n setDataByKeyMapValue(array, keyValue, obj);\r\n if (!isBatch) {\r\n return trivialPromise(config().useLegacyStoreResult ? data : obj, keyValue)\r\n }\r\n}\r\n\r\nfunction remove(keyInfo, array, key, isBatch, logError) {\r\n var index = indexByKey(keyInfo, array, key);\r\n if (index > -1) {\r\n array.splice(index, 1);\r\n setDataByKeyMapValue(array, key, null)\r\n }\r\n if (!isBatch) {\r\n return trivialPromise(key)\r\n } else if (index < 0) {\r\n return getErrorResult(isBatch, logError, \"E4009\")\r\n }\r\n}\r\n\r\nfunction indexByKey(keyInfo, array, key) {\r\n var keyExpr = keyInfo.key();\r\n if (!getHasKeyCacheValue(array, key)) {\r\n return -1\r\n }\r\n for (var i = 0, arrayLength = array.length; i < arrayLength; i++) {\r\n if (keysEqual(keyExpr, keyInfo.keyOf(array[i]), key)) {\r\n return i\r\n }\r\n }\r\n return -1\r\n}\r\nexport {\r\n applyBatch,\r\n createObjectWithChanges,\r\n update,\r\n insert,\r\n remove,\r\n indexByKey,\r\n applyChanges\r\n};\r\n","/**\r\n * DevExtreme (esm/data/custom_store.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n keysEqual,\r\n XHR_ERROR_UNLOAD,\r\n errorMessageFromXhr as errorMessageFromXhrUtility\r\n} from \"./utils\";\r\nimport {\r\n applyBatch\r\n} from \"./array_utils\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport config from \"../core/config\";\r\nimport {\r\n errors\r\n} from \"./errors\";\r\nimport Store from \"./abstract_store\";\r\nimport arrayQuery from \"./array_query\";\r\nimport storeHelper from \"./store_helper\";\r\nimport {\r\n Deferred,\r\n when,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nvar TOTAL_COUNT = \"totalCount\";\r\nvar LOAD = \"load\";\r\nvar BY_KEY = \"byKey\";\r\nvar INSERT = \"insert\";\r\nvar UPDATE = \"update\";\r\nvar REMOVE = \"remove\";\r\n\r\nfunction isPromise(obj) {\r\n return obj && isFunction(obj.then)\r\n}\r\n\r\nfunction trivialPromise(value) {\r\n return (new Deferred).resolve(value).promise()\r\n}\r\n\r\nfunction ensureRequiredFuncOption(name, obj) {\r\n if (!isFunction(obj)) {\r\n throw errors.Error(\"E4011\", name)\r\n }\r\n}\r\n\r\nfunction throwInvalidUserFuncResult(name) {\r\n throw errors.Error(\"E4012\", name)\r\n}\r\n\r\nfunction createUserFuncFailureHandler(pendingDeferred) {\r\n function errorMessageFromXhr(promiseArguments) {\r\n var xhr = promiseArguments[0];\r\n var textStatus = promiseArguments[1];\r\n if (!xhr || !xhr.getResponseHeader) {\r\n return null\r\n }\r\n return errorMessageFromXhrUtility(xhr, textStatus)\r\n }\r\n return function(arg) {\r\n var error;\r\n if (arg instanceof Error) {\r\n error = arg\r\n } else {\r\n error = new Error(errorMessageFromXhr(arguments) || arg && String(arg) || \"Unknown error\")\r\n }\r\n if (error.message !== XHR_ERROR_UNLOAD) {\r\n pendingDeferred.reject(error)\r\n }\r\n }\r\n}\r\n\r\nfunction invokeUserLoad(store, options) {\r\n var userFunc = store._loadFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(LOAD, userFunc);\r\n userResult = userFunc.apply(store, [options]);\r\n if (Array.isArray(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n } else if (null === userResult || void 0 === userResult) {\r\n userResult = trivialPromise([])\r\n } else if (!isPromise(userResult)) {\r\n throwInvalidUserFuncResult(LOAD)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserTotalCountFunc(store, options) {\r\n var userFunc = store._totalCountFunc;\r\n var userResult;\r\n if (!isFunction(userFunc)) {\r\n throw errors.Error(\"E4021\")\r\n }\r\n userResult = userFunc.apply(store, [options]);\r\n if (!isPromise(userResult)) {\r\n userResult = Number(userResult);\r\n if (!isFinite(userResult)) {\r\n throwInvalidUserFuncResult(TOTAL_COUNT)\r\n }\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction invokeUserByKeyFunc(store, key, extraOptions) {\r\n var userFunc = store._byKeyFunc;\r\n var userResult;\r\n ensureRequiredFuncOption(BY_KEY, userFunc);\r\n userResult = userFunc.apply(store, [key, extraOptions]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n return fromPromise(userResult)\r\n}\r\n\r\nfunction runRawLoad(pendingDeferred, store, userFuncOptions, continuation) {\r\n if (store.__rawData) {\r\n continuation(store.__rawData)\r\n } else {\r\n var loadPromise = store.__rawDataPromise || invokeUserLoad(store, userFuncOptions);\r\n if (store._cacheRawData) {\r\n store.__rawDataPromise = loadPromise\r\n }\r\n loadPromise.always((function() {\r\n delete store.__rawDataPromise\r\n })).done((function(rawData) {\r\n if (store._cacheRawData) {\r\n store.__rawData = rawData\r\n }\r\n continuation(rawData)\r\n })).fail(createUserFuncFailureHandler(pendingDeferred))\r\n }\r\n}\r\n\r\nfunction runRawLoadWithQuery(pendingDeferred, store, options, countOnly) {\r\n options = options || {};\r\n var userFuncOptions = {};\r\n if (\"userData\" in options) {\r\n userFuncOptions.userData = options.userData\r\n }\r\n runRawLoad(pendingDeferred, store, userFuncOptions, (function(rawData) {\r\n var rawDataQuery = arrayQuery(rawData, {\r\n errorHandler: store._errorHandler\r\n });\r\n var itemsQuery;\r\n var totalCountQuery;\r\n var waitList = [];\r\n var items;\r\n var totalCount;\r\n if (!countOnly) {\r\n itemsQuery = storeHelper.queryByOptions(rawDataQuery, options);\r\n if (itemsQuery === rawDataQuery) {\r\n items = rawData.slice(0)\r\n } else {\r\n waitList.push(itemsQuery.enumerate().done((function(asyncResult) {\r\n items = asyncResult\r\n })))\r\n }\r\n }\r\n if (options.requireTotalCount || countOnly) {\r\n totalCountQuery = storeHelper.queryByOptions(rawDataQuery, options, true);\r\n if (totalCountQuery === rawDataQuery) {\r\n totalCount = rawData.length\r\n } else {\r\n waitList.push(totalCountQuery.count().done((function(asyncResult) {\r\n totalCount = asyncResult\r\n })))\r\n }\r\n }\r\n when.apply($, waitList).done((function() {\r\n if (countOnly) {\r\n pendingDeferred.resolve(totalCount)\r\n } else if (options.requireTotalCount) {\r\n pendingDeferred.resolve(items, {\r\n totalCount: totalCount\r\n })\r\n } else {\r\n pendingDeferred.resolve(items)\r\n }\r\n })).fail((function(x) {\r\n pendingDeferred.reject(x)\r\n }))\r\n }))\r\n}\r\n\r\nfunction runRawLoadWithKey(pendingDeferred, store, key) {\r\n runRawLoad(pendingDeferred, store, {}, (function(rawData) {\r\n var keyExpr = store.key();\r\n var item;\r\n for (var i = 0, len = rawData.length; i < len; i++) {\r\n item = rawData[i];\r\n if (keysEqual(keyExpr, store.keyOf(rawData[i]), key)) {\r\n pendingDeferred.resolve(item);\r\n return\r\n }\r\n }\r\n pendingDeferred.reject(errors.Error(\"E4009\"))\r\n }))\r\n}\r\nvar CustomStore = Store.inherit({\r\n ctor: function(options) {\r\n options = options || {};\r\n this.callBase(options);\r\n this._useDefaultSearch = !!options.useDefaultSearch || \"raw\" === options.loadMode;\r\n this._loadMode = options.loadMode;\r\n this._cacheRawData = false !== options.cacheRawData;\r\n this._loadFunc = options[LOAD];\r\n this._totalCountFunc = options[TOTAL_COUNT];\r\n this._byKeyFunc = options[BY_KEY];\r\n this._insertFunc = options[INSERT];\r\n this._updateFunc = options[UPDATE];\r\n this._removeFunc = options[REMOVE]\r\n },\r\n _clearCache() {\r\n delete this.__rawData\r\n },\r\n createQuery: function() {\r\n throw errors.Error(\"E4010\")\r\n },\r\n clearRawDataCache: function() {\r\n this._clearCache()\r\n },\r\n _totalCountImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode && !this._totalCountFunc) {\r\n runRawLoadWithQuery(d, this, options, true)\r\n } else {\r\n invokeUserTotalCountFunc(this, options).done((function(count) {\r\n d.resolve(Number(count))\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _pushImpl: function(changes) {\r\n if (this.__rawData) {\r\n applyBatch({\r\n keyInfo: this,\r\n data: this.__rawData,\r\n changes: changes\r\n })\r\n }\r\n },\r\n _loadImpl: function(options) {\r\n var d = new Deferred;\r\n if (\"raw\" === this._loadMode) {\r\n runRawLoadWithQuery(d, this, options, false)\r\n } else {\r\n invokeUserLoad(this, options).done((function(data, extra) {\r\n d.resolve(data, extra)\r\n })).fail(createUserFuncFailureHandler(d));\r\n d = this._addFailHandlers(d)\r\n }\r\n return d.promise()\r\n },\r\n _byKeyImpl: function(key, extraOptions) {\r\n var d = new Deferred;\r\n if (this._byKeyViaLoad()) {\r\n this._requireKey();\r\n runRawLoadWithKey(d, this, key)\r\n } else {\r\n invokeUserByKeyFunc(this, key, extraOptions).done((function(obj) {\r\n d.resolve(obj)\r\n })).fail(createUserFuncFailureHandler(d))\r\n }\r\n return d.promise()\r\n },\r\n _byKeyViaLoad: function() {\r\n return \"raw\" === this._loadMode && !this._byKeyFunc\r\n },\r\n _insertImpl: function(values) {\r\n var that = this;\r\n var userFunc = that._insertFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(INSERT, userFunc);\r\n userResult = userFunc.apply(that, [values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(values, serverResponse)\r\n } else {\r\n d.resolve(serverResponse || values, that.keyOf(serverResponse))\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _updateImpl: function(key, values) {\r\n var userFunc = this._updateFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(UPDATE, userFunc);\r\n userResult = userFunc.apply(this, [key, values]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise(userResult)\r\n }\r\n fromPromise(userResult).done((function(serverResponse) {\r\n if (config().useLegacyStoreResult) {\r\n d.resolve(key, values)\r\n } else {\r\n d.resolve(serverResponse || values, key)\r\n }\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n },\r\n _removeImpl: function(key) {\r\n var userFunc = this._removeFunc;\r\n var userResult;\r\n var d = new Deferred;\r\n ensureRequiredFuncOption(REMOVE, userFunc);\r\n userResult = userFunc.apply(this, [key]);\r\n if (!isPromise(userResult)) {\r\n userResult = trivialPromise()\r\n }\r\n fromPromise(userResult).done((function() {\r\n d.resolve(key)\r\n })).fail(createUserFuncFailureHandler(d));\r\n return d.promise()\r\n }\r\n});\r\nexport default CustomStore;\r\n","/**\r\n * DevExtreme (esm/core/utils/queue.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../errors\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction createQueue(discardPendingTasks) {\r\n var _tasks = [];\r\n var _busy = false;\r\n\r\n function exec() {\r\n while (_tasks.length) {\r\n _busy = true;\r\n var task = _tasks.shift();\r\n var result = task();\r\n if (void 0 === result) {\r\n continue\r\n }\r\n if (result.then) {\r\n when(result).always(exec);\r\n return\r\n }\r\n throw errors.Error(\"E0015\")\r\n }\r\n _busy = false\r\n }\r\n return {\r\n add: function(task, removeTaskCallback) {\r\n if (!discardPendingTasks) {\r\n _tasks.push(task)\r\n } else {\r\n if (_tasks[0] && removeTaskCallback) {\r\n removeTaskCallback(_tasks[0])\r\n }\r\n _tasks = [task]\r\n }\r\n if (!_busy) {\r\n exec()\r\n }\r\n },\r\n busy: function() {\r\n return _busy\r\n }\r\n }\r\n}\r\nexport {\r\n createQueue as create\r\n};\r\nexport var enqueue = createQueue().add;\r\n","/**\r\n * DevExtreme (esm/data/data_source/operation_manager.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n CANCELED_TOKEN\r\n} from \"./utils\";\r\nexport default class OperationManager {\r\n constructor() {\r\n this._counter = -1;\r\n this._deferreds = {}\r\n }\r\n add(deferred) {\r\n this._counter++;\r\n this._deferreds[this._counter] = deferred;\r\n return this._counter\r\n }\r\n remove(operationId) {\r\n return delete this._deferreds[operationId]\r\n }\r\n cancel(operationId) {\r\n if (operationId in this._deferreds) {\r\n this._deferreds[operationId].reject(CANCELED_TOKEN);\r\n return true\r\n }\r\n return false\r\n }\r\n cancelAll() {\r\n while (this._counter > -1) {\r\n this.cancel(this._counter);\r\n this._counter--\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/data/data_source/data_source.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isNumeric,\r\n isBoolean,\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n throttleChanges\r\n} from \"../utils\";\r\nimport {\r\n applyBatch\r\n} from \"../array_utils\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n EventsStrategy\r\n} from \"../../core/events_strategy\";\r\nimport {\r\n errors\r\n} from \"../errors\";\r\nimport {\r\n create\r\n} from \"../../core/utils/queue\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport OperationManager from \"./operation_manager\";\r\nimport {\r\n normalizeDataSourceOptions,\r\n normalizeStoreLoadOptionAccessorArguments,\r\n CANCELED_TOKEN,\r\n isPending,\r\n normalizeLoadResult,\r\n mapDataRespectingGrouping\r\n} from \"./utils\";\r\nexport var DataSource = Class.inherit({\r\n ctor(options) {\r\n var _options$reshapeOnPus;\r\n options = normalizeDataSourceOptions(options);\r\n this._eventsStrategy = new EventsStrategy(this, {\r\n syncStrategy: true\r\n });\r\n this._store = options.store;\r\n this._changedTime = 0;\r\n var needThrottling = 0 !== options.pushAggregationTimeout;\r\n if (needThrottling) {\r\n var throttlingTimeout = void 0 === options.pushAggregationTimeout ? () => 5 * this._changedTime : options.pushAggregationTimeout;\r\n var pushDeferred;\r\n var lastPushWaiters;\r\n var throttlingPushHandler = throttleChanges(changes => {\r\n pushDeferred.resolve();\r\n var storePushPending = when(...lastPushWaiters);\r\n storePushPending.done(() => this._onPush(changes));\r\n lastPushWaiters = void 0;\r\n pushDeferred = void 0\r\n }, throttlingTimeout);\r\n this._onPushHandler = args => {\r\n this._aggregationTimeoutId = throttlingPushHandler(args.changes);\r\n if (!pushDeferred) {\r\n pushDeferred = new Deferred\r\n }\r\n lastPushWaiters = args.waitFor;\r\n args.waitFor.push(pushDeferred.promise())\r\n };\r\n this._store.on(\"beforePush\", this._onPushHandler)\r\n } else {\r\n this._onPushHandler = changes => this._onPush(changes);\r\n this._store.on(\"push\", this._onPushHandler)\r\n }\r\n this._storeLoadOptions = this._extractLoadOptions(options);\r\n this._mapFunc = options.map;\r\n this._postProcessFunc = options.postProcess;\r\n this._pageIndex = void 0 !== options.pageIndex ? options.pageIndex : 0;\r\n this._pageSize = void 0 !== options.pageSize ? options.pageSize : 20;\r\n this._loadingCount = 0;\r\n this._loadQueue = this._createLoadQueue();\r\n this._searchValue = \"searchValue\" in options ? options.searchValue : null;\r\n this._searchOperation = options.searchOperation || \"contains\";\r\n this._searchExpr = options.searchExpr;\r\n this._paginate = options.paginate;\r\n this._reshapeOnPush = null !== (_options$reshapeOnPus = options.reshapeOnPush) && void 0 !== _options$reshapeOnPus ? _options$reshapeOnPus : false;\r\n each([\"onChanged\", \"onLoadError\", \"onLoadingChanged\", \"onCustomizeLoadResult\", \"onCustomizeStoreLoadOptions\"], (_, optionName) => {\r\n if (optionName in options) {\r\n this.on(optionName.substr(2, 1).toLowerCase() + optionName.substr(3), options[optionName])\r\n }\r\n });\r\n this._operationManager = new OperationManager;\r\n this._init()\r\n },\r\n _init() {\r\n this._items = [];\r\n this._userData = {};\r\n this._totalCount = -1;\r\n this._isLoaded = false;\r\n if (!isDefined(this._paginate)) {\r\n this._paginate = !this.group()\r\n }\r\n this._isLastPage = !this._paginate\r\n },\r\n dispose() {\r\n var _this$_delayedLoadTas;\r\n this._store.off(\"beforePush\", this._onPushHandler);\r\n this._store.off(\"push\", this._onPushHandler);\r\n this._eventsStrategy.dispose();\r\n clearTimeout(this._aggregationTimeoutId);\r\n null === (_this$_delayedLoadTas = this._delayedLoadTask) || void 0 === _this$_delayedLoadTas ? void 0 : _this$_delayedLoadTas.abort();\r\n this._operationManager.cancelAll();\r\n delete this._store;\r\n delete this._items;\r\n delete this._delayedLoadTask;\r\n this._disposed = true\r\n },\r\n _extractLoadOptions(options) {\r\n var result = {};\r\n var names = [\"sort\", \"filter\", \"select\", \"group\", \"requireTotalCount\"];\r\n var customNames = this._store._customLoadOptions();\r\n if (customNames) {\r\n names = names.concat(customNames)\r\n }\r\n each(names, (function() {\r\n result[this] = options[this]\r\n }));\r\n return result\r\n },\r\n loadOptions() {\r\n return this._storeLoadOptions\r\n },\r\n items() {\r\n return this._items\r\n },\r\n pageIndex(newIndex) {\r\n if (!isNumeric(newIndex)) {\r\n return this._pageIndex\r\n }\r\n this._pageIndex = newIndex;\r\n this._isLastPage = !this._paginate\r\n },\r\n paginate(value) {\r\n if (!isBoolean(value)) {\r\n return this._paginate\r\n }\r\n if (this._paginate !== value) {\r\n this._paginate = value;\r\n this.pageIndex(0)\r\n }\r\n },\r\n pageSize(value) {\r\n if (!isNumeric(value)) {\r\n return this._pageSize\r\n }\r\n this._pageSize = value\r\n },\r\n isLastPage() {\r\n return this._isLastPage\r\n },\r\n generateStoreLoadOptionAccessor(optionName) {\r\n return args => {\r\n var normalizedArgs = normalizeStoreLoadOptionAccessorArguments(args);\r\n if (void 0 === normalizedArgs) {\r\n return this._storeLoadOptions[optionName]\r\n }\r\n this._storeLoadOptions[optionName] = normalizedArgs\r\n }\r\n },\r\n sort() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"sort\")(args)\r\n },\r\n filter() {\r\n var newFilter = normalizeStoreLoadOptionAccessorArguments(arguments);\r\n if (void 0 === newFilter) {\r\n return this._storeLoadOptions.filter\r\n }\r\n this._storeLoadOptions.filter = newFilter;\r\n this.pageIndex(0)\r\n },\r\n group() {\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"group\")(args)\r\n },\r\n select() {\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n return this.generateStoreLoadOptionAccessor(\"select\")(args)\r\n },\r\n requireTotalCount(value) {\r\n if (!isBoolean(value)) {\r\n return this._storeLoadOptions.requireTotalCount\r\n }\r\n this._storeLoadOptions.requireTotalCount = value\r\n },\r\n searchValue(value) {\r\n if (arguments.length < 1) {\r\n return this._searchValue\r\n }\r\n this._searchValue = value;\r\n this.pageIndex(0)\r\n },\r\n searchOperation(op) {\r\n if (!isString(op)) {\r\n return this._searchOperation\r\n }\r\n this._searchOperation = op;\r\n this.pageIndex(0)\r\n },\r\n searchExpr(expr) {\r\n var argc = arguments.length;\r\n if (0 === argc) {\r\n return this._searchExpr\r\n }\r\n if (argc > 1) {\r\n expr = [].slice.call(arguments)\r\n }\r\n this._searchExpr = expr;\r\n this.pageIndex(0)\r\n },\r\n store() {\r\n return this._store\r\n },\r\n key() {\r\n var _this$_store;\r\n return null === (_this$_store = this._store) || void 0 === _this$_store ? void 0 : _this$_store.key()\r\n },\r\n totalCount() {\r\n return this._totalCount\r\n },\r\n isLoaded() {\r\n return this._isLoaded\r\n },\r\n isLoading() {\r\n return this._loadingCount > 0\r\n },\r\n beginLoading() {\r\n this._changeLoadingCount(1)\r\n },\r\n endLoading() {\r\n this._changeLoadingCount(-1)\r\n },\r\n _createLoadQueue: () => create(),\r\n _changeLoadingCount(increment) {\r\n var oldLoading = this.isLoading();\r\n this._loadingCount += increment;\r\n var newLoading = this.isLoading();\r\n if (oldLoading ^ newLoading) {\r\n this._eventsStrategy.fireEvent(\"loadingChanged\", [newLoading])\r\n }\r\n },\r\n _scheduleLoadCallbacks(deferred) {\r\n this.beginLoading();\r\n deferred.always(() => {\r\n this.endLoading()\r\n })\r\n },\r\n _scheduleFailCallbacks(deferred) {\r\n var _this = this;\r\n deferred.fail((function() {\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n if (args[0] === CANCELED_TOKEN) {\r\n return\r\n }\r\n _this._eventsStrategy.fireEvent(\"loadError\", args)\r\n }))\r\n },\r\n _fireChanged(args) {\r\n var date = new Date;\r\n this._eventsStrategy.fireEvent(\"changed\", args);\r\n this._changedTime = new Date - date\r\n },\r\n _scheduleChangedCallbacks(deferred) {\r\n deferred.done(() => this._fireChanged())\r\n },\r\n loadSingle(propName, propValue) {\r\n var d = new Deferred;\r\n var key = this.key();\r\n var store = this._store;\r\n var options = this._createStoreLoadOptions();\r\n this._scheduleFailCallbacks(d);\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = key\r\n }\r\n delete options.skip;\r\n delete options.group;\r\n delete options.refresh;\r\n delete options.pageIndex;\r\n delete options.searchString;\r\n (() => {\r\n if (propName === key || store instanceof CustomStore && !store._byKeyViaLoad()) {\r\n return store.byKey(propValue, options)\r\n }\r\n options.take = 1;\r\n options.filter = options.filter ? [options.filter, [propName, propValue]] : [propName, propValue];\r\n return store.load(options)\r\n })().fail(d.reject).done(data => {\r\n var isEmptyArray = Array.isArray(data) && !data.length;\r\n if (!isDefined(data) || isEmptyArray) {\r\n d.reject(new errors.Error(\"E4009\"))\r\n } else {\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n d.resolve(this._applyMapFunction(data)[0])\r\n }\r\n });\r\n return d.promise()\r\n },\r\n load() {\r\n var d = new Deferred;\r\n var loadTask = () => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(d)) {\r\n return\r\n }\r\n return this._loadFromStore(loadOperation, d)\r\n };\r\n this._scheduleLoadCallbacks(d);\r\n this._scheduleFailCallbacks(d);\r\n this._scheduleChangedCallbacks(d);\r\n var loadOperation = this._createLoadOperation(d);\r\n this._eventsStrategy.fireEvent(\"customizeStoreLoadOptions\", [loadOperation]);\r\n this._loadQueue.add(() => {\r\n if (\"number\" === typeof loadOperation.delay) {\r\n this._delayedLoadTask = executeAsync(loadTask, loadOperation.delay)\r\n } else {\r\n loadTask()\r\n }\r\n return d.promise()\r\n });\r\n return d.promise({\r\n operationId: loadOperation.operationId\r\n })\r\n },\r\n _onPush(changes) {\r\n if (this._reshapeOnPush) {\r\n this.load()\r\n } else {\r\n var changingArgs = {\r\n changes: changes\r\n };\r\n this._eventsStrategy.fireEvent(\"changing\", [changingArgs]);\r\n var group = this.group();\r\n var items = this.items();\r\n var groupLevel = 0;\r\n var dataSourceChanges = this.paginate() || group ? changes.filter(item => \"update\" === item.type) : changes;\r\n if (group) {\r\n groupLevel = Array.isArray(group) ? group.length : 1\r\n }\r\n if (this._mapFunc) {\r\n dataSourceChanges.forEach(item => {\r\n if (\"insert\" === item.type) {\r\n item.data = this._mapFunc(item.data)\r\n }\r\n })\r\n }\r\n if (changingArgs.postProcessChanges) {\r\n dataSourceChanges = changingArgs.postProcessChanges(dataSourceChanges)\r\n }\r\n applyBatch({\r\n keyInfo: this.store(),\r\n data: items,\r\n changes: dataSourceChanges,\r\n groupCount: groupLevel,\r\n useInsertIndex: true\r\n });\r\n this._fireChanged([{\r\n changes: changes\r\n }])\r\n }\r\n },\r\n _createLoadOperation(deferred) {\r\n var operationId = this._operationManager.add(deferred);\r\n var storeLoadOptions = this._createStoreLoadOptions();\r\n deferred.always(() => this._operationManager.remove(operationId));\r\n return {\r\n operationId: operationId,\r\n storeLoadOptions: storeLoadOptions\r\n }\r\n },\r\n reload() {\r\n var store = this.store();\r\n store._clearCache();\r\n this._init();\r\n return this.load()\r\n },\r\n cancel(operationId) {\r\n return this._operationManager.cancel(operationId)\r\n },\r\n cancelAll() {\r\n return this._operationManager.cancelAll()\r\n },\r\n _addSearchOptions(storeLoadOptions) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (this.store()._useDefaultSearch) {\r\n this._addSearchFilter(storeLoadOptions)\r\n } else {\r\n storeLoadOptions.searchOperation = this._searchOperation;\r\n storeLoadOptions.searchValue = this._searchValue;\r\n storeLoadOptions.searchExpr = this._searchExpr\r\n }\r\n },\r\n _createStoreLoadOptions() {\r\n var result = extend({}, this._storeLoadOptions);\r\n this._addSearchOptions(result);\r\n if (this._paginate) {\r\n if (this._pageSize) {\r\n result.skip = this._pageIndex * this._pageSize;\r\n result.take = this._pageSize\r\n }\r\n }\r\n result.userData = this._userData;\r\n return result\r\n },\r\n _addSearchFilter(storeLoadOptions) {\r\n var value = this._searchValue;\r\n var op = this._searchOperation;\r\n var selector = this._searchExpr;\r\n var searchFilter = [];\r\n if (!value) {\r\n return\r\n }\r\n if (!selector) {\r\n selector = \"this\"\r\n }\r\n if (!Array.isArray(selector)) {\r\n selector = [selector]\r\n }\r\n each(selector, (function(i, item) {\r\n if (searchFilter.length) {\r\n searchFilter.push(\"or\")\r\n }\r\n searchFilter.push([item, op, value])\r\n }));\r\n if (storeLoadOptions.filter) {\r\n storeLoadOptions.filter = [searchFilter, storeLoadOptions.filter]\r\n } else {\r\n storeLoadOptions.filter = searchFilter\r\n }\r\n },\r\n _loadFromStore(loadOptions, pendingDeferred) {\r\n var handleSuccess = (data, extra) => {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (!isPending(pendingDeferred)) {\r\n return\r\n }\r\n var loadResult = extend(normalizeLoadResult(data, extra), loadOptions);\r\n this._eventsStrategy.fireEvent(\"customizeLoadResult\", [loadResult]);\r\n when(loadResult.data).done(data => {\r\n loadResult.data = data;\r\n this._processStoreLoadResult(loadResult, pendingDeferred)\r\n }).fail(pendingDeferred.reject)\r\n };\r\n if (loadOptions.data) {\r\n return (new Deferred).resolve(loadOptions.data).done(handleSuccess)\r\n }\r\n return this.store().load(loadOptions.storeLoadOptions).done(handleSuccess).fail(pendingDeferred.reject)\r\n },\r\n _processStoreLoadResult(loadResult, pendingDeferred) {\r\n var data = loadResult.data;\r\n var extra = loadResult.extra;\r\n var storeLoadOptions = loadResult.storeLoadOptions;\r\n var resolvePendingDeferred = () => {\r\n this._isLoaded = true;\r\n this._totalCount = isFinite(extra.totalCount) ? extra.totalCount : -1;\r\n return pendingDeferred.resolve(data, extra)\r\n };\r\n if (this._disposed) {\r\n return\r\n }\r\n data = this._applyPostProcessFunction(this._applyMapFunction(data));\r\n if (!isObject(extra)) {\r\n extra = {}\r\n }\r\n this._items = data;\r\n if (!data.length || !this._paginate || this._pageSize && data.length < this._pageSize) {\r\n this._isLastPage = true\r\n }\r\n if (storeLoadOptions.requireTotalCount && !isFinite(extra.totalCount)) {\r\n (() => {\r\n this.store().totalCount(storeLoadOptions).done((function(count) {\r\n extra.totalCount = count;\r\n resolvePendingDeferred()\r\n })).fail(pendingDeferred.reject)\r\n })()\r\n } else {\r\n resolvePendingDeferred()\r\n }\r\n },\r\n _applyMapFunction(data) {\r\n if (this._mapFunc) {\r\n return mapDataRespectingGrouping(data, this._mapFunc, this.group())\r\n }\r\n return data\r\n },\r\n _applyPostProcessFunction(data) {\r\n if (this._postProcessFunc) {\r\n return this._postProcessFunc(data)\r\n }\r\n return data\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/data/data_source/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"items\"];\r\nimport ajaxUtils from \"../../core/utils/ajax\";\r\nimport Store from \"../abstract_store\";\r\nimport ArrayStore from \"../array_store\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport CustomStore from \"../custom_store\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../utils\";\r\nexport var CANCELED_TOKEN = \"canceled\";\r\nexport var isPending = deferred => \"pending\" === deferred.state();\r\nexport var normalizeStoreLoadOptionAccessorArguments = originalArguments => {\r\n switch (originalArguments.length) {\r\n case 0:\r\n return;\r\n case 1:\r\n return originalArguments[0]\r\n }\r\n return [].slice.call(originalArguments)\r\n};\r\nvar mapGroup = (group, level, mapper) => map(group, item => {\r\n var restItem = _objectWithoutPropertiesLoose(item, _excluded);\r\n return _extends({}, restItem, {\r\n items: mapRecursive(item.items, level - 1, mapper)\r\n })\r\n});\r\nvar mapRecursive = (items, level, mapper) => {\r\n if (!Array.isArray(items)) {\r\n return items\r\n }\r\n return level ? mapGroup(items, level, mapper) : map(items, mapper)\r\n};\r\nexport var mapDataRespectingGrouping = (items, mapper, groupInfo) => {\r\n var level = groupInfo ? normalizeSortingInfo(groupInfo).length : 0;\r\n return mapRecursive(items, level, mapper)\r\n};\r\nexport var normalizeLoadResult = (data, extra) => {\r\n var _data;\r\n if (null !== (_data = data) && void 0 !== _data && _data.data) {\r\n extra = data;\r\n data = data.data\r\n }\r\n if (!Array.isArray(data)) {\r\n data = [data]\r\n }\r\n return {\r\n data: data,\r\n extra: extra\r\n }\r\n};\r\nvar createCustomStoreFromLoadFunc = options => {\r\n var storeConfig = {};\r\n each([\"useDefaultSearch\", \"key\", \"load\", \"loadMode\", \"cacheRawData\", \"byKey\", \"lookup\", \"totalCount\", \"insert\", \"update\", \"remove\"], (function() {\r\n storeConfig[this] = options[this];\r\n delete options[this]\r\n }));\r\n return new CustomStore(storeConfig)\r\n};\r\nvar createStoreFromConfig = storeConfig => {\r\n var alias = storeConfig.type;\r\n delete storeConfig.type;\r\n return Store.create(alias, storeConfig)\r\n};\r\nvar createCustomStoreFromUrl = (url, normalizationOptions) => new CustomStore({\r\n load: () => ajaxUtils.sendRequest({\r\n url: url,\r\n dataType: \"json\"\r\n }),\r\n loadMode: null === normalizationOptions || void 0 === normalizationOptions ? void 0 : normalizationOptions.fromUrlLoadMode\r\n});\r\nexport var normalizeDataSourceOptions = (options, normalizationOptions) => {\r\n var store;\r\n if (\"string\" === typeof options) {\r\n options = {\r\n paginate: false,\r\n store: createCustomStoreFromUrl(options, normalizationOptions)\r\n }\r\n }\r\n if (void 0 === options) {\r\n options = []\r\n }\r\n if (Array.isArray(options) || options instanceof Store) {\r\n options = {\r\n store: options\r\n }\r\n } else {\r\n options = extend({}, options)\r\n }\r\n if (void 0 === options.store) {\r\n options.store = []\r\n }\r\n store = options.store;\r\n if (\"load\" in options) {\r\n store = createCustomStoreFromLoadFunc(options)\r\n } else if (Array.isArray(store)) {\r\n store = new ArrayStore(store)\r\n } else if (isPlainObject(store)) {\r\n store = createStoreFromConfig(extend({}, store))\r\n }\r\n options.store = store;\r\n return options\r\n};\r\n","/**\r\n * DevExtreme (esm/data/errors.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../core/utils/error\";\r\nimport coreErrors from \"../core/errors\";\r\nexport var errors = errorUtils(coreErrors.ERROR_MESSAGES, {\r\n E4000: \"[DevExpress.data]: {0}\",\r\n E4001: \"Unknown aggregating function is detected: '{0}'\",\r\n E4002: \"Unsupported OData protocol version is used\",\r\n E4003: \"Unknown filter operation is used: {0}\",\r\n E4004: \"The thenby() method is called before the sortby() method\",\r\n E4005: \"Store requires a key expression for this operation\",\r\n E4006: \"ArrayStore 'data' option must be an array\",\r\n E4007: \"Compound keys cannot be auto-generated\",\r\n E4008: \"Attempt to insert an item with a duplicated key\",\r\n E4009: \"Data item cannot be found\",\r\n E4010: \"CustomStore does not support creating queries\",\r\n E4011: \"Custom Store method is not implemented or is not a function: {0}\",\r\n E4012: \"Custom Store method returns an invalid value: {0}\",\r\n E4013: \"Local Store requires the 'name' configuration option is specified\",\r\n E4014: \"Unknown data type is specified for ODataStore: {0}\",\r\n E4015: \"Unknown entity name or alias is used: {0}\",\r\n E4016: \"The compileSetter(expr) method is called with 'self' passed as a parameter\",\r\n E4017: \"Keys cannot be modified\",\r\n E4018: \"The server has returned a non-numeric value in a response to an item count request\",\r\n E4019: \"Mixing of group operators inside a single group of filter expression is not allowed\",\r\n E4020: \"Unknown store type is detected: {0}\",\r\n E4021: \"The server response does not provide the totalCount value\",\r\n E4022: \"The server response does not provide the groupCount value\",\r\n E4023: \"Could not parse the following XML: {0}\",\r\n E4024: \"String function {0} cannot be used with the data field {1} of type {2}.\",\r\n W4000: \"Data returned from the server has an incorrect structure\",\r\n W4001: 'The {0} field is listed in both \"keyType\" and \"fieldTypes\". The value of \"fieldTypes\" is used.',\r\n W4002: \"Data loading has failed for some cells due to the following error: {0}\"\r\n});\r\nexport var errorHandler = null;\r\nexport var handleError = function(error) {\r\n var _errorHandler;\r\n null === (_errorHandler = errorHandler) || void 0 === _errorHandler ? void 0 : _errorHandler(error)\r\n};\r\nexport var setErrorHandler = handler => errorHandler = handler;\r\n","/**\r\n * DevExtreme (esm/data/query_adapters.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {};\r\n","/**\r\n * DevExtreme (esm/data/remote_query.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport queryAdapters from \"./query_adapters\";\r\nimport {\r\n errors,\r\n handleError\r\n} from \"./errors\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport arrayQueryImpl from \"./array_query\";\r\nvar remoteQueryImpl = function remoteQueryImpl(url, queryOptions, tasks) {\r\n tasks = tasks || [];\r\n queryOptions = queryOptions || {};\r\n var createTask = function(name, args) {\r\n return {\r\n name: name,\r\n args: args\r\n }\r\n };\r\n var exec = function(executorTask) {\r\n var d = new Deferred;\r\n var _adapterFactory;\r\n var _adapter;\r\n var _taskQueue;\r\n var _currentTask;\r\n var _mergedSortArgs;\r\n var rejectWithNotify = function(error) {\r\n var handler = queryOptions.errorHandler;\r\n if (handler) {\r\n handler(error)\r\n }\r\n handleError(error);\r\n d.reject(error)\r\n };\r\n\r\n function mergeSortTask(task) {\r\n switch (task.name) {\r\n case \"sortBy\":\r\n _mergedSortArgs = [task.args];\r\n return true;\r\n case \"thenBy\":\r\n if (!_mergedSortArgs) {\r\n throw errors.Error(\"E4004\")\r\n }\r\n _mergedSortArgs.push(task.args);\r\n return true\r\n }\r\n return false\r\n }\r\n try {\r\n _adapterFactory = queryOptions.adapter;\r\n if (!isFunction(_adapterFactory)) {\r\n _adapterFactory = queryAdapters[_adapterFactory]\r\n }\r\n _adapter = _adapterFactory(queryOptions);\r\n _taskQueue = [].concat(tasks).concat(executorTask);\r\n var optimize = _adapter.optimize;\r\n if (optimize) {\r\n optimize(_taskQueue)\r\n }\r\n while (_taskQueue.length) {\r\n _currentTask = _taskQueue[0];\r\n if (!mergeSortTask(_currentTask)) {\r\n if (_mergedSortArgs) {\r\n _taskQueue.unshift(createTask(\"multiSort\", [_mergedSortArgs]));\r\n _mergedSortArgs = null;\r\n continue\r\n }\r\n if (\"enumerate\" !== String(_currentTask.name)) {\r\n if (!_adapter[_currentTask.name] || false === _adapter[_currentTask.name].apply(_adapter, _currentTask.args)) {\r\n break\r\n }\r\n }\r\n }\r\n _taskQueue.shift()\r\n }! function() {\r\n var head = _taskQueue[0];\r\n var unmergedTasks = [];\r\n if (head && \"multiSort\" === head.name) {\r\n _taskQueue.shift();\r\n each(head.args[0], (function() {\r\n unmergedTasks.push(createTask(unmergedTasks.length ? \"thenBy\" : \"sortBy\", this))\r\n }))\r\n }\r\n _taskQueue = unmergedTasks.concat(_taskQueue)\r\n }();\r\n _adapter.exec(url).done((function(result, extra) {\r\n if (!_taskQueue.length) {\r\n d.resolve(result, extra)\r\n } else {\r\n var clientChain = arrayQueryImpl(result, {\r\n errorHandler: queryOptions.errorHandler\r\n });\r\n each(_taskQueue, (function() {\r\n clientChain = clientChain[this.name].apply(clientChain, this.args)\r\n }));\r\n clientChain.done(d.resolve).fail(d.reject)\r\n }\r\n })).fail(rejectWithNotify)\r\n } catch (x) {\r\n rejectWithNotify(x)\r\n }\r\n return d.promise()\r\n };\r\n var query = {};\r\n each([\"sortBy\", \"thenBy\", \"filter\", \"slice\", \"select\", \"groupBy\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return remoteQueryImpl(url, queryOptions, tasks.concat(createTask(name, arguments)))\r\n }\r\n }));\r\n each([\"count\", \"min\", \"max\", \"sum\", \"avg\", \"aggregate\", \"enumerate\"], (function() {\r\n var name = String(this);\r\n query[name] = function() {\r\n return exec.call(this, createTask(name, arguments))\r\n }\r\n }));\r\n return query\r\n};\r\nexport default remoteQueryImpl;\r\n","/**\r\n * DevExtreme (esm/data/query_implementation.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport arrayQueryImpl from \"./array_query\";\r\nimport remoteQueryImpl from \"./remote_query\";\r\nexport var queryImpl = {\r\n array: arrayQueryImpl,\r\n remote: remoteQueryImpl\r\n};\r\n","/**\r\n * DevExtreme (esm/data/query.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n queryImpl\r\n} from \"./query_implementation\";\r\nvar query = function() {\r\n var impl = Array.isArray(arguments[0]) ? \"array\" : \"remote\";\r\n return queryImpl[impl].apply(this, arguments)\r\n};\r\nexport default query;\r\n","/**\r\n * DevExtreme (esm/data/store_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport arrayQuery from \"./array_query\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"./utils\";\r\n\r\nfunction multiLevelGroup(query, groupInfo) {\r\n query = query.groupBy(groupInfo[0].selector);\r\n if (groupInfo.length > 1) {\r\n query = query.select((function(g) {\r\n return extend({}, g, {\r\n items: multiLevelGroup(arrayQuery(g.items), groupInfo.slice(1)).toArray()\r\n })\r\n }))\r\n }\r\n return query\r\n}\r\n\r\nfunction arrangeSortingInfo(groupInfo, sortInfo) {\r\n var filteredGroup = [];\r\n each(groupInfo, (function(_, group) {\r\n var collision = grep(sortInfo, (function(sort) {\r\n return group.selector === sort.selector\r\n }));\r\n if (collision.length < 1) {\r\n filteredGroup.push(group)\r\n }\r\n }));\r\n return filteredGroup.concat(sortInfo)\r\n}\r\n\r\nfunction queryByOptions(query, options, isCountQuery) {\r\n options = options || {};\r\n var filter = options.filter;\r\n if (filter) {\r\n query = query.filter(filter)\r\n }\r\n if (isCountQuery) {\r\n return query\r\n }\r\n var sort = options.sort;\r\n var select = options.select;\r\n var group = options.group;\r\n var skip = options.skip;\r\n var take = options.take;\r\n if (group) {\r\n group = normalizeSortingInfo(group);\r\n group.keepInitialKeyOrder = !!options.group.keepInitialKeyOrder\r\n }\r\n if (sort || group) {\r\n sort = normalizeSortingInfo(sort || []);\r\n if (group && !group.keepInitialKeyOrder) {\r\n sort = arrangeSortingInfo(group, sort)\r\n }\r\n each(sort, (function(index) {\r\n query = query[index ? \"thenBy\" : \"sortBy\"](this.selector, this.desc, this.compare)\r\n }))\r\n }\r\n if (select) {\r\n query = query.select(select)\r\n }\r\n if (group) {\r\n query = multiLevelGroup(query, group)\r\n }\r\n if (take || skip) {\r\n query = query.slice(skip || 0, take)\r\n }\r\n return query\r\n}\r\nexport default {\r\n multiLevelGroup: multiLevelGroup,\r\n arrangeSortingInfo: arrangeSortingInfo,\r\n queryByOptions: queryByOptions\r\n};\r\n","/**\r\n * DevExtreme (esm/data/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n equalByValue\r\n} from \"../core/utils/common\";\r\nvar ready = readyCallbacks.add;\r\nexport var XHR_ERROR_UNLOAD = \"DEVEXTREME_XHR_ERROR_UNLOAD\";\r\nexport var normalizeBinaryCriterion = function(crit) {\r\n return [crit[0], crit.length < 3 ? \"=\" : String(crit[1]).toLowerCase(), crit.length < 2 ? true : crit[crit.length - 1]]\r\n};\r\nexport var normalizeSortingInfo = function(info) {\r\n if (!Array.isArray(info)) {\r\n info = [info]\r\n }\r\n return map(info, (function(i) {\r\n var result = {\r\n selector: isFunction(i) || \"string\" === typeof i ? i : i.getter || i.field || i.selector,\r\n desc: !!(i.desc || \"d\" === String(i.dir).charAt(0).toLowerCase())\r\n };\r\n if (i.compare) {\r\n result.compare = i.compare\r\n }\r\n return result\r\n }))\r\n};\r\nexport var errorMessageFromXhr = function() {\r\n var textStatusMessages = {\r\n timeout: \"Network connection timeout\",\r\n error: \"Unspecified network error\",\r\n parsererror: \"Unexpected server response\"\r\n };\r\n var unloading;\r\n ready((function() {\r\n var window = getWindow();\r\n domAdapter.listen(window, \"beforeunload\", (function() {\r\n unloading = true\r\n }))\r\n }));\r\n return function(xhr, textStatus) {\r\n if (unloading) {\r\n return XHR_ERROR_UNLOAD\r\n }\r\n if (xhr.status < 400) {\r\n return function(textStatus) {\r\n var result = textStatusMessages[textStatus];\r\n if (!result) {\r\n return textStatus\r\n }\r\n return result\r\n }(textStatus)\r\n }\r\n return xhr.statusText\r\n }\r\n}();\r\nexport var aggregators = {\r\n count: {\r\n seed: 0,\r\n step: function(count) {\r\n return 1 + count\r\n }\r\n },\r\n sum: {\r\n seed: 0,\r\n step: function(sum, item) {\r\n return sum + item\r\n }\r\n },\r\n min: {\r\n step: function(min, item) {\r\n return item < min ? item : min\r\n }\r\n },\r\n max: {\r\n step: function(max, item) {\r\n return item > max ? item : max\r\n }\r\n },\r\n avg: {\r\n seed: [0, 0],\r\n step: function(pair, value) {\r\n return [pair[0] + value, pair[1] + 1]\r\n },\r\n finalize: function(pair) {\r\n return pair[1] ? pair[0] / pair[1] : NaN\r\n }\r\n }\r\n};\r\nexport var processRequestResultLock = function() {\r\n var lockCount = 0;\r\n var lockDeferred;\r\n return {\r\n obtain: function() {\r\n if (0 === lockCount) {\r\n lockDeferred = new Deferred\r\n }\r\n lockCount++\r\n },\r\n release: function() {\r\n lockCount--;\r\n if (lockCount < 1) {\r\n lockDeferred.resolve()\r\n }\r\n },\r\n promise: function() {\r\n var deferred = 0 === lockCount ? (new Deferred).resolve() : lockDeferred;\r\n return deferred.promise()\r\n },\r\n reset: function() {\r\n lockCount = 0;\r\n if (lockDeferred) {\r\n lockDeferred.resolve()\r\n }\r\n }\r\n }\r\n}();\r\nexport function isDisjunctiveOperator(condition) {\r\n return /^(or|\\|\\||\\|)$/i.test(condition)\r\n}\r\nexport function isConjunctiveOperator(condition) {\r\n return /^(and|&&|&)$/i.test(condition)\r\n}\r\nexport var keysEqual = function(keyExpr, key1, key2) {\r\n if (Array.isArray(keyExpr)) {\r\n var names = map(key1, (function(v, k) {\r\n return k\r\n }));\r\n var name;\r\n for (var i = 0; i < names.length; i++) {\r\n name = names[i];\r\n if (!equalByValue(key1[name], key2[name], 0, false)) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return equalByValue(key1, key2, 0, false)\r\n};\r\nvar BASE64_CHARS = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\r\nexport var base64_encode = function(input) {\r\n if (!Array.isArray(input)) {\r\n input = stringToByteArray(String(input))\r\n }\r\n var result = \"\";\r\n\r\n function getBase64Char(index) {\r\n return BASE64_CHARS.charAt(index)\r\n }\r\n for (var i = 0; i < input.length; i += 3) {\r\n var octet1 = input[i];\r\n var octet2 = input[i + 1];\r\n var octet3 = input[i + 2];\r\n result += map([octet1 >> 2, (3 & octet1) << 4 | octet2 >> 4, isNaN(octet2) ? 64 : (15 & octet2) << 2 | octet3 >> 6, isNaN(octet3) ? 64 : 63 & octet3], getBase64Char).join(\"\")\r\n }\r\n return result\r\n};\r\n\r\nfunction stringToByteArray(str) {\r\n var bytes = [];\r\n var code;\r\n var i;\r\n for (i = 0; i < str.length; i++) {\r\n code = str.charCodeAt(i);\r\n if (code < 128) {\r\n bytes.push(code)\r\n } else if (code < 2048) {\r\n bytes.push(192 + (code >> 6), 128 + (63 & code))\r\n } else if (code < 65536) {\r\n bytes.push(224 + (code >> 12), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n } else if (code < 2097152) {\r\n bytes.push(240 + (code >> 18), 128 + (code >> 12 & 63), 128 + (code >> 6 & 63), 128 + (63 & code))\r\n }\r\n }\r\n return bytes\r\n}\r\nexport var isUnaryOperation = function(crit) {\r\n return \"!\" === crit[0] && Array.isArray(crit[1])\r\n};\r\nvar isGroupOperator = function(value) {\r\n return \"and\" === value || \"or\" === value\r\n};\r\nexport var isGroupCriterion = function(crit) {\r\n var first = crit[0];\r\n var second = crit[1];\r\n if (Array.isArray(first)) {\r\n return true\r\n }\r\n if (isFunction(first)) {\r\n if (Array.isArray(second) || isFunction(second) || isGroupOperator(second)) {\r\n return true\r\n }\r\n }\r\n return false\r\n};\r\nexport var trivialPromise = function() {\r\n var d = new Deferred;\r\n return d.resolve.apply(d, arguments).promise()\r\n};\r\nexport var rejectedPromise = function() {\r\n var d = new Deferred;\r\n return d.reject.apply(d, arguments).promise()\r\n};\r\n\r\nfunction throttle(func, timeout) {\r\n var timeoutId;\r\n return function() {\r\n if (!timeoutId) {\r\n timeoutId = setTimeout(() => {\r\n timeoutId = void 0;\r\n func.call(this)\r\n }, isFunction(timeout) ? timeout() : timeout)\r\n }\r\n return timeoutId\r\n }\r\n}\r\nexport function throttleChanges(func, timeout) {\r\n var cache = [];\r\n var throttled = throttle((function() {\r\n func.call(this, cache);\r\n cache = []\r\n }), timeout);\r\n return function(changes) {\r\n if (Array.isArray(changes)) {\r\n cache.push(...changes)\r\n }\r\n return throttled.call(this, cache)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/collection/data_controller.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DataControllerMock = {\r\n load: () => Deferred().reject(),\r\n loadSingle: () => Deferred().reject(),\r\n loadFromStore: () => Deferred().reject(),\r\n loadNextPage: () => Deferred().reject(),\r\n loadOptions: noop,\r\n userData: noop,\r\n cancel: noop,\r\n cancelAll: noop,\r\n filter: noop,\r\n addSearchFilter: noop,\r\n group: noop,\r\n paginate: noop,\r\n pageSize: noop,\r\n pageIndex: noop,\r\n resetDataSourcePageIndex: noop,\r\n totalCount: noop,\r\n isLastPage: noop,\r\n isLoading: noop,\r\n isLoaded: noop,\r\n searchValue: noop,\r\n searchOperation: noop,\r\n searchExpr: noop,\r\n select: noop,\r\n key: noop,\r\n keyOf: noop,\r\n store: noop,\r\n items: noop,\r\n applyMapFunction: noop,\r\n getDataSource: noop,\r\n reload: noop,\r\n on: noop,\r\n off: noop\r\n};\r\nclass DataController {\r\n constructor(dataSource) {\r\n if (!dataSource) {\r\n return DataControllerMock\r\n }\r\n this._dataSource = dataSource\r\n }\r\n load() {\r\n return this._dataSource.load()\r\n }\r\n loadSingle(propName, propValue) {\r\n if (arguments.length < 2) {\r\n propValue = propName;\r\n propName = this.key()\r\n }\r\n return this._dataSource.loadSingle(propName, propValue)\r\n }\r\n loadFromStore(loadOptions) {\r\n return this.store().load(loadOptions)\r\n }\r\n loadNextPage() {\r\n this.pageIndex(1 + this.pageIndex());\r\n return this.load()\r\n }\r\n loadOptions() {\r\n return this._dataSource.loadOptions()\r\n }\r\n userData() {\r\n return this._dataSource._userData\r\n }\r\n cancel(operationId) {\r\n this._dataSource.cancel(operationId)\r\n }\r\n cancelAll() {\r\n this._dataSource.cancelAll()\r\n }\r\n filter(filter) {\r\n return this._dataSource.filter(filter)\r\n }\r\n addSearchFilter(storeLoadOptions) {\r\n this._dataSource._addSearchFilter(storeLoadOptions)\r\n }\r\n group(group) {\r\n return this._dataSource.group(group)\r\n }\r\n paginate() {\r\n return this._dataSource.paginate()\r\n }\r\n pageSize() {\r\n return this._dataSource._pageSize\r\n }\r\n pageIndex(pageIndex) {\r\n return this._dataSource.pageIndex(pageIndex)\r\n }\r\n resetDataSourcePageIndex() {\r\n if (this.pageIndex()) {\r\n this.pageIndex(0);\r\n this.load()\r\n }\r\n }\r\n totalCount() {\r\n return this._dataSource.totalCount()\r\n }\r\n isLastPage() {\r\n return this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n }\r\n isLoading() {\r\n return this._dataSource.isLoading()\r\n }\r\n isLoaded() {\r\n return this._dataSource.isLoaded()\r\n }\r\n searchValue(value) {\r\n if (!arguments.length) {\r\n return this._dataSource.searchValue()\r\n }\r\n return this._dataSource.searchValue(value)\r\n }\r\n searchOperation(operation) {\r\n return this._dataSource.searchOperation(operation)\r\n }\r\n searchExpr(expr) {\r\n if (!arguments.length) {\r\n return this._dataSource.searchExpr()\r\n }\r\n return this._dataSource.searchExpr(expr)\r\n }\r\n select() {\r\n return this._dataSource.select(...arguments)\r\n }\r\n key() {\r\n return this._dataSource.key()\r\n }\r\n keyOf(item) {\r\n return this.store().keyOf(item)\r\n }\r\n store() {\r\n return this._dataSource.store()\r\n }\r\n items() {\r\n return this._dataSource.items()\r\n }\r\n applyMapFunction(data) {\r\n return this._dataSource._applyMapFunction(data)\r\n }\r\n getDataSource() {\r\n return this._dataSource || null\r\n }\r\n reload() {\r\n return this._dataSource.reload()\r\n }\r\n on(event, handler) {\r\n this._dataSource.on(event, handler)\r\n }\r\n off(event, handler) {\r\n this._dataSource.off(event, handler)\r\n }\r\n}\r\nexport default DataController;\r\n","/**\r\n * DevExtreme (esm/data_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DataSource\r\n} from \"./data/data_source/data_source\";\r\nimport {\r\n extend\r\n} from \"./core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"./data/data_source/utils\";\r\nimport DataController from \"./ui/collection/data_controller\";\r\nvar DATA_SOURCE_OPTIONS_METHOD = \"_dataSourceOptions\";\r\nvar DATA_SOURCE_CHANGED_METHOD = \"_dataSourceChangedHandler\";\r\nvar DATA_SOURCE_LOAD_ERROR_METHOD = \"_dataSourceLoadErrorHandler\";\r\nvar DATA_SOURCE_LOADING_CHANGED_METHOD = \"_dataSourceLoadingChangedHandler\";\r\nvar DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD = \"_dataSourceFromUrlLoadMode\";\r\nvar SPECIFIC_DATA_SOURCE_OPTION = \"_getSpecificDataSourceOption\";\r\nvar NORMALIZE_DATA_SOURCE = \"_normalizeDataSource\";\r\nvar DataHelperMixin = {\r\n postCtor: function() {\r\n this.on(\"disposing\", function() {\r\n this._disposeDataSource()\r\n }.bind(this))\r\n },\r\n _refreshDataSource: function() {\r\n this._initDataSource();\r\n this._loadDataSource()\r\n },\r\n _initDataSource: function() {\r\n var dataSourceOptions = SPECIFIC_DATA_SOURCE_OPTION in this ? this[SPECIFIC_DATA_SOURCE_OPTION]() : this.option(\"dataSource\");\r\n var widgetDataSourceOptions;\r\n var dataSourceType;\r\n this._disposeDataSource();\r\n if (dataSourceOptions) {\r\n if (dataSourceOptions instanceof DataSource) {\r\n this._isSharedDataSource = true;\r\n this._dataSource = dataSourceOptions\r\n } else {\r\n widgetDataSourceOptions = DATA_SOURCE_OPTIONS_METHOD in this ? this[DATA_SOURCE_OPTIONS_METHOD]() : {};\r\n dataSourceType = this._dataSourceType ? this._dataSourceType() : DataSource;\r\n dataSourceOptions = normalizeDataSourceOptions(dataSourceOptions, {\r\n fromUrlLoadMode: DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD in this && this[DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD]()\r\n });\r\n this._dataSource = new dataSourceType(extend(true, {}, widgetDataSourceOptions, dataSourceOptions))\r\n }\r\n if (NORMALIZE_DATA_SOURCE in this) {\r\n this._dataSource = this[NORMALIZE_DATA_SOURCE](this._dataSource)\r\n }\r\n this._addDataSourceHandlers();\r\n this._initDataController()\r\n }\r\n },\r\n _initDataController: function() {\r\n var _this$option;\r\n var dataController = null === (_this$option = this.option) || void 0 === _this$option ? void 0 : _this$option.call(this, \"_dataController\");\r\n var dataSource = this._dataSource;\r\n if (dataController) {\r\n this._dataController = dataController\r\n } else {\r\n this._dataController = new DataController(dataSource)\r\n }\r\n },\r\n _addDataSourceHandlers: function() {\r\n if (DATA_SOURCE_CHANGED_METHOD in this) {\r\n this._addDataSourceChangeHandler()\r\n }\r\n if (DATA_SOURCE_LOAD_ERROR_METHOD in this) {\r\n this._addDataSourceLoadErrorHandler()\r\n }\r\n if (DATA_SOURCE_LOADING_CHANGED_METHOD in this) {\r\n this._addDataSourceLoadingChangedHandler()\r\n }\r\n this._addReadyWatcher()\r\n },\r\n _addReadyWatcher: function() {\r\n this._dataSource.on(\"loadingChanged\", function(isLoading) {\r\n this._ready && this._ready(!isLoading)\r\n }.bind(this))\r\n },\r\n _addDataSourceChangeHandler: function() {\r\n var dataSource = this._dataSource;\r\n this._proxiedDataSourceChangedHandler = function(e) {\r\n this[DATA_SOURCE_CHANGED_METHOD](dataSource.items(), e)\r\n }.bind(this);\r\n dataSource.on(\"changed\", this._proxiedDataSourceChangedHandler)\r\n },\r\n _addDataSourceLoadErrorHandler: function() {\r\n this._proxiedDataSourceLoadErrorHandler = this[DATA_SOURCE_LOAD_ERROR_METHOD].bind(this);\r\n this._dataSource.on(\"loadError\", this._proxiedDataSourceLoadErrorHandler)\r\n },\r\n _addDataSourceLoadingChangedHandler: function() {\r\n this._proxiedDataSourceLoadingChangedHandler = this[DATA_SOURCE_LOADING_CHANGED_METHOD].bind(this);\r\n this._dataSource.on(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n },\r\n _loadDataSource: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n if (dataSource.isLoaded()) {\r\n this._proxiedDataSourceChangedHandler && this._proxiedDataSourceChangedHandler()\r\n } else {\r\n dataSource.load()\r\n }\r\n }\r\n },\r\n _loadSingle: function(key, value) {\r\n key = \"this\" === key ? this._dataSource.key() || \"this\" : key;\r\n return this._dataSource.loadSingle(key, value)\r\n },\r\n _isLastPage: function() {\r\n return !this._dataSource || this._dataSource.isLastPage() || !this._dataSource._pageSize\r\n },\r\n _isDataSourceLoading: function() {\r\n return this._dataSource && this._dataSource.isLoading()\r\n },\r\n _disposeDataSource: function() {\r\n if (this._dataSource) {\r\n if (this._isSharedDataSource) {\r\n delete this._isSharedDataSource;\r\n this._proxiedDataSourceChangedHandler && this._dataSource.off(\"changed\", this._proxiedDataSourceChangedHandler);\r\n this._proxiedDataSourceLoadErrorHandler && this._dataSource.off(\"loadError\", this._proxiedDataSourceLoadErrorHandler);\r\n this._proxiedDataSourceLoadingChangedHandler && this._dataSource.off(\"loadingChanged\", this._proxiedDataSourceLoadingChangedHandler)\r\n } else {\r\n this._dataSource.dispose()\r\n }\r\n delete this._dataSource;\r\n delete this._proxiedDataSourceChangedHandler;\r\n delete this._proxiedDataSourceLoadErrorHandler;\r\n delete this._proxiedDataSourceLoadingChangedHandler\r\n }\r\n },\r\n getDataSource: function() {\r\n return this._dataSource || null\r\n }\r\n};\r\nexport default DataHelperMixin;\r\n","/**\r\n * DevExtreme (esm/events/utils/event_nodes_disposing.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n removeEvent\r\n} from \"../remove\";\r\n\r\nfunction nodesByEvent(event) {\r\n return event && [event.target, event.delegateTarget, event.relatedTarget, event.currentTarget].filter(node => !!node)\r\n}\r\nexport var subscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.one(nodesByEvent(event), removeEvent, callback)\r\n};\r\nexport var unsubscribeNodesDisposing = (event, callback) => {\r\n eventsEngine.off(nodesByEvent(event), removeEvent, callback)\r\n};\r\n","/**\r\n * DevExtreme (esm/events/click.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../animation/frame\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport {\r\n subscribeNodesDisposing,\r\n unsubscribeNodesDisposing\r\n} from \"./utils/event_nodes_disposing\";\r\nimport pointerEvents from \"./pointer\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar CLICK_EVENT_NAME = \"dxclick\";\r\nvar misc = {\r\n requestAnimationFrame: requestAnimationFrame,\r\n cancelAnimationFrame: cancelAnimationFrame\r\n};\r\nvar prevented = null;\r\nvar lastFiredEvent = null;\r\nvar onNodeRemove = () => {\r\n lastFiredEvent = null\r\n};\r\nvar clickHandler = function(e) {\r\n var originalEvent = e.originalEvent;\r\n var eventAlreadyFired = lastFiredEvent === originalEvent || originalEvent && originalEvent.DXCLICK_FIRED;\r\n var leftButton = !e.which || 1 === e.which;\r\n if (leftButton && !prevented && !eventAlreadyFired) {\r\n if (originalEvent) {\r\n originalEvent.DXCLICK_FIRED = true\r\n }\r\n unsubscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n lastFiredEvent = originalEvent;\r\n subscribeNodesDisposing(lastFiredEvent, onNodeRemove);\r\n fireEvent({\r\n type: CLICK_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n }\r\n};\r\nvar ClickEmitter = Emitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n eventsEngine.on(this.getElement(), \"click\", clickHandler)\r\n },\r\n start: function(e) {\r\n prevented = null\r\n },\r\n cancel: function() {\r\n prevented = true\r\n },\r\n dispose: function() {\r\n eventsEngine.off(this.getElement(), \"click\", clickHandler)\r\n }\r\n});\r\n! function() {\r\n var desktopDevice = devices.real().generic;\r\n if (!desktopDevice) {\r\n var startTarget = null;\r\n var blurPrevented = false;\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n startTarget = e.target;\r\n blurPrevented = e.isDefaultPrevented()\r\n }));\r\n eventsEngine.subscribeGlobal(document, addNamespace(\"click\", \"NATIVE_CLICK_FIXER\"), (function(e) {\r\n var $target = $(e.target);\r\n if (!blurPrevented && startTarget && !$target.is(startTarget) && !$(startTarget).is(\"label\") && (element = $target, $(element).is(\"input, textarea, select, button ,:focus, :focus *\"))) {\r\n resetActiveElement()\r\n }\r\n var element;\r\n startTarget = null;\r\n blurPrevented = false\r\n }))\r\n }\r\n}();\r\nregisterEmitter({\r\n emitter: ClickEmitter,\r\n bubble: true,\r\n events: [CLICK_EVENT_NAME]\r\n});\r\nexport {\r\n CLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/contextmenu.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport devices from \"../core/devices\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent,\r\n isMouseEvent\r\n} from \"./utils/index\";\r\nimport holdEvent from \"./hold\";\r\nvar CONTEXTMENU_NAMESPACE = \"dxContexMenu\";\r\nvar CONTEXTMENU_NAMESPACED_EVENT_NAME = addNamespace(\"contextmenu\", CONTEXTMENU_NAMESPACE);\r\nvar HOLD_NAMESPACED_EVENT_NAME = addNamespace(holdEvent.name, CONTEXTMENU_NAMESPACE);\r\nvar CONTEXTMENU_EVENT_NAME = \"dxcontextmenu\";\r\nvar ContextMenu = Class.inherit({\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, CONTEXTMENU_NAMESPACED_EVENT_NAME, this._contextMenuHandler.bind(this));\r\n if (touch || devices.isSimulator()) {\r\n eventsEngine.on($element, HOLD_NAMESPACED_EVENT_NAME, this._holdHandler.bind(this))\r\n }\r\n },\r\n _holdHandler: function(e) {\r\n if (isMouseEvent(e) && !devices.isSimulator()) {\r\n return\r\n }\r\n this._fireContextMenu(e)\r\n },\r\n _contextMenuHandler: function(e) {\r\n this._fireContextMenu(e)\r\n },\r\n _fireContextMenu: function(e) {\r\n return fireEvent({\r\n type: CONTEXTMENU_EVENT_NAME,\r\n originalEvent: e\r\n })\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\" + CONTEXTMENU_NAMESPACE)\r\n }\r\n});\r\nregisterEvent(CONTEXTMENU_EVENT_NAME, new ContextMenu);\r\nexport var name = CONTEXTMENU_EVENT_NAME;\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.feedback.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport Emitter from \"./emitter\";\r\nimport registerEmitter from \"./emitter_registrator\";\r\nvar ACTIVE_EVENT_NAME = \"dxactive\";\r\nvar INACTIVE_EVENT_NAME = \"dxinactive\";\r\nvar ACTIVE_TIMEOUT = 30;\r\nvar INACTIVE_TIMEOUT = 400;\r\nvar FeedbackEvent = Class.inherit({\r\n ctor: function(timeout, fire) {\r\n this._timeout = timeout;\r\n this._fire = fire\r\n },\r\n start: function() {\r\n var that = this;\r\n this._schedule((function() {\r\n that.force()\r\n }))\r\n },\r\n _schedule: function(fn) {\r\n this.stop();\r\n this._timer = setTimeout(fn, this._timeout)\r\n },\r\n stop: function() {\r\n clearTimeout(this._timer)\r\n },\r\n force: function() {\r\n if (this._fired) {\r\n return\r\n }\r\n this.stop();\r\n this._fire();\r\n this._fired = true\r\n },\r\n fired: function() {\r\n return this._fired\r\n }\r\n});\r\nvar activeFeedback;\r\nvar FeedbackEmitter = Emitter.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._active = new FeedbackEvent(0, noop);\r\n this._inactive = new FeedbackEvent(0, noop)\r\n },\r\n configure: function(data, eventName) {\r\n switch (eventName) {\r\n case ACTIVE_EVENT_NAME:\r\n data.activeTimeout = data.timeout;\r\n break;\r\n case INACTIVE_EVENT_NAME:\r\n data.inactiveTimeout = data.timeout\r\n }\r\n this.callBase(data)\r\n },\r\n start: function(e) {\r\n if (activeFeedback) {\r\n var activeChildExists = contains(this.getElement().get(0), activeFeedback.getElement().get(0));\r\n var childJustActivated = !activeFeedback._active.fired();\r\n if (activeChildExists && childJustActivated) {\r\n this._cancel();\r\n return\r\n }\r\n activeFeedback._inactive.force()\r\n }\r\n activeFeedback = this;\r\n this._initEvents(e);\r\n this._active.start()\r\n },\r\n _initEvents: function(e) {\r\n var that = this;\r\n var eventTarget = this._getEmitterTarget(e);\r\n var mouseEvent = isMouseEvent(e);\r\n var isSimulator = devices.isSimulator();\r\n var deferFeedback = isSimulator || !mouseEvent;\r\n var activeTimeout = ensureDefined(this.activeTimeout, ACTIVE_TIMEOUT);\r\n var inactiveTimeout = ensureDefined(this.inactiveTimeout, INACTIVE_TIMEOUT);\r\n this._active = new FeedbackEvent(deferFeedback ? activeTimeout : 0, (function() {\r\n that._fireEvent(ACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n })\r\n }));\r\n this._inactive = new FeedbackEvent(deferFeedback ? inactiveTimeout : 0, (function() {\r\n that._fireEvent(INACTIVE_EVENT_NAME, e, {\r\n target: eventTarget\r\n });\r\n activeFeedback = null\r\n }))\r\n },\r\n cancel: function(e) {\r\n this.end(e)\r\n },\r\n end: function(e) {\r\n var skipTimers = e.type !== pointerEvents.up;\r\n if (skipTimers) {\r\n this._active.stop()\r\n } else {\r\n this._active.force()\r\n }\r\n this._inactive.start();\r\n if (skipTimers) {\r\n this._inactive.force()\r\n }\r\n },\r\n dispose: function() {\r\n this._active.stop();\r\n this._inactive.stop();\r\n if (activeFeedback === this) {\r\n activeFeedback = null\r\n }\r\n this.callBase()\r\n },\r\n lockInactive: function() {\r\n this._active.force();\r\n this._inactive.stop();\r\n activeFeedback = null;\r\n this._cancel();\r\n return this._inactive.force.bind(this._inactive)\r\n }\r\n});\r\nFeedbackEmitter.lock = function(deferred) {\r\n var lockInactive = activeFeedback ? activeFeedback.lockInactive() : noop;\r\n deferred.done(lockInactive)\r\n};\r\nregisterEmitter({\r\n emitter: FeedbackEmitter,\r\n events: [ACTIVE_EVENT_NAME, INACTIVE_EVENT_NAME]\r\n});\r\nexport var lock = FeedbackEmitter.lock;\r\nexport {\r\n ACTIVE_EVENT_NAME as active, INACTIVE_EVENT_NAME as inactive\r\n};\r\n","/**\r\n * DevExtreme (esm/events/core/emitter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n hasTouches,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar Emitter = Class.inherit({\r\n ctor: function(element) {\r\n this._$element = $(element);\r\n this._cancelCallback = Callbacks();\r\n this._acceptCallback = Callbacks()\r\n },\r\n getElement: function() {\r\n return this._$element\r\n },\r\n validate: function(e) {\r\n return !isDxMouseWheelEvent(e)\r\n },\r\n validatePointers: function(e) {\r\n return 1 === hasTouches(e)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n extend(this, data)\r\n },\r\n addCancelCallback: function(callback) {\r\n this._cancelCallback.add(callback)\r\n },\r\n removeCancelCallback: function() {\r\n this._cancelCallback.empty()\r\n },\r\n _cancel: function(e) {\r\n this._cancelCallback.fire(this, e)\r\n },\r\n addAcceptCallback: function(callback) {\r\n this._acceptCallback.add(callback)\r\n },\r\n removeAcceptCallback: function() {\r\n this._acceptCallback.empty()\r\n },\r\n _accept: function(e) {\r\n this._acceptCallback.fire(this, e)\r\n },\r\n _requestAccept: function(e) {\r\n this._acceptRequestEvent = e\r\n },\r\n _forgetAccept: function() {\r\n this._accept(this._acceptRequestEvent);\r\n this._acceptRequestEvent = null\r\n },\r\n start: noop,\r\n move: noop,\r\n end: noop,\r\n cancel: noop,\r\n reset: function() {\r\n if (this._acceptRequestEvent) {\r\n this._accept(this._acceptRequestEvent)\r\n }\r\n },\r\n _fireEvent: function(eventName, e, params) {\r\n var eventData = extend({\r\n type: eventName,\r\n originalEvent: e,\r\n target: this._getEmitterTarget(e),\r\n delegateTarget: this.getElement().get(0)\r\n }, params);\r\n e = fireEvent(eventData);\r\n if (e.cancel) {\r\n this._cancel(e)\r\n }\r\n return e\r\n },\r\n _getEmitterTarget: function(e) {\r\n return (this.delegateSelector ? $(e.target).closest(this.delegateSelector) : this.getElement()).get(0)\r\n },\r\n dispose: noop\r\n});\r\nexport default Emitter;\r\n","/**\r\n * DevExtreme (esm/events/core/emitter_registrator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nimport pointerEvents from \"../pointer\";\r\nimport {\r\n name as wheelEventName\r\n} from \"./wheel\";\r\nvar MANAGER_EVENT = \"dxEventManager\";\r\nvar EMITTER_DATA = \"dxEmitter\";\r\nvar EventManager = Class.inherit({\r\n ctor: function() {\r\n this._attachHandlers();\r\n this.reset();\r\n this._proxiedCancelHandler = this._cancelHandler.bind(this);\r\n this._proxiedAcceptHandler = this._acceptHandler.bind(this)\r\n },\r\n _attachHandlers: function() {\r\n readyCallbacks.add(function() {\r\n var document = domAdapter.getDocument();\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.down, MANAGER_EVENT), this._pointerDownHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(pointerEvents.move, MANAGER_EVENT), this._pointerMoveHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace([pointerEvents.up, pointerEvents.cancel].join(\" \"), MANAGER_EVENT), this._pointerUpHandler.bind(this));\r\n eventsEngine.subscribeGlobal(document, addNamespace(wheelEventName, MANAGER_EVENT), this._mouseWheelHandler.bind(this))\r\n }.bind(this))\r\n },\r\n _eachEmitter: function(callback) {\r\n var activeEmitters = this._activeEmitters || [];\r\n var i = 0;\r\n while (activeEmitters.length > i) {\r\n var emitter = activeEmitters[i];\r\n if (false === callback(emitter)) {\r\n break\r\n }\r\n if (activeEmitters[i] === emitter) {\r\n i++\r\n }\r\n }\r\n },\r\n _applyToEmitters: function(method, arg) {\r\n this._eachEmitter((function(emitter) {\r\n emitter[method].call(emitter, arg)\r\n }))\r\n },\r\n reset: function() {\r\n this._eachEmitter(this._proxiedCancelHandler);\r\n this._activeEmitters = []\r\n },\r\n resetEmitter: function(emitter) {\r\n this._proxiedCancelHandler(emitter)\r\n },\r\n _pointerDownHandler: function(e) {\r\n if (isMouseEvent(e) && e.which > 1) {\r\n return\r\n }\r\n this._updateEmitters(e)\r\n },\r\n _updateEmitters: function(e) {\r\n if (!this._isSetChanged(e)) {\r\n return\r\n }\r\n this._cleanEmitters(e);\r\n this._fetchEmitters(e)\r\n },\r\n _isSetChanged: function(e) {\r\n var currentSet = this._closestEmitter(e);\r\n var previousSet = this._emittersSet || [];\r\n var setChanged = currentSet.length !== previousSet.length;\r\n each(currentSet, (function(index, emitter) {\r\n setChanged = setChanged || previousSet[index] !== emitter;\r\n return !setChanged\r\n }));\r\n this._emittersSet = currentSet;\r\n return setChanged\r\n },\r\n _closestEmitter: function(e) {\r\n var that = this;\r\n var result = [];\r\n var $element = $(e.target);\r\n\r\n function handleEmitter(_, emitter) {\r\n if (!!emitter && emitter.validatePointers(e) && emitter.validate(e)) {\r\n emitter.addCancelCallback(that._proxiedCancelHandler);\r\n emitter.addAcceptCallback(that._proxiedAcceptHandler);\r\n result.push(emitter)\r\n }\r\n }\r\n while ($element.length) {\r\n var emitters = elementData($element.get(0), EMITTER_DATA) || [];\r\n each(emitters, handleEmitter);\r\n $element = $element.parent()\r\n }\r\n return result\r\n },\r\n _acceptHandler: function(acceptedEmitter, e) {\r\n var that = this;\r\n this._eachEmitter((function(emitter) {\r\n if (emitter !== acceptedEmitter) {\r\n that._cancelEmitter(emitter, e)\r\n }\r\n }))\r\n },\r\n _cancelHandler: function(canceledEmitter, e) {\r\n this._cancelEmitter(canceledEmitter, e)\r\n },\r\n _cancelEmitter: function(emitter, e) {\r\n var activeEmitters = this._activeEmitters;\r\n if (e) {\r\n emitter.cancel(e)\r\n } else {\r\n emitter.reset()\r\n }\r\n emitter.removeCancelCallback();\r\n emitter.removeAcceptCallback();\r\n var emitterIndex = activeEmitters.indexOf(emitter);\r\n if (emitterIndex > -1) {\r\n activeEmitters.splice(emitterIndex, 1)\r\n }\r\n },\r\n _cleanEmitters: function(e) {\r\n this._applyToEmitters(\"end\", e);\r\n this.reset(e)\r\n },\r\n _fetchEmitters: function(e) {\r\n this._activeEmitters = this._emittersSet.slice();\r\n this._applyToEmitters(\"start\", e)\r\n },\r\n _pointerMoveHandler: function(e) {\r\n this._applyToEmitters(\"move\", e)\r\n },\r\n _pointerUpHandler: function(e) {\r\n this._updateEmitters(e)\r\n },\r\n _mouseWheelHandler: function(e) {\r\n if (!this._allowInterruptionByMouseWheel()) {\r\n return\r\n }\r\n e.pointers = [null];\r\n this._pointerDownHandler(e);\r\n this._adjustWheelEvent(e);\r\n this._pointerMoveHandler(e);\r\n e.pointers = [];\r\n this._pointerUpHandler(e)\r\n },\r\n _allowInterruptionByMouseWheel: function() {\r\n var allowInterruption = true;\r\n this._eachEmitter((function(emitter) {\r\n allowInterruption = emitter.allowInterruptionByMouseWheel() && allowInterruption;\r\n return allowInterruption\r\n }));\r\n return allowInterruption\r\n },\r\n _adjustWheelEvent: function(e) {\r\n var closestGestureEmitter = null;\r\n this._eachEmitter((function(emitter) {\r\n if (!emitter.gesture) {\r\n return\r\n }\r\n var direction = emitter.getDirection(e);\r\n if (\"horizontal\" !== direction && !e.shiftKey || \"vertical\" !== direction && e.shiftKey) {\r\n closestGestureEmitter = emitter;\r\n return false\r\n }\r\n }));\r\n if (!closestGestureEmitter) {\r\n return\r\n }\r\n var direction = closestGestureEmitter.getDirection(e);\r\n var verticalGestureDirection = \"both\" === direction && !e.shiftKey || \"vertical\" === direction;\r\n var prop = verticalGestureDirection ? \"pageY\" : \"pageX\";\r\n e[prop] += e.delta\r\n },\r\n isActive: function(element) {\r\n var result = false;\r\n this._eachEmitter((function(emitter) {\r\n result = result || emitter.getElement().is(element)\r\n }));\r\n return result\r\n }\r\n});\r\nvar eventManager = new EventManager;\r\nvar EMITTER_SUBSCRIPTION_DATA = \"dxEmitterSubscription\";\r\nvar registerEmitter = function(emitterConfig) {\r\n var emitterClass = emitterConfig.emitter;\r\n var emitterName = emitterConfig.events[0];\r\n var emitterEvents = emitterConfig.events;\r\n each(emitterEvents, (function(_, eventName) {\r\n registerEvent(eventName, {\r\n noBubble: !emitterConfig.bubble,\r\n setup: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA) || {};\r\n var emitters = elementData(element, EMITTER_DATA) || {};\r\n var emitter = emitters[emitterName] || new emitterClass(element);\r\n subscriptions[eventName] = true;\r\n emitters[emitterName] = emitter;\r\n elementData(element, EMITTER_DATA, emitters);\r\n elementData(element, EMITTER_SUBSCRIPTION_DATA, subscriptions)\r\n },\r\n add: function(element, handleObj) {\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n emitter.configure(extend({\r\n delegateSelector: handleObj.selector\r\n }, handleObj.data), handleObj.type)\r\n },\r\n teardown: function(element) {\r\n var subscriptions = elementData(element, EMITTER_SUBSCRIPTION_DATA);\r\n var emitters = elementData(element, EMITTER_DATA);\r\n var emitter = emitters[emitterName];\r\n delete subscriptions[eventName];\r\n var disposeEmitter = true;\r\n each(emitterEvents, (function(_, eventName) {\r\n disposeEmitter = disposeEmitter && !subscriptions[eventName];\r\n return disposeEmitter\r\n }));\r\n if (disposeEmitter) {\r\n if (eventManager.isActive(element)) {\r\n eventManager.resetEmitter(emitter)\r\n }\r\n emitter && emitter.dispose();\r\n delete emitters[emitterName]\r\n }\r\n }\r\n })\r\n }))\r\n};\r\nexport default registerEmitter;\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport callbacks from \"./event_registrator_callbacks\";\r\nvar registerEvent = function(name, eventObject) {\r\n var strategy = {};\r\n if (\"noBubble\" in eventObject) {\r\n strategy.noBubble = eventObject.noBubble\r\n }\r\n if (\"bindType\" in eventObject) {\r\n strategy.bindType = eventObject.bindType\r\n }\r\n if (\"delegateType\" in eventObject) {\r\n strategy.delegateType = eventObject.delegateType\r\n }\r\n each([\"setup\", \"teardown\", \"add\", \"remove\", \"trigger\", \"handle\", \"_default\", \"dispose\"], (function(_, methodName) {\r\n if (!eventObject[methodName]) {\r\n return\r\n }\r\n strategy[methodName] = function() {\r\n var args = [].slice.call(arguments);\r\n args.unshift(this);\r\n return eventObject[methodName].apply(eventObject, args)\r\n }\r\n }));\r\n callbacks.fire(name, strategy)\r\n};\r\nregisterEvent.callbacks = callbacks;\r\nexport default registerEvent;\r\n","/**\r\n * DevExtreme (esm/events/core/event_registrator_callbacks.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport MemorizedCallbacks from \"../../core/memorized_callbacks\";\r\nexport default new MemorizedCallbacks;\r\n","/**\r\n * DevExtreme (esm/events/core/hook_touch_props.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar touchPropsToHook = [\"pageX\", \"pageY\", \"screenX\", \"screenY\", \"clientX\", \"clientY\"];\r\nvar touchPropHook = function(name, event) {\r\n if (event[name] && !event.touches || !event.touches) {\r\n return event[name]\r\n }\r\n var touches = event.touches.length ? event.touches : event.changedTouches;\r\n if (!touches.length) {\r\n return\r\n }\r\n return touches[0][name]\r\n};\r\nexport default function(callback) {\r\n touchPropsToHook.forEach((function(name) {\r\n callback(name, (function(event) {\r\n return touchPropHook(name, event)\r\n }))\r\n }), this)\r\n}\r\n","/**\r\n * DevExtreme (esm/events/core/events_engine.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport registerEventCallbacks from \"./event_registrator_callbacks\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport injector from \"../../core/utils/dependency_injector\";\r\nimport {\r\n isWindow,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport errors from \"../../core/errors\";\r\nimport hookTouchProps from \"../../events/core/hook_touch_props\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nvar EMPTY_EVENT_NAME = \"dxEmptyEventType\";\r\nvar NATIVE_EVENTS_TO_SUBSCRIBE = {\r\n mouseenter: \"mouseover\",\r\n mouseleave: \"mouseout\",\r\n pointerenter: \"pointerover\",\r\n pointerleave: \"pointerout\"\r\n};\r\nvar NATIVE_EVENTS_TO_TRIGGER = {\r\n focusin: \"focus\",\r\n focusout: \"blur\"\r\n};\r\nvar NO_BUBBLE_EVENTS = [\"blur\", \"focus\", \"load\"];\r\nvar forcePassiveFalseEventNames = [\"touchmove\", \"wheel\", \"mousewheel\", \"touchstart\"];\r\nvar EVENT_PROPERTIES = [\"target\", \"relatedTarget\", \"delegateTarget\", \"altKey\", \"bubbles\", \"cancelable\", \"changedTouches\", \"ctrlKey\", \"detail\", \"eventPhase\", \"metaKey\", \"shiftKey\", \"view\", \"char\", \"code\", \"charCode\", \"key\", \"keyCode\", \"button\", \"buttons\", \"offsetX\", \"offsetY\", \"pointerId\", \"pointerType\", \"targetTouches\", \"toElement\", \"touches\"];\r\n\r\nfunction matchesSafe(target, selector) {\r\n return !isWindow(target) && \"#document\" !== target.nodeName && domAdapter.elementMatches(target, selector)\r\n}\r\nvar elementDataMap = new WeakMap;\r\nvar guid = 0;\r\nvar skipEvent;\r\nvar special = function() {\r\n var specialData = {};\r\n registerEventCallbacks.add((function(eventName, eventObject) {\r\n specialData[eventName] = eventObject\r\n }));\r\n return {\r\n getField: function(eventName, field) {\r\n return specialData[eventName] && specialData[eventName][field]\r\n },\r\n callMethod: function(eventName, methodName, context, args) {\r\n return specialData[eventName] && specialData[eventName][methodName] && specialData[eventName][methodName].apply(context, args)\r\n }\r\n }\r\n}();\r\nvar eventsEngine = injector({\r\n on: getHandler(normalizeOnArguments(iterate((function(element, eventName, selector, data, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.addHandler(handler, selector, data)\r\n })))),\r\n one: getHandler(normalizeOnArguments((function(element, eventName, selector, data, handler) {\r\n eventsEngine.on(element, eventName, selector, data, (function oneTimeHandler() {\r\n eventsEngine.off(element, eventName, selector, oneTimeHandler);\r\n handler.apply(this, arguments)\r\n }))\r\n }))),\r\n off: getHandler(normalizeOffArguments(iterate((function(element, eventName, selector, handler) {\r\n var handlersController = getHandlersController(element, eventName);\r\n handlersController.removeHandler(handler, selector)\r\n })))),\r\n trigger: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var eventName = event.type;\r\n var handlersController = getHandlersController(element, event.type);\r\n special.callMethod(eventName, \"trigger\", element, [event, extraParameters]);\r\n handlersController.callHandlers(event, extraParameters);\r\n var noBubble = special.getField(eventName, \"noBubble\") || event.isPropagationStopped() || -1 !== NO_BUBBLE_EVENTS.indexOf(eventName);\r\n if (!noBubble) {\r\n var parents = [];\r\n ! function getParents(element) {\r\n var _element$parentNode;\r\n var parent = null !== (_element$parentNode = element.parentNode) && void 0 !== _element$parentNode ? _element$parentNode : element.host;\r\n if (parent) {\r\n parents.push(parent);\r\n getParents(parent)\r\n }\r\n }(element);\r\n parents.push(window);\r\n var i = 0;\r\n while (parents[i] && !event.isPropagationStopped()) {\r\n var parentDataByEvent = getHandlersController(parents[i], event.type);\r\n parentDataByEvent.callHandlers(extend(event, {\r\n currentTarget: parents[i]\r\n }), extraParameters);\r\n i++\r\n }\r\n }\r\n if (element.nodeType || isWindow(element)) {\r\n special.callMethod(eventName, \"_default\", element, [event, extraParameters]);\r\n callNativeMethod(eventName, element)\r\n }\r\n }))),\r\n triggerHandler: getHandler(normalizeTriggerArguments((function(element, event, extraParameters) {\r\n var handlersController = getHandlersController(element, event.type);\r\n handlersController.callHandlers(event, extraParameters)\r\n })))\r\n});\r\n\r\nfunction applyForEach(args, method) {\r\n var element = args[0];\r\n if (!element) {\r\n return\r\n }\r\n if (domAdapter.isNode(element) || isWindow(element)) {\r\n method.apply(eventsEngine, args)\r\n } else if (!isString(element) && \"length\" in element) {\r\n var itemArgs = Array.prototype.slice.call(args, 0);\r\n Array.prototype.forEach.call(element, (function(itemElement) {\r\n itemArgs[0] = itemElement;\r\n applyForEach(itemArgs, method)\r\n }))\r\n } else {\r\n throw errors.Error(\"E0025\")\r\n }\r\n}\r\n\r\nfunction getHandler(method) {\r\n return function() {\r\n applyForEach(arguments, method)\r\n }\r\n}\r\n\r\nfunction detectPassiveEventHandlersSupport() {\r\n var isSupported = false;\r\n try {\r\n var options = Object.defineProperty({}, \"passive\", {\r\n get: function() {\r\n isSupported = true;\r\n return true\r\n }\r\n });\r\n window.addEventListener(\"test\", null, options)\r\n } catch (e) {}\r\n return isSupported\r\n}\r\nvar passiveEventHandlersSupported = callOnce(detectPassiveEventHandlersSupport);\r\nvar contains = (container, element) => {\r\n if (isWindow(container)) {\r\n return contains(container.document, element)\r\n }\r\n return container.contains ? container.contains(element) : !!(element.compareDocumentPosition(container) & element.DOCUMENT_POSITION_CONTAINS)\r\n};\r\n\r\nfunction getHandlersController(element, eventName) {\r\n var elementData = elementDataMap.get(element);\r\n eventName = eventName || \"\";\r\n var eventNameParts = eventName.split(\".\");\r\n var namespaces = eventNameParts.slice(1);\r\n var eventNameIsDefined = !!eventNameParts[0];\r\n eventName = eventNameParts[0] || EMPTY_EVENT_NAME;\r\n if (!elementData) {\r\n elementData = {};\r\n elementDataMap.set(element, elementData)\r\n }\r\n if (!elementData[eventName]) {\r\n elementData[eventName] = {\r\n handleObjects: [],\r\n nativeHandler: null\r\n }\r\n }\r\n var eventData = elementData[eventName];\r\n return {\r\n addHandler: function(handler, selector, data) {\r\n var callHandler = function(e, extraParameters) {\r\n var handlerArgs = [e];\r\n var target = e.currentTarget;\r\n var relatedTarget = e.relatedTarget;\r\n var secondaryTargetIsInside;\r\n var result;\r\n if (eventName in NATIVE_EVENTS_TO_SUBSCRIBE) {\r\n secondaryTargetIsInside = relatedTarget && target && (relatedTarget === target || contains(target, relatedTarget))\r\n }\r\n if (void 0 !== extraParameters) {\r\n handlerArgs.push(extraParameters)\r\n }\r\n special.callMethod(eventName, \"handle\", element, [e, data]);\r\n if (!secondaryTargetIsInside) {\r\n result = handler.apply(target, handlerArgs)\r\n }\r\n if (false === result) {\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n };\r\n var handleObject = {\r\n handler: handler,\r\n wrappedHandler: function(e, extraParameters) {\r\n if (skipEvent && e.type === skipEvent) {\r\n return\r\n }\r\n e.data = data;\r\n e.delegateTarget = element;\r\n if (selector) {\r\n var currentTarget = e.target;\r\n while (currentTarget && currentTarget !== element) {\r\n if (matchesSafe(currentTarget, selector)) {\r\n e.currentTarget = currentTarget;\r\n callHandler(e, extraParameters)\r\n }\r\n currentTarget = currentTarget.parentNode\r\n }\r\n } else {\r\n e.currentTarget = e.delegateTarget || e.target;\r\n callHandler(e, extraParameters)\r\n }\r\n },\r\n selector: selector,\r\n type: eventName,\r\n data: data,\r\n namespace: namespaces.join(\".\"),\r\n namespaces: namespaces,\r\n guid: ++guid\r\n };\r\n eventData.handleObjects.push(handleObject);\r\n var firstHandlerForTheType = 1 === eventData.handleObjects.length;\r\n var shouldAddNativeListener = firstHandlerForTheType && eventNameIsDefined;\r\n var nativeListenerOptions;\r\n if (shouldAddNativeListener) {\r\n shouldAddNativeListener = !special.callMethod(eventName, \"setup\", element, [data, namespaces, handler])\r\n }\r\n if (shouldAddNativeListener) {\r\n eventData.nativeHandler = getNativeHandler(eventName);\r\n if (passiveEventHandlersSupported() && forcePassiveFalseEventNames.indexOf(eventName) > -1) {\r\n nativeListenerOptions = {\r\n passive: false\r\n }\r\n }\r\n eventData.removeListener = domAdapter.listen(element, NATIVE_EVENTS_TO_SUBSCRIBE[eventName] || eventName, eventData.nativeHandler, nativeListenerOptions)\r\n }\r\n special.callMethod(eventName, \"add\", element, [handleObject])\r\n },\r\n removeHandler: function(handler, selector) {\r\n var removeByEventName = function(eventName) {\r\n var eventData = elementData[eventName];\r\n if (!eventData.handleObjects.length) {\r\n delete elementData[eventName];\r\n return\r\n }\r\n var removedHandler;\r\n eventData.handleObjects = eventData.handleObjects.filter((function(handleObject) {\r\n var skip = namespaces.length && !isSubset(handleObject.namespaces, namespaces) || handler && handleObject.handler !== handler || selector && handleObject.selector !== selector;\r\n if (!skip) {\r\n removedHandler = handleObject.handler;\r\n special.callMethod(eventName, \"remove\", element, [handleObject])\r\n }\r\n return skip\r\n }));\r\n var lastHandlerForTheType = !eventData.handleObjects.length;\r\n var shouldRemoveNativeListener = lastHandlerForTheType && eventName !== EMPTY_EVENT_NAME;\r\n if (shouldRemoveNativeListener) {\r\n special.callMethod(eventName, \"teardown\", element, [namespaces, removedHandler]);\r\n if (eventData.nativeHandler) {\r\n eventData.removeListener()\r\n }\r\n delete elementData[eventName]\r\n }\r\n };\r\n if (eventNameIsDefined) {\r\n removeByEventName(eventName)\r\n } else {\r\n for (var name in elementData) {\r\n removeByEventName(name)\r\n }\r\n }\r\n var elementDataIsEmpty = 0 === Object.keys(elementData).length;\r\n if (elementDataIsEmpty) {\r\n elementDataMap.delete(element)\r\n }\r\n },\r\n callHandlers: function(event, extraParameters) {\r\n var forceStop = false;\r\n var handleCallback = function(handleObject) {\r\n if (forceStop) {\r\n return\r\n }\r\n if (!namespaces.length || isSubset(handleObject.namespaces, namespaces)) {\r\n handleObject.wrappedHandler(event, extraParameters);\r\n forceStop = event.isImmediatePropagationStopped()\r\n }\r\n };\r\n eventData.handleObjects.forEach(handleCallback);\r\n if (namespaces.length && elementData[EMPTY_EVENT_NAME]) {\r\n elementData[EMPTY_EVENT_NAME].handleObjects.forEach(handleCallback)\r\n }\r\n }\r\n }\r\n}\r\n\r\nfunction getNativeHandler(subscribeName) {\r\n return function(event, extraParameters) {\r\n var handlersController = getHandlersController(this, subscribeName);\r\n event = eventsEngine.Event(event);\r\n handlersController.callHandlers(event, extraParameters)\r\n }\r\n}\r\n\r\nfunction isSubset(original, checked) {\r\n for (var i = 0; i < checked.length; i++) {\r\n if (original.indexOf(checked[i]) < 0) {\r\n return false\r\n }\r\n }\r\n return true\r\n}\r\n\r\nfunction normalizeOnArguments(callback) {\r\n return function(element, eventName, selector, data, handler) {\r\n if (!handler) {\r\n handler = data;\r\n data = void 0\r\n }\r\n if (\"string\" !== typeof selector) {\r\n data = selector;\r\n selector = void 0\r\n }\r\n if (!handler && \"string\" === typeof eventName) {\r\n handler = data || selector;\r\n selector = void 0;\r\n data = void 0\r\n }\r\n callback(element, eventName, selector, data, handler)\r\n }\r\n}\r\n\r\nfunction normalizeOffArguments(callback) {\r\n return function(element, eventName, selector, handler) {\r\n if (\"function\" === typeof selector) {\r\n handler = selector;\r\n selector = void 0\r\n }\r\n callback(element, eventName, selector, handler)\r\n }\r\n}\r\n\r\nfunction normalizeTriggerArguments(callback) {\r\n return function(element, src, extraParameters) {\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!src.target) {\r\n src.target = element\r\n }\r\n src.currentTarget = element;\r\n if (!src.delegateTarget) {\r\n src.delegateTarget = element\r\n }\r\n if (!src.type && src.originalEvent) {\r\n src.type = src.originalEvent.type\r\n }\r\n callback(element, src instanceof eventsEngine.Event ? src : eventsEngine.Event(src), extraParameters)\r\n }\r\n}\r\n\r\nfunction normalizeEventArguments(callback) {\r\n eventsEngine.Event = function(src, config) {\r\n if (!(this instanceof eventsEngine.Event)) {\r\n return new eventsEngine.Event(src, config)\r\n }\r\n if (!src) {\r\n src = {}\r\n }\r\n if (\"string\" === typeof src) {\r\n src = {\r\n type: src\r\n }\r\n }\r\n if (!config) {\r\n config = {}\r\n }\r\n callback.call(this, src, config)\r\n };\r\n _extends(eventsEngine.Event.prototype, {\r\n _propagationStopped: false,\r\n _immediatePropagationStopped: false,\r\n _defaultPrevented: false,\r\n isPropagationStopped: function() {\r\n return !!(this._propagationStopped || this.originalEvent && this.originalEvent.propagationStopped)\r\n },\r\n stopPropagation: function() {\r\n this._propagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopPropagation()\r\n },\r\n isImmediatePropagationStopped: function() {\r\n return this._immediatePropagationStopped\r\n },\r\n stopImmediatePropagation: function() {\r\n this.stopPropagation();\r\n this._immediatePropagationStopped = true;\r\n this.originalEvent && this.originalEvent.stopImmediatePropagation()\r\n },\r\n isDefaultPrevented: function() {\r\n return !!(this._defaultPrevented || this.originalEvent && this.originalEvent.defaultPrevented)\r\n },\r\n preventDefault: function() {\r\n this._defaultPrevented = true;\r\n this.originalEvent && this.originalEvent.preventDefault()\r\n }\r\n });\r\n return eventsEngine.Event\r\n}\r\n\r\nfunction iterate(callback) {\r\n var iterateEventNames = function(element, eventName) {\r\n if (eventName && eventName.indexOf(\" \") > -1) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n eventName.split(\" \").forEach((function(eventName) {\r\n args[1] = eventName;\r\n callback.apply(this, args)\r\n }))\r\n } else {\r\n callback.apply(this, arguments)\r\n }\r\n };\r\n return function(element, eventName) {\r\n if (\"object\" === typeof eventName) {\r\n var args = Array.prototype.slice.call(arguments, 0);\r\n for (var name in eventName) {\r\n args[1] = name;\r\n args[args.length - 1] = eventName[name];\r\n iterateEventNames.apply(this, args)\r\n }\r\n } else {\r\n iterateEventNames.apply(this, arguments)\r\n }\r\n }\r\n}\r\n\r\nfunction callNativeMethod(eventName, element) {\r\n var nativeMethodName = NATIVE_EVENTS_TO_TRIGGER[eventName] || eventName;\r\n if (function(eventName, element) {\r\n return \"click\" === eventName && \"a\" === element.localName\r\n }(eventName, element)) {\r\n return\r\n }\r\n if (isFunction(element[nativeMethodName])) {\r\n skipEvent = eventName;\r\n element[nativeMethodName]();\r\n skipEvent = void 0\r\n }\r\n}\r\n\r\nfunction calculateWhich(event) {\r\n if (function(event) {\r\n return null == event.which && 0 === event.type.indexOf(\"key\")\r\n }(event)) {\r\n return null != event.charCode ? event.charCode : event.keyCode\r\n }\r\n if (function(event) {\r\n return !event.which && void 0 !== event.button && /^(?:mouse|pointer|contextmenu|drag|drop)|click/.test(event.type)\r\n }(event)) {\r\n return {\r\n 1: 1,\r\n 2: 3,\r\n 3: 1,\r\n 4: 2\r\n } [event.button]\r\n }\r\n return event.which\r\n}\r\n\r\nfunction initEvent(EventClass) {\r\n if (EventClass) {\r\n eventsEngine.Event = EventClass;\r\n eventsEngine.Event.prototype = EventClass.prototype\r\n }\r\n}\r\ninitEvent(normalizeEventArguments((function(src, config) {\r\n var _src$view;\r\n var srcIsEvent = src instanceof eventsEngine.Event || hasWindow() && src instanceof window.Event || (null === (_src$view = src.view) || void 0 === _src$view ? void 0 : _src$view.Event) && src instanceof src.view.Event;\r\n if (srcIsEvent) {\r\n this.originalEvent = src;\r\n this.type = src.type;\r\n this.currentTarget = void 0;\r\n if (Object.prototype.hasOwnProperty.call(src, \"isTrusted\")) {\r\n this.isTrusted = src.isTrusted\r\n }\r\n this.timeStamp = src.timeStamp || Date.now()\r\n } else {\r\n _extends(this, src)\r\n }\r\n addProperty(\"which\", calculateWhich, this);\r\n if (0 === src.type.indexOf(\"touch\")) {\r\n delete config.pageX;\r\n delete config.pageY\r\n }\r\n _extends(this, config);\r\n this.guid = ++guid\r\n})));\r\n\r\nfunction addProperty(propName, hook, eventInstance) {\r\n Object.defineProperty(eventInstance || eventsEngine.Event.prototype, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function() {\r\n return this.originalEvent && hook(this.originalEvent)\r\n },\r\n set: function(value) {\r\n Object.defineProperty(this, propName, {\r\n enumerable: true,\r\n configurable: true,\r\n writable: true,\r\n value: value\r\n })\r\n }\r\n })\r\n}\r\nEVENT_PROPERTIES.forEach(prop => addProperty(prop, event => event[prop]));\r\nhookTouchProps(addProperty);\r\nvar beforeSetStrategy = Callbacks();\r\nvar afterSetStrategy = Callbacks();\r\neventsEngine.set = function(engine) {\r\n beforeSetStrategy.fire();\r\n eventsEngine.inject(engine);\r\n initEvent(engine.Event);\r\n afterSetStrategy.fire()\r\n};\r\neventsEngine.subscribeGlobal = function() {\r\n applyForEach(arguments, normalizeOnArguments((function() {\r\n var args = arguments;\r\n eventsEngine.on.apply(this, args);\r\n beforeSetStrategy.add((function() {\r\n var offArgs = Array.prototype.slice.call(args, 0);\r\n offArgs.splice(3, 1);\r\n eventsEngine.off.apply(this, offArgs)\r\n }));\r\n afterSetStrategy.add((function() {\r\n eventsEngine.on.apply(this, args)\r\n }))\r\n })))\r\n};\r\neventsEngine.forcePassiveFalseEventNames = forcePassiveFalseEventNames;\r\neventsEngine.passiveEventHandlersSupported = passiveEventHandlersSupported;\r\nexport default eventsEngine;\r\n","/**\r\n * DevExtreme (esm/events/core/keyboard_processor.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar COMPOSITION_START_EVENT = \"compositionstart\";\r\nvar COMPOSITION_END_EVENT = \"compositionend\";\r\nvar KEYDOWN_EVENT = \"keydown\";\r\nvar NAMESPACE = \"KeyboardProcessor\";\r\nvar createKeyDownOptions = e => ({\r\n keyName: normalizeKeyName(e),\r\n key: e.key,\r\n code: e.code,\r\n ctrl: e.ctrlKey,\r\n location: e.location,\r\n metaKey: e.metaKey,\r\n shift: e.shiftKey,\r\n alt: e.altKey,\r\n which: e.which,\r\n originalEvent: e\r\n});\r\nvar KeyboardProcessor = Class.inherit({\r\n _keydown: addNamespace(KEYDOWN_EVENT, NAMESPACE),\r\n _compositionStart: addNamespace(COMPOSITION_START_EVENT, NAMESPACE),\r\n _compositionEnd: addNamespace(COMPOSITION_END_EVENT, NAMESPACE),\r\n ctor: function(options) {\r\n options = options || {};\r\n if (options.element) {\r\n this._element = $(options.element)\r\n }\r\n if (options.focusTarget) {\r\n this._focusTarget = options.focusTarget\r\n }\r\n this._handler = options.handler;\r\n if (this._element) {\r\n this._processFunction = e => {\r\n var focusTargets = $(this._focusTarget).toArray();\r\n var isNotFocusTarget = this._focusTarget && this._focusTarget !== e.target && !focusTargets.includes(e.target);\r\n var shouldSkipProcessing = this._isComposingJustFinished && 229 === e.which || this._isComposing || isNotFocusTarget;\r\n this._isComposingJustFinished = false;\r\n if (!shouldSkipProcessing) {\r\n this.process(e)\r\n }\r\n };\r\n this._toggleProcessingWithContext = this.toggleProcessing.bind(this);\r\n eventsEngine.on(this._element, this._keydown, this._processFunction);\r\n eventsEngine.on(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.on(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._element) {\r\n eventsEngine.off(this._element, this._keydown, this._processFunction);\r\n eventsEngine.off(this._element, this._compositionStart, this._toggleProcessingWithContext);\r\n eventsEngine.off(this._element, this._compositionEnd, this._toggleProcessingWithContext)\r\n }\r\n this._element = void 0;\r\n this._handler = void 0\r\n },\r\n process: function(e) {\r\n this._handler(createKeyDownOptions(e))\r\n },\r\n toggleProcessing: function(_ref) {\r\n var {\r\n type: type\r\n } = _ref;\r\n this._isComposing = type === COMPOSITION_START_EVENT;\r\n this._isComposingJustFinished = !this._isComposing\r\n }\r\n});\r\nKeyboardProcessor.createKeyDownOptions = createKeyDownOptions;\r\nexport default KeyboardProcessor;\r\n","/**\r\n * DevExtreme (esm/events/core/wheel.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerEvent from \"./event_registrator\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar EVENT_NAME = \"dxmousewheel\";\r\nvar EVENT_NAMESPACE = \"dxWheel\";\r\nvar NATIVE_EVENT_NAME = \"wheel\";\r\nvar PIXEL_MODE = 0;\r\nvar DELTA_MUTLIPLIER = 30;\r\nvar wheel = {\r\n setup: function(element) {\r\n var $element = $(element);\r\n eventsEngine.on($element, addNamespace(NATIVE_EVENT_NAME, EVENT_NAMESPACE), wheel._wheelHandler.bind(wheel))\r\n },\r\n teardown: function(element) {\r\n eventsEngine.off(element, \".\".concat(EVENT_NAMESPACE))\r\n },\r\n _wheelHandler: function(e) {\r\n var {\r\n deltaMode: deltaMode,\r\n deltaY: deltaY,\r\n deltaX: deltaX,\r\n deltaZ: deltaZ\r\n } = e.originalEvent;\r\n fireEvent({\r\n type: EVENT_NAME,\r\n originalEvent: e,\r\n delta: this._normalizeDelta(deltaY, deltaMode),\r\n deltaX: deltaX,\r\n deltaY: deltaY,\r\n deltaZ: deltaZ,\r\n deltaMode: deltaMode,\r\n pointerType: \"mouse\"\r\n });\r\n e.stopPropagation()\r\n },\r\n _normalizeDelta(delta) {\r\n var deltaMode = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : PIXEL_MODE;\r\n if (deltaMode === PIXEL_MODE) {\r\n return -delta\r\n } else {\r\n return -DELTA_MUTLIPLIER * delta\r\n }\r\n }\r\n};\r\nregisterEvent(EVENT_NAME, wheel);\r\nexport {\r\n EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/double_click.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n closestCommonParent\r\n} from \"../core/utils/dom\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport Class from \"../core/class\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n name as clickEventName\r\n} from \"./click\";\r\nimport {\r\n addNamespace,\r\n fireEvent\r\n} from \"./utils/index\";\r\nvar DBLCLICK_EVENT_NAME = \"dxdblclick\";\r\nvar DBLCLICK_NAMESPACE = \"dxDblClick\";\r\nvar NAMESPACED_CLICK_EVENT = addNamespace(clickEventName, DBLCLICK_NAMESPACE);\r\nvar DBLCLICK_TIMEOUT = 300;\r\nvar DblClick = Class.inherit({\r\n ctor: function() {\r\n this._handlerCount = 0;\r\n this._forgetLastClick()\r\n },\r\n _forgetLastClick: function() {\r\n this._firstClickTarget = null;\r\n this._lastClickTimeStamp = -DBLCLICK_TIMEOUT\r\n },\r\n add: function() {\r\n if (this._handlerCount <= 0) {\r\n eventsEngine.on(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT, this._clickHandler.bind(this))\r\n }\r\n this._handlerCount++\r\n },\r\n _clickHandler: function(e) {\r\n var timeStamp = e.timeStamp || Date.now();\r\n var timeBetweenClicks = timeStamp - this._lastClickTimeStamp;\r\n var isSimulated = timeBetweenClicks < 0;\r\n var isDouble = !isSimulated && timeBetweenClicks < DBLCLICK_TIMEOUT;\r\n if (isDouble) {\r\n fireEvent({\r\n type: DBLCLICK_EVENT_NAME,\r\n target: closestCommonParent(this._firstClickTarget, e.target),\r\n originalEvent: e\r\n });\r\n this._forgetLastClick()\r\n } else {\r\n this._firstClickTarget = e.target;\r\n this._lastClickTimeStamp = timeStamp\r\n }\r\n },\r\n remove: function() {\r\n this._handlerCount--;\r\n if (this._handlerCount <= 0) {\r\n this._forgetLastClick();\r\n eventsEngine.off(domAdapter.getDocument(), NAMESPACED_CLICK_EVENT)\r\n }\r\n }\r\n});\r\nregisterEvent(DBLCLICK_EVENT_NAME, new DblClick);\r\nexport {\r\n DBLCLICK_EVENT_NAME as name\r\n};\r\n","/**\r\n * DevExtreme (esm/events/drag.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n data as elementData,\r\n removeData\r\n} from \"../core/element_data\";\r\nimport {\r\n wrapToArray\r\n} from \"../core/utils/array\";\r\nimport * as iteratorUtils from \"../core/utils/iterator\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n eventData as eData,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar DRAG_START_EVENT = \"dxdragstart\";\r\nvar DRAG_EVENT = \"dxdrag\";\r\nvar DRAG_END_EVENT = \"dxdragend\";\r\nvar DRAG_ENTER_EVENT = \"dxdragenter\";\r\nvar DRAG_LEAVE_EVENT = \"dxdragleave\";\r\nvar DROP_EVENT = \"dxdrop\";\r\nvar DX_DRAG_EVENTS_COUNT_KEY = \"dxDragEventsCount\";\r\nvar knownDropTargets = [];\r\nvar knownDropTargetSelectors = [];\r\nvar knownDropTargetConfigs = [];\r\nvar dropTargetRegistration = {\r\n setup: function(element, data) {\r\n var knownDropTarget = knownDropTargets.includes(element);\r\n if (!knownDropTarget) {\r\n knownDropTargets.push(element);\r\n knownDropTargetSelectors.push([]);\r\n knownDropTargetConfigs.push(data || {})\r\n }\r\n },\r\n add: function(element, handleObj) {\r\n var index = knownDropTargets.indexOf(element);\r\n this.updateEventsCounter(element, handleObj.type, 1);\r\n var selector = handleObj.selector;\r\n if (!knownDropTargetSelectors[index].includes(selector)) {\r\n knownDropTargetSelectors[index].push(selector)\r\n }\r\n },\r\n updateEventsCounter: function(element, event, value) {\r\n if ([DRAG_ENTER_EVENT, DRAG_LEAVE_EVENT, DROP_EVENT].indexOf(event) > -1) {\r\n var eventsCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY) || 0;\r\n elementData(element, DX_DRAG_EVENTS_COUNT_KEY, Math.max(0, eventsCount + value))\r\n }\r\n },\r\n remove: function(element, handleObj) {\r\n this.updateEventsCounter(element, handleObj.type, -1)\r\n },\r\n teardown: function(element) {\r\n var handlersCount = elementData(element, DX_DRAG_EVENTS_COUNT_KEY);\r\n if (!handlersCount) {\r\n var index = knownDropTargets.indexOf(element);\r\n knownDropTargets.splice(index, 1);\r\n knownDropTargetSelectors.splice(index, 1);\r\n knownDropTargetConfigs.splice(index, 1);\r\n removeData(element, DX_DRAG_EVENTS_COUNT_KEY)\r\n }\r\n }\r\n};\r\nregisterEvent(DRAG_ENTER_EVENT, dropTargetRegistration);\r\nregisterEvent(DRAG_LEAVE_EVENT, dropTargetRegistration);\r\nregisterEvent(DROP_EVENT, dropTargetRegistration);\r\nvar getItemDelegatedTargets = function($element) {\r\n var dropTargetIndex = knownDropTargets.indexOf($element.get(0));\r\n var dropTargetSelectors = knownDropTargetSelectors[dropTargetIndex].filter(selector => selector);\r\n var $delegatedTargets = $element.find(dropTargetSelectors.join(\", \"));\r\n if (knownDropTargetSelectors[dropTargetIndex].includes(void 0)) {\r\n $delegatedTargets = $delegatedTargets.add($element)\r\n }\r\n return $delegatedTargets\r\n};\r\nvar getItemConfig = function($element) {\r\n var dropTargetIndex = knownDropTargets.indexOf($element.get(0));\r\n return knownDropTargetConfigs[dropTargetIndex]\r\n};\r\nvar getItemPosition = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemPositionFunc) {\r\n return dropTargetConfig.itemPositionFunc($element)\r\n } else {\r\n return $element.offset()\r\n }\r\n};\r\nvar getItemSize = function(dropTargetConfig, $element) {\r\n if (dropTargetConfig.itemSizeFunc) {\r\n return dropTargetConfig.itemSizeFunc($element)\r\n }\r\n return {\r\n width: $element.get(0).getBoundingClientRect().width,\r\n height: $element.get(0).getBoundingClientRect().height\r\n }\r\n};\r\nvar DragEmitter = GestureEmitter.inherit({\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"both\"\r\n },\r\n _init: function(e) {\r\n this._initEvent = e\r\n },\r\n _start: function(e) {\r\n e = this._fireEvent(DRAG_START_EVENT, this._initEvent);\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset;\r\n if (e.targetElements || null === e.targetElements) {\r\n var dropTargets = wrapToArray(e.targetElements || []);\r\n this._dropTargets = iteratorUtils.map(dropTargets, (function(element) {\r\n return $(element).get(0)\r\n }))\r\n } else {\r\n this._dropTargets = knownDropTargets\r\n }\r\n },\r\n _move: function(e) {\r\n var eventData = eData(e);\r\n var dragOffset = this._calculateOffset(eventData);\r\n e = this._fireEvent(DRAG_EVENT, e, {\r\n offset: dragOffset\r\n });\r\n this._processDropTargets(e);\r\n if (!e._cancelPreventDefault) {\r\n e.preventDefault()\r\n }\r\n },\r\n _calculateOffset: function(eventData) {\r\n return {\r\n x: this._calculateXOffset(eventData),\r\n y: this._calculateYOffset(eventData)\r\n }\r\n },\r\n _calculateXOffset: function(eventData) {\r\n if (\"vertical\" !== this.direction) {\r\n var offset = eventData.x - this._startEventData.x;\r\n return this._fitOffset(offset, this._maxLeftOffset, this._maxRightOffset)\r\n }\r\n return 0\r\n },\r\n _calculateYOffset: function(eventData) {\r\n if (\"horizontal\" !== this.direction) {\r\n var offset = eventData.y - this._startEventData.y;\r\n return this._fitOffset(offset, this._maxTopOffset, this._maxBottomOffset)\r\n }\r\n return 0\r\n },\r\n _fitOffset: function(offset, minOffset, maxOffset) {\r\n if (null != minOffset) {\r\n offset = Math.max(offset, -minOffset)\r\n }\r\n if (null != maxOffset) {\r\n offset = Math.min(offset, maxOffset)\r\n }\r\n return offset\r\n },\r\n _processDropTargets: function(e) {\r\n var target = this._findDropTarget(e);\r\n var sameTarget = target === this._currentDropTarget;\r\n if (!sameTarget) {\r\n this._fireDropTargetEvent(e, DRAG_LEAVE_EVENT);\r\n this._currentDropTarget = target;\r\n this._fireDropTargetEvent(e, DRAG_ENTER_EVENT)\r\n }\r\n },\r\n _fireDropTargetEvent: function(event, eventName) {\r\n if (!this._currentDropTarget) {\r\n return\r\n }\r\n var eventData = {\r\n type: eventName,\r\n originalEvent: event,\r\n draggingElement: this._$element.get(0),\r\n target: this._currentDropTarget\r\n };\r\n fireEvent(eventData)\r\n },\r\n _findDropTarget: function(e) {\r\n var that = this;\r\n var result;\r\n iteratorUtils.each(knownDropTargets, (function(_, target) {\r\n if (!that._checkDropTargetActive(target)) {\r\n return\r\n }\r\n var $target = $(target);\r\n iteratorUtils.each(getItemDelegatedTargets($target), (function(_, delegatedTarget) {\r\n var $delegatedTarget = $(delegatedTarget);\r\n if (that._checkDropTarget(getItemConfig($target), $delegatedTarget, $(result), e)) {\r\n result = delegatedTarget\r\n }\r\n }))\r\n }));\r\n return result\r\n },\r\n _checkDropTargetActive: function(target) {\r\n var active = false;\r\n iteratorUtils.each(this._dropTargets, (function(_, activeTarget) {\r\n active = active || activeTarget === target || contains(activeTarget, target);\r\n return !active\r\n }));\r\n return active\r\n },\r\n _checkDropTarget: function(config, $target, $prevTarget, e) {\r\n var isDraggingElement = $target.get(0) === $(e.target).get(0);\r\n if (isDraggingElement) {\r\n return false\r\n }\r\n var targetPosition = getItemPosition(config, $target);\r\n if (e.pageX < targetPosition.left) {\r\n return false\r\n }\r\n if (e.pageY < targetPosition.top) {\r\n return false\r\n }\r\n var targetSize = getItemSize(config, $target);\r\n if (e.pageX > targetPosition.left + targetSize.width) {\r\n return false\r\n }\r\n if (e.pageY > targetPosition.top + targetSize.height) {\r\n return false\r\n }\r\n if ($prevTarget.length && $prevTarget.closest($target).length) {\r\n return false\r\n }\r\n if (config.checkDropTarget && !config.checkDropTarget($target, e)) {\r\n return false\r\n }\r\n return $target\r\n },\r\n _end: function(e) {\r\n var eventData = eData(e);\r\n this._fireEvent(DRAG_END_EVENT, e, {\r\n offset: this._calculateOffset(eventData)\r\n });\r\n this._fireDropTargetEvent(e, DROP_EVENT);\r\n delete this._currentDropTarget\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: DragEmitter,\r\n events: [DRAG_START_EVENT, DRAG_EVENT, DRAG_END_EVENT]\r\n});\r\nexport {\r\n DRAG_EVENT as move, DRAG_START_EVENT as start, DRAG_END_EVENT as end, DRAG_ENTER_EVENT as enter, DRAG_LEAVE_EVENT as leave, DROP_EVENT as drop\r\n};\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n styleProp\r\n} from \"../../core/utils/style\";\r\nimport callOnce from \"../../core/utils/call_once\";\r\nimport {\r\n resetActiveElement,\r\n clearSelection\r\n} from \"../../core/utils/dom\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nvar ready = readyCallbacks.add;\r\nimport {\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n needSkipEvent,\r\n createEvent,\r\n eventData,\r\n isDxMouseWheelEvent,\r\n eventDelta,\r\n isTouchEvent\r\n} from \"../utils/index\";\r\nimport Emitter from \"../core/emitter\";\r\nvar abs = Math.abs;\r\nvar SLEEP = 0;\r\nvar INITED = 1;\r\nvar STARTED = 2;\r\nvar TOUCH_BOUNDARY = 10;\r\nvar IMMEDIATE_TOUCH_BOUNDARY = 0;\r\nvar IMMEDIATE_TIMEOUT = 180;\r\nvar supportPointerEvents = function() {\r\n return styleProp(\"pointer-events\")\r\n};\r\nvar setGestureCover = callOnce((function() {\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (!supportPointerEvents() || !isDesktop) {\r\n return noop\r\n }\r\n var $cover = $(\"<div>\").addClass(\"dx-gesture-cover\").css(\"pointerEvents\", \"none\");\r\n eventsEngine.subscribeGlobal($cover, \"dxmousewheel\", (function(e) {\r\n e.preventDefault()\r\n }));\r\n ready((function() {\r\n $cover.appendTo(\"body\")\r\n }));\r\n return function(toggle, cursor) {\r\n $cover.css(\"pointerEvents\", toggle ? \"all\" : \"none\");\r\n toggle && $cover.css(\"cursor\", cursor)\r\n }\r\n}));\r\nvar gestureCover = function(toggle, cursor) {\r\n var gestureCoverStrategy = setGestureCover();\r\n gestureCoverStrategy(toggle, cursor)\r\n};\r\nvar GestureEmitter = Emitter.inherit({\r\n gesture: true,\r\n configure: function(data) {\r\n this.getElement().css(\"msTouchAction\", data.immediate ? \"pinch-zoom\" : \"\");\r\n this.callBase(data)\r\n },\r\n allowInterruptionByMouseWheel: function() {\r\n return this._stage !== STARTED\r\n },\r\n getDirection: function() {\r\n return this.direction\r\n },\r\n _cancel: function() {\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false);\r\n this._stage = SLEEP\r\n },\r\n start: function(e) {\r\n if (e._needSkipEvent || needSkipEvent(e)) {\r\n this._cancel(e);\r\n return\r\n }\r\n this._startEvent = createEvent(e);\r\n this._startEventData = eventData(e);\r\n this._stage = INITED;\r\n this._init(e);\r\n this._setupImmediateTimer()\r\n },\r\n _setupImmediateTimer: function() {\r\n clearTimeout(this._immediateTimer);\r\n this._immediateAccepted = false;\r\n if (!this.immediate) {\r\n return\r\n }\r\n this._immediateTimer = setTimeout(function() {\r\n this._immediateAccepted = true\r\n }.bind(this), IMMEDIATE_TIMEOUT)\r\n },\r\n move: function(e) {\r\n if (this._stage === INITED && this._directionConfirmed(e)) {\r\n this._stage = STARTED;\r\n this._resetActiveElement();\r\n this._toggleGestureCover(true);\r\n this._clearSelection(e);\r\n this._adjustStartEvent(e);\r\n this._start(this._startEvent);\r\n if (this._stage === SLEEP) {\r\n return\r\n }\r\n this._requestAccept(e);\r\n this._move(e);\r\n this._forgetAccept()\r\n } else if (this._stage === STARTED) {\r\n this._clearSelection(e);\r\n this._move(e)\r\n }\r\n },\r\n _directionConfirmed: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n var deltaX = abs(delta.x);\r\n var deltaY = abs(delta.y);\r\n var horizontalMove = this._validateMove(touchBoundary, deltaX, deltaY);\r\n var verticalMove = this._validateMove(touchBoundary, deltaY, deltaX);\r\n var direction = this.getDirection(e);\r\n var bothAccepted = \"both\" === direction && (horizontalMove || verticalMove);\r\n var horizontalAccepted = \"horizontal\" === direction && horizontalMove;\r\n var verticalAccepted = \"vertical\" === direction && verticalMove;\r\n return bothAccepted || horizontalAccepted || verticalAccepted || this._immediateAccepted\r\n },\r\n _validateMove: function(touchBoundary, mainAxis, crossAxis) {\r\n return mainAxis && mainAxis >= touchBoundary && (this.immediate ? mainAxis >= crossAxis : true)\r\n },\r\n _getTouchBoundary: function(e) {\r\n return this.immediate || isDxMouseWheelEvent(e) ? IMMEDIATE_TOUCH_BOUNDARY : TOUCH_BOUNDARY\r\n },\r\n _adjustStartEvent: function(e) {\r\n var touchBoundary = this._getTouchBoundary(e);\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n this._startEvent.pageX += sign(delta.x) * touchBoundary;\r\n this._startEvent.pageY += sign(delta.y) * touchBoundary\r\n },\r\n _resetActiveElement: function() {\r\n if (\"ios\" === devices.real().platform && this.getElement().find(\":focus\").length) {\r\n resetActiveElement()\r\n }\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n },\r\n _toggleGestureCoverImpl: function(toggle) {\r\n var isStarted = this._stage === STARTED;\r\n if (isStarted) {\r\n gestureCover(toggle, this.getElement().css(\"cursor\"))\r\n }\r\n },\r\n _clearSelection: function(e) {\r\n if (isDxMouseWheelEvent(e) || isTouchEvent(e)) {\r\n return\r\n }\r\n clearSelection()\r\n },\r\n end: function(e) {\r\n this._toggleGestureCover(false);\r\n if (this._stage === STARTED) {\r\n this._end(e)\r\n } else if (this._stage === INITED) {\r\n this._stop(e)\r\n }\r\n this._stage = SLEEP\r\n },\r\n dispose: function() {\r\n clearTimeout(this._immediateTimer);\r\n this.callBase.apply(this, arguments);\r\n this._toggleGestureCover(false)\r\n },\r\n _init: noop,\r\n _start: noop,\r\n _move: noop,\r\n _stop: noop,\r\n _end: noop\r\n});\r\nGestureEmitter.initialTouchBoundary = TOUCH_BOUNDARY;\r\nGestureEmitter.touchBoundary = function(newBoundary) {\r\n if (isDefined(newBoundary)) {\r\n TOUCH_BOUNDARY = newBoundary;\r\n return\r\n }\r\n return TOUCH_BOUNDARY\r\n};\r\nexport default GestureEmitter;\r\n","/**\r\n * DevExtreme (esm/events/gesture/emitter.gesture.scroll.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Class from \"../../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n addNamespace,\r\n isDxMouseWheelEvent,\r\n isMouseEvent,\r\n eventData,\r\n eventDelta\r\n} from \"../../events/utils/index\";\r\nimport GestureEmitter from \"../../events/gesture/emitter.gesture\";\r\nimport registerEmitter from \"../../events/core/emitter_registrator\";\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../animation/frame\";\r\nimport devices from \"../../core/devices\";\r\nvar realDevice = devices.real();\r\nvar SCROLL_EVENT = \"scroll\";\r\nvar SCROLL_INIT_EVENT = \"dxscrollinit\";\r\nvar SCROLL_START_EVENT = \"dxscrollstart\";\r\nvar SCROLL_MOVE_EVENT = \"dxscroll\";\r\nvar SCROLL_END_EVENT = \"dxscrollend\";\r\nvar SCROLL_STOP_EVENT = \"dxscrollstop\";\r\nvar SCROLL_CANCEL_EVENT = \"dxscrollcancel\";\r\nvar Locker = Class.inherit(function() {\r\n var NAMESPACED_SCROLL_EVENT = addNamespace(SCROLL_EVENT, \"dxScrollEmitter\");\r\n return {\r\n ctor: function(element) {\r\n this._element = element;\r\n this._locked = false;\r\n this._proxiedScroll = e => {\r\n if (!this._disposed) {\r\n this._scroll(e)\r\n }\r\n };\r\n eventsEngine.on(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n },\r\n _scroll: abstract,\r\n check: function(e, callback) {\r\n if (this._locked) {\r\n callback()\r\n }\r\n },\r\n dispose: function() {\r\n this._disposed = true;\r\n eventsEngine.off(this._element, NAMESPACED_SCROLL_EVENT, this._proxiedScroll)\r\n }\r\n }\r\n}());\r\nvar TimeoutLocker = Locker.inherit({\r\n ctor: function(element, timeout) {\r\n this.callBase(element);\r\n this._timeout = timeout\r\n },\r\n _scroll: function() {\r\n this._prepare();\r\n this._forget()\r\n },\r\n _prepare: function() {\r\n if (this._timer) {\r\n this._clearTimer()\r\n }\r\n this._locked = true\r\n },\r\n _clearTimer: function() {\r\n clearTimeout(this._timer);\r\n this._locked = false;\r\n this._timer = null\r\n },\r\n _forget: function() {\r\n var that = this;\r\n this._timer = setTimeout((function() {\r\n that._clearTimer()\r\n }), this._timeout)\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._clearTimer()\r\n }\r\n});\r\nvar WheelLocker = TimeoutLocker.inherit({\r\n ctor: function(element) {\r\n this.callBase(element, 400);\r\n this._lastWheelDirection = null\r\n },\r\n check: function(e, callback) {\r\n this._checkDirectionChanged(e);\r\n this.callBase(e, callback)\r\n },\r\n _checkDirectionChanged: function(e) {\r\n if (!isDxMouseWheelEvent(e)) {\r\n this._lastWheelDirection = null;\r\n return\r\n }\r\n var direction = e.shiftKey || false;\r\n var directionChange = null !== this._lastWheelDirection && direction !== this._lastWheelDirection;\r\n this._lastWheelDirection = direction;\r\n this._locked = this._locked && !directionChange\r\n }\r\n});\r\nvar PointerLocker = TimeoutLocker.inherit({\r\n ctor: function(element) {\r\n this.callBase(element, 400)\r\n }\r\n});\r\n! function() {\r\n var {\r\n ios: isIos,\r\n android: isAndroid\r\n } = realDevice;\r\n if (!(isIos || isAndroid)) {\r\n return\r\n }\r\n PointerLocker = Locker.inherit({\r\n _scroll: function() {\r\n this._locked = true;\r\n var that = this;\r\n cancelAnimationFrame(this._scrollFrame);\r\n this._scrollFrame = requestAnimationFrame((function() {\r\n that._locked = false\r\n }))\r\n },\r\n check: function(e, callback) {\r\n cancelAnimationFrame(this._scrollFrame);\r\n cancelAnimationFrame(this._checkFrame);\r\n var that = this;\r\n var callBase = this.callBase;\r\n this._checkFrame = requestAnimationFrame((function() {\r\n callBase.call(that, e, callback);\r\n that._locked = false\r\n }))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n cancelAnimationFrame(this._scrollFrame);\r\n cancelAnimationFrame(this._checkFrame)\r\n }\r\n })\r\n}();\r\nvar ScrollEmitter = GestureEmitter.inherit(function() {\r\n var FRAME_DURATION = Math.round(1e3 / 60);\r\n return {\r\n ctor: function(element) {\r\n this.callBase.apply(this, arguments);\r\n this.direction = \"both\";\r\n this._pointerLocker = new PointerLocker(element);\r\n this._wheelLocker = new WheelLocker(element)\r\n },\r\n validate: function() {\r\n return true\r\n },\r\n configure: function(data) {\r\n if (data.scrollTarget) {\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose();\r\n this._pointerLocker = new PointerLocker(data.scrollTarget);\r\n this._wheelLocker = new WheelLocker(data.scrollTarget)\r\n }\r\n this.callBase(data)\r\n },\r\n _init: function(e) {\r\n this._wheelLocker.check(e, function() {\r\n if (isDxMouseWheelEvent(e)) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._pointerLocker.check(e, function() {\r\n var skipCheck = this.isNative && isMouseEvent(e);\r\n if (!isDxMouseWheelEvent(e) && !skipCheck) {\r\n this._accept(e)\r\n }\r\n }.bind(this));\r\n this._fireEvent(SCROLL_INIT_EVENT, e);\r\n this._prevEventData = eventData(e)\r\n },\r\n move: function(e) {\r\n this.callBase.apply(this, arguments);\r\n e.isScrollingEvent = this.isNative || e.isScrollingEvent\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n this._fireEvent(SCROLL_START_EVENT, e);\r\n this._prevEventData = eventData(e)\r\n },\r\n _move: function(e) {\r\n var currentEventData = eventData(e);\r\n this._fireEvent(SCROLL_MOVE_EVENT, e, {\r\n delta: eventDelta(this._prevEventData, currentEventData)\r\n });\r\n var delta = eventDelta(this._savedEventData, currentEventData);\r\n if (delta.time > 200) {\r\n this._savedEventData = this._prevEventData\r\n }\r\n this._prevEventData = eventData(e)\r\n },\r\n _end: function(e) {\r\n var endEventDelta = eventDelta(this._prevEventData, eventData(e));\r\n var velocity = {\r\n x: 0,\r\n y: 0\r\n };\r\n if (!isDxMouseWheelEvent(e) && endEventDelta.time < 100) {\r\n var delta = eventDelta(this._savedEventData, this._prevEventData);\r\n var velocityMultiplier = FRAME_DURATION / delta.time;\r\n velocity = {\r\n x: delta.x * velocityMultiplier,\r\n y: delta.y * velocityMultiplier\r\n }\r\n }\r\n this._fireEvent(SCROLL_END_EVENT, e, {\r\n velocity: velocity\r\n })\r\n },\r\n _stop: function(e) {\r\n this._fireEvent(SCROLL_STOP_EVENT, e)\r\n },\r\n cancel: function(e) {\r\n this.callBase.apply(this, arguments);\r\n this._fireEvent(SCROLL_CANCEL_EVENT, e)\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerLocker.dispose();\r\n this._wheelLocker.dispose()\r\n },\r\n _clearSelection: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _toggleGestureCover: function() {\r\n if (this.isNative) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n}());\r\nregisterEmitter({\r\n emitter: ScrollEmitter,\r\n events: [SCROLL_INIT_EVENT, SCROLL_START_EVENT, SCROLL_MOVE_EVENT, SCROLL_END_EVENT, SCROLL_STOP_EVENT, SCROLL_CANCEL_EVENT]\r\n});\r\nexport default {\r\n init: SCROLL_INIT_EVENT,\r\n start: SCROLL_START_EVENT,\r\n move: SCROLL_MOVE_EVENT,\r\n end: SCROLL_END_EVENT,\r\n stop: SCROLL_STOP_EVENT,\r\n cancel: SCROLL_CANCEL_EVENT,\r\n scroll: SCROLL_EVENT\r\n};\r\n","/**\r\n * DevExtreme (esm/events/gesture/swipeable.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../swipe\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n name\r\n} from \"../../core/utils/public_component\";\r\nvar DX_SWIPEABLE = \"dxSwipeable\";\r\nvar SWIPEABLE_CLASS = \"dx-swipeable\";\r\nvar ACTION_TO_EVENT_MAP = {\r\n onStart: swipeEventStart,\r\n onUpdated: swipeEventSwipe,\r\n onEnd: swipeEventEnd,\r\n onCancel: \"dxswipecancel\"\r\n};\r\nvar Swipeable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n elastic: true,\r\n immediate: false,\r\n direction: \"horizontal\",\r\n itemSizeFunc: null,\r\n onStart: null,\r\n onUpdated: null,\r\n onEnd: null,\r\n onCancel: null\r\n })\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(SWIPEABLE_CLASS);\r\n this._attachEventHandlers()\r\n },\r\n _attachEventHandlers: function() {\r\n this._detachEventHandlers();\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var NAME = this.NAME;\r\n this._createEventData();\r\n each(ACTION_TO_EVENT_MAP, function(actionName, eventName) {\r\n var action = this._createActionByOption(actionName, {\r\n context: this\r\n });\r\n eventName = addNamespace(eventName, NAME);\r\n eventsEngine.on(this.$element(), eventName, this._eventData, (function(e) {\r\n return action({\r\n event: e\r\n })\r\n }))\r\n }.bind(this))\r\n },\r\n _createEventData: function() {\r\n this._eventData = {\r\n elastic: this.option(\"elastic\"),\r\n itemSizeFunc: this.option(\"itemSizeFunc\"),\r\n direction: this.option(\"direction\"),\r\n immediate: this.option(\"immediate\")\r\n }\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this.$element(), \".\" + DX_SWIPEABLE)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n case \"onStart\":\r\n case \"onUpdated\":\r\n case \"onEnd\":\r\n case \"onCancel\":\r\n case \"elastic\":\r\n case \"immediate\":\r\n case \"itemSizeFunc\":\r\n case \"direction\":\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"rtlEnabled\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nname(Swipeable, DX_SWIPEABLE);\r\nexport default Swipeable;\r\n","/**\r\n * DevExtreme (esm/events/hold.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n eventData,\r\n eventDelta\r\n} from \"./utils/index\";\r\nimport Emitter from \"./core/emitter\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar abs = Math.abs;\r\nvar HOLD_EVENT_NAME = \"dxhold\";\r\nvar HOLD_TIMEOUT = 750;\r\nvar TOUCH_BOUNDARY = 5;\r\nvar HoldEmitter = Emitter.inherit({\r\n start: function(e) {\r\n this._startEventData = eventData(e);\r\n this._startTimer(e)\r\n },\r\n _startTimer: function(e) {\r\n var holdTimeout = \"timeout\" in this ? this.timeout : HOLD_TIMEOUT;\r\n this._holdTimer = setTimeout(function() {\r\n this._requestAccept(e);\r\n this._fireEvent(HOLD_EVENT_NAME, e, {\r\n target: e.target\r\n });\r\n this._forgetAccept()\r\n }.bind(this), holdTimeout)\r\n },\r\n move: function(e) {\r\n if (this._touchWasMoved(e)) {\r\n this._cancel(e)\r\n }\r\n },\r\n _touchWasMoved: function(e) {\r\n var delta = eventDelta(this._startEventData, eventData(e));\r\n return abs(delta.x) > TOUCH_BOUNDARY || abs(delta.y) > TOUCH_BOUNDARY\r\n },\r\n end: function() {\r\n this._stopTimer()\r\n },\r\n _stopTimer: function() {\r\n clearTimeout(this._holdTimer)\r\n },\r\n cancel: function() {\r\n this._stopTimer()\r\n },\r\n dispose: function() {\r\n this._stopTimer()\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: HoldEmitter,\r\n bubble: true,\r\n events: [HOLD_EVENT_NAME]\r\n});\r\nexport default {\r\n name: HOLD_EVENT_NAME\r\n};\r\n","/**\r\n * DevExtreme (esm/events/hover.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n removeData,\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Class from \"../core/class\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport {\r\n addNamespace,\r\n isTouchEvent,\r\n fireEvent\r\n} from \"./utils/index\";\r\nimport pointerEvents from \"./pointer\";\r\nvar HOVERSTART_NAMESPACE = \"dxHoverStart\";\r\nvar HOVERSTART = \"dxhoverstart\";\r\nvar POINTERENTER_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.enter, HOVERSTART_NAMESPACE);\r\nvar HOVEREND_NAMESPACE = \"dxHoverEnd\";\r\nvar HOVEREND = \"dxhoverend\";\r\nvar POINTERLEAVE_NAMESPACED_EVENT_NAME = addNamespace(pointerEvents.leave, HOVEREND_NAMESPACE);\r\nvar Hover = Class.inherit({\r\n noBubble: true,\r\n ctor: function() {\r\n this._handlerArrayKeyPath = this._eventNamespace + \"_HandlerStore\"\r\n },\r\n setup: function(element) {\r\n elementData(element, this._handlerArrayKeyPath, {})\r\n },\r\n add: function(element, handleObj) {\r\n var that = this;\r\n var handler = function(e) {\r\n that._handler(e)\r\n };\r\n eventsEngine.on(element, this._originalEventName, handleObj.selector, handler);\r\n elementData(element, this._handlerArrayKeyPath)[handleObj.guid] = handler\r\n },\r\n _handler: function(e) {\r\n if (isTouchEvent(e) || devices.isSimulator()) {\r\n return\r\n }\r\n fireEvent({\r\n type: this._eventName,\r\n originalEvent: e,\r\n delegateTarget: e.delegateTarget\r\n })\r\n },\r\n remove: function(element, handleObj) {\r\n var handler = elementData(element, this._handlerArrayKeyPath)[handleObj.guid];\r\n eventsEngine.off(element, this._originalEventName, handleObj.selector, handler)\r\n },\r\n teardown: function(element) {\r\n removeData(element, this._handlerArrayKeyPath)\r\n }\r\n});\r\nvar HoverStart = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVERSTART_NAMESPACE;\r\n this._eventName = HOVERSTART;\r\n this._originalEventName = POINTERENTER_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n },\r\n _handler: function(e) {\r\n var pointers = e.pointers || [];\r\n if (!pointers.length) {\r\n this.callBase(e)\r\n }\r\n }\r\n});\r\nvar HoverEnd = Hover.inherit({\r\n ctor: function() {\r\n this._eventNamespace = HOVEREND_NAMESPACE;\r\n this._eventName = HOVEREND;\r\n this._originalEventName = POINTERLEAVE_NAMESPACED_EVENT_NAME;\r\n this.callBase()\r\n }\r\n});\r\nregisterEvent(HOVERSTART, new HoverStart);\r\nregisterEvent(HOVEREND, new HoverEnd);\r\nexport {\r\n HOVERSTART as start, HOVEREND as end\r\n};\r\n","/**\r\n * DevExtreme (esm/events/pointer/base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n addNamespace,\r\n eventSource,\r\n fireEvent\r\n} from \"../utils/index\";\r\nvar POINTER_EVENTS_NAMESPACE = \"dxPointerEvents\";\r\nvar BaseStrategy = Class.inherit({\r\n ctor: function(eventName, originalEvents) {\r\n this._eventName = eventName;\r\n this._originalEvents = addNamespace(originalEvents, POINTER_EVENTS_NAMESPACE);\r\n this._handlerCount = 0;\r\n this.noBubble = this._isNoBubble()\r\n },\r\n _isNoBubble: function() {\r\n var eventName = this._eventName;\r\n return \"dxpointerenter\" === eventName || \"dxpointerleave\" === eventName\r\n },\r\n _handler: function(e) {\r\n var _originalEvent$target;\r\n var delegateTarget = this._getDelegateTarget(e);\r\n var event = {\r\n type: this._eventName,\r\n pointerType: e.pointerType || eventSource(e),\r\n originalEvent: e,\r\n delegateTarget: delegateTarget,\r\n timeStamp: browser.mozilla ? (new Date).getTime() : e.timeStamp\r\n };\r\n var originalEvent = e.originalEvent;\r\n if (null !== originalEvent && void 0 !== originalEvent && null !== (_originalEvent$target = originalEvent.target) && void 0 !== _originalEvent$target && _originalEvent$target.shadowRoot) {\r\n var _originalEvent$path, _originalEvent$compos;\r\n var path = null !== (_originalEvent$path = originalEvent.path) && void 0 !== _originalEvent$path ? _originalEvent$path : null === (_originalEvent$compos = originalEvent.composedPath) || void 0 === _originalEvent$compos ? void 0 : _originalEvent$compos.call(originalEvent);\r\n event.target = path[0]\r\n }\r\n return this._fireEvent(event)\r\n },\r\n _getDelegateTarget: function(e) {\r\n var delegateTarget;\r\n if (this.noBubble) {\r\n delegateTarget = e.delegateTarget\r\n }\r\n return delegateTarget\r\n },\r\n _fireEvent: function(args) {\r\n return fireEvent(args)\r\n },\r\n _setSelector: function(handleObj) {\r\n this._selector = this.noBubble && handleObj ? handleObj.selector : null\r\n },\r\n _getSelector: function() {\r\n return this._selector\r\n },\r\n setup: function() {\r\n return true\r\n },\r\n add: function(element, handleObj) {\r\n if (this._handlerCount <= 0 || this.noBubble) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n this._setSelector(handleObj);\r\n var that = this;\r\n eventsEngine.on(element, this._originalEvents, this._getSelector(), (function(e) {\r\n that._handler(e)\r\n }))\r\n }\r\n if (!this.noBubble) {\r\n this._handlerCount++\r\n }\r\n },\r\n remove: function(handleObj) {\r\n this._setSelector(handleObj);\r\n if (!this.noBubble) {\r\n this._handlerCount--\r\n }\r\n },\r\n teardown: function(element) {\r\n if (this._handlerCount && !this.noBubble) {\r\n return\r\n }\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n if (this._originalEvents !== \".\" + POINTER_EVENTS_NAMESPACE) {\r\n eventsEngine.off(element, this._originalEvents, this._getSelector())\r\n }\r\n },\r\n dispose: function(element) {\r\n element = this.noBubble ? element : domAdapter.getDocument();\r\n eventsEngine.off(element, this._originalEvents)\r\n }\r\n});\r\nexport default BaseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/touch.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport BaseStrategy from \"./base\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart\",\r\n dxpointermove: \"touchmove\",\r\n dxpointerup: \"touchend\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"\",\r\n dxpointerout: \"\",\r\n dxpointerenter: \"\",\r\n dxpointerleave: \"\"\r\n};\r\nvar normalizeTouchEvent = function(e) {\r\n var pointers = [];\r\n each(e.touches, (function(_, touch) {\r\n pointers.push(extend({\r\n pointerId: touch.identifier\r\n }, touch))\r\n }));\r\n return {\r\n pointers: pointers,\r\n pointerId: e.changedTouches[0].identifier\r\n }\r\n};\r\nvar skipTouchWithSameIdentifier = function(pointerEvent) {\r\n return \"ios\" === devices.real().platform && (\"dxpointerdown\" === pointerEvent || \"dxpointerup\" === pointerEvent)\r\n};\r\nvar TouchStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n this._pointerId = 0\r\n },\r\n _handler: function(e) {\r\n if (skipTouchWithSameIdentifier(this._eventName)) {\r\n var touch = e.changedTouches[0];\r\n if (this._pointerId === touch.identifier && 0 !== this._pointerId) {\r\n return\r\n }\r\n this._pointerId = touch.identifier\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeTouchEvent(args.originalEvent), args))\r\n }\r\n});\r\nTouchStrategy.map = eventMap;\r\nTouchStrategy.normalize = normalizeTouchEvent;\r\nexport default TouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/observer.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar addEventsListener = function(events, handler) {\r\n readyCallbacks.add((function() {\r\n events.split(\" \").forEach((function(event) {\r\n domAdapter.listen(domAdapter.getDocument(), event, handler, true)\r\n }))\r\n }))\r\n};\r\nvar Observer = function(eventMap, pointerEquals, onPointerAdding) {\r\n onPointerAdding = onPointerAdding || function() {};\r\n var pointers = [];\r\n var getPointerIndex = function(e) {\r\n var index = -1;\r\n each(pointers, (function(i, pointer) {\r\n if (!pointerEquals(e, pointer)) {\r\n return true\r\n }\r\n index = i;\r\n return false\r\n }));\r\n return index\r\n };\r\n var removePointer = function(e) {\r\n var index = getPointerIndex(e);\r\n if (index > -1) {\r\n pointers.splice(index, 1)\r\n }\r\n };\r\n addEventsListener(eventMap.dxpointerdown, (function(e) {\r\n if (-1 === getPointerIndex(e)) {\r\n onPointerAdding(e);\r\n pointers.push(e)\r\n }\r\n }));\r\n addEventsListener(eventMap.dxpointermove, (function(e) {\r\n pointers[getPointerIndex(e)] = e\r\n }));\r\n addEventsListener(eventMap.dxpointerup, removePointer);\r\n addEventsListener(eventMap.dxpointercancel, removePointer);\r\n this.pointers = function() {\r\n return pointers\r\n };\r\n this.reset = function() {\r\n pointers = []\r\n }\r\n};\r\nexport default Observer;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport Observer from \"./observer\";\r\nvar eventMap = {\r\n dxpointerdown: \"mousedown\",\r\n dxpointermove: \"mousemove\",\r\n dxpointerup: \"mouseup\",\r\n dxpointercancel: \"\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar normalizeMouseEvent = function(e) {\r\n e.pointerId = 1;\r\n return {\r\n pointers: observer.pointers(),\r\n pointerId: 1\r\n }\r\n};\r\nvar observer;\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n observer = new Observer(eventMap, (function() {\r\n return true\r\n }));\r\n activated = true\r\n};\r\nvar MouseStrategy = BaseStrategy.inherit({\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _fireEvent: function(args) {\r\n return this.callBase(extend(normalizeMouseEvent(args.originalEvent), args))\r\n }\r\n});\r\nMouseStrategy.map = eventMap;\r\nMouseStrategy.normalize = normalizeMouseEvent;\r\nMouseStrategy.activate = activateStrategy;\r\nMouseStrategy.resetObserver = function() {\r\n observer.reset()\r\n};\r\nexport default MouseStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer/mouse_and_touch.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport BaseStrategy from \"./base\";\r\nimport MouseStrategy from \"./mouse\";\r\nimport TouchStrategy from \"./touch\";\r\nimport {\r\n isMouseEvent\r\n} from \"../utils/index\";\r\nvar eventMap = {\r\n dxpointerdown: \"touchstart mousedown\",\r\n dxpointermove: \"touchmove mousemove\",\r\n dxpointerup: \"touchend mouseup\",\r\n dxpointercancel: \"touchcancel\",\r\n dxpointerover: \"mouseover\",\r\n dxpointerout: \"mouseout\",\r\n dxpointerenter: \"mouseenter\",\r\n dxpointerleave: \"mouseleave\"\r\n};\r\nvar activated = false;\r\nvar activateStrategy = function() {\r\n if (activated) {\r\n return\r\n }\r\n MouseStrategy.activate();\r\n activated = true\r\n};\r\nvar MouseAndTouchStrategy = BaseStrategy.inherit({\r\n EVENT_LOCK_TIMEOUT: 100,\r\n ctor: function() {\r\n this.callBase.apply(this, arguments);\r\n activateStrategy()\r\n },\r\n _handler: function(e) {\r\n var isMouse = isMouseEvent(e);\r\n if (!isMouse) {\r\n this._skipNextEvents = true\r\n }\r\n if (isMouse && this._mouseLocked) {\r\n return\r\n }\r\n if (isMouse && this._skipNextEvents) {\r\n this._skipNextEvents = false;\r\n this._mouseLocked = true;\r\n clearTimeout(this._unlockMouseTimer);\r\n var that = this;\r\n this._unlockMouseTimer = setTimeout((function() {\r\n that._mouseLocked = false\r\n }), this.EVENT_LOCK_TIMEOUT);\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _fireEvent: function(args) {\r\n var normalizer = isMouseEvent(args.originalEvent) ? MouseStrategy.normalize : TouchStrategy.normalize;\r\n return this.callBase(extend(normalizer(args.originalEvent), args))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._skipNextEvents = false;\r\n this._mouseLocked = false;\r\n clearTimeout(this._unlockMouseTimer)\r\n }\r\n});\r\nMouseAndTouchStrategy.map = eventMap;\r\nMouseAndTouchStrategy.resetObserver = MouseStrategy.resetObserver;\r\nexport default MouseAndTouchStrategy;\r\n","/**\r\n * DevExtreme (esm/events/pointer.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as support from \"../core/utils/support\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport devices from \"../core/devices\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nimport TouchStrategy from \"./pointer/touch\";\r\nimport MouseStrategy from \"./pointer/mouse\";\r\nimport MouseAndTouchStrategy from \"./pointer/mouse_and_touch\";\r\nvar getStrategy = (support, device) => {\r\n var {\r\n tablet: tablet,\r\n phone: phone\r\n } = device;\r\n if (support.touch && !(tablet || phone)) {\r\n return MouseAndTouchStrategy\r\n }\r\n if (support.touch) {\r\n return TouchStrategy\r\n }\r\n return MouseStrategy\r\n};\r\nvar EventStrategy = getStrategy(support, devices.real());\r\neach(EventStrategy.map, (pointerEvent, originalEvents) => {\r\n registerEvent(pointerEvent, new EventStrategy(pointerEvent, originalEvents))\r\n});\r\nvar pointer = {\r\n down: \"dxpointerdown\",\r\n up: \"dxpointerup\",\r\n move: \"dxpointermove\",\r\n cancel: \"dxpointercancel\",\r\n enter: \"dxpointerenter\",\r\n leave: \"dxpointerleave\",\r\n over: \"dxpointerover\",\r\n out: \"dxpointerout\"\r\n};\r\nexport default pointer;\r\n","/**\r\n * DevExtreme (esm/events/remove.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n beforeCleanData\r\n} from \"../core/element_data\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport registerEvent from \"./core/event_registrator\";\r\nexport var removeEvent = \"dxremove\";\r\nvar eventPropName = \"dxRemoveEvent\";\r\nbeforeCleanData((function(elements) {\r\n elements = [].slice.call(elements);\r\n for (var i = 0; i < elements.length; i++) {\r\n var $element = $(elements[i]);\r\n if ($element.prop(eventPropName)) {\r\n $element[0][eventPropName] = null;\r\n eventsEngine.triggerHandler($element, removeEvent)\r\n }\r\n }\r\n}));\r\nregisterEvent(removeEvent, {\r\n noBubble: true,\r\n setup: function(element) {\r\n $(element).prop(eventPropName, true)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/events/short.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"./core/events_engine\";\r\nimport KeyboardProcessor from \"./core/keyboard_processor\";\r\nimport {\r\n addNamespace as pureAddNamespace\r\n} from \"./utils/index\";\r\n\r\nfunction addNamespace(event, namespace) {\r\n return namespace ? pureAddNamespace(event, namespace) : event\r\n}\r\n\r\nfunction executeAction(action, args) {\r\n return \"function\" === typeof action ? action(args) : action.execute(args)\r\n}\r\nexport var active = {\r\n on: ($el, active, inactive, opts) => {\r\n var {\r\n selector: selector,\r\n showTimeout: showTimeout,\r\n hideTimeout: hideTimeout,\r\n namespace: namespace\r\n } = opts;\r\n eventsEngine.on($el, addNamespace(\"dxactive\", namespace), selector, {\r\n timeout: showTimeout\r\n }, event => executeAction(active, {\r\n event: event,\r\n element: event.currentTarget\r\n }));\r\n eventsEngine.on($el, addNamespace(\"dxinactive\", namespace), selector, {\r\n timeout: hideTimeout\r\n }, event => executeAction(inactive, {\r\n event: event,\r\n element: event.currentTarget\r\n }))\r\n },\r\n off: ($el, _ref) => {\r\n var {\r\n namespace: namespace,\r\n selector: selector\r\n } = _ref;\r\n eventsEngine.off($el, addNamespace(\"dxactive\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxinactive\", namespace), selector)\r\n }\r\n};\r\nexport var resize = {\r\n on: function($el, resize) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxresize\", namespace), resize)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxresize\", namespace))\r\n }\r\n};\r\nexport var hover = {\r\n on: ($el, start, end, _ref2) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref2;\r\n eventsEngine.on($el, addNamespace(\"dxhoverend\", namespace), selector, event => end(event));\r\n eventsEngine.on($el, addNamespace(\"dxhoverstart\", namespace), selector, event => executeAction(start, {\r\n element: event.target,\r\n event: event\r\n }))\r\n },\r\n off: ($el, _ref3) => {\r\n var {\r\n selector: selector,\r\n namespace: namespace\r\n } = _ref3;\r\n eventsEngine.off($el, addNamespace(\"dxhoverstart\", namespace), selector);\r\n eventsEngine.off($el, addNamespace(\"dxhoverend\", namespace), selector)\r\n }\r\n};\r\nexport var visibility = {\r\n on: ($el, shown, hiding, _ref4) => {\r\n var {\r\n namespace: namespace\r\n } = _ref4;\r\n eventsEngine.on($el, addNamespace(\"dxhiding\", namespace), hiding);\r\n eventsEngine.on($el, addNamespace(\"dxshown\", namespace), shown)\r\n },\r\n off: ($el, _ref5) => {\r\n var {\r\n namespace: namespace\r\n } = _ref5;\r\n eventsEngine.off($el, addNamespace(\"dxhiding\", namespace));\r\n eventsEngine.off($el, addNamespace(\"dxshown\", namespace))\r\n }\r\n};\r\nexport var focus = {\r\n on: ($el, focusIn, focusOut, _ref6) => {\r\n var {\r\n namespace: namespace\r\n } = _ref6;\r\n eventsEngine.on($el, addNamespace(\"focusin\", namespace), focusIn);\r\n eventsEngine.on($el, addNamespace(\"focusout\", namespace), focusOut)\r\n },\r\n off: ($el, _ref7) => {\r\n var {\r\n namespace: namespace\r\n } = _ref7;\r\n eventsEngine.off($el, addNamespace(\"focusin\", namespace));\r\n eventsEngine.off($el, addNamespace(\"focusout\", namespace))\r\n },\r\n trigger: $el => eventsEngine.trigger($el, \"focus\")\r\n};\r\nexport var dxClick = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"dxclick\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"dxclick\", namespace))\r\n }\r\n};\r\nexport var click = {\r\n on: function($el, click) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n eventsEngine.on($el, addNamespace(\"click\", namespace), click)\r\n },\r\n off: function($el) {\r\n var {\r\n namespace: namespace\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n eventsEngine.off($el, addNamespace(\"click\", namespace))\r\n }\r\n};\r\nvar index = 0;\r\nvar keyboardProcessors = {};\r\nvar generateListenerId = () => \"keyboardProcessorId\".concat(index++);\r\nexport var keyboard = {\r\n on: (element, focusTarget, handler) => {\r\n var listenerId = generateListenerId();\r\n keyboardProcessors[listenerId] = new KeyboardProcessor({\r\n element: element,\r\n focusTarget: focusTarget,\r\n handler: handler\r\n });\r\n return listenerId\r\n },\r\n off: listenerId => {\r\n if (listenerId && keyboardProcessors[listenerId]) {\r\n keyboardProcessors[listenerId].dispose();\r\n delete keyboardProcessors[listenerId]\r\n }\r\n },\r\n _getProcessor: listenerId => keyboardProcessors[listenerId]\r\n};\r\n","/**\r\n * DevExtreme (esm/events/swipe.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n eventData\r\n} from \"./utils/index\";\r\nimport GestureEmitter from \"./gesture/emitter.gesture\";\r\nimport registerEmitter from \"./core/emitter_registrator\";\r\nvar SWIPE_START_EVENT = \"dxswipestart\";\r\nvar SWIPE_EVENT = \"dxswipe\";\r\nvar SWIPE_END_EVENT = \"dxswipeend\";\r\nvar HorizontalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getWidth(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxLeftOffset, this._maxRightOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.x - (this._savedEventData && this._savedEventData.x || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.x - this._tickData.x) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar VerticalStrategy = {\r\n defaultItemSizeFunc: function() {\r\n return getHeight(this.getElement())\r\n },\r\n getBounds: function() {\r\n return [this._maxTopOffset, this._maxBottomOffset]\r\n },\r\n calcOffsetRatio: function(e) {\r\n var endEventData = eventData(e);\r\n return (endEventData.y - (this._savedEventData && this._savedEventData.y || 0)) / this._itemSizeFunc().call(this, e)\r\n },\r\n isFastSwipe: function(e) {\r\n var endEventData = eventData(e);\r\n return this.FAST_SWIPE_SPEED_LIMIT * Math.abs(endEventData.y - this._tickData.y) >= endEventData.time - this._tickData.time\r\n }\r\n};\r\nvar STRATEGIES = {\r\n horizontal: HorizontalStrategy,\r\n vertical: VerticalStrategy\r\n};\r\nvar SwipeEmitter = GestureEmitter.inherit({\r\n TICK_INTERVAL: 300,\r\n FAST_SWIPE_SPEED_LIMIT: 10,\r\n ctor: function(element) {\r\n this.callBase(element);\r\n this.direction = \"horizontal\";\r\n this.elastic = true\r\n },\r\n _getStrategy: function() {\r\n return STRATEGIES[this.direction]\r\n },\r\n _defaultItemSizeFunc: function() {\r\n return this._getStrategy().defaultItemSizeFunc.call(this)\r\n },\r\n _itemSizeFunc: function() {\r\n return this.itemSizeFunc || this._defaultItemSizeFunc\r\n },\r\n _init: function(e) {\r\n this._tickData = eventData(e)\r\n },\r\n _start: function(e) {\r\n this._savedEventData = eventData(e);\r\n e = this._fireEvent(SWIPE_START_EVENT, e);\r\n if (!e.cancel) {\r\n this._maxLeftOffset = e.maxLeftOffset;\r\n this._maxRightOffset = e.maxRightOffset;\r\n this._maxTopOffset = e.maxTopOffset;\r\n this._maxBottomOffset = e.maxBottomOffset\r\n }\r\n },\r\n _move: function(e) {\r\n var strategy = this._getStrategy();\r\n var moveEventData = eventData(e);\r\n var offset = strategy.calcOffsetRatio.call(this, e);\r\n offset = this._fitOffset(offset, this.elastic);\r\n if (moveEventData.time - this._tickData.time > this.TICK_INTERVAL) {\r\n this._tickData = moveEventData\r\n }\r\n this._fireEvent(SWIPE_EVENT, e, {\r\n offset: offset\r\n });\r\n e.preventDefault()\r\n },\r\n _end: function(e) {\r\n var strategy = this._getStrategy();\r\n var offsetRatio = strategy.calcOffsetRatio.call(this, e);\r\n var isFast = strategy.isFastSwipe.call(this, e);\r\n var startOffset = offsetRatio;\r\n var targetOffset = this._calcTargetOffset(offsetRatio, isFast);\r\n startOffset = this._fitOffset(startOffset, this.elastic);\r\n targetOffset = this._fitOffset(targetOffset, false);\r\n this._fireEvent(SWIPE_END_EVENT, e, {\r\n offset: startOffset,\r\n targetOffset: targetOffset\r\n })\r\n },\r\n _fitOffset: function(offset, elastic) {\r\n var strategy = this._getStrategy();\r\n var bounds = strategy.getBounds.call(this);\r\n if (offset < -bounds[0]) {\r\n return elastic ? (-2 * bounds[0] + offset) / 3 : -bounds[0]\r\n }\r\n if (offset > bounds[1]) {\r\n return elastic ? (2 * bounds[1] + offset) / 3 : bounds[1]\r\n }\r\n return offset\r\n },\r\n _calcTargetOffset: function(offsetRatio, isFast) {\r\n var result;\r\n if (isFast) {\r\n result = Math.ceil(Math.abs(offsetRatio));\r\n if (offsetRatio < 0) {\r\n result = -result\r\n }\r\n } else {\r\n result = Math.round(offsetRatio)\r\n }\r\n return result\r\n }\r\n});\r\nregisterEmitter({\r\n emitter: SwipeEmitter,\r\n events: [SWIPE_START_EVENT, SWIPE_EVENT, SWIPE_END_EVENT]\r\n});\r\nexport {\r\n SWIPE_EVENT as swipe, SWIPE_START_EVENT as start, SWIPE_END_EVENT as end\r\n};\r\n","/**\r\n * DevExtreme (esm/events/utils/add_namespace.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errors from \"../../core/errors\";\r\nvar addNamespace = (eventNames, namespace) => {\r\n if (!namespace) {\r\n throw errors.Error(\"E0017\")\r\n }\r\n if (Array.isArray(eventNames)) {\r\n return eventNames.map(eventName => addNamespace(eventName, namespace)).join(\" \")\r\n }\r\n if (-1 !== eventNames.indexOf(\" \")) {\r\n return addNamespace(eventNames.split(/\\s+/g), namespace)\r\n }\r\n return \"\".concat(eventNames, \".\").concat(namespace)\r\n};\r\nexport default addNamespace;\r\n","/**\r\n * DevExtreme (esm/events/utils/index.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport mappedAddNamespace from \"./add_namespace\";\r\nimport eventsEngine from \"../core/events_engine\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../../ui/widget/selectors\";\r\nvar KEY_MAP = {\r\n backspace: \"backspace\",\r\n tab: \"tab\",\r\n enter: \"enter\",\r\n escape: \"escape\",\r\n pageup: \"pageUp\",\r\n pagedown: \"pageDown\",\r\n end: \"end\",\r\n home: \"home\",\r\n arrowleft: \"leftArrow\",\r\n arrowup: \"upArrow\",\r\n arrowright: \"rightArrow\",\r\n arrowdown: \"downArrow\",\r\n delete: \"del\",\r\n \" \": \"space\",\r\n f: \"F\",\r\n a: \"A\",\r\n \"*\": \"asterisk\",\r\n \"-\": \"minus\",\r\n alt: \"alt\",\r\n control: \"control\",\r\n shift: \"shift\"\r\n};\r\nvar LEGACY_KEY_CODES = {\r\n 8: \"backspace\",\r\n 9: \"tab\",\r\n 13: \"enter\",\r\n 27: \"escape\",\r\n 33: \"pageUp\",\r\n 34: \"pageDown\",\r\n 35: \"end\",\r\n 36: \"home\",\r\n 37: \"leftArrow\",\r\n 38: \"upArrow\",\r\n 39: \"rightArrow\",\r\n 40: \"downArrow\",\r\n 46: \"del\",\r\n 32: \"space\",\r\n 70: \"F\",\r\n 65: \"A\",\r\n 106: \"asterisk\",\r\n 109: \"minus\",\r\n 189: \"minus\",\r\n 173: \"minus\",\r\n 16: \"shift\",\r\n 17: \"control\",\r\n 18: \"alt\"\r\n};\r\nvar EVENT_SOURCES_REGEX = {\r\n dx: /^dx/i,\r\n mouse: /(mouse|wheel)/i,\r\n touch: /^touch/i,\r\n keyboard: /^key/i,\r\n pointer: /^(ms)?pointer/i\r\n};\r\nvar fixMethod = e => e;\r\nvar copyEvent = originalEvent => fixMethod(eventsEngine.Event(originalEvent, originalEvent), originalEvent);\r\nvar isDxEvent = e => \"dx\" === eventSource(e);\r\nvar isNativeMouseEvent = e => \"mouse\" === eventSource(e);\r\nvar isNativeTouchEvent = e => \"touch\" === eventSource(e);\r\nexport var eventSource = _ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n var result = \"other\";\r\n each(EVENT_SOURCES_REGEX, (function(key) {\r\n if (this.test(type)) {\r\n result = key;\r\n return false\r\n }\r\n }));\r\n return result\r\n};\r\nexport var isPointerEvent = e => \"pointer\" === eventSource(e);\r\nexport var isMouseEvent = e => isNativeMouseEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"mouse\" === e.pointerType;\r\nexport var isDxMouseWheelEvent = e => e && \"dxmousewheel\" === e.type;\r\nexport var isTouchEvent = e => isNativeTouchEvent(e) || (isPointerEvent(e) || isDxEvent(e)) && \"touch\" === e.pointerType;\r\nexport var isKeyboardEvent = e => \"keyboard\" === eventSource(e);\r\nexport var isFakeClickEvent = _ref2 => {\r\n var {\r\n screenX: screenX,\r\n offsetX: offsetX,\r\n pageX: pageX\r\n } = _ref2;\r\n return 0 === screenX && !offsetX && 0 === pageX\r\n};\r\nexport var eventData = _ref3 => {\r\n var {\r\n pageX: pageX,\r\n pageY: pageY,\r\n timeStamp: timeStamp\r\n } = _ref3;\r\n return {\r\n x: pageX,\r\n y: pageY,\r\n time: timeStamp\r\n }\r\n};\r\nexport var eventDelta = (from, to) => ({\r\n x: to.x - from.x,\r\n y: to.y - from.y,\r\n time: to.time - from.time || 1\r\n});\r\nexport var hasTouches = e => {\r\n var {\r\n originalEvent: originalEvent,\r\n pointers: pointers\r\n } = e;\r\n if (isNativeTouchEvent(e)) {\r\n return (originalEvent.touches || []).length\r\n }\r\n if (isDxEvent(e)) {\r\n return (pointers || []).length\r\n }\r\n return 0\r\n};\r\nvar skipEvents = false;\r\nexport var forceSkipEvents = () => skipEvents = true;\r\nexport var stopEventsSkipping = () => skipEvents = false;\r\nexport var needSkipEvent = e => {\r\n if (skipEvents) {\r\n return true\r\n }\r\n var {\r\n target: target\r\n } = e;\r\n var $target = $(target);\r\n var isContentEditable = (null === target || void 0 === target ? void 0 : target.isContentEditable) || (null === target || void 0 === target ? void 0 : target.hasAttribute(\"contenteditable\"));\r\n var touchInEditable = $target.is(\"input, textarea, select\") || isContentEditable;\r\n if (isDxMouseWheelEvent(e)) {\r\n var isTextArea = $target.is(\"textarea\") && $target.hasClass(\"dx-texteditor-input\");\r\n if (isTextArea || isContentEditable) {\r\n return false\r\n }\r\n var isInputFocused = $target.is(\"input[type='number'], textarea, select\") && $target.is(\":focus\");\r\n return isInputFocused\r\n }\r\n if (isMouseEvent(e)) {\r\n return touchInEditable || e.which > 1\r\n }\r\n if (isTouchEvent(e)) {\r\n return touchInEditable && focused($target)\r\n }\r\n};\r\nexport var setEventFixMethod = func => fixMethod = func;\r\nexport var createEvent = (originalEvent, args) => {\r\n var event = copyEvent(originalEvent);\r\n args && extend(event, args);\r\n return event\r\n};\r\nexport var fireEvent = props => {\r\n var {\r\n originalEvent: originalEvent,\r\n delegateTarget: delegateTarget\r\n } = props;\r\n var event = createEvent(originalEvent, props);\r\n eventsEngine.trigger(delegateTarget || event.target, event);\r\n return event\r\n};\r\nexport var normalizeKeyName = _ref4 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref4;\r\n var normalizedKey = KEY_MAP[null === key || void 0 === key ? void 0 : key.toLowerCase()] || key;\r\n var normalizedKeyFromWhich = LEGACY_KEY_CODES[which];\r\n if (normalizedKeyFromWhich && normalizedKey === key) {\r\n return normalizedKeyFromWhich\r\n } else if (!normalizedKey && which) {\r\n return String.fromCharCode(which)\r\n }\r\n return normalizedKey\r\n};\r\nexport var getChar = _ref5 => {\r\n var {\r\n key: key,\r\n which: which\r\n } = _ref5;\r\n return key || String.fromCharCode(which)\r\n};\r\nexport var addNamespace = mappedAddNamespace;\r\nexport var isCommandKeyPressed = _ref6 => {\r\n var {\r\n ctrlKey: ctrlKey,\r\n metaKey: metaKey\r\n } = _ref6;\r\n return ctrlKey || metaKey\r\n};\r\n","/**\r\n * DevExtreme (esm/events/visibility_change.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"./core/events_engine\";\r\nvar triggerVisibilityChangeEvent = function(eventName) {\r\n return function(element) {\r\n var $element = $(element || \"body\");\r\n var changeHandlers = $element.filter(\".dx-visibility-change-handler\").add($element.find(\".dx-visibility-change-handler\"));\r\n for (var i = 0; i < changeHandlers.length; i++) {\r\n eventsEngine.triggerHandler(changeHandlers[i], eventName)\r\n }\r\n }\r\n};\r\nexport var triggerShownEvent = triggerVisibilityChangeEvent(\"dxshown\");\r\nexport var triggerHidingEvent = triggerVisibilityChangeEvent(\"dxhiding\");\r\nexport var triggerResizeEvent = triggerVisibilityChangeEvent(\"dxresize\");\r\n","/**\r\n * DevExtreme (esm/format_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isDefined,\r\n isDate,\r\n isPlainObject\r\n} from \"./core/utils/type\";\r\nimport dateUtils from \"./core/utils/date\";\r\nimport numberLocalization from \"./localization/number\";\r\nimport dateLocalization from \"./localization/date\";\r\nimport dependencyInjector from \"./core/utils/dependency_injector\";\r\nimport \"./localization/currency\";\r\nexport default dependencyInjector({\r\n format: function(value, _format) {\r\n var formatIsValid = isString(_format) && \"\" !== _format || isPlainObject(_format) || isFunction(_format);\r\n var valueIsValid = isNumeric(value) || isDate(value);\r\n if (!formatIsValid || !valueIsValid) {\r\n return isDefined(value) ? value.toString() : \"\"\r\n }\r\n if (isFunction(_format)) {\r\n return _format(value)\r\n }\r\n if (isString(_format)) {\r\n _format = {\r\n type: _format\r\n }\r\n }\r\n if (isNumeric(value)) {\r\n return numberLocalization.format(value, _format)\r\n }\r\n if (isDate(value)) {\r\n return dateLocalization.format(value, _format)\r\n }\r\n },\r\n getTimeFormat: function(showSecond) {\r\n return showSecond ? \"longtime\" : \"shorttime\"\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!Array.isArray(format)) {\r\n return format\r\n }\r\n if (1 === format.length) {\r\n return format[0]\r\n }\r\n return function(date) {\r\n return format.map((function(formatPart) {\r\n return dateLocalization.format(date, formatPart)\r\n })).join(\" \")\r\n }\r\n },\r\n getDateFormatByDifferences: function(dateDifferences, intervalFormat) {\r\n var resultFormat = [];\r\n var needSpecialSecondFormatter = intervalFormat && dateDifferences.millisecond && !(dateDifferences.year || dateDifferences.month || dateDifferences.day);\r\n if (needSpecialSecondFormatter) {\r\n resultFormat.push((function(date) {\r\n return date.getSeconds() + date.getMilliseconds() / 1e3 + \"s\"\r\n }))\r\n } else if (dateDifferences.millisecond) {\r\n resultFormat.push(\"millisecond\")\r\n }\r\n if (dateDifferences.hour || dateDifferences.minute || !needSpecialSecondFormatter && dateDifferences.second) {\r\n resultFormat.unshift(this.getTimeFormat(dateDifferences.second))\r\n }\r\n if (dateDifferences.year && dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat && \"month\" === intervalFormat) {\r\n return \"monthandyear\"\r\n } else {\r\n resultFormat.unshift(\"shortdate\");\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n }\r\n if (dateDifferences.year && dateDifferences.month) {\r\n return \"monthandyear\"\r\n }\r\n if (dateDifferences.year && dateDifferences.quarter) {\r\n return \"quarterandyear\"\r\n }\r\n if (dateDifferences.year) {\r\n return \"year\"\r\n }\r\n if (dateDifferences.quarter) {\r\n return \"quarter\"\r\n }\r\n if (dateDifferences.month && dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[date.getMonth()] + \" \" + dateLocalization.format(date, \"day\")\r\n }))\r\n } else {\r\n resultFormat.unshift(\"monthandday\")\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n if (dateDifferences.month) {\r\n return \"month\"\r\n }\r\n if (dateDifferences.day) {\r\n if (intervalFormat) {\r\n resultFormat.unshift(\"day\")\r\n } else {\r\n resultFormat.unshift((function(date) {\r\n return dateLocalization.format(date, \"dayofweek\") + \", \" + dateLocalization.format(date, \"day\")\r\n }))\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n }\r\n return this._normalizeFormat(resultFormat)\r\n },\r\n getDateFormatByTicks: function(ticks) {\r\n var maxDiff;\r\n var currentDiff;\r\n var i;\r\n if (ticks.length > 1) {\r\n maxDiff = dateUtils.getDatesDifferences(ticks[0], ticks[1]);\r\n for (i = 1; i < ticks.length - 1; i++) {\r\n currentDiff = dateUtils.getDatesDifferences(ticks[i], ticks[i + 1]);\r\n if (maxDiff.count < currentDiff.count) {\r\n maxDiff = currentDiff\r\n }\r\n }\r\n } else {\r\n maxDiff = {\r\n year: true,\r\n month: true,\r\n day: true,\r\n hour: ticks[0].getHours() > 0,\r\n minute: ticks[0].getMinutes() > 0,\r\n second: ticks[0].getSeconds() > 0,\r\n millisecond: ticks[0].getMilliseconds() > 0\r\n }\r\n }\r\n var resultFormat = this.getDateFormatByDifferences(maxDiff);\r\n return resultFormat\r\n },\r\n getDateFormatByTickInterval: function(startValue, endValue, tickInterval) {\r\n var dateUnitInterval;\r\n var correctDateDifferences = function(dateDifferences, tickInterval, value) {\r\n switch (tickInterval) {\r\n case \"year\":\r\n case \"quarter\":\r\n dateDifferences.month = value;\r\n case \"month\":\r\n dateDifferences.day = value;\r\n case \"week\":\r\n case \"day\":\r\n dateDifferences.hour = value;\r\n case \"hour\":\r\n dateDifferences.minute = value;\r\n case \"minute\":\r\n dateDifferences.second = value;\r\n case \"second\":\r\n dateDifferences.millisecond = value\r\n }\r\n };\r\n tickInterval = isString(tickInterval) ? tickInterval.toLowerCase() : tickInterval;\r\n var dateDifferences = dateUtils.getDatesDifferences(startValue, endValue);\r\n if (startValue !== endValue) {\r\n ! function(differences, minDate, maxDate) {\r\n if (!maxDate.getMilliseconds() && maxDate.getSeconds()) {\r\n if (maxDate.getSeconds() - minDate.getSeconds() === 1) {\r\n differences.millisecond = true;\r\n differences.second = false\r\n }\r\n } else if (!maxDate.getSeconds() && maxDate.getMinutes()) {\r\n if (maxDate.getMinutes() - minDate.getMinutes() === 1) {\r\n differences.second = true;\r\n differences.minute = false\r\n }\r\n } else if (!maxDate.getMinutes() && maxDate.getHours()) {\r\n if (maxDate.getHours() - minDate.getHours() === 1) {\r\n differences.minute = true;\r\n differences.hour = false\r\n }\r\n } else if (!maxDate.getHours() && maxDate.getDate() > 1) {\r\n if (maxDate.getDate() - minDate.getDate() === 1) {\r\n differences.hour = true;\r\n differences.day = false\r\n }\r\n } else if (1 === maxDate.getDate() && maxDate.getMonth()) {\r\n if (maxDate.getMonth() - minDate.getMonth() === 1) {\r\n differences.day = true;\r\n differences.month = false\r\n }\r\n } else if (!maxDate.getMonth() && maxDate.getFullYear()) {\r\n if (maxDate.getFullYear() - minDate.getFullYear() === 1) {\r\n differences.month = true;\r\n differences.year = false\r\n }\r\n }\r\n }(dateDifferences, startValue > endValue ? endValue : startValue, startValue > endValue ? startValue : endValue)\r\n }\r\n dateUnitInterval = dateUtils.getDateUnitInterval(dateDifferences);\r\n correctDateDifferences(dateDifferences, dateUnitInterval, true);\r\n dateUnitInterval = dateUtils.getDateUnitInterval(tickInterval || \"second\");\r\n correctDateDifferences(dateDifferences, dateUnitInterval, false);\r\n dateDifferences[{\r\n week: \"day\"\r\n } [dateUnitInterval] || dateUnitInterval] = true;\r\n var resultFormat = this.getDateFormatByDifferences(dateDifferences);\r\n return resultFormat\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/localization.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport core from \"./localization/core\";\r\nimport message from \"./localization/message\";\r\nimport number from \"./localization/number\";\r\nimport date from \"./localization/date\";\r\nimport \"./localization/currency\";\r\nexport var locale = core.locale.bind(core);\r\nexport var loadMessages = message.load.bind(message);\r\nexport var formatMessage = message.format.bind(message);\r\nexport var formatNumber = number.format.bind(number);\r\nexport var parseNumber = number.parse.bind(number);\r\nexport var formatDate = date.format.bind(date);\r\nexport var parseDate = date.parse.bind(date);\r\nexport {\r\n message,\r\n number,\r\n date\r\n};\r\nexport function disableIntl() {\r\n if (\"intl\" === number.engine()) {\r\n number.resetInjection()\r\n }\r\n if (\"intl\" === date.engine()) {\r\n date.resetInjection()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/parent_locales.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n \"en-150\": \"en-001\",\r\n \"en-AG\": \"en-001\",\r\n \"en-AI\": \"en-001\",\r\n \"en-AU\": \"en-001\",\r\n \"en-BB\": \"en-001\",\r\n \"en-BM\": \"en-001\",\r\n \"en-BS\": \"en-001\",\r\n \"en-BW\": \"en-001\",\r\n \"en-BZ\": \"en-001\",\r\n \"en-CC\": \"en-001\",\r\n \"en-CK\": \"en-001\",\r\n \"en-CM\": \"en-001\",\r\n \"en-CX\": \"en-001\",\r\n \"en-CY\": \"en-001\",\r\n \"en-DG\": \"en-001\",\r\n \"en-DM\": \"en-001\",\r\n \"en-ER\": \"en-001\",\r\n \"en-FJ\": \"en-001\",\r\n \"en-FK\": \"en-001\",\r\n \"en-FM\": \"en-001\",\r\n \"en-GB\": \"en-001\",\r\n \"en-GD\": \"en-001\",\r\n \"en-GG\": \"en-001\",\r\n \"en-GH\": \"en-001\",\r\n \"en-GI\": \"en-001\",\r\n \"en-GM\": \"en-001\",\r\n \"en-GY\": \"en-001\",\r\n \"en-HK\": \"en-001\",\r\n \"en-IE\": \"en-001\",\r\n \"en-IL\": \"en-001\",\r\n \"en-IM\": \"en-001\",\r\n \"en-IN\": \"en-001\",\r\n \"en-IO\": \"en-001\",\r\n \"en-JE\": \"en-001\",\r\n \"en-JM\": \"en-001\",\r\n \"en-KE\": \"en-001\",\r\n \"en-KI\": \"en-001\",\r\n \"en-KN\": \"en-001\",\r\n \"en-KY\": \"en-001\",\r\n \"en-LC\": \"en-001\",\r\n \"en-LR\": \"en-001\",\r\n \"en-LS\": \"en-001\",\r\n \"en-MG\": \"en-001\",\r\n \"en-MO\": \"en-001\",\r\n \"en-MS\": \"en-001\",\r\n \"en-MT\": \"en-001\",\r\n \"en-MU\": \"en-001\",\r\n \"en-MV\": \"en-001\",\r\n \"en-MW\": \"en-001\",\r\n \"en-MY\": \"en-001\",\r\n \"en-NA\": \"en-001\",\r\n \"en-NF\": \"en-001\",\r\n \"en-NG\": \"en-001\",\r\n \"en-NR\": \"en-001\",\r\n \"en-NU\": \"en-001\",\r\n \"en-NZ\": \"en-001\",\r\n \"en-PG\": \"en-001\",\r\n \"en-PK\": \"en-001\",\r\n \"en-PN\": \"en-001\",\r\n \"en-PW\": \"en-001\",\r\n \"en-RW\": \"en-001\",\r\n \"en-SB\": \"en-001\",\r\n \"en-SC\": \"en-001\",\r\n \"en-SD\": \"en-001\",\r\n \"en-SG\": \"en-001\",\r\n \"en-SH\": \"en-001\",\r\n \"en-SL\": \"en-001\",\r\n \"en-SS\": \"en-001\",\r\n \"en-SX\": \"en-001\",\r\n \"en-SZ\": \"en-001\",\r\n \"en-TC\": \"en-001\",\r\n \"en-TK\": \"en-001\",\r\n \"en-TO\": \"en-001\",\r\n \"en-TT\": \"en-001\",\r\n \"en-TV\": \"en-001\",\r\n \"en-TZ\": \"en-001\",\r\n \"en-UG\": \"en-001\",\r\n \"en-VC\": \"en-001\",\r\n \"en-VG\": \"en-001\",\r\n \"en-VU\": \"en-001\",\r\n \"en-WS\": \"en-001\",\r\n \"en-ZA\": \"en-001\",\r\n \"en-ZM\": \"en-001\",\r\n \"en-ZW\": \"en-001\",\r\n \"en-AT\": \"en-150\",\r\n \"en-BE\": \"en-150\",\r\n \"en-CH\": \"en-150\",\r\n \"en-DE\": \"en-150\",\r\n \"en-DK\": \"en-150\",\r\n \"en-FI\": \"en-150\",\r\n \"en-NL\": \"en-150\",\r\n \"en-SE\": \"en-150\",\r\n \"en-SI\": \"en-150\",\r\n \"hi-Latn\": \"en-IN\",\r\n \"es-AR\": \"es-419\",\r\n \"es-BO\": \"es-419\",\r\n \"es-BR\": \"es-419\",\r\n \"es-BZ\": \"es-419\",\r\n \"es-CL\": \"es-419\",\r\n \"es-CO\": \"es-419\",\r\n \"es-CR\": \"es-419\",\r\n \"es-CU\": \"es-419\",\r\n \"es-DO\": \"es-419\",\r\n \"es-EC\": \"es-419\",\r\n \"es-GT\": \"es-419\",\r\n \"es-HN\": \"es-419\",\r\n \"es-MX\": \"es-419\",\r\n \"es-NI\": \"es-419\",\r\n \"es-PA\": \"es-419\",\r\n \"es-PE\": \"es-419\",\r\n \"es-PR\": \"es-419\",\r\n \"es-PY\": \"es-419\",\r\n \"es-SV\": \"es-419\",\r\n \"es-US\": \"es-419\",\r\n \"es-UY\": \"es-419\",\r\n \"es-VE\": \"es-419\",\r\n nb: \"no\",\r\n nn: \"no\",\r\n \"pt-AO\": \"pt-PT\",\r\n \"pt-CH\": \"pt-PT\",\r\n \"pt-CV\": \"pt-PT\",\r\n \"pt-FR\": \"pt-PT\",\r\n \"pt-GQ\": \"pt-PT\",\r\n \"pt-GW\": \"pt-PT\",\r\n \"pt-LU\": \"pt-PT\",\r\n \"pt-MO\": \"pt-PT\",\r\n \"pt-MZ\": \"pt-PT\",\r\n \"pt-ST\": \"pt-PT\",\r\n \"pt-TL\": \"pt-PT\",\r\n \"az-Arab\": \"und\",\r\n \"az-Cyrl\": \"und\",\r\n \"bal-Latn\": \"und\",\r\n \"blt-Latn\": \"und\",\r\n \"bm-Nkoo\": \"und\",\r\n \"bs-Cyrl\": \"und\",\r\n \"byn-Latn\": \"und\",\r\n \"cu-Glag\": \"und\",\r\n \"dje-Arab\": \"und\",\r\n \"dyo-Arab\": \"und\",\r\n \"en-Dsrt\": \"und\",\r\n \"en-Shaw\": \"und\",\r\n \"ff-Adlm\": \"und\",\r\n \"ff-Arab\": \"und\",\r\n \"ha-Arab\": \"und\",\r\n \"iu-Latn\": \"und\",\r\n \"kk-Arab\": \"und\",\r\n \"ks-Deva\": \"und\",\r\n \"ku-Arab\": \"und\",\r\n \"ky-Arab\": \"und\",\r\n \"ky-Latn\": \"und\",\r\n \"ml-Arab\": \"und\",\r\n \"mn-Mong\": \"und\",\r\n \"mni-Mtei\": \"und\",\r\n \"ms-Arab\": \"und\",\r\n \"pa-Arab\": \"und\",\r\n \"sat-Deva\": \"und\",\r\n \"sd-Deva\": \"und\",\r\n \"sd-Khoj\": \"und\",\r\n \"sd-Sind\": \"und\",\r\n \"shi-Latn\": \"und\",\r\n \"so-Arab\": \"und\",\r\n \"sr-Latn\": \"und\",\r\n \"sw-Arab\": \"und\",\r\n \"tg-Arab\": \"und\",\r\n \"ug-Cyrl\": \"und\",\r\n \"uz-Arab\": \"und\",\r\n \"uz-Cyrl\": \"und\",\r\n \"vai-Latn\": \"und\",\r\n \"wo-Arab\": \"und\",\r\n \"yo-Arab\": \"und\",\r\n \"yue-Hans\": \"und\",\r\n \"zh-Hant\": \"und\",\r\n \"zh-Hant-MO\": \"zh-Hant-HK\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/parentLocale.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar PARENT_LOCALE_SEPARATOR = \"-\";\r\nexport default (parentLocales, locale) => {\r\n var parentLocale = parentLocales[locale];\r\n if (parentLocale) {\r\n return \"root\" !== parentLocale && parentLocale\r\n }\r\n return locale.substr(0, locale.lastIndexOf(PARENT_LOCALE_SEPARATOR))\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/core.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport parentLocales from \"./cldr-data/parent_locales\";\r\nimport getParentLocale from \"./parentLocale\";\r\nvar DEFAULT_LOCALE = \"en\";\r\nexport default dependencyInjector({\r\n locale: (() => {\r\n var currentLocale = DEFAULT_LOCALE;\r\n return locale => {\r\n if (!locale) {\r\n return currentLocale\r\n }\r\n currentLocale = locale\r\n }\r\n })(),\r\n getValueByClosestLocale: function(getter) {\r\n var locale = this.locale();\r\n var value = getter(locale);\r\n var isRootLocale;\r\n while (!value && !isRootLocale) {\r\n locale = getParentLocale(parentLocales, locale);\r\n if (locale) {\r\n value = getter(locale)\r\n } else {\r\n isRootLocale = true\r\n }\r\n }\r\n if (void 0 === value && locale !== DEFAULT_LOCALE) {\r\n return getter(DEFAULT_LOCALE)\r\n }\r\n return value\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/localization/currency.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nexport default {\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"currency\" === format) {\r\n formatConfig.precision = formatConfig.precision || 0;\r\n var result = this.format(value, extend({}, formatConfig, {\r\n type: \"fixedpoint\"\r\n }));\r\n var currencyPart = this.getCurrencySymbol().symbol.replace(/\\$/g, \"$$$$\");\r\n result = result.replace(/^(\\D*)(\\d.*)/, \"$1\" + currencyPart + \"$2\");\r\n return result\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getCurrencySymbol: function() {\r\n return {\r\n symbol: \"$\"\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function() {\r\n return \"$#,##0{0}_);\\\\($#,##0{0}\\\\)\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/first_day_of_week_data.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n \"af-NA\": 1,\r\n agq: 1,\r\n ak: 1,\r\n ar: 6,\r\n \"ar-EH\": 1,\r\n \"ar-ER\": 1,\r\n \"ar-KM\": 1,\r\n \"ar-LB\": 1,\r\n \"ar-MA\": 1,\r\n \"ar-MR\": 1,\r\n \"ar-PS\": 1,\r\n \"ar-SO\": 1,\r\n \"ar-SS\": 1,\r\n \"ar-TD\": 1,\r\n \"ar-TN\": 1,\r\n asa: 1,\r\n ast: 1,\r\n az: 1,\r\n \"az-Cyrl\": 1,\r\n bas: 1,\r\n be: 1,\r\n bem: 1,\r\n bez: 1,\r\n bg: 1,\r\n bm: 1,\r\n br: 1,\r\n bs: 1,\r\n \"bs-Cyrl\": 1,\r\n ca: 1,\r\n ce: 1,\r\n cgg: 1,\r\n ckb: 6,\r\n cs: 1,\r\n cy: 1,\r\n da: 1,\r\n de: 1,\r\n dje: 1,\r\n dsb: 1,\r\n dua: 1,\r\n dyo: 1,\r\n ee: 1,\r\n el: 1,\r\n \"en-001\": 1,\r\n \"en-AE\": 6,\r\n \"en-BI\": 1,\r\n \"en-MP\": 1,\r\n \"en-MV\": 5,\r\n \"en-SD\": 6,\r\n eo: 1,\r\n es: 1,\r\n et: 1,\r\n eu: 1,\r\n ewo: 1,\r\n fa: 6,\r\n ff: 1,\r\n \"ff-Adlm\": 1,\r\n fi: 1,\r\n fo: 1,\r\n fr: 1,\r\n \"fr-DJ\": 6,\r\n \"fr-DZ\": 6,\r\n \"fr-SY\": 6,\r\n fur: 1,\r\n fy: 1,\r\n ga: 1,\r\n gd: 1,\r\n gl: 1,\r\n gsw: 1,\r\n gv: 1,\r\n ha: 1,\r\n hr: 1,\r\n hsb: 1,\r\n hu: 1,\r\n hy: 1,\r\n ia: 1,\r\n ig: 1,\r\n is: 1,\r\n it: 1,\r\n jgo: 1,\r\n jmc: 1,\r\n ka: 1,\r\n kab: 6,\r\n kde: 1,\r\n kea: 1,\r\n khq: 1,\r\n kk: 1,\r\n kkj: 1,\r\n kl: 1,\r\n \"ko-KP\": 1,\r\n ksb: 1,\r\n ksf: 1,\r\n ksh: 1,\r\n ku: 1,\r\n kw: 1,\r\n ky: 1,\r\n lag: 1,\r\n lb: 1,\r\n lg: 1,\r\n ln: 1,\r\n lrc: 6,\r\n lt: 1,\r\n lu: 1,\r\n lv: 1,\r\n \"mas-TZ\": 1,\r\n mfe: 1,\r\n mg: 1,\r\n mgo: 1,\r\n mi: 1,\r\n mk: 1,\r\n mn: 1,\r\n ms: 1,\r\n mua: 1,\r\n mzn: 6,\r\n naq: 1,\r\n nds: 1,\r\n nl: 1,\r\n nmg: 1,\r\n nnh: 1,\r\n no: 1,\r\n nus: 1,\r\n nyn: 1,\r\n os: 1,\r\n pcm: 1,\r\n pl: 1,\r\n ps: 6,\r\n \"pt-AO\": 1,\r\n \"pt-CH\": 1,\r\n \"pt-CV\": 1,\r\n \"pt-GQ\": 1,\r\n \"pt-GW\": 1,\r\n \"pt-LU\": 1,\r\n \"pt-ST\": 1,\r\n \"pt-TL\": 1,\r\n \"qu-BO\": 1,\r\n \"qu-EC\": 1,\r\n rm: 1,\r\n rn: 1,\r\n ro: 1,\r\n rof: 1,\r\n ru: 1,\r\n rw: 1,\r\n rwk: 1,\r\n sah: 1,\r\n sbp: 1,\r\n sc: 1,\r\n se: 1,\r\n ses: 1,\r\n sg: 1,\r\n shi: 1,\r\n \"shi-Latn\": 1,\r\n si: 1,\r\n sk: 1,\r\n sl: 1,\r\n smn: 1,\r\n so: 1,\r\n \"so-DJ\": 6,\r\n sq: 1,\r\n sr: 1,\r\n \"sr-Latn\": 1,\r\n sv: 1,\r\n sw: 1,\r\n \"ta-LK\": 1,\r\n \"ta-MY\": 1,\r\n teo: 1,\r\n tg: 1,\r\n \"ti-ER\": 1,\r\n tk: 1,\r\n to: 1,\r\n tr: 1,\r\n tt: 1,\r\n twq: 1,\r\n tzm: 1,\r\n uk: 1,\r\n uz: 1,\r\n \"uz-Arab\": 6,\r\n \"uz-Cyrl\": 1,\r\n vai: 1,\r\n \"vai-Latn\": 1,\r\n vi: 1,\r\n vun: 1,\r\n wae: 1,\r\n wo: 1,\r\n xog: 1,\r\n yav: 1,\r\n yi: 1,\r\n yo: 1,\r\n zgh: 1\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/date.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport localizationCoreUtils from \"../core\";\r\nvar SYMBOLS_TO_REMOVE_REGEX = /[\\u200E\\u200F]/g;\r\nvar getIntlFormatter = format => date => {\r\n if (!format.timeZoneName) {\r\n var year = date.getFullYear();\r\n var recognizableAsTwentyCentury = String(year).length < 3;\r\n var temporaryYearValue = recognizableAsTwentyCentury ? year + 400 : year;\r\n var utcDate = new Date(Date.UTC(temporaryYearValue, date.getMonth(), date.getDate(), date.getHours(), date.getMinutes(), date.getSeconds(), date.getMilliseconds()));\r\n if (recognizableAsTwentyCentury) {\r\n utcDate.setFullYear(year)\r\n }\r\n var utcFormat = extend({\r\n timeZone: \"UTC\"\r\n }, format);\r\n return formatDateTime(utcDate, utcFormat)\r\n }\r\n return formatDateTime(date, format)\r\n};\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.DateTimeFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\n\r\nfunction formatDateTime(date, format) {\r\n return getFormatter(format)(date).replace(SYMBOLS_TO_REMOVE_REGEX, \"\")\r\n}\r\nvar formatNumber = number => new Intl.NumberFormat(localizationCoreUtils.locale()).format(number);\r\nvar getAlternativeNumeralsMap = (() => {\r\n var numeralsMapCache = {};\r\n return locale => {\r\n if (!(locale in numeralsMapCache)) {\r\n if (\"0\" === formatNumber(0)) {\r\n numeralsMapCache[locale] = false;\r\n return false\r\n }\r\n numeralsMapCache[locale] = {};\r\n for (var i = 0; i < 10; ++i) {\r\n numeralsMapCache[locale][formatNumber(i)] = i\r\n }\r\n }\r\n return numeralsMapCache[locale]\r\n }\r\n})();\r\nvar normalizeNumerals = dateString => {\r\n var alternativeNumeralsMap = getAlternativeNumeralsMap(localizationCoreUtils.locale());\r\n if (!alternativeNumeralsMap) {\r\n return dateString\r\n }\r\n return dateString.split(\"\").map(sign => sign in alternativeNumeralsMap ? String(alternativeNumeralsMap[sign]) : sign).join(\"\")\r\n};\r\nvar removeLeadingZeroes = str => str.replace(/(\\D)0+(\\d)/g, \"$1$2\");\r\nvar dateStringEquals = (actual, expected) => removeLeadingZeroes(actual) === removeLeadingZeroes(expected);\r\nvar normalizeMonth = text => text.replace(\"d\\u2019\", \"de \");\r\nvar intlFormats = {\r\n day: {\r\n day: \"numeric\"\r\n },\r\n dayofweek: {\r\n weekday: \"long\"\r\n },\r\n longdate: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n longdatelongtime: {\r\n weekday: \"long\",\r\n year: \"numeric\",\r\n month: \"long\",\r\n day: \"numeric\",\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n longtime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n second: \"numeric\"\r\n },\r\n month: {\r\n month: \"long\"\r\n },\r\n monthandday: {\r\n month: \"long\",\r\n day: \"numeric\"\r\n },\r\n monthandyear: {\r\n year: \"numeric\",\r\n month: \"long\"\r\n },\r\n shortdate: {},\r\n shorttime: {\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n },\r\n shortyear: {\r\n year: \"2-digit\"\r\n },\r\n year: {\r\n year: \"numeric\"\r\n }\r\n};\r\nObject.defineProperty(intlFormats, \"shortdateshorttime\", {\r\n get: function() {\r\n var defaultOptions = Intl.DateTimeFormat(localizationCoreUtils.locale()).resolvedOptions();\r\n return {\r\n year: defaultOptions.year,\r\n month: defaultOptions.month,\r\n day: defaultOptions.day,\r\n hour: \"numeric\",\r\n minute: \"numeric\"\r\n }\r\n }\r\n});\r\nvar getIntlFormat = format => \"string\" === typeof format && intlFormats[format.toLowerCase()];\r\nvar monthNameStrategies = {\r\n standalone: function(monthIndex, monthFormat) {\r\n var date = new Date(1999, monthIndex, 13, 1);\r\n var dateString = getIntlFormatter({\r\n month: monthFormat\r\n })(date);\r\n return dateString\r\n },\r\n format: function(monthIndex, monthFormat) {\r\n var date = new Date(0, monthIndex, 13, 1);\r\n var dateString = normalizeMonth(getIntlFormatter({\r\n day: \"numeric\",\r\n month: monthFormat\r\n })(date));\r\n var parts = dateString.split(\" \").filter(part => part.indexOf(\"13\") < 0);\r\n if (1 === parts.length) {\r\n return parts[0]\r\n } else if (2 === parts.length) {\r\n return parts[0].length > parts[1].length ? parts[0] : parts[1]\r\n }\r\n return monthNameStrategies.standalone(monthIndex, monthFormat)\r\n }\r\n};\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n getMonthNames: function(format, type) {\r\n var monthFormat = {\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"];\r\n type = \"format\" === type ? type : \"standalone\";\r\n return Array.apply(null, new Array(12)).map((_, monthIndex) => monthNameStrategies[type](monthIndex, monthFormat))\r\n },\r\n getDayNames: function(format) {\r\n var result = (format => Array.apply(null, new Array(7)).map((_, dayIndex) => getIntlFormatter({\r\n weekday: format\r\n })(new Date(0, 0, dayIndex))))({\r\n wide: \"long\",\r\n abbreviated: \"short\",\r\n short: \"narrow\",\r\n narrow: \"narrow\"\r\n } [format || \"wide\"]);\r\n return result\r\n },\r\n getPeriodNames: function() {\r\n var hour12Formatter = getIntlFormatter({\r\n hour: \"numeric\",\r\n hour12: true\r\n });\r\n return [1, 13].map(hours => {\r\n var hourNumberText = formatNumber(1);\r\n var timeParts = hour12Formatter(new Date(0, 0, 1, hours)).split(hourNumberText);\r\n if (2 !== timeParts.length) {\r\n return \"\"\r\n }\r\n var biggerPart = timeParts[0].length > timeParts[1].length ? timeParts[0] : timeParts[1];\r\n return biggerPart.trim()\r\n })\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n if (\"function\" !== typeof _format && !_format.formatter) {\r\n _format = _format.type || _format\r\n }\r\n var intlFormat = getIntlFormat(_format);\r\n if (intlFormat) {\r\n return getIntlFormatter(intlFormat)(date)\r\n }\r\n var formatType = typeof _format;\r\n if (_format.formatter || \"function\" === formatType || \"string\" === formatType) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getIntlFormatter(_format)(date)\r\n },\r\n parse: function(dateString, format) {\r\n var formatter;\r\n if (format && !format.parser && \"string\" === typeof dateString) {\r\n dateString = normalizeMonth(dateString);\r\n formatter = date => normalizeMonth(this.format(date, format))\r\n }\r\n return this.callBase(dateString, formatter || format)\r\n },\r\n _parseDateBySimpleFormat: function(dateString, format) {\r\n dateString = normalizeNumerals(dateString);\r\n var formatParts = this.getFormatParts(format);\r\n var dateParts = dateString.split(/\\D+/).filter(part => part.length > 0);\r\n if (formatParts.length !== dateParts.length) {\r\n return\r\n }\r\n var dateArgs = this._generateDateArgs(formatParts, dateParts);\r\n var constructValidDate = ampmShift => {\r\n var parsedDate = ((dateArgs, ampmShift) => {\r\n var hoursShift = ampmShift ? 12 : 0;\r\n return new Date(dateArgs.year, dateArgs.month, dateArgs.day, (dateArgs.hours + hoursShift) % 24, dateArgs.minutes, dateArgs.seconds)\r\n })(dateArgs, ampmShift);\r\n if (dateStringEquals(normalizeNumerals(this.format(parsedDate, format)), dateString)) {\r\n return parsedDate\r\n }\r\n };\r\n return constructValidDate(false) || constructValidDate(true)\r\n },\r\n _generateDateArgs: function(formatParts, dateParts) {\r\n var currentDate = new Date;\r\n var dateArgs = {\r\n year: currentDate.getFullYear(),\r\n month: currentDate.getMonth(),\r\n day: currentDate.getDate(),\r\n hours: 0,\r\n minutes: 0,\r\n seconds: 0\r\n };\r\n formatParts.forEach((formatPart, index) => {\r\n var datePart = dateParts[index];\r\n var parsed = parseInt(datePart, 10);\r\n if (\"month\" === formatPart) {\r\n parsed -= 1\r\n }\r\n dateArgs[formatPart] = parsed\r\n });\r\n return dateArgs\r\n },\r\n formatUsesMonthName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.month\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n formatUsesDayName: function(format) {\r\n if (\"object\" === typeof format && !(format.type || format.format)) {\r\n return \"long\" === format.weekday\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getTimeSeparator: function() {\r\n return normalizeNumerals(formatDateTime(new Date(2001, 1, 1, 11, 11), {\r\n hour: \"numeric\",\r\n minute: \"numeric\",\r\n hour12: false\r\n })).replace(/\\d/g, \"\")\r\n },\r\n getFormatParts: function(format) {\r\n if (\"string\" === typeof format) {\r\n return this.callBase(format)\r\n }\r\n var intlFormat = extend({}, intlFormats[format.toLowerCase()]);\r\n var date = new Date(2001, 2, 4, 5, 6, 7);\r\n var formattedDate = getIntlFormatter(intlFormat)(date);\r\n formattedDate = normalizeNumerals(formattedDate);\r\n return [{\r\n name: \"year\",\r\n value: 1\r\n }, {\r\n name: \"month\",\r\n value: 3\r\n }, {\r\n name: \"day\",\r\n value: 4\r\n }, {\r\n name: \"hours\",\r\n value: 5\r\n }, {\r\n name: \"minutes\",\r\n value: 6\r\n }, {\r\n name: \"seconds\",\r\n value: 7\r\n }].map(part => ({\r\n name: part.name,\r\n index: formattedDate.indexOf(part.value)\r\n })).filter(part => part.index > -1).sort((a, b) => a.index - b.index).map(part => part.name)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/date.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n getFormatter as getLDMLDateFormatter\r\n} from \"./ldml/date.formatter\";\r\nimport {\r\n getFormat as getLDMLDateFormat\r\n} from \"./ldml/date.format\";\r\nimport {\r\n getParser as getLDMLDateParser\r\n} from \"./ldml/date.parser\";\r\nimport defaultDateNames from \"./default_date_names\";\r\nimport firstDayOfWeekData from \"./cldr-data/first_day_of_week_data\";\r\nimport localizationCore from \"./core\";\r\nimport numberLocalization from \"./number\";\r\nimport intlDateLocalization from \"./intl/date\";\r\nvar DEFAULT_DAY_OF_WEEK_INDEX = 0;\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar FORMATS_TO_PATTERN_MAP = {\r\n shortdate: \"M/d/y\",\r\n shorttime: \"h:mm a\",\r\n longdate: \"EEEE, MMMM d, y\",\r\n longtime: \"h:mm:ss a\",\r\n monthandday: \"MMMM d\",\r\n monthandyear: \"MMMM y\",\r\n quarterandyear: \"QQQ y\",\r\n day: \"d\",\r\n year: \"y\",\r\n shortdateshorttime: \"M/d/y, h:mm a\",\r\n longdatelongtime: \"EEEE, MMMM d, y, h:mm:ss a\",\r\n month: \"LLLL\",\r\n shortyear: \"yy\",\r\n dayofweek: \"EEEE\",\r\n quarter: \"QQQ\",\r\n hour: \"HH\",\r\n minute: \"mm\",\r\n second: \"ss\",\r\n millisecond: \"SSS\",\r\n \"datetime-local\": \"yyyy-MM-ddTHH':'mm':'ss\"\r\n};\r\nvar possiblePartPatterns = {\r\n year: [\"y\", \"yy\", \"yyyy\"],\r\n day: [\"d\", \"dd\"],\r\n month: [\"M\", \"MM\", \"MMM\", \"MMMM\"],\r\n hours: [\"H\", \"HH\", \"h\", \"hh\", \"ah\"],\r\n minutes: [\"m\", \"mm\"],\r\n seconds: [\"s\", \"ss\"],\r\n milliseconds: [\"S\", \"SS\", \"SSS\"]\r\n};\r\nvar dateLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _getPatternByFormat: function(format) {\r\n return FORMATS_TO_PATTERN_MAP[format.toLowerCase()]\r\n },\r\n _expandPattern: function(pattern) {\r\n return this._getPatternByFormat(pattern) || pattern\r\n },\r\n formatUsesMonthName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"MMMM\")\r\n },\r\n formatUsesDayName: function(format) {\r\n return -1 !== this._expandPattern(format).indexOf(\"EEEE\")\r\n },\r\n getFormatParts: function(format) {\r\n var pattern = this._getPatternByFormat(format) || format;\r\n var result = [];\r\n each(pattern.split(/\\W+/), (_, formatPart) => {\r\n each(possiblePartPatterns, (partName, possiblePatterns) => {\r\n if (possiblePatterns.includes(formatPart)) {\r\n result.push(partName)\r\n }\r\n })\r\n });\r\n return result\r\n },\r\n getMonthNames: function(format) {\r\n return defaultDateNames.getMonthNames(format)\r\n },\r\n getDayNames: function(format) {\r\n return defaultDateNames.getDayNames(format)\r\n },\r\n getQuarterNames: function(format) {\r\n return defaultDateNames.getQuarterNames(format)\r\n },\r\n getPeriodNames: function(format) {\r\n return defaultDateNames.getPeriodNames(format)\r\n },\r\n getTimeSeparator: function() {\r\n return \":\"\r\n },\r\n is24HourFormat: function(format) {\r\n var amTime = new Date(2017, 0, 20, 11, 0, 0, 0);\r\n var pmTime = new Date(2017, 0, 20, 23, 0, 0, 0);\r\n var amTimeFormatted = this.format(amTime, format);\r\n var pmTimeFormatted = this.format(pmTime, format);\r\n for (var i = 0; i < amTimeFormatted.length; i++) {\r\n if (amTimeFormatted[i] !== pmTimeFormatted[i]) {\r\n return !isNaN(parseInt(amTimeFormatted[i]))\r\n }\r\n }\r\n },\r\n format: function(date, _format) {\r\n if (!date) {\r\n return\r\n }\r\n if (!_format) {\r\n return date\r\n }\r\n var formatter;\r\n if (\"function\" === typeof _format) {\r\n formatter = _format\r\n } else if (_format.formatter) {\r\n formatter = _format.formatter\r\n } else {\r\n _format = _format.type || _format;\r\n if (isString(_format)) {\r\n _format = FORMATS_TO_PATTERN_MAP[_format.toLowerCase()] || _format;\r\n return numberLocalization.convertDigits(getLDMLDateFormatter(_format, this)(date))\r\n }\r\n }\r\n if (!formatter) {\r\n return\r\n }\r\n return formatter(date)\r\n },\r\n parse: function(text, format) {\r\n var that = this;\r\n var ldmlFormat;\r\n var formatter;\r\n if (!text) {\r\n return\r\n }\r\n if (!format) {\r\n return this.parse(text, \"shortdate\")\r\n }\r\n if (format.parser) {\r\n return format.parser(text)\r\n }\r\n if (\"string\" === typeof format && !FORMATS_TO_PATTERN_MAP[format.toLowerCase()]) {\r\n ldmlFormat = format\r\n } else {\r\n formatter = value => {\r\n var text = that.format(value, format);\r\n return numberLocalization.convertDigits(text, true)\r\n };\r\n try {\r\n ldmlFormat = getLDMLDateFormat(formatter)\r\n } catch (e) {}\r\n }\r\n if (ldmlFormat) {\r\n text = numberLocalization.convertDigits(text, true);\r\n return getLDMLDateParser(ldmlFormat, this)(text)\r\n }\r\n errors.log(\"W0012\");\r\n var result = new Date(text);\r\n if (!result || isNaN(result.getTime())) {\r\n return\r\n }\r\n return result\r\n },\r\n firstDayOfWeekIndex: function() {\r\n var index = localizationCore.getValueByClosestLocale(locale => firstDayOfWeekData[locale]);\r\n return void 0 === index ? DEFAULT_DAY_OF_WEEK_INDEX : index\r\n }\r\n});\r\nif (hasIntl) {\r\n dateLocalization.inject(intlDateLocalization)\r\n}\r\nexport default dateLocalization;\r\n","/**\r\n * DevExtreme (esm/localization/default_date_names.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nvar MONTHS = [\"January\", \"February\", \"March\", \"April\", \"May\", \"June\", \"July\", \"August\", \"September\", \"October\", \"November\", \"December\"];\r\nvar DAYS = [\"Sunday\", \"Monday\", \"Tuesday\", \"Wednesday\", \"Thursday\", \"Friday\", \"Saturday\"];\r\nvar PERIODS = [\"AM\", \"PM\"];\r\nvar QUARTERS = [\"Q1\", \"Q2\", \"Q3\", \"Q4\"];\r\nvar cutCaptions = (captions, format) => {\r\n var lengthByFormat = {\r\n abbreviated: 3,\r\n short: 2,\r\n narrow: 1\r\n };\r\n return map(captions, caption => caption.substr(0, lengthByFormat[format]))\r\n};\r\nexport default {\r\n getMonthNames: function(format) {\r\n return cutCaptions(MONTHS, format)\r\n },\r\n getDayNames: function(format) {\r\n return cutCaptions(DAYS, format)\r\n },\r\n getQuarterNames: function(format) {\r\n return QUARTERS\r\n },\r\n getPeriodNames: function(format) {\r\n return PERIODS\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.format.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport numberLocalization from \"../number\";\r\nvar ARABIC_COMMA = \"\\u060c\";\r\nvar FORMAT_SEPARATORS = \" .,:;/\\\\<>()-[]\" + ARABIC_COMMA;\r\nvar AM_PM_PATTERN = \". m.\";\r\nvar checkDigit = function(char) {\r\n var code = char && numberLocalization.convertDigits(char, false).charCodeAt(0);\r\n var zeroCode = numberLocalization.convertDigits(\"0\", false).charCodeAt(0);\r\n return zeroCode <= code && code < zeroCode + 10\r\n};\r\nvar checkPatternContinue = function(text, patterns, index, isDigit) {\r\n var char = text[index];\r\n var nextChar = text[index + 1];\r\n if (!isDigit) {\r\n if (\".\" === char || \" \" === char && text.slice(index - 1, index + 3) === AM_PM_PATTERN) {\r\n return true\r\n }\r\n if (\"-\" === char && !checkDigit(nextChar)) {\r\n return true\r\n }\r\n }\r\n var isDigitChanged = isDigit && patterns.some(pattern => text[index] !== pattern[index]);\r\n return FORMAT_SEPARATORS.indexOf(char) < 0 && isDigit === checkDigit(char) && (!isDigit || isDigitChanged)\r\n};\r\nvar getPatternStartIndex = function(defaultPattern, index) {\r\n if (!checkDigit(defaultPattern[index])) {\r\n while (index > 0 && !checkDigit(defaultPattern[index - 1]) && (\".\" === defaultPattern[index - 1] || FORMAT_SEPARATORS.indexOf(defaultPattern[index - 1]) < 0)) {\r\n index--\r\n }\r\n }\r\n return index\r\n};\r\nvar getDifference = function(defaultPattern, patterns, processedIndexes, isDigit) {\r\n var i = 0;\r\n var result = [];\r\n var patternsFilter = function(pattern) {\r\n return defaultPattern[i] !== pattern[i] && (void 0 === isDigit || checkDigit(defaultPattern[i]) === isDigit)\r\n };\r\n if (!Array.isArray(patterns)) {\r\n patterns = [patterns]\r\n }\r\n for (i = 0; i < defaultPattern.length; i++) {\r\n if (processedIndexes.indexOf(i) < 0 && patterns.filter(patternsFilter).length) {\r\n i = getPatternStartIndex(defaultPattern, i);\r\n do {\r\n isDigit = checkDigit(defaultPattern[i]);\r\n if (!result.length && !isDigit && checkDigit(patterns[0][i])) {\r\n break\r\n }\r\n result.push(i);\r\n processedIndexes.unshift(i);\r\n i++\r\n } while (defaultPattern[i] && checkPatternContinue(defaultPattern, patterns, i, isDigit));\r\n break\r\n }\r\n }\r\n if (1 === result.length && (\"0\" === defaultPattern[processedIndexes[0] - 1] || \"\\u0660\" === defaultPattern[processedIndexes[0] - 1])) {\r\n processedIndexes.unshift(processedIndexes[0] - 1)\r\n }\r\n return result\r\n};\r\nvar replaceCharsCore = function(pattern, indexes, char, patternPositions) {\r\n var baseCharIndex = indexes[0];\r\n var patternIndex = baseCharIndex < patternPositions.length ? patternPositions[baseCharIndex] : baseCharIndex;\r\n indexes.forEach((function(_, index) {\r\n pattern = pattern.substr(0, patternIndex + index) + (char.length > 1 ? char[index] : char) + pattern.substr(patternIndex + index + 1)\r\n }));\r\n if (1 === indexes.length) {\r\n pattern = pattern.replace(\"0\" + char, char + char);\r\n pattern = pattern.replace(\"\\u0660\" + char, char + char)\r\n }\r\n return pattern\r\n};\r\nvar replaceChars = function(pattern, indexes, char, patternPositions) {\r\n var i;\r\n var index;\r\n var patternIndex;\r\n if (!checkDigit(pattern[indexes[0]] || \"0\")) {\r\n var letterCount = Math.max(indexes.length <= 3 ? 3 : 4, char.length);\r\n while (indexes.length > letterCount) {\r\n index = indexes.pop();\r\n patternIndex = patternPositions[index];\r\n patternPositions[index] = -1;\r\n for (i = index + 1; i < patternPositions.length; i++) {\r\n patternPositions[i]--\r\n }\r\n pattern = pattern.substr(0, patternIndex) + pattern.substr(patternIndex + 1)\r\n }\r\n index = indexes[indexes.length - 1] + 1, patternIndex = index < patternPositions.length ? patternPositions[index] : index;\r\n while (indexes.length < letterCount) {\r\n indexes.push(indexes[indexes.length - 1] + 1);\r\n for (i = index; i < patternPositions.length; i++) {\r\n patternPositions[i]++\r\n }\r\n pattern = pattern.substr(0, patternIndex) + \" \" + pattern.substr(patternIndex)\r\n }\r\n }\r\n pattern = replaceCharsCore(pattern, indexes, char, patternPositions);\r\n return pattern\r\n};\r\nvar formatValue = function(value, formatter) {\r\n if (Array.isArray(value)) {\r\n return value.map((function(value) {\r\n return (formatter(value) || \"\").toString()\r\n }))\r\n }\r\n return (formatter(value) || \"\").toString()\r\n};\r\nvar ESCAPE_CHARS_REGEXP = /[a-zA-Z]/g;\r\nvar escapeChars = function(pattern, defaultPattern, processedIndexes, patternPositions) {\r\n var escapeIndexes = defaultPattern.split(\"\").map((function(char, index) {\r\n if (processedIndexes.indexOf(index) < 0 && (char.match(ESCAPE_CHARS_REGEXP) || \"'\" === char)) {\r\n return patternPositions[index]\r\n }\r\n return -1\r\n }));\r\n pattern = pattern.split(\"\").map((function(char, index) {\r\n var result = char;\r\n var isCurrentCharEscaped = escapeIndexes.indexOf(index) >= 0;\r\n var isPrevCharEscaped = index > 0 && escapeIndexes.indexOf(index - 1) >= 0;\r\n var isNextCharEscaped = escapeIndexes.indexOf(index + 1) >= 0;\r\n if (isCurrentCharEscaped) {\r\n if (!isPrevCharEscaped) {\r\n result = \"'\" + result\r\n }\r\n if (!isNextCharEscaped) {\r\n result += \"'\"\r\n }\r\n }\r\n return result\r\n })).join(\"\");\r\n return pattern\r\n};\r\nexport var getFormat = function(formatter) {\r\n var processedIndexes = [];\r\n var defaultPattern = formatValue(new Date(2009, 8, 8, 6, 5, 4), formatter);\r\n var patternPositions = defaultPattern.split(\"\").map((function(_, index) {\r\n return index\r\n }));\r\n var result = defaultPattern;\r\n var replacedPatterns = {};\r\n var datePatterns = [{\r\n date: new Date(2009, 8, 8, 6, 5, 4, 111),\r\n pattern: \"S\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 5, 2),\r\n pattern: \"s\"\r\n }, {\r\n date: new Date(2009, 8, 8, 6, 2, 4),\r\n pattern: \"m\"\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"H\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 2, 5, 4),\r\n pattern: \"h\",\r\n isDigit: true\r\n }, {\r\n date: new Date(2009, 8, 8, 18, 5, 4),\r\n pattern: \"a\",\r\n isDigit: false\r\n }, {\r\n date: new Date(2009, 8, 1, 6, 5, 4),\r\n pattern: \"d\"\r\n }, {\r\n date: [new Date(2009, 8, 2, 6, 5, 4), new Date(2009, 8, 3, 6, 5, 4), new Date(2009, 8, 4, 6, 5, 4)],\r\n pattern: \"E\"\r\n }, {\r\n date: new Date(2009, 9, 6, 6, 5, 4),\r\n pattern: \"M\"\r\n }, {\r\n date: new Date(1998, 8, 8, 6, 5, 4),\r\n pattern: \"y\"\r\n }];\r\n if (!result) {\r\n return\r\n }\r\n datePatterns.forEach((function(test) {\r\n var diff = getDifference(defaultPattern, formatValue(test.date, formatter), processedIndexes, test.isDigit);\r\n var pattern = \"M\" === test.pattern && !replacedPatterns.d ? \"L\" : test.pattern;\r\n result = replaceChars(result, diff, pattern, patternPositions);\r\n replacedPatterns[pattern] = diff.length\r\n }));\r\n result = escapeChars(result, defaultPattern, processedIndexes, patternPositions);\r\n if (processedIndexes.length) {\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.formatter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nfunction leftPad(text, length) {\r\n while (text.length < length) {\r\n text = \"0\" + text\r\n }\r\n return text\r\n}\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar LDML_FORMATTERS = {\r\n y: function(date, count, useUtc) {\r\n var year = date[useUtc ? \"getUTCFullYear\" : \"getFullYear\"]();\r\n if (2 === count) {\r\n year %= 100\r\n }\r\n return leftPad(year.toString(), count)\r\n },\r\n M: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"format\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n L: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getMonthNames(formatType, \"standalone\")[month]\r\n }\r\n return leftPad((month + 1).toString(), Math.min(count, 2))\r\n },\r\n Q: function(date, count, useUtc, dateParts) {\r\n var month = date[useUtc ? \"getUTCMonth\" : \"getMonth\"]();\r\n var quarter = Math.floor(month / 3);\r\n var formatType = FORMAT_TYPES[count];\r\n if (formatType) {\r\n return dateParts.getQuarterNames(formatType)[quarter]\r\n }\r\n return leftPad((quarter + 1).toString(), Math.min(count, 2))\r\n },\r\n E: function(date, count, useUtc, dateParts) {\r\n var day = date[useUtc ? \"getUTCDay\" : \"getDay\"]();\r\n var formatType = FORMAT_TYPES[count < 3 ? 3 : count];\r\n return dateParts.getDayNames(formatType)[day]\r\n },\r\n a: function(date, count, useUtc, dateParts) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n var period = hours < 12 ? 0 : 1;\r\n var formatType = FORMAT_TYPES[count];\r\n return dateParts.getPeriodNames(formatType)[period]\r\n },\r\n d: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCDate\" : \"getDate\"]().toString(), Math.min(count, 2))\r\n },\r\n H: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCHours\" : \"getHours\"]().toString(), Math.min(count, 2))\r\n },\r\n h: function(date, count, useUtc) {\r\n var hours = date[useUtc ? \"getUTCHours\" : \"getHours\"]();\r\n return leftPad((hours % 12 || 12).toString(), Math.min(count, 2))\r\n },\r\n m: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMinutes\" : \"getMinutes\"]().toString(), Math.min(count, 2))\r\n },\r\n s: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCSeconds\" : \"getSeconds\"]().toString(), Math.min(count, 2))\r\n },\r\n S: function(date, count, useUtc) {\r\n return leftPad(date[useUtc ? \"getUTCMilliseconds\" : \"getMilliseconds\"]().toString(), 3).substr(0, count)\r\n },\r\n x: function(date, count, useUtc) {\r\n var timezoneOffset = useUtc ? 0 : date.getTimezoneOffset();\r\n var signPart = timezoneOffset > 0 ? \"-\" : \"+\";\r\n var timezoneOffsetAbs = Math.abs(timezoneOffset);\r\n var hours = Math.floor(timezoneOffsetAbs / 60);\r\n var minutes = timezoneOffsetAbs % 60;\r\n var hoursPart = leftPad(hours.toString(), 2);\r\n var minutesPart = leftPad(minutes.toString(), 2);\r\n return signPart + hoursPart + (count >= 3 ? \":\" : \"\") + (count > 1 || minutes ? minutesPart : \"\")\r\n },\r\n X: function(date, count, useUtc) {\r\n if (useUtc || !date.getTimezoneOffset()) {\r\n return \"Z\"\r\n }\r\n return LDML_FORMATTERS.x(date, count, useUtc)\r\n },\r\n Z: function(date, count, useUtc) {\r\n return LDML_FORMATTERS.X(date, count >= 5 ? 3 : 2, useUtc)\r\n }\r\n};\r\nexport var getFormatter = function(format, dateParts) {\r\n return function(date) {\r\n var charIndex;\r\n var formatter;\r\n var char;\r\n var charCount = 0;\r\n var isEscaping = false;\r\n var isCurrentCharEqualsNext;\r\n var result = \"\";\r\n if (!date) {\r\n return null\r\n }\r\n if (!format) {\r\n return date\r\n }\r\n var useUtc = \"Z\" === format[format.length - 1] || \"'Z'\" === format.slice(-3);\r\n for (charIndex = 0; charIndex < format.length; charIndex++) {\r\n char = format[charIndex];\r\n formatter = LDML_FORMATTERS[char];\r\n isCurrentCharEqualsNext = char === format[charIndex + 1];\r\n charCount++;\r\n if (!isCurrentCharEqualsNext) {\r\n if (formatter && !isEscaping) {\r\n result += formatter(date, charCount, useUtc, dateParts)\r\n }\r\n charCount = 0\r\n }\r\n if (\"'\" === char && !isCurrentCharEqualsNext) {\r\n isEscaping = !isEscaping\r\n } else if (isEscaping || !formatter) {\r\n result += char\r\n }\r\n if (\"'\" === char && isCurrentCharEqualsNext) {\r\n charIndex++\r\n }\r\n }\r\n return result\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/date.parser.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nvar FORMAT_TYPES = {\r\n 3: \"abbreviated\",\r\n 4: \"wide\",\r\n 5: \"narrow\"\r\n};\r\nvar monthRegExpGenerator = function(count, dateParts) {\r\n if (count > 2) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return dateParts.getMonthNames(FORMAT_TYPES[count], type).join(\"|\")\r\n })).join(\"|\")\r\n })).join(\"|\")\r\n }\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n};\r\nvar PATTERN_REGEXPS = {\r\n \":\": function(count, dateParts) {\r\n var countSuffix = count > 1 ? \"{\".concat(count, \"}\") : \"\";\r\n var timeSeparator = escapeRegExp(dateParts.getTimeSeparator());\r\n \":\" !== timeSeparator && (timeSeparator = \"\".concat(timeSeparator, \"|:\"));\r\n return \"\".concat(timeSeparator).concat(countSuffix)\r\n },\r\n y: function(count) {\r\n return 2 === count ? \"[0-9]{\".concat(count, \"}\") : \"[0-9]+?\"\r\n },\r\n M: monthRegExpGenerator,\r\n L: monthRegExpGenerator,\r\n Q: function(count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").join(\"|\")\r\n }\r\n return \"0?[1-4]\"\r\n },\r\n E: function(count, dateParts) {\r\n return \"\\\\D*\"\r\n },\r\n a: function(count, dateParts) {\r\n return dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\").join(\"|\")\r\n },\r\n d: function(count) {\r\n return 2 === count ? \"3[01]|[12][0-9]|0?[1-9]\" : \"0??[1-9]|[12][0-9]|3[01]\"\r\n },\r\n H: function(count) {\r\n return 2 === count ? \"2[0-3]|1[0-9]|0?[0-9]\" : \"0??[0-9]|1[0-9]|2[0-3]\"\r\n },\r\n h: function(count) {\r\n return 2 === count ? \"1[012]|0?[1-9]\" : \"0??[1-9]|1[012]\"\r\n },\r\n m: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n s: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n },\r\n S: function(count) {\r\n return \"[0-9]{1,\".concat(count, \"}\")\r\n },\r\n w: function(count) {\r\n return 2 === count ? \"[1-5][0-9]|0?[0-9]\" : \"0??[0-9]|[1-5][0-9]\"\r\n }\r\n};\r\nvar parseNumber = Number;\r\nvar caseInsensitiveIndexOf = function(array, value) {\r\n return array.map(item => item.toLowerCase()).indexOf(value.toLowerCase())\r\n};\r\nvar monthPatternParser = function(text, count, dateParts) {\r\n if (count > 2) {\r\n return [\"format\", \"standalone\"].map((function(type) {\r\n return Object.keys(FORMAT_TYPES).map((function(count) {\r\n var monthNames = dateParts.getMonthNames(FORMAT_TYPES[count], type);\r\n return caseInsensitiveIndexOf(monthNames, text)\r\n }))\r\n })).reduce((function(a, b) {\r\n return a.concat(b)\r\n })).filter((function(index) {\r\n return index >= 0\r\n }))[0]\r\n }\r\n return parseNumber(text) - 1\r\n};\r\nvar PATTERN_PARSERS = {\r\n y: function(text, count) {\r\n var year = parseNumber(text);\r\n if (2 === count) {\r\n return year < 30 ? 2e3 + year : 1900 + year\r\n }\r\n return year\r\n },\r\n M: monthPatternParser,\r\n L: monthPatternParser,\r\n Q: function(text, count, dateParts) {\r\n if (count > 2) {\r\n return dateParts.getQuarterNames(FORMAT_TYPES[count], \"format\").indexOf(text)\r\n }\r\n return parseNumber(text) - 1\r\n },\r\n E: function(text, count, dateParts) {\r\n var dayNames = dateParts.getDayNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(dayNames, text)\r\n },\r\n a: function(text, count, dateParts) {\r\n var periodNames = dateParts.getPeriodNames(FORMAT_TYPES[count < 3 ? 3 : count], \"format\");\r\n return caseInsensitiveIndexOf(periodNames, text)\r\n },\r\n d: parseNumber,\r\n H: parseNumber,\r\n h: parseNumber,\r\n m: parseNumber,\r\n s: parseNumber,\r\n S: function(text, count) {\r\n count = Math.max(count, 3);\r\n text = text.slice(0, 3);\r\n while (count < 3) {\r\n text += \"0\";\r\n count++\r\n }\r\n return parseNumber(text)\r\n }\r\n};\r\nvar ORDERED_PATTERNS = [\"y\", \"M\", \"d\", \"h\", \"m\", \"s\", \"S\"];\r\nvar PATTERN_SETTERS = {\r\n y: \"setFullYear\",\r\n M: \"setMonth\",\r\n L: \"setMonth\",\r\n a: function(date, value, datePartValues) {\r\n var hours = date.getHours();\r\n var hourPartValue = datePartValues.h;\r\n if (void 0 !== hourPartValue && hourPartValue !== hours) {\r\n hours--\r\n }\r\n if (!value && 12 === hours) {\r\n hours = 0\r\n } else if (value && 12 !== hours) {\r\n hours += 12\r\n }\r\n date.setHours(hours)\r\n },\r\n d: \"setDate\",\r\n H: \"setHours\",\r\n h: \"setHours\",\r\n m: \"setMinutes\",\r\n s: \"setSeconds\",\r\n S: \"setMilliseconds\"\r\n};\r\nvar getSameCharCount = function(text, index) {\r\n var char = text[index];\r\n if (!char) {\r\n return 0\r\n }\r\n var count = 0;\r\n do {\r\n index++;\r\n count++\r\n } while (text[index] === char);\r\n return count\r\n};\r\nvar createPattern = function(char, count) {\r\n var result = \"\";\r\n for (var i = 0; i < count; i++) {\r\n result += char\r\n }\r\n return result\r\n};\r\nexport var getRegExpInfo = function(format, dateParts) {\r\n var regexpText = \"\";\r\n var stubText = \"\";\r\n var isEscaping;\r\n var patterns = [];\r\n var addPreviousStub = function() {\r\n if (stubText) {\r\n patterns.push(\"'\".concat(stubText, \"'\"));\r\n regexpText += \"\".concat(escapeRegExp(stubText), \")\");\r\n stubText = \"\"\r\n }\r\n };\r\n for (var i = 0; i < format.length; i++) {\r\n var char = format[i];\r\n var isEscapeChar = \"'\" === char;\r\n var regexpPart = PATTERN_REGEXPS[char];\r\n if (isEscapeChar) {\r\n isEscaping = !isEscaping;\r\n if (\"'\" !== format[i - 1]) {\r\n continue\r\n }\r\n }\r\n if (regexpPart && !isEscaping) {\r\n var count = getSameCharCount(format, i);\r\n var pattern = createPattern(char, count);\r\n addPreviousStub();\r\n patterns.push(pattern);\r\n regexpText += \"(\".concat(regexpPart(count, dateParts), \")\");\r\n i += count - 1\r\n } else {\r\n if (!stubText) {\r\n regexpText += \"(\"\r\n }\r\n stubText += char\r\n }\r\n }\r\n addPreviousStub();\r\n if (!isPossibleForParsingFormat(patterns)) {\r\n logger.warn(\"The following format may be parsed incorrectly: \".concat(format, \".\"))\r\n }\r\n return {\r\n patterns: patterns,\r\n regexp: new RegExp(\"^\".concat(regexpText, \"$\"), \"i\")\r\n }\r\n};\r\nvar digitFieldSymbols = [\"d\", \"H\", \"h\", \"m\", \"s\", \"w\", \"M\", \"L\", \"Q\"];\r\nexport var isPossibleForParsingFormat = function(patterns) {\r\n var isDigitPattern = pattern => {\r\n if (!pattern) {\r\n return false\r\n }\r\n var char = pattern[0];\r\n return [\"y\", \"S\"].includes(char) || digitFieldSymbols.includes(char) && pattern.length < 3\r\n };\r\n var possibleForParsing = true;\r\n var ambiguousDigitPatternsCount = 0;\r\n return patterns.every((pattern, index, patterns) => {\r\n if (isDigitPattern(pattern)) {\r\n if ((pattern => \"S\" !== pattern[0] && 2 !== pattern.length)(pattern)) {\r\n possibleForParsing = ++ambiguousDigitPatternsCount < 2\r\n }\r\n if (!isDigitPattern(patterns[index + 1])) {\r\n ambiguousDigitPatternsCount = 0\r\n }\r\n }\r\n return possibleForParsing\r\n })\r\n};\r\nexport var getPatternSetters = function() {\r\n return PATTERN_SETTERS\r\n};\r\nvar setPatternPart = function(date, pattern, text, dateParts, datePartValues) {\r\n var patternChar = pattern[0];\r\n var partSetter = PATTERN_SETTERS[patternChar];\r\n var partParser = PATTERN_PARSERS[patternChar];\r\n if (partSetter && partParser) {\r\n var value = partParser(text, pattern.length, dateParts);\r\n datePartValues[pattern] = value;\r\n if (date[partSetter]) {\r\n date[partSetter](value)\r\n } else {\r\n partSetter(date, value, datePartValues)\r\n }\r\n }\r\n};\r\nvar setPatternPartFromNow = function(date, pattern, now) {\r\n var setterName = PATTERN_SETTERS[pattern];\r\n var getterName = \"g\" + setterName.substr(1);\r\n var value = now[getterName]();\r\n date[setterName](value)\r\n};\r\nvar getShortPatterns = function(fullPatterns) {\r\n return fullPatterns.map((function(pattern) {\r\n if (\"'\" === pattern[0]) {\r\n return \"\"\r\n } else {\r\n return \"H\" === pattern[0] ? \"h\" : pattern[0]\r\n }\r\n }))\r\n};\r\nvar getMaxOrderedPatternIndex = function(patterns) {\r\n var indexes = patterns.map((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern)\r\n }));\r\n return Math.max.apply(Math, indexes)\r\n};\r\nvar getOrderedFormatPatterns = function(formatPatterns) {\r\n var otherPatterns = formatPatterns.filter((function(pattern) {\r\n return ORDERED_PATTERNS.indexOf(pattern) < 0\r\n }));\r\n return ORDERED_PATTERNS.concat(otherPatterns)\r\n};\r\nexport var getParser = function(format, dateParts) {\r\n var regExpInfo = getRegExpInfo(format, dateParts);\r\n return function(text) {\r\n var regExpResult = regExpInfo.regexp.exec(text);\r\n if (regExpResult) {\r\n var now = new Date;\r\n var date = new Date(now.getFullYear(), 0, 1);\r\n var formatPatterns = getShortPatterns(regExpInfo.patterns);\r\n var maxPatternIndex = getMaxOrderedPatternIndex(formatPatterns);\r\n var orderedFormatPatterns = getOrderedFormatPatterns(formatPatterns);\r\n var datePartValues = {};\r\n orderedFormatPatterns.forEach((function(pattern, index) {\r\n if (!pattern || index < ORDERED_PATTERNS.length && index > maxPatternIndex) {\r\n return\r\n }\r\n var patternIndex = formatPatterns.indexOf(pattern);\r\n if (patternIndex >= 0) {\r\n var regExpPattern = regExpInfo.patterns[patternIndex];\r\n var regExpText = regExpResult[patternIndex + 1];\r\n setPatternPart(date, regExpPattern, regExpText, dateParts, datePartValues)\r\n } else {\r\n setPatternPartFromNow(date, pattern, now)\r\n }\r\n }));\r\n return date\r\n }\r\n return null\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/ldml/number.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange,\r\n multiplyInExponentialForm\r\n} from \"../../core/utils/math\";\r\nimport {\r\n toFixed\r\n} from \"../utils\";\r\nvar DEFAULT_CONFIG = {\r\n thousandsSeparator: \",\",\r\n decimalSeparator: \".\"\r\n};\r\nvar ESCAPING_CHAR = \"'\";\r\nvar MAXIMUM_NUMBER_LENGTH = 15;\r\nvar PERCENT_EXPONENT_SHIFT = 2;\r\n\r\nfunction getGroupSizes(formatString) {\r\n return formatString.split(\",\").slice(1).map((function(str) {\r\n var singleQuotesLeft = 0;\r\n return str.split(\"\").filter((function(char, index) {\r\n singleQuotesLeft += \"'\" === char;\r\n var isDigit = \"#\" === char || \"0\" === char;\r\n var isInStub = singleQuotesLeft % 2;\r\n return isDigit && !isInStub\r\n })).length\r\n }))\r\n}\r\n\r\nfunction getSignParts(format) {\r\n var signParts = format.split(\";\");\r\n if (1 === signParts.length) {\r\n signParts.push(\"-\" + signParts[0])\r\n }\r\n return signParts\r\n}\r\n\r\nfunction reverseString(str) {\r\n return str.toString().split(\"\").reverse().join(\"\")\r\n}\r\n\r\nfunction isPercentFormat(format) {\r\n return -1 !== format.indexOf(\"%\") && !format.match(/'[^']*%[^']*'/g)\r\n}\r\n\r\nfunction removeStubs(str) {\r\n return str.replace(/'.+'/g, \"\")\r\n}\r\n\r\nfunction getNonRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[#]/g, \"\").length\r\n}\r\n\r\nfunction getRequiredDigitCount(floatFormat) {\r\n if (!floatFormat) {\r\n return 0\r\n }\r\n var format = removeStubs(floatFormat);\r\n return format.length - format.replace(/[0]/g, \"\").length\r\n}\r\n\r\nfunction normalizeValueString(valuePart, minDigitCount, maxDigitCount) {\r\n if (!valuePart) {\r\n return \"\"\r\n }\r\n if (valuePart.length > maxDigitCount) {\r\n valuePart = valuePart.substr(0, maxDigitCount)\r\n }\r\n while (valuePart.length > minDigitCount && \"0\" === valuePart.slice(-1)) {\r\n valuePart = valuePart.substr(0, valuePart.length - 1)\r\n }\r\n while (valuePart.length < minDigitCount) {\r\n valuePart += \"0\"\r\n }\r\n return valuePart\r\n}\r\n\r\nfunction applyGroups(valueString, groupSizes, thousandsSeparator) {\r\n if (!groupSizes.length) {\r\n return valueString\r\n }\r\n var groups = [];\r\n var index = 0;\r\n while (valueString) {\r\n var groupSize = groupSizes[index];\r\n if (!groupSize) {\r\n break\r\n }\r\n groups.push(valueString.slice(0, groupSize));\r\n valueString = valueString.slice(groupSize);\r\n if (index < groupSizes.length - 1) {\r\n index++\r\n }\r\n }\r\n return groups.join(thousandsSeparator)\r\n}\r\n\r\nfunction formatNumberPart(format, valueString) {\r\n return format.split(ESCAPING_CHAR).map((function(formatPart, escapeIndex) {\r\n var isEscape = escapeIndex % 2;\r\n if (!formatPart && isEscape) {\r\n return ESCAPING_CHAR\r\n }\r\n return isEscape ? formatPart : formatPart.replace(/[,#0]+/, valueString)\r\n })).join(\"\")\r\n}\r\n\r\nfunction getFloatPointIndex(format) {\r\n var isEscape = false;\r\n for (var index = 0; index < format.length; index++) {\r\n if (\"'\" === format[index]) {\r\n isEscape = !isEscape\r\n }\r\n if (\".\" === format[index] && !isEscape) {\r\n return index\r\n }\r\n }\r\n return format.length\r\n}\r\nexport function getFormatter(format, config) {\r\n config = config || DEFAULT_CONFIG;\r\n return function(value) {\r\n if (\"number\" !== typeof value || isNaN(value)) {\r\n return \"\"\r\n }\r\n var signFormatParts = getSignParts(format);\r\n var isPositiveZero = 1 / value === 1 / 0;\r\n var isPositive = value > 0 || isPositiveZero;\r\n var numberFormat = signFormatParts[isPositive ? 0 : 1];\r\n var floatPointIndex = getFloatPointIndex(numberFormat);\r\n var floatFormatParts = [numberFormat.substr(0, floatPointIndex), numberFormat.substr(floatPointIndex + 1)];\r\n var minFloatPrecision = getRequiredDigitCount(floatFormatParts[1]);\r\n var maxFloatPrecision = minFloatPrecision + getNonRequiredDigitCount(floatFormatParts[1]);\r\n if (isPercentFormat(numberFormat)) {\r\n value = multiplyInExponentialForm(value, PERCENT_EXPONENT_SHIFT)\r\n }\r\n if (!isPositive) {\r\n value = -value\r\n }\r\n var minIntegerPrecision = getRequiredDigitCount(floatFormatParts[0]);\r\n var maxIntegerPrecision = getNonRequiredDigitCount(floatFormatParts[0]) || config.unlimitedIntegerDigits ? void 0 : minIntegerPrecision;\r\n var integerLength = Math.floor(value).toString().length;\r\n var floatPrecision = fitIntoRange(maxFloatPrecision, 0, MAXIMUM_NUMBER_LENGTH - integerLength);\r\n var groupSizes = getGroupSizes(floatFormatParts[0]).reverse();\r\n var valueParts = toFixed(value, floatPrecision < 0 ? 0 : floatPrecision).split(\".\");\r\n var valueIntegerPart = normalizeValueString(reverseString(valueParts[0]), minIntegerPrecision, maxIntegerPrecision);\r\n var valueFloatPart = normalizeValueString(valueParts[1], minFloatPrecision, maxFloatPrecision);\r\n valueIntegerPart = applyGroups(valueIntegerPart, groupSizes, config.thousandsSeparator);\r\n var integerString = reverseString(formatNumberPart(reverseString(floatFormatParts[0]), valueIntegerPart));\r\n var floatString = maxFloatPrecision ? formatNumberPart(floatFormatParts[1], valueFloatPart) : \"\";\r\n var result = integerString + (floatString.match(/\\d/) ? config.decimalSeparator : \"\") + floatString;\r\n return result\r\n }\r\n}\r\n\r\nfunction parseValue(text, isPercent, isNegative) {\r\n var value = (isPercent ? .01 : 1) * parseFloat(text) || 0;\r\n return isNegative ? -value : value\r\n}\r\n\r\nfunction prepareValueText(valueText, formatter, isPercent, isIntegerPart) {\r\n var nextValueText = valueText;\r\n var char;\r\n var text;\r\n var nextText;\r\n do {\r\n if (nextText) {\r\n char = text.length === nextText.length ? \"0\" : \"1\";\r\n valueText = isIntegerPart ? char + valueText : valueText + char\r\n }\r\n text = nextText || formatter(parseValue(nextValueText, isPercent));\r\n nextValueText = isIntegerPart ? \"1\" + nextValueText : nextValueText + \"1\";\r\n nextText = formatter(parseValue(nextValueText, isPercent))\r\n } while (text !== nextText && (isIntegerPart ? text.length === nextText.length : text.length <= nextText.length));\r\n if (isIntegerPart && nextText.length > text.length) {\r\n var hasGroups = -1 === formatter(12345).indexOf(\"12345\");\r\n do {\r\n valueText = \"1\" + valueText\r\n } while (hasGroups && parseValue(valueText, isPercent) < 1e5)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getFormatByValueText(valueText, formatter, isPercent, isNegative) {\r\n var format = formatter(parseValue(valueText, isPercent, isNegative));\r\n var valueTextParts = valueText.split(\".\");\r\n var valueTextWithModifiedFloat = valueTextParts[0] + \".3\" + valueTextParts[1].slice(1);\r\n var valueWithModifiedFloat = parseValue(valueTextWithModifiedFloat, isPercent, isNegative);\r\n var decimalSeparatorIndex = formatter(valueWithModifiedFloat).indexOf(\"3\") - 1;\r\n format = format.replace(/(\\d)\\D(\\d)/g, \"$1,$2\");\r\n if (decimalSeparatorIndex >= 0) {\r\n format = format.slice(0, decimalSeparatorIndex) + \".\" + format.slice(decimalSeparatorIndex + 1)\r\n }\r\n format = format.replace(/1+/, \"1\").replace(/1/g, \"#\");\r\n if (!isPercent) {\r\n format = format.replace(\"%\", \"'%'\")\r\n }\r\n return format\r\n}\r\nexport function getFormat(formatter) {\r\n var valueText = \".\";\r\n var isPercent = formatter(1).indexOf(\"100\") >= 0;\r\n valueText = prepareValueText(valueText, formatter, isPercent, true);\r\n valueText = prepareValueText(valueText, formatter, isPercent, false);\r\n var positiveFormat = getFormatByValueText(valueText, formatter, isPercent, false);\r\n var negativeFormat = getFormatByValueText(valueText, formatter, isPercent, true);\r\n return negativeFormat === \"-\" + positiveFormat ? positiveFormat : positiveFormat + \";\" + negativeFormat\r\n}\r\n","/**\r\n * DevExtreme (esm/localization/default_messages.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var defaultMessages = {\r\n en: {\r\n Yes: \"Yes\",\r\n No: \"No\",\r\n Cancel: \"Cancel\",\r\n Close: \"Close\",\r\n Clear: \"Clear\",\r\n Done: \"Done\",\r\n Loading: \"Loading...\",\r\n Select: \"Select...\",\r\n Search: \"Search\",\r\n Back: \"Back\",\r\n OK: \"OK\",\r\n \"dxCollectionWidget-noDataText\": \"No data to display\",\r\n \"dxDropDownEditor-selectLabel\": \"Select\",\r\n \"validation-required\": \"Required\",\r\n \"validation-required-formatted\": \"{0} is required\",\r\n \"validation-numeric\": \"Value must be a number\",\r\n \"validation-numeric-formatted\": \"{0} must be a number\",\r\n \"validation-range\": \"Value is out of range\",\r\n \"validation-range-formatted\": \"{0} is out of range\",\r\n \"validation-stringLength\": \"The length of the value is not correct\",\r\n \"validation-stringLength-formatted\": \"The length of {0} is not correct\",\r\n \"validation-custom\": \"Value is invalid\",\r\n \"validation-custom-formatted\": \"{0} is invalid\",\r\n \"validation-async\": \"Value is invalid\",\r\n \"validation-async-formatted\": \"{0} is invalid\",\r\n \"validation-compare\": \"Values do not match\",\r\n \"validation-compare-formatted\": \"{0} does not match\",\r\n \"validation-pattern\": \"Value does not match pattern\",\r\n \"validation-pattern-formatted\": \"{0} does not match pattern\",\r\n \"validation-email\": \"Email is invalid\",\r\n \"validation-email-formatted\": \"{0} is invalid\",\r\n \"validation-mask\": \"Value is invalid\",\r\n \"dxLookup-searchPlaceholder\": \"Minimum character number: {0}\",\r\n \"dxList-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxList-pulledDownText\": \"Release to refresh...\",\r\n \"dxList-refreshingText\": \"Refreshing...\",\r\n \"dxList-pageLoadingText\": \"Loading...\",\r\n \"dxList-nextButtonText\": \"More\",\r\n \"dxList-selectAll\": \"Select All\",\r\n \"dxListEditDecorator-delete\": \"Delete\",\r\n \"dxListEditDecorator-more\": \"More\",\r\n \"dxScrollView-pullingDownText\": \"Pull down to refresh...\",\r\n \"dxScrollView-pulledDownText\": \"Release to refresh...\",\r\n \"dxScrollView-refreshingText\": \"Refreshing...\",\r\n \"dxScrollView-reachBottomText\": \"Loading...\",\r\n \"dxDateBox-simulatedDataPickerTitleTime\": \"Select time\",\r\n \"dxDateBox-simulatedDataPickerTitleDate\": \"Select date\",\r\n \"dxDateBox-simulatedDataPickerTitleDateTime\": \"Select date and time\",\r\n \"dxDateBox-validation-datetime\": \"Value must be a date or time\",\r\n \"dxFileUploader-selectFile\": \"Select a file\",\r\n \"dxFileUploader-dropFile\": \"or Drop a file here\",\r\n \"dxFileUploader-bytes\": \"bytes\",\r\n \"dxFileUploader-kb\": \"kb\",\r\n \"dxFileUploader-Mb\": \"Mb\",\r\n \"dxFileUploader-Gb\": \"Gb\",\r\n \"dxFileUploader-upload\": \"Upload\",\r\n \"dxFileUploader-uploaded\": \"Uploaded\",\r\n \"dxFileUploader-readyToUpload\": \"Ready to upload\",\r\n \"dxFileUploader-uploadAbortedMessage\": \"Upload cancelled\",\r\n \"dxFileUploader-uploadFailedMessage\": \"Upload failed\",\r\n \"dxFileUploader-invalidFileExtension\": \"File type is not allowed\",\r\n \"dxFileUploader-invalidMaxFileSize\": \"File is too large\",\r\n \"dxFileUploader-invalidMinFileSize\": \"File is too small\",\r\n \"dxRangeSlider-ariaFrom\": \"From\",\r\n \"dxRangeSlider-ariaTill\": \"Till\",\r\n \"dxSwitch-switchedOnText\": \"ON\",\r\n \"dxSwitch-switchedOffText\": \"OFF\",\r\n \"dxForm-optionalMark\": \"optional\",\r\n \"dxForm-requiredMessage\": \"{0} is required\",\r\n \"dxNumberBox-invalidValueMessage\": \"Value must be a number\",\r\n \"dxNumberBox-noDataText\": \"No data\",\r\n \"dxDataGrid-columnChooserTitle\": \"Column Chooser\",\r\n \"dxDataGrid-columnChooserEmptyText\": \"Drag a column here to hide it\",\r\n \"dxDataGrid-groupContinuesMessage\": \"Continues on the next page\",\r\n \"dxDataGrid-groupContinuedMessage\": \"Continued from the previous page\",\r\n \"dxDataGrid-groupHeaderText\": \"Group by This Column\",\r\n \"dxDataGrid-ungroupHeaderText\": \"Ungroup\",\r\n \"dxDataGrid-ungroupAllText\": \"Ungroup All\",\r\n \"dxDataGrid-editingEditRow\": \"Edit\",\r\n \"dxDataGrid-editingSaveRowChanges\": \"Save\",\r\n \"dxDataGrid-editingCancelRowChanges\": \"Cancel\",\r\n \"dxDataGrid-editingDeleteRow\": \"Delete\",\r\n \"dxDataGrid-editingUndeleteRow\": \"Undelete\",\r\n \"dxDataGrid-editingConfirmDeleteMessage\": \"Are you sure you want to delete this record?\",\r\n \"dxDataGrid-validationCancelChanges\": \"Cancel changes\",\r\n \"dxDataGrid-groupPanelEmptyText\": \"Drag a column header here to group by that column\",\r\n \"dxDataGrid-noDataText\": \"No data\",\r\n \"dxDataGrid-searchPanelPlaceholder\": \"Search...\",\r\n \"dxDataGrid-filterRowShowAllText\": \"(All)\",\r\n \"dxDataGrid-filterRowResetOperationText\": \"Reset\",\r\n \"dxDataGrid-filterRowOperationEquals\": \"Equals\",\r\n \"dxDataGrid-filterRowOperationNotEquals\": \"Does not equal\",\r\n \"dxDataGrid-filterRowOperationLess\": \"Less than\",\r\n \"dxDataGrid-filterRowOperationLessOrEquals\": \"Less than or equal to\",\r\n \"dxDataGrid-filterRowOperationGreater\": \"Greater than\",\r\n \"dxDataGrid-filterRowOperationGreaterOrEquals\": \"Greater than or equal to\",\r\n \"dxDataGrid-filterRowOperationStartsWith\": \"Starts with\",\r\n \"dxDataGrid-filterRowOperationContains\": \"Contains\",\r\n \"dxDataGrid-filterRowOperationNotContains\": \"Does not contain\",\r\n \"dxDataGrid-filterRowOperationEndsWith\": \"Ends with\",\r\n \"dxDataGrid-filterRowOperationBetween\": \"Between\",\r\n \"dxDataGrid-filterRowOperationBetweenStartText\": \"Start\",\r\n \"dxDataGrid-filterRowOperationBetweenEndText\": \"End\",\r\n \"dxDataGrid-applyFilterText\": \"Apply filter\",\r\n \"dxDataGrid-trueText\": \"true\",\r\n \"dxDataGrid-falseText\": \"false\",\r\n \"dxDataGrid-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxDataGrid-sortingDescendingText\": \"Sort Descending\",\r\n \"dxDataGrid-sortingClearText\": \"Clear Sorting\",\r\n \"dxDataGrid-editingSaveAllChanges\": \"Save changes\",\r\n \"dxDataGrid-editingCancelAllChanges\": \"Discard changes\",\r\n \"dxDataGrid-editingAddRow\": \"Add a row\",\r\n \"dxDataGrid-summaryMin\": \"Min: {0}\",\r\n \"dxDataGrid-summaryMinOtherColumn\": \"Min of {1} is {0}\",\r\n \"dxDataGrid-summaryMax\": \"Max: {0}\",\r\n \"dxDataGrid-summaryMaxOtherColumn\": \"Max of {1} is {0}\",\r\n \"dxDataGrid-summaryAvg\": \"Avg: {0}\",\r\n \"dxDataGrid-summaryAvgOtherColumn\": \"Avg of {1} is {0}\",\r\n \"dxDataGrid-summarySum\": \"Sum: {0}\",\r\n \"dxDataGrid-summarySumOtherColumn\": \"Sum of {1} is {0}\",\r\n \"dxDataGrid-summaryCount\": \"Count: {0}\",\r\n \"dxDataGrid-columnFixingFix\": \"Fix\",\r\n \"dxDataGrid-columnFixingUnfix\": \"Unfix\",\r\n \"dxDataGrid-columnFixingLeftPosition\": \"To the left\",\r\n \"dxDataGrid-columnFixingRightPosition\": \"To the right\",\r\n \"dxDataGrid-exportTo\": \"Export\",\r\n \"dxDataGrid-exportToExcel\": \"Export to Excel file\",\r\n \"dxDataGrid-exporting\": \"Exporting...\",\r\n \"dxDataGrid-excelFormat\": \"Excel file\",\r\n \"dxDataGrid-selectedRows\": \"Selected rows\",\r\n \"dxDataGrid-exportSelectedRows\": \"Export selected rows to {0}\",\r\n \"dxDataGrid-exportAll\": \"Export all data to {0}\",\r\n \"dxDataGrid-headerFilterLabel\": \"Filter options\",\r\n \"dxDataGrid-headerFilterIndicatorLabel\": \"Show filter options for column '{0}'\",\r\n \"dxDataGrid-headerFilterEmptyValue\": \"(Blanks)\",\r\n \"dxDataGrid-headerFilterOK\": \"OK\",\r\n \"dxDataGrid-headerFilterCancel\": \"Cancel\",\r\n \"dxDataGrid-ariaAdaptiveCollapse\": \"Hide additional data\",\r\n \"dxDataGrid-ariaAdaptiveExpand\": \"Display additional data\",\r\n \"dxDataGrid-ariaColumn\": \"Column\",\r\n \"dxDataGrid-ariaValue\": \"Value\",\r\n \"dxDataGrid-ariaFilterCell\": \"Filter cell\",\r\n \"dxDataGrid-ariaCollapse\": \"Collapse\",\r\n \"dxDataGrid-ariaExpand\": \"Expand\",\r\n \"dxDataGrid-ariaDataGrid\": \"Data grid\",\r\n \"dxDataGrid-ariaSearchInGrid\": \"Search in the data grid\",\r\n \"dxDataGrid-ariaSelectAll\": \"Select all\",\r\n \"dxDataGrid-ariaSelectRow\": \"Select row\",\r\n \"dxDataGrid-ariaToolbar\": \"Data grid toolbar\",\r\n \"dxDataGrid-filterBuilderPopupTitle\": \"Filter Builder\",\r\n \"dxDataGrid-filterPanelCreateFilter\": \"Create Filter\",\r\n \"dxDataGrid-filterPanelClearFilter\": \"Clear\",\r\n \"dxDataGrid-filterPanelFilterEnabledHint\": \"Enable the filter\",\r\n \"dxTreeList-ariaTreeList\": \"Tree list\",\r\n \"dxTreeList-ariaSearchInGrid\": \"Search in the tree list\",\r\n \"dxTreeList-ariaToolbar\": \"Tree list toolbar\",\r\n \"dxTreeList-editingAddRowToNode\": \"Add\",\r\n \"dxPager-infoText\": \"Page {0} of {1} ({2} items)\",\r\n \"dxPager-pagesCountText\": \"of\",\r\n \"dxPager-pageSize\": \"Items per page: {0}\",\r\n \"dxPager-pageSizesAllText\": \"All\",\r\n \"dxPager-page\": \"Page {0}\",\r\n \"dxPager-prevPage\": \"Previous Page\",\r\n \"dxPager-nextPage\": \"Next Page\",\r\n \"dxPager-ariaLabel\": \"Page Navigation\",\r\n \"dxPivotGrid-grandTotal\": \"Grand Total\",\r\n \"dxPivotGrid-total\": \"{0} Total\",\r\n \"dxPivotGrid-fieldChooserTitle\": \"Field Chooser\",\r\n \"dxPivotGrid-showFieldChooser\": \"Show Field Chooser\",\r\n \"dxPivotGrid-expandAll\": \"Expand All\",\r\n \"dxPivotGrid-collapseAll\": \"Collapse All\",\r\n \"dxPivotGrid-sortColumnBySummary\": 'Sort \"{0}\" by This Column',\r\n \"dxPivotGrid-sortRowBySummary\": 'Sort \"{0}\" by This Row',\r\n \"dxPivotGrid-removeAllSorting\": \"Remove All Sorting\",\r\n \"dxPivotGrid-dataNotAvailable\": \"N/A\",\r\n \"dxPivotGrid-rowFields\": \"Row Fields\",\r\n \"dxPivotGrid-columnFields\": \"Column Fields\",\r\n \"dxPivotGrid-dataFields\": \"Data Fields\",\r\n \"dxPivotGrid-filterFields\": \"Filter Fields\",\r\n \"dxPivotGrid-allFields\": \"All Fields\",\r\n \"dxPivotGrid-columnFieldArea\": \"Drop Column Fields Here\",\r\n \"dxPivotGrid-dataFieldArea\": \"Drop Data Fields Here\",\r\n \"dxPivotGrid-rowFieldArea\": \"Drop Row Fields Here\",\r\n \"dxPivotGrid-filterFieldArea\": \"Drop Filter Fields Here\",\r\n \"dxScheduler-editorLabelTitle\": \"Subject\",\r\n \"dxScheduler-editorLabelStartDate\": \"Start Date\",\r\n \"dxScheduler-editorLabelEndDate\": \"End Date\",\r\n \"dxScheduler-editorLabelDescription\": \"Description\",\r\n \"dxScheduler-editorLabelRecurrence\": \"Repeat\",\r\n \"dxScheduler-openAppointment\": \"Open appointment\",\r\n \"dxScheduler-recurrenceNever\": \"Never\",\r\n \"dxScheduler-recurrenceMinutely\": \"Every minute\",\r\n \"dxScheduler-recurrenceHourly\": \"Hourly\",\r\n \"dxScheduler-recurrenceDaily\": \"Daily\",\r\n \"dxScheduler-recurrenceWeekly\": \"Weekly\",\r\n \"dxScheduler-recurrenceMonthly\": \"Monthly\",\r\n \"dxScheduler-recurrenceYearly\": \"Yearly\",\r\n \"dxScheduler-recurrenceRepeatEvery\": \"Repeat Every\",\r\n \"dxScheduler-recurrenceRepeatOn\": \"Repeat On\",\r\n \"dxScheduler-recurrenceEnd\": \"End repeat\",\r\n \"dxScheduler-recurrenceAfter\": \"After\",\r\n \"dxScheduler-recurrenceOn\": \"On\",\r\n \"dxScheduler-recurrenceRepeatMinutely\": \"minute(s)\",\r\n \"dxScheduler-recurrenceRepeatHourly\": \"hour(s)\",\r\n \"dxScheduler-recurrenceRepeatDaily\": \"day(s)\",\r\n \"dxScheduler-recurrenceRepeatWeekly\": \"week(s)\",\r\n \"dxScheduler-recurrenceRepeatMonthly\": \"month(s)\",\r\n \"dxScheduler-recurrenceRepeatYearly\": \"year(s)\",\r\n \"dxScheduler-switcherDay\": \"Day\",\r\n \"dxScheduler-switcherWeek\": \"Week\",\r\n \"dxScheduler-switcherWorkWeek\": \"Work Week\",\r\n \"dxScheduler-switcherMonth\": \"Month\",\r\n \"dxScheduler-switcherAgenda\": \"Agenda\",\r\n \"dxScheduler-switcherTimelineDay\": \"Timeline Day\",\r\n \"dxScheduler-switcherTimelineWeek\": \"Timeline Week\",\r\n \"dxScheduler-switcherTimelineWorkWeek\": \"Timeline Work Week\",\r\n \"dxScheduler-switcherTimelineMonth\": \"Timeline Month\",\r\n \"dxScheduler-recurrenceRepeatOnDate\": \"on date\",\r\n \"dxScheduler-recurrenceRepeatCount\": \"occurrence(s)\",\r\n \"dxScheduler-allDay\": \"All day\",\r\n \"dxScheduler-confirmRecurrenceEditMessage\": \"Do you want to edit only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceDeleteMessage\": \"Do you want to delete only this appointment or the whole series?\",\r\n \"dxScheduler-confirmRecurrenceEditSeries\": \"Edit series\",\r\n \"dxScheduler-confirmRecurrenceDeleteSeries\": \"Delete series\",\r\n \"dxScheduler-confirmRecurrenceEditOccurrence\": \"Edit appointment\",\r\n \"dxScheduler-confirmRecurrenceDeleteOccurrence\": \"Delete appointment\",\r\n \"dxScheduler-noTimezoneTitle\": \"No timezone\",\r\n \"dxScheduler-moreAppointments\": \"{0} more\",\r\n \"dxCalendar-todayButtonText\": \"Today\",\r\n \"dxCalendar-ariaWidgetName\": \"Calendar\",\r\n \"dxColorView-ariaRed\": \"Red\",\r\n \"dxColorView-ariaGreen\": \"Green\",\r\n \"dxColorView-ariaBlue\": \"Blue\",\r\n \"dxColorView-ariaAlpha\": \"Transparency\",\r\n \"dxColorView-ariaHex\": \"Color code\",\r\n \"dxTagBox-selected\": \"{0} selected\",\r\n \"dxTagBox-allSelected\": \"All selected ({0})\",\r\n \"dxTagBox-moreSelected\": \"{0} more\",\r\n \"vizExport-printingButtonText\": \"Print\",\r\n \"vizExport-titleMenuText\": \"Exporting/Printing\",\r\n \"vizExport-exportButtonText\": \"{0} file\",\r\n \"dxFilterBuilder-and\": \"And\",\r\n \"dxFilterBuilder-or\": \"Or\",\r\n \"dxFilterBuilder-notAnd\": \"Not And\",\r\n \"dxFilterBuilder-notOr\": \"Not Or\",\r\n \"dxFilterBuilder-addCondition\": \"Add Condition\",\r\n \"dxFilterBuilder-addGroup\": \"Add Group\",\r\n \"dxFilterBuilder-enterValueText\": \"<enter a value>\",\r\n \"dxFilterBuilder-filterOperationEquals\": \"Equals\",\r\n \"dxFilterBuilder-filterOperationNotEquals\": \"Does not equal\",\r\n \"dxFilterBuilder-filterOperationLess\": \"Is less than\",\r\n \"dxFilterBuilder-filterOperationLessOrEquals\": \"Is less than or equal to\",\r\n \"dxFilterBuilder-filterOperationGreater\": \"Is greater than\",\r\n \"dxFilterBuilder-filterOperationGreaterOrEquals\": \"Is greater than or equal to\",\r\n \"dxFilterBuilder-filterOperationStartsWith\": \"Starts with\",\r\n \"dxFilterBuilder-filterOperationContains\": \"Contains\",\r\n \"dxFilterBuilder-filterOperationNotContains\": \"Does not contain\",\r\n \"dxFilterBuilder-filterOperationEndsWith\": \"Ends with\",\r\n \"dxFilterBuilder-filterOperationIsBlank\": \"Is blank\",\r\n \"dxFilterBuilder-filterOperationIsNotBlank\": \"Is not blank\",\r\n \"dxFilterBuilder-filterOperationBetween\": \"Is between\",\r\n \"dxFilterBuilder-filterOperationAnyOf\": \"Is any of\",\r\n \"dxFilterBuilder-filterOperationNoneOf\": \"Is none of\",\r\n \"dxHtmlEditor-dialogColorCaption\": \"Change Font Color\",\r\n \"dxHtmlEditor-dialogBackgroundCaption\": \"Change Background Color\",\r\n \"dxHtmlEditor-dialogLinkCaption\": \"Add Link\",\r\n \"dxHtmlEditor-dialogLinkUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogLinkTextField\": \"Text\",\r\n \"dxHtmlEditor-dialogLinkTargetField\": \"Open link in new window\",\r\n \"dxHtmlEditor-dialogImageCaption\": \"Add Image\",\r\n \"dxHtmlEditor-dialogImageUrlField\": \"URL\",\r\n \"dxHtmlEditor-dialogImageAltField\": \"Alternate text\",\r\n \"dxHtmlEditor-dialogImageWidthField\": \"Width (px)\",\r\n \"dxHtmlEditor-dialogImageHeightField\": \"Height (px)\",\r\n \"dxHtmlEditor-dialogInsertTableRowsField\": \"Rows\",\r\n \"dxHtmlEditor-dialogInsertTableColumnsField\": \"Columns\",\r\n \"dxHtmlEditor-dialogInsertTableCaption\": \"Insert Table\",\r\n \"dxHtmlEditor-dialogUpdateImageCaption\": \"Update Image\",\r\n \"dxHtmlEditor-dialogImageUpdateButton\": \"Update\",\r\n \"dxHtmlEditor-dialogImageAddButton\": \"Add\",\r\n \"dxHtmlEditor-dialogImageSpecifyUrl\": \"From the Web\",\r\n \"dxHtmlEditor-dialogImageSelectFile\": \"From This Device\",\r\n \"dxHtmlEditor-dialogImageKeepAspectRatio\": \"Keep Aspect Ratio\",\r\n \"dxHtmlEditor-dialogImageEncodeToBase64\": \"Encode to Base64\",\r\n \"dxHtmlEditor-heading\": \"Heading\",\r\n \"dxHtmlEditor-normalText\": \"Normal text\",\r\n \"dxHtmlEditor-background\": \"Background Color\",\r\n \"dxHtmlEditor-bold\": \"Bold\",\r\n \"dxHtmlEditor-color\": \"Font Color\",\r\n \"dxHtmlEditor-font\": \"Font\",\r\n \"dxHtmlEditor-italic\": \"Italic\",\r\n \"dxHtmlEditor-link\": \"Add Link\",\r\n \"dxHtmlEditor-image\": \"Add Image\",\r\n \"dxHtmlEditor-size\": \"Size\",\r\n \"dxHtmlEditor-strike\": \"Strikethrough\",\r\n \"dxHtmlEditor-subscript\": \"Subscript\",\r\n \"dxHtmlEditor-superscript\": \"Superscript\",\r\n \"dxHtmlEditor-underline\": \"Underline\",\r\n \"dxHtmlEditor-blockquote\": \"Blockquote\",\r\n \"dxHtmlEditor-header\": \"Header\",\r\n \"dxHtmlEditor-increaseIndent\": \"Increase Indent\",\r\n \"dxHtmlEditor-decreaseIndent\": \"Decrease Indent\",\r\n \"dxHtmlEditor-orderedList\": \"Ordered List\",\r\n \"dxHtmlEditor-bulletList\": \"Bullet List\",\r\n \"dxHtmlEditor-alignLeft\": \"Align Left\",\r\n \"dxHtmlEditor-alignCenter\": \"Align Center\",\r\n \"dxHtmlEditor-alignRight\": \"Align Right\",\r\n \"dxHtmlEditor-alignJustify\": \"Align Justify\",\r\n \"dxHtmlEditor-codeBlock\": \"Code Block\",\r\n \"dxHtmlEditor-variable\": \"Add Variable\",\r\n \"dxHtmlEditor-undo\": \"Undo\",\r\n \"dxHtmlEditor-redo\": \"Redo\",\r\n \"dxHtmlEditor-clear\": \"Clear Formatting\",\r\n \"dxHtmlEditor-insertTable\": \"Insert Table\",\r\n \"dxHtmlEditor-insertHeaderRow\": \"Insert Header Row\",\r\n \"dxHtmlEditor-insertRowAbove\": \"Insert Row Above\",\r\n \"dxHtmlEditor-insertRowBelow\": \"Insert Row Below\",\r\n \"dxHtmlEditor-insertColumnLeft\": \"Insert Column Left\",\r\n \"dxHtmlEditor-insertColumnRight\": \"Insert Column Right\",\r\n \"dxHtmlEditor-deleteColumn\": \"Delete Column\",\r\n \"dxHtmlEditor-deleteRow\": \"Delete Row\",\r\n \"dxHtmlEditor-deleteTable\": \"Delete Table\",\r\n \"dxHtmlEditor-cellProperties\": \"Cell Properties\",\r\n \"dxHtmlEditor-tableProperties\": \"Table Properties\",\r\n \"dxHtmlEditor-insert\": \"Insert\",\r\n \"dxHtmlEditor-delete\": \"Delete\",\r\n \"dxHtmlEditor-border\": \"Border\",\r\n \"dxHtmlEditor-style\": \"Style\",\r\n \"dxHtmlEditor-width\": \"Width\",\r\n \"dxHtmlEditor-height\": \"Height\",\r\n \"dxHtmlEditor-borderColor\": \"Color\",\r\n \"dxHtmlEditor-tableBackground\": \"Background\",\r\n \"dxHtmlEditor-dimensions\": \"Dimensions\",\r\n \"dxHtmlEditor-alignment\": \"Alignment\",\r\n \"dxHtmlEditor-horizontal\": \"Horizontal\",\r\n \"dxHtmlEditor-vertical\": \"Vertical\",\r\n \"dxHtmlEditor-paddingVertical\": \"Vertical Padding\",\r\n \"dxHtmlEditor-paddingHorizontal\": \"Horizontal Padding\",\r\n \"dxHtmlEditor-pixels\": \"Pixels\",\r\n \"dxHtmlEditor-list\": \"List\",\r\n \"dxHtmlEditor-ordered\": \"Ordered\",\r\n \"dxHtmlEditor-bullet\": \"Bullet\",\r\n \"dxHtmlEditor-align\": \"Align\",\r\n \"dxHtmlEditor-center\": \"Center\",\r\n \"dxHtmlEditor-left\": \"Left\",\r\n \"dxHtmlEditor-right\": \"Right\",\r\n \"dxHtmlEditor-indent\": \"Indent\",\r\n \"dxHtmlEditor-justify\": \"Justify\",\r\n \"dxFileManager-newDirectoryName\": \"Untitled directory\",\r\n \"dxFileManager-rootDirectoryName\": \"Files\",\r\n \"dxFileManager-errorNoAccess\": \"Access Denied. Operation could not be completed.\",\r\n \"dxFileManager-errorDirectoryExistsFormat\": \"Directory '{0}' already exists.\",\r\n \"dxFileManager-errorFileExistsFormat\": \"File '{0}' already exists.\",\r\n \"dxFileManager-errorFileNotFoundFormat\": \"File '{0}' not found.\",\r\n \"dxFileManager-errorDirectoryNotFoundFormat\": \"Directory '{0}' not found.\",\r\n \"dxFileManager-errorWrongFileExtension\": \"File extension is not allowed.\",\r\n \"dxFileManager-errorMaxFileSizeExceeded\": \"File size exceeds the maximum allowed size.\",\r\n \"dxFileManager-errorInvalidSymbols\": \"This name contains invalid characters.\",\r\n \"dxFileManager-errorDefault\": \"Unspecified error.\",\r\n \"dxFileManager-errorDirectoryOpenFailed\": \"The directory cannot be opened\",\r\n \"dxFileManager-commandCreate\": \"New directory\",\r\n \"dxFileManager-commandRename\": \"Rename\",\r\n \"dxFileManager-commandMove\": \"Move to\",\r\n \"dxFileManager-commandCopy\": \"Copy to\",\r\n \"dxFileManager-commandDelete\": \"Delete\",\r\n \"dxFileManager-commandDownload\": \"Download\",\r\n \"dxFileManager-commandUpload\": \"Upload files\",\r\n \"dxFileManager-commandRefresh\": \"Refresh\",\r\n \"dxFileManager-commandThumbnails\": \"Thumbnails View\",\r\n \"dxFileManager-commandDetails\": \"Details View\",\r\n \"dxFileManager-commandClearSelection\": \"Clear selection\",\r\n \"dxFileManager-commandShowNavPane\": \"Toggle navigation pane\",\r\n \"dxFileManager-dialogDirectoryChooserMoveTitle\": \"Move to\",\r\n \"dxFileManager-dialogDirectoryChooserMoveButtonText\": \"Move\",\r\n \"dxFileManager-dialogDirectoryChooserCopyTitle\": \"Copy to\",\r\n \"dxFileManager-dialogDirectoryChooserCopyButtonText\": \"Copy\",\r\n \"dxFileManager-dialogRenameItemTitle\": \"Rename\",\r\n \"dxFileManager-dialogRenameItemButtonText\": \"Save\",\r\n \"dxFileManager-dialogCreateDirectoryTitle\": \"New directory\",\r\n \"dxFileManager-dialogCreateDirectoryButtonText\": \"Create\",\r\n \"dxFileManager-dialogDeleteItemTitle\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemButtonText\": \"Delete\",\r\n \"dxFileManager-dialogDeleteItemSingleItemConfirmation\": \"Are you sure you want to delete {0}?\",\r\n \"dxFileManager-dialogDeleteItemMultipleItemsConfirmation\": \"Are you sure you want to delete {0} items?\",\r\n \"dxFileManager-dialogButtonCancel\": \"Cancel\",\r\n \"dxFileManager-editingCreateSingleItemProcessingMessage\": \"Creating a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemSuccessMessage\": \"Created a directory inside {0}\",\r\n \"dxFileManager-editingCreateSingleItemErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingCreateCommonErrorMessage\": \"Directory was not created\",\r\n \"dxFileManager-editingRenameSingleItemProcessingMessage\": \"Renaming an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemSuccessMessage\": \"Renamed an item inside {0}\",\r\n \"dxFileManager-editingRenameSingleItemErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingRenameCommonErrorMessage\": \"Item was not renamed\",\r\n \"dxFileManager-editingDeleteSingleItemProcessingMessage\": \"Deleting an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsProcessingMessage\": \"Deleting {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemSuccessMessage\": \"Deleted an item from {0}\",\r\n \"dxFileManager-editingDeleteMultipleItemsSuccessMessage\": \"Deleted {0} items from {1}\",\r\n \"dxFileManager-editingDeleteSingleItemErrorMessage\": \"Item was not deleted\",\r\n \"dxFileManager-editingDeleteMultipleItemsErrorMessage\": \"{0} items were not deleted\",\r\n \"dxFileManager-editingDeleteCommonErrorMessage\": \"Some items were not deleted\",\r\n \"dxFileManager-editingMoveSingleItemProcessingMessage\": \"Moving an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsProcessingMessage\": \"Moving {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemSuccessMessage\": \"Moved an item to {0}\",\r\n \"dxFileManager-editingMoveMultipleItemsSuccessMessage\": \"Moved {0} items to {1}\",\r\n \"dxFileManager-editingMoveSingleItemErrorMessage\": \"Item was not moved\",\r\n \"dxFileManager-editingMoveMultipleItemsErrorMessage\": \"{0} items were not moved\",\r\n \"dxFileManager-editingMoveCommonErrorMessage\": \"Some items were not moved\",\r\n \"dxFileManager-editingCopySingleItemProcessingMessage\": \"Copying an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsProcessingMessage\": \"Copying {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemSuccessMessage\": \"Copied an item to {0}\",\r\n \"dxFileManager-editingCopyMultipleItemsSuccessMessage\": \"Copied {0} items to {1}\",\r\n \"dxFileManager-editingCopySingleItemErrorMessage\": \"Item was not copied\",\r\n \"dxFileManager-editingCopyMultipleItemsErrorMessage\": \"{0} items were not copied\",\r\n \"dxFileManager-editingCopyCommonErrorMessage\": \"Some items were not copied\",\r\n \"dxFileManager-editingUploadSingleItemProcessingMessage\": \"Uploading an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsProcessingMessage\": \"Uploading {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemSuccessMessage\": \"Uploaded an item to {0}\",\r\n \"dxFileManager-editingUploadMultipleItemsSuccessMessage\": \"Uploaded {0} items to {1}\",\r\n \"dxFileManager-editingUploadSingleItemErrorMessage\": \"Item was not uploaded\",\r\n \"dxFileManager-editingUploadMultipleItemsErrorMessage\": \"{0} items were not uploaded\",\r\n \"dxFileManager-editingUploadCanceledMessage\": \"Canceled\",\r\n \"dxFileManager-editingDownloadSingleItemErrorMessage\": \"Item was not downloaded\",\r\n \"dxFileManager-editingDownloadMultipleItemsErrorMessage\": \"{0} items were not downloaded\",\r\n \"dxFileManager-listDetailsColumnCaptionName\": \"Name\",\r\n \"dxFileManager-listDetailsColumnCaptionDateModified\": \"Date Modified\",\r\n \"dxFileManager-listDetailsColumnCaptionFileSize\": \"File Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextSize\": \"Size\",\r\n \"dxFileManager-listThumbnailsTooltipTextDateModified\": \"Date Modified\",\r\n \"dxFileManager-notificationProgressPanelTitle\": \"Progress\",\r\n \"dxFileManager-notificationProgressPanelEmptyListText\": \"No operations\",\r\n \"dxFileManager-notificationProgressPanelOperationCanceled\": \"Canceled\",\r\n \"dxDiagram-categoryGeneral\": \"General\",\r\n \"dxDiagram-categoryFlowchart\": \"Flowchart\",\r\n \"dxDiagram-categoryOrgChart\": \"Org Chart\",\r\n \"dxDiagram-categoryContainers\": \"Containers\",\r\n \"dxDiagram-categoryCustom\": \"Custom\",\r\n \"dxDiagram-commandExportToSvg\": \"Export to SVG\",\r\n \"dxDiagram-commandExportToPng\": \"Export to PNG\",\r\n \"dxDiagram-commandExportToJpg\": \"Export to JPEG\",\r\n \"dxDiagram-commandUndo\": \"Undo\",\r\n \"dxDiagram-commandRedo\": \"Redo\",\r\n \"dxDiagram-commandFontName\": \"Font Name\",\r\n \"dxDiagram-commandFontSize\": \"Font Size\",\r\n \"dxDiagram-commandBold\": \"Bold\",\r\n \"dxDiagram-commandItalic\": \"Italic\",\r\n \"dxDiagram-commandUnderline\": \"Underline\",\r\n \"dxDiagram-commandTextColor\": \"Font Color\",\r\n \"dxDiagram-commandLineColor\": \"Line Color\",\r\n \"dxDiagram-commandLineWidth\": \"Line Width\",\r\n \"dxDiagram-commandLineStyle\": \"Line Style\",\r\n \"dxDiagram-commandLineStyleSolid\": \"Solid\",\r\n \"dxDiagram-commandLineStyleDotted\": \"Dotted\",\r\n \"dxDiagram-commandLineStyleDashed\": \"Dashed\",\r\n \"dxDiagram-commandFillColor\": \"Fill Color\",\r\n \"dxDiagram-commandAlignLeft\": \"Align Left\",\r\n \"dxDiagram-commandAlignCenter\": \"Align Center\",\r\n \"dxDiagram-commandAlignRight\": \"Align Right\",\r\n \"dxDiagram-commandConnectorLineType\": \"Connector Line Type\",\r\n \"dxDiagram-commandConnectorLineStraight\": \"Straight\",\r\n \"dxDiagram-commandConnectorLineOrthogonal\": \"Orthogonal\",\r\n \"dxDiagram-commandConnectorLineStart\": \"Connector Line Start\",\r\n \"dxDiagram-commandConnectorLineEnd\": \"Connector Line End\",\r\n \"dxDiagram-commandConnectorLineNone\": \"None\",\r\n \"dxDiagram-commandConnectorLineArrow\": \"Arrow\",\r\n \"dxDiagram-commandFullscreen\": \"Full Screen\",\r\n \"dxDiagram-commandUnits\": \"Units\",\r\n \"dxDiagram-commandPageSize\": \"Page Size\",\r\n \"dxDiagram-commandPageOrientation\": \"Page Orientation\",\r\n \"dxDiagram-commandPageOrientationLandscape\": \"Landscape\",\r\n \"dxDiagram-commandPageOrientationPortrait\": \"Portrait\",\r\n \"dxDiagram-commandPageColor\": \"Page Color\",\r\n \"dxDiagram-commandShowGrid\": \"Show Grid\",\r\n \"dxDiagram-commandSnapToGrid\": \"Snap to Grid\",\r\n \"dxDiagram-commandGridSize\": \"Grid Size\",\r\n \"dxDiagram-commandZoomLevel\": \"Zoom Level\",\r\n \"dxDiagram-commandAutoZoom\": \"Auto Zoom\",\r\n \"dxDiagram-commandFitToContent\": \"Fit to Content\",\r\n \"dxDiagram-commandFitToWidth\": \"Fit to Width\",\r\n \"dxDiagram-commandAutoZoomByContent\": \"Auto Zoom by Content\",\r\n \"dxDiagram-commandAutoZoomByWidth\": \"Auto Zoom by Width\",\r\n \"dxDiagram-commandSimpleView\": \"Simple View\",\r\n \"dxDiagram-commandCut\": \"Cut\",\r\n \"dxDiagram-commandCopy\": \"Copy\",\r\n \"dxDiagram-commandPaste\": \"Paste\",\r\n \"dxDiagram-commandSelectAll\": \"Select All\",\r\n \"dxDiagram-commandDelete\": \"Delete\",\r\n \"dxDiagram-commandBringToFront\": \"Bring to Front\",\r\n \"dxDiagram-commandSendToBack\": \"Send to Back\",\r\n \"dxDiagram-commandLock\": \"Lock\",\r\n \"dxDiagram-commandUnlock\": \"Unlock\",\r\n \"dxDiagram-commandInsertShapeImage\": \"Insert Image...\",\r\n \"dxDiagram-commandEditShapeImage\": \"Change Image...\",\r\n \"dxDiagram-commandDeleteShapeImage\": \"Delete Image\",\r\n \"dxDiagram-commandLayoutLeftToRight\": \"Left-to-right\",\r\n \"dxDiagram-commandLayoutRightToLeft\": \"Right-to-left\",\r\n \"dxDiagram-commandLayoutTopToBottom\": \"Top-to-bottom\",\r\n \"dxDiagram-commandLayoutBottomToTop\": \"Bottom-to-top\",\r\n \"dxDiagram-unitIn\": \"in\",\r\n \"dxDiagram-unitCm\": \"cm\",\r\n \"dxDiagram-unitPx\": \"px\",\r\n \"dxDiagram-dialogButtonOK\": \"OK\",\r\n \"dxDiagram-dialogButtonCancel\": \"Cancel\",\r\n \"dxDiagram-dialogInsertShapeImageTitle\": \"Insert Image\",\r\n \"dxDiagram-dialogEditShapeImageTitle\": \"Change Image\",\r\n \"dxDiagram-dialogEditShapeImageSelectButton\": \"Select image\",\r\n \"dxDiagram-dialogEditShapeImageLabelText\": \"or drop a file here\",\r\n \"dxDiagram-uiExport\": \"Export\",\r\n \"dxDiagram-uiProperties\": \"Properties\",\r\n \"dxDiagram-uiSettings\": \"Settings\",\r\n \"dxDiagram-uiShowToolbox\": \"Show Toolbox\",\r\n \"dxDiagram-uiSearch\": \"Search\",\r\n \"dxDiagram-uiStyle\": \"Style\",\r\n \"dxDiagram-uiLayout\": \"Layout\",\r\n \"dxDiagram-uiLayoutTree\": \"Tree\",\r\n \"dxDiagram-uiLayoutLayered\": \"Layered\",\r\n \"dxDiagram-uiDiagram\": \"Diagram\",\r\n \"dxDiagram-uiText\": \"Text\",\r\n \"dxDiagram-uiObject\": \"Object\",\r\n \"dxDiagram-uiConnector\": \"Connector\",\r\n \"dxDiagram-uiPage\": \"Page\",\r\n \"dxDiagram-shapeText\": \"Text\",\r\n \"dxDiagram-shapeRectangle\": \"Rectangle\",\r\n \"dxDiagram-shapeEllipse\": \"Ellipse\",\r\n \"dxDiagram-shapeCross\": \"Cross\",\r\n \"dxDiagram-shapeTriangle\": \"Triangle\",\r\n \"dxDiagram-shapeDiamond\": \"Diamond\",\r\n \"dxDiagram-shapeHeart\": \"Heart\",\r\n \"dxDiagram-shapePentagon\": \"Pentagon\",\r\n \"dxDiagram-shapeHexagon\": \"Hexagon\",\r\n \"dxDiagram-shapeOctagon\": \"Octagon\",\r\n \"dxDiagram-shapeStar\": \"Star\",\r\n \"dxDiagram-shapeArrowLeft\": \"Left Arrow\",\r\n \"dxDiagram-shapeArrowUp\": \"Up Arrow\",\r\n \"dxDiagram-shapeArrowRight\": \"Right Arrow\",\r\n \"dxDiagram-shapeArrowDown\": \"Down Arrow\",\r\n \"dxDiagram-shapeArrowUpDown\": \"Up Down Arrow\",\r\n \"dxDiagram-shapeArrowLeftRight\": \"Left Right Arrow\",\r\n \"dxDiagram-shapeProcess\": \"Process\",\r\n \"dxDiagram-shapeDecision\": \"Decision\",\r\n \"dxDiagram-shapeTerminator\": \"Terminator\",\r\n \"dxDiagram-shapePredefinedProcess\": \"Predefined Process\",\r\n \"dxDiagram-shapeDocument\": \"Document\",\r\n \"dxDiagram-shapeMultipleDocuments\": \"Multiple Documents\",\r\n \"dxDiagram-shapeManualInput\": \"Manual Input\",\r\n \"dxDiagram-shapePreparation\": \"Preparation\",\r\n \"dxDiagram-shapeData\": \"Data\",\r\n \"dxDiagram-shapeDatabase\": \"Database\",\r\n \"dxDiagram-shapeHardDisk\": \"Hard Disk\",\r\n \"dxDiagram-shapeInternalStorage\": \"Internal Storage\",\r\n \"dxDiagram-shapePaperTape\": \"Paper Tape\",\r\n \"dxDiagram-shapeManualOperation\": \"Manual Operation\",\r\n \"dxDiagram-shapeDelay\": \"Delay\",\r\n \"dxDiagram-shapeStoredData\": \"Stored Data\",\r\n \"dxDiagram-shapeDisplay\": \"Display\",\r\n \"dxDiagram-shapeMerge\": \"Merge\",\r\n \"dxDiagram-shapeConnector\": \"Connector\",\r\n \"dxDiagram-shapeOr\": \"Or\",\r\n \"dxDiagram-shapeSummingJunction\": \"Summing Junction\",\r\n \"dxDiagram-shapeContainerDefaultText\": \"Container\",\r\n \"dxDiagram-shapeVerticalContainer\": \"Vertical Container\",\r\n \"dxDiagram-shapeHorizontalContainer\": \"Horizontal Container\",\r\n \"dxDiagram-shapeCardDefaultText\": \"Person's Name\",\r\n \"dxDiagram-shapeCardWithImageOnLeft\": \"Card with Image on the Left\",\r\n \"dxDiagram-shapeCardWithImageOnTop\": \"Card with Image on the Top\",\r\n \"dxDiagram-shapeCardWithImageOnRight\": \"Card with Image on the Right\",\r\n \"dxGantt-dialogTitle\": \"Title\",\r\n \"dxGantt-dialogStartTitle\": \"Start\",\r\n \"dxGantt-dialogEndTitle\": \"End\",\r\n \"dxGantt-dialogProgressTitle\": \"Progress\",\r\n \"dxGantt-dialogResourcesTitle\": \"Resources\",\r\n \"dxGantt-dialogResourceManagerTitle\": \"Resource Manager\",\r\n \"dxGantt-dialogTaskDetailsTitle\": \"Task Details\",\r\n \"dxGantt-dialogEditResourceListHint\": \"Edit Resource List\",\r\n \"dxGantt-dialogEditNoResources\": \"No resources\",\r\n \"dxGantt-dialogButtonAdd\": \"Add\",\r\n \"dxGantt-contextMenuNewTask\": \"New Task\",\r\n \"dxGantt-contextMenuNewSubtask\": \"New Subtask\",\r\n \"dxGantt-contextMenuDeleteTask\": \"Delete Task\",\r\n \"dxGantt-contextMenuDeleteDependency\": \"Delete Dependency\",\r\n \"dxGantt-dialogTaskDeleteConfirmation\": \"Deleting a task also deletes all its dependencies and subtasks. Are you sure you want to delete this task?\",\r\n \"dxGantt-dialogDependencyDeleteConfirmation\": \"Are you sure you want to delete the dependency from the task?\",\r\n \"dxGantt-dialogResourcesDeleteConfirmation\": \"Deleting a resource also deletes it from tasks to which this resource is assigned. Are you sure you want to delete these resources? Resources: {0}\",\r\n \"dxGantt-dialogConstraintCriticalViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationMessage\": \"The task you are attempting to move is linked to a second task by a dependency relation. How would you like to proceed?\",\r\n \"dxGantt-dialogCancelOperationMessage\": \"Cancel the operation\",\r\n \"dxGantt-dialogDeleteDependencyMessage\": \"Delete the dependency\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependencyMessage\": \"Move the task and keep the dependency\",\r\n \"dxGantt-dialogConstraintCriticalViolationSeveralTasksMessage\": \"The task you are attempting to move is linked to another tasks by dependency relations. This change would conflict with dependency rules. How would you like to proceed?\",\r\n \"dxGantt-dialogConstraintViolationSeveralTasksMessage\": \"The task you are attempting to move is linked to another tasks by dependency relations. How would you like to proceed?\",\r\n \"dxGantt-dialogDeleteDependenciesMessage\": \"Delete the dependency relations\",\r\n \"dxGantt-dialogMoveTaskAndKeepDependenciesMessage\": \"Move the task and keep the dependencies\",\r\n \"dxGantt-undo\": \"Undo\",\r\n \"dxGantt-redo\": \"Redo\",\r\n \"dxGantt-expandAll\": \"Expand All\",\r\n \"dxGantt-collapseAll\": \"Collapse All\",\r\n \"dxGantt-addNewTask\": \"Add New Task\",\r\n \"dxGantt-deleteSelectedTask\": \"Delete Selected Task\",\r\n \"dxGantt-zoomIn\": \"Zoom In\",\r\n \"dxGantt-zoomOut\": \"Zoom Out\",\r\n \"dxGantt-fullScreen\": \"Full Screen\",\r\n \"dxGantt-quarter\": \"Q{0}\",\r\n \"dxGantt-sortingAscendingText\": \"Sort Ascending\",\r\n \"dxGantt-sortingDescendingText\": \"Sort Descending\",\r\n \"dxGantt-sortingClearText\": \"Clear Sorting\",\r\n \"dxGantt-showResources\": \"Show Resources\",\r\n \"dxGantt-showDependencies\": \"Show Dependencies\",\r\n \"dxGantt-dialogStartDateValidation\": \"Start date must be after {0}\",\r\n \"dxGantt-dialogEndDateValidation\": \"End date must be after {0}\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/message.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n format as stringFormat\r\n} from \"../core/utils/string\";\r\nimport {\r\n humanize\r\n} from \"../core/utils/inflector\";\r\nimport coreLocalization from \"./core\";\r\nimport {\r\n defaultMessages\r\n} from \"./default_messages\";\r\nvar baseDictionary = extend(true, {}, defaultMessages);\r\nvar getDataByLocale = (localeData, locale) => localeData[locale] || {};\r\nvar newMessages = {};\r\nvar messageLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n _dictionary: baseDictionary,\r\n load: function(messages) {\r\n extend(true, this._dictionary, messages)\r\n },\r\n _localizablePrefix: \"@\",\r\n setup: function(localizablePrefix) {\r\n this._localizablePrefix = localizablePrefix\r\n },\r\n localizeString: function(text) {\r\n var that = this;\r\n var regex = new RegExp(\"(^|[^a-zA-Z_0-9\" + that._localizablePrefix + \"-]+)(\" + that._localizablePrefix + \"{1,2})([a-zA-Z_0-9-]+)\", \"g\");\r\n var escapeString = that._localizablePrefix + that._localizablePrefix;\r\n return text.replace(regex, (str, prefix, escape, localizationKey) => {\r\n var defaultResult = that._localizablePrefix + localizationKey;\r\n var result;\r\n if (escape !== escapeString) {\r\n result = that.format(localizationKey)\r\n }\r\n if (!result) {\r\n newMessages[localizationKey] = humanize(localizationKey)\r\n }\r\n return prefix + (result || defaultResult)\r\n })\r\n },\r\n getMessagesByLocales: function() {\r\n return this._dictionary\r\n },\r\n getDictionary: function(onlyNew) {\r\n if (onlyNew) {\r\n return newMessages\r\n }\r\n return extend({}, newMessages, this.getMessagesByLocales()[coreLocalization.locale()])\r\n },\r\n getFormatter: function(key) {\r\n return this._getFormatterBase(key) || this._getFormatterBase(key, \"en\")\r\n },\r\n _getFormatterBase: function(key, locale) {\r\n var message = coreLocalization.getValueByClosestLocale(locale => getDataByLocale(this._dictionary, locale)[key]);\r\n if (message) {\r\n return function() {\r\n var args = 1 === arguments.length && Array.isArray(arguments[0]) ? arguments[0].slice(0) : Array.prototype.slice.call(arguments, 0);\r\n args.unshift(message);\r\n return stringFormat.apply(this, args)\r\n }\r\n }\r\n },\r\n format: function(key) {\r\n var formatter = this.getFormatter(key);\r\n var values = Array.prototype.slice.call(arguments, 1);\r\n return formatter && formatter.apply(this, values) || \"\"\r\n }\r\n});\r\nexport default messageLocalization;\r\n","/**\r\n * DevExtreme (esm/localization/open_xml_currency_format.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default (currencySymbol, accountingFormat) => {\r\n if (!accountingFormat) {\r\n return\r\n }\r\n var encodedCurrencySymbol = currencySymbol;\r\n if (\"string\" === typeof currencySymbol) {\r\n encodedCurrencySymbol = \"\";\r\n for (var i = 0; i < currencySymbol.length; i++) {\r\n if (\"$\" !== currencySymbol[i]) {\r\n encodedCurrencySymbol += \"\\\\\"\r\n }\r\n encodedCurrencySymbol += currencySymbol[i]\r\n }\r\n }\r\n var encodeSymbols = {\r\n \".00\": \"{0}\",\r\n \"'\": \"\\\\'\",\r\n \"\\\\(\": \"\\\\(\",\r\n \"\\\\)\": \"\\\\)\",\r\n \" \": \"\\\\ \",\r\n '\"': \""\",\r\n \"\\\\\\xa4\": encodedCurrencySymbol\r\n };\r\n var result = accountingFormat.split(\";\");\r\n for (var _i = 0; _i < result.length; _i++) {\r\n for (var symbol in encodeSymbols) {\r\n if (Object.prototype.hasOwnProperty.call(encodeSymbols, symbol)) {\r\n result[_i] = result[_i].replace(new RegExp(symbol, \"g\"), encodeSymbols[symbol])\r\n }\r\n }\r\n }\r\n return 2 === result.length ? result[0] + \"_);\" + result[1] : result[0]\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/cldr-data/accounting_formats.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport default {\r\n af: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"af-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n agq: \"#,##0.00\\xa4\",\r\n ak: \"\\xa4#,##0.00\",\r\n am: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ar: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-BH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-DZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-EH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-IQ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-JO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-KW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-LY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-MR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-OM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-PS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-QA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-SY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-TN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ar-YE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n as: \"\\xa4\\xa0#,##,##0.00\",\r\n asa: \"#,##0.00\\xa0\\xa4\",\r\n ast: \"#,##0.00\\xa0\\xa4\",\r\n az: \"#,##0.00\\xa0\\xa4\",\r\n \"az-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"az-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n bas: \"#,##0.00\\xa0\\xa4\",\r\n be: \"#,##0.00\\xa0\\xa4\",\r\n \"be-tarask\": \"#,##0.00\\xa0\\xa4\",\r\n bem: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bez: \"#,##0.00\\xa4\",\r\n bg: \"0.00\\xa0\\xa4;(0.00\\xa0\\xa4)\",\r\n bm: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n bn: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"bn-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n bo: \"\\xa4\\xa0#,##0.00\",\r\n \"bo-IN\": \"\\xa4\\xa0#,##0.00\",\r\n br: \"#,##0.00\\xa0\\xa4\",\r\n brx: \"\\xa4\\xa0#,##,##0.00\",\r\n bs: \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"bs-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n ca: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-AD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-ES-valencia\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-FR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ca-IT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ccp: \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n \"ccp-IN\": \"#,##,##0.00\\xa4;(#,##,##0.00\\xa4)\",\r\n ce: \"#,##0.00\\xa0\\xa4\",\r\n ceb: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n cgg: \"\\xa4#,##0.00\",\r\n chr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ckb: \"\\xa4\\xa0#,##0.00\",\r\n \"ckb-IR\": \"\\xa4\\xa0#,##0.00\",\r\n cs: \"#,##0.00\\xa0\\xa4\",\r\n cy: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n da: \"#,##0.00\\xa0\\xa4\",\r\n \"da-GL\": \"#,##0.00\\xa0\\xa4\",\r\n dav: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n de: \"#,##0.00\\xa0\\xa4\",\r\n \"de-AT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-IT\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LI\": \"#,##0.00\\xa0\\xa4\",\r\n \"de-LU\": \"#,##0.00\\xa0\\xa4\",\r\n dje: \"#,##0.00\\xa4\",\r\n doi: \"\\xa4#,##0.00\",\r\n dsb: \"#,##0.00\\xa0\\xa4\",\r\n dua: \"#,##0.00\\xa0\\xa4\",\r\n dyo: \"#,##0.00\\xa0\\xa4\",\r\n dz: \"\\xa4#,##,##0.00\",\r\n ebu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ee: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ee-TG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n el: \"#,##0.00\\xa0\\xa4\",\r\n \"el-CY\": \"#,##0.00\\xa0\\xa4\",\r\n en: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-001\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-150\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-AE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-AT\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-AU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-BI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-BZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CH\": \"\\xa4\\xa0#,##0.00;\\xa4-#,##0.00\",\r\n \"en-CK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-DK\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-DM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ER\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-FJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-FM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-GY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-IO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-JM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-KY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-LS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MV\": \"\\xa4\\xa0#,##0.00\",\r\n \"en-MW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NF\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NL\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"en-NR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-NZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PR\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-PW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-RW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SD\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SE\": \"#,##0.00\\xa0\\xa4\",\r\n \"en-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SH\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"en-SL\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SX\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-SZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TT\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TV\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-UM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VC\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VI\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-VU\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-WS\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZA\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZM\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"en-ZW\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n eo: \"\\xa4\\xa0#,##0.00\",\r\n es: \"#,##0.00\\xa0\\xa4\",\r\n \"es-419\": \"\\xa4#,##0.00\",\r\n \"es-AR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-BO\": \"\\xa4#,##0.00\",\r\n \"es-BR\": \"\\xa4#,##0.00\",\r\n \"es-BZ\": \"\\xa4#,##0.00\",\r\n \"es-CL\": \"\\xa4#,##0.00\",\r\n \"es-CO\": \"\\xa4#,##0.00\",\r\n \"es-CR\": \"\\xa4#,##0.00\",\r\n \"es-CU\": \"\\xa4#,##0.00\",\r\n \"es-DO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"es-EA\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-EC\": \"\\xa4#,##0.00\",\r\n \"es-GQ\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-GT\": \"\\xa4#,##0.00\",\r\n \"es-HN\": \"\\xa4#,##0.00\",\r\n \"es-IC\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-MX\": \"\\xa4#,##0.00\",\r\n \"es-NI\": \"\\xa4#,##0.00\",\r\n \"es-PA\": \"\\xa4#,##0.00\",\r\n \"es-PE\": \"\\xa4#,##0.00\",\r\n \"es-PH\": \"#,##0.00\\xa0\\xa4\",\r\n \"es-PR\": \"\\xa4#,##0.00\",\r\n \"es-PY\": \"\\xa4#,##0.00\",\r\n \"es-SV\": \"\\xa4#,##0.00\",\r\n \"es-US\": \"\\xa4#,##0.00\",\r\n \"es-UY\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"es-VE\": \"\\xa4#,##0.00\",\r\n et: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n eu: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ewo: \"#,##0.00\\xa0\\xa4\",\r\n fa: \"\\u200e\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n \"fa-AF\": \"\\xa4\\xa0#,##0.00;\\u200e(\\xa4\\xa0#,##0.00)\",\r\n ff: \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Adlm\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-BF\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-CM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GM\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-GW\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-LR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-MR\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NE\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-NG\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SL\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Adlm-SN\": \"\\xa4\\xa0#,##0.00\",\r\n \"ff-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-BF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-CM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GH\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GM\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GN\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-GW\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-LR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-MR\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NE\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-NG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ff-Latn-SL\": \"#,##0.00\\xa0\\xa4\",\r\n fi: \"#,##0.00\\xa0\\xa4\",\r\n fil: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n fo: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fo-DK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-BL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CI\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-CM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DJ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-DZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GP\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-HT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-KM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-ML\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MR\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-MU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-NE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-PM\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RE\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-RW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SC\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-SY\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TG\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-TN\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-VU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-WF\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"fr-YT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n fur: \"\\xa4\\xa0#,##0.00\",\r\n fy: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n ga: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ga-GB\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gl: \"#,##0.00\\xa0\\xa4\",\r\n gsw: \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-FR\": \"#,##0.00\\xa0\\xa4\",\r\n \"gsw-LI\": \"#,##0.00\\xa0\\xa4\",\r\n gu: \"\\xa4#,##,##0.00;(\\xa4#,##,##0.00)\",\r\n guz: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n gv: \"\\xa4#,##0.00\",\r\n ha: \"\\xa4\\xa0#,##0.00\",\r\n \"ha-GH\": \"\\xa4\\xa0#,##0.00\",\r\n \"ha-NE\": \"\\xa4\\xa0#,##0.00\",\r\n haw: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n he: \"#,##0.00\\xa0\\xa4\",\r\n hi: \"\\xa4#,##,##0.00\",\r\n \"hi-Latn\": \"\\xa4#,##,##0.00\",\r\n hr: \"#,##0.00\\xa0\\xa4\",\r\n \"hr-BA\": \"#,##0.00\\xa0\\xa4\",\r\n hsb: \"#,##0.00\\xa0\\xa4\",\r\n hu: \"#,##0.00\\xa0\\xa4\",\r\n hy: \"#,##0.00\\xa0\\xa4\",\r\n ia: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n id: \"\\xa4#,##0.00\",\r\n ig: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ii: \"\\xa4\\xa0#,##0.00\",\r\n is: \"#,##0.00\\xa0\\xa4\",\r\n it: \"#,##0.00\\xa0\\xa4\",\r\n \"it-CH\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-SM\": \"#,##0.00\\xa0\\xa4\",\r\n \"it-VA\": \"#,##0.00\\xa0\\xa4\",\r\n ja: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n jgo: \"\\xa4\\xa0#,##0.00\",\r\n jmc: \"\\xa4#,##0.00\",\r\n jv: \"\\xa4\\xa0#,##0.00\",\r\n ka: \"#,##0.00\\xa0\\xa4\",\r\n kab: \"#,##0.00\\xa4\",\r\n kam: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kde: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kea: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kgp: \"\\xa4\\xa0#,##0.00\",\r\n khq: \"#,##0.00\\xa4\",\r\n ki: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kk: \"#,##0.00\\xa0\\xa4\",\r\n kkj: \"\\xa4\\xa0#,##0.00\",\r\n kl: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n kln: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n km: \"#,##0.00\\xa4;(#,##0.00\\xa4)\",\r\n kn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ko: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ko-KP\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n kok: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ks: \"\\xa4#,##0.00\",\r\n \"ks-Arab\": \"\\xa4#,##0.00\",\r\n \"ks-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n ksb: \"#,##0.00\\xa4\",\r\n ksf: \"#,##0.00\\xa0\\xa4\",\r\n ksh: \"#,##0.00\\xa0\\xa4\",\r\n ku: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n kw: \"\\xa4#,##0.00\",\r\n ky: \"#,##0.00\\xa0\\xa4\",\r\n lag: \"\\xa4\\xa0#,##0.00\",\r\n lb: \"#,##0.00\\xa0\\xa4\",\r\n lg: \"#,##0.00\\xa4\",\r\n lkt: \"\\xa4\\xa0#,##0.00\",\r\n ln: \"#,##0.00\\xa0\\xa4\",\r\n \"ln-AO\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CF\": \"#,##0.00\\xa0\\xa4\",\r\n \"ln-CG\": \"#,##0.00\\xa0\\xa4\",\r\n lo: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n lrc: \"\\xa4\\xa0#,##0.00\",\r\n \"lrc-IQ\": \"\\xa4\\xa0#,##0.00\",\r\n lt: \"#,##0.00\\xa0\\xa4\",\r\n lu: \"#,##0.00\\xa4\",\r\n luo: \"#,##0.00\\xa4\",\r\n luy: \"\\xa4#,##0.00;\\xa4-\\xa0#,##0.00\",\r\n lv: \"#,##0.00\\xa0\\xa4\",\r\n mai: \"\\xa4\\xa0#,##0.00\",\r\n mas: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"mas-TZ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mer: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mfe: \"\\xa4\\xa0#,##0.00\",\r\n mg: \"\\xa4#,##0.00\",\r\n mgh: \"\\xa4\\xa0#,##0.00\",\r\n mgo: \"\\xa4\\xa0#,##0.00\",\r\n mi: \"\\xa4\\xa0#,##0.00\",\r\n mk: \"#,##0.00\\xa0\\xa4\",\r\n ml: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mn: \"\\xa4\\xa0#,##0.00\",\r\n mni: \"\\xa4\\xa0#,##0.00\",\r\n \"mni-Beng\": \"\\xa4\\xa0#,##0.00\",\r\n mr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ms: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-BN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ms-ID\": \"\\xa4#,##0.00\",\r\n \"ms-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n mt: \"\\xa4#,##0.00\",\r\n mua: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n my: \"\\xa4\\xa0#,##0.00\",\r\n mzn: \"\\xa4\\xa0#,##0.00\",\r\n naq: \"\\xa4#,##0.00\",\r\n nb: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nb-SJ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nd: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nds: \"\\xa4\\xa0#,##0.00\",\r\n \"nds-NL\": \"\\xa4\\xa0#,##0.00\",\r\n ne: \"\\xa4\\xa0#,##,##0.00\",\r\n \"ne-IN\": \"\\xa4\\xa0#,##,##0.00\",\r\n nl: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-AW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BE\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-BQ\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-CW\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SR\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n \"nl-SX\": \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nmg: \"#,##0.00\\xa0\\xa4\",\r\n nn: \"#,##0.00\\xa0\\xa4\",\r\n nnh: \"\\xa4\\xa0#,##0.00\",\r\n no: \"\\xa4\\xa0#,##0.00;(\\xa4\\xa0#,##0.00)\",\r\n nus: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n nyn: \"\\xa4#,##0.00\",\r\n om: \"\\xa4#,##0.00\",\r\n \"om-KE\": \"\\xa4#,##0.00\",\r\n or: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n os: \"\\xa4\\xa0#,##0.00\",\r\n \"os-RU\": \"\\xa4\\xa0#,##0.00\",\r\n pa: \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"pa-Guru\": \"\\xa4\\xa0#,##0.00\",\r\n pcm: \"\\xa4#,##0.00\",\r\n pl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n ps: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ps-PK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n pt: \"\\xa4\\xa0#,##0.00\",\r\n \"pt-AO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CH\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-CV\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GQ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-GW\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-LU\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MO\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-MZ\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-PT\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-ST\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"pt-TL\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n qu: \"\\xa4\\xa0#,##0.00\",\r\n \"qu-BO\": \"\\xa4\\xa0#,##0.00\",\r\n \"qu-EC\": \"\\xa4\\xa0#,##0.00\",\r\n rm: \"#,##0.00\\xa0\\xa4\",\r\n rn: \"#,##0.00\\xa4\",\r\n ro: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"ro-MD\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n rof: \"\\xa4#,##0.00\",\r\n ru: \"#,##0.00\\xa0\\xa4\",\r\n \"ru-BY\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KG\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-KZ\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-MD\": \"#,##0.00\\xa0\\xa4\",\r\n \"ru-UA\": \"#,##0.00\\xa0\\xa4\",\r\n rw: \"\\xa4\\xa0#,##0.00\",\r\n rwk: \"#,##0.00\\xa4\",\r\n sa: \"\\xa4\\xa0#,##0.00\",\r\n sah: \"#,##0.00\\xa0\\xa4\",\r\n saq: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sat: \"\\xa4\\xa0#,##0.00\",\r\n \"sat-Olck\": \"\\xa4\\xa0#,##0.00\",\r\n sbp: \"#,##0.00\\xa4\",\r\n sc: \"#,##0.00\\xa0\\xa4\",\r\n sd: \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"sd-Deva\": \"\\xa4\\xa0#,##0.00\",\r\n se: \"#,##0.00\\xa0\\xa4\",\r\n \"se-FI\": \"#,##0.00\\xa0\\xa4\",\r\n \"se-SE\": \"#,##0.00\\xa0\\xa4\",\r\n seh: \"#,##0.00\\xa4\",\r\n ses: \"#,##0.00\\xa4\",\r\n sg: \"\\xa4#,##0.00;\\xa4-#,##0.00\",\r\n shi: \"#,##0.00\\xa4\",\r\n \"shi-Latn\": \"#,##0.00\\xa4\",\r\n \"shi-Tfng\": \"#,##0.00\\xa4\",\r\n si: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sk: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sl: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n smn: \"#,##0.00\\xa0\\xa4\",\r\n sn: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n so: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-DJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-ET\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"so-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n sq: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-MK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sq-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n sr: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Cyrl-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-BA\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-ME\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n \"sr-Latn-XK\": \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n su: \"\\xa4#,##0.00\",\r\n \"su-Latn\": \"\\xa4#,##0.00\",\r\n sv: \"#,##0.00\\xa0\\xa4\",\r\n \"sv-AX\": \"#,##0.00\\xa0\\xa4\",\r\n \"sv-FI\": \"#,##0.00\\xa0\\xa4\",\r\n sw: \"\\xa4\\xa0#,##0.00\",\r\n \"sw-CD\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-KE\": \"\\xa4\\xa0#,##0.00\",\r\n \"sw-UG\": \"\\xa4\\xa0#,##0.00\",\r\n ta: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-LK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-MY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ta-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n te: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n teo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"teo-KE\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tg: \"#,##0.00\\xa0\\xa4\",\r\n th: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n ti: \"\\xa4#,##0.00\",\r\n \"ti-ER\": \"\\xa4#,##0.00\",\r\n tk: \"#,##0.00\\xa0\\xa4\",\r\n to: \"\\xa4\\xa0#,##0.00\",\r\n tr: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"tr-CY\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n tt: \"#,##0.00\\xa0\\xa4\",\r\n twq: \"#,##0.00\\xa4\",\r\n tzm: \"#,##0.00\\xa0\\xa4\",\r\n ug: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uk: \"#,##0.00\\xa0\\xa4\",\r\n und: \"\\xa4\\xa0#,##0.00\",\r\n ur: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"ur-IN\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n uz: \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Arab\": \"\\xa4\\xa0#,##0.00\",\r\n \"uz-Cyrl\": \"#,##0.00\\xa0\\xa4\",\r\n \"uz-Latn\": \"#,##0.00\\xa0\\xa4\",\r\n vai: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Latn\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"vai-Vaii\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n vi: \"#,##0.00\\xa0\\xa4\",\r\n vun: \"\\xa4#,##0.00\",\r\n wae: \"\\xa4\\xa0#,##0.00\",\r\n wo: \"\\xa4\\xa0#,##0.00\",\r\n xh: \"\\xa4#,##0.00\",\r\n xog: \"#,##0.00\\xa0\\xa4\",\r\n yav: \"#,##0.00\\xa0\\xa4;(#,##0.00\\xa0\\xa4)\",\r\n yi: \"\\xa4\\xa0#,##0.00\",\r\n yo: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yo-BJ\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n yrl: \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-CO\": \"\\xa4\\xa0#,##0.00\",\r\n \"yrl-VE\": \"\\xa4\\xa0#,##0.00\",\r\n yue: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"yue-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zgh: \"#,##0.00\\xa4\",\r\n zh: \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hans-SG\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-HK\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n \"zh-Hant-MO\": \"\\xa4#,##0.00;(\\xa4#,##0.00)\",\r\n zu: \"\\xa4#,##0.00;(\\xa4#,##0.00)\"\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/intl/number.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dxConfig from \"../../core/config\";\r\nimport localizationCoreUtils from \"../core\";\r\nimport openXmlCurrencyFormat from \"../open_xml_currency_format\";\r\nimport accountingFormats from \"../cldr-data/accounting_formats\";\r\nvar CURRENCY_STYLES = [\"standard\", \"accounting\"];\r\nvar MAX_FRACTION_DIGITS = 20;\r\nvar detectCurrencySymbolRegex = /([^\\s0]+)?(\\s*)0*[.,]*0*(\\s*)([^\\s0]+)?/;\r\nvar formattersCache = {};\r\nvar getFormatter = format => {\r\n var key = localizationCoreUtils.locale() + \"/\" + JSON.stringify(format);\r\n if (!formattersCache[key]) {\r\n formattersCache[key] = new Intl.NumberFormat(localizationCoreUtils.locale(), format).format\r\n }\r\n return formattersCache[key]\r\n};\r\nvar getCurrencyFormatter = currency => new Intl.NumberFormat(localizationCoreUtils.locale(), {\r\n style: \"currency\",\r\n currency: currency\r\n});\r\nexport default {\r\n engine: function() {\r\n return \"intl\"\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n return getFormatter(this._normalizeFormatConfig(format, formatConfig, value))(value)\r\n },\r\n _normalizeFormatConfig: function(format, formatConfig, value) {\r\n var config;\r\n if (\"decimal\" === format) {\r\n var fractionDigits = String(value).split(\".\")[1];\r\n config = {\r\n minimumIntegerDigits: formatConfig.precision || void 0,\r\n useGrouping: false,\r\n maximumFractionDigits: fractionDigits && fractionDigits.length,\r\n round: value < 0 ? \"ceil\" : \"floor\"\r\n }\r\n } else {\r\n config = this._getPrecisionConfig(formatConfig.precision)\r\n }\r\n if (\"percent\" === format) {\r\n config.style = \"percent\"\r\n } else if (\"currency\" === format) {\r\n var _formatConfig$useCurr;\r\n var useAccountingStyle = null !== (_formatConfig$useCurr = formatConfig.useCurrencyAccountingStyle) && void 0 !== _formatConfig$useCurr ? _formatConfig$useCurr : dxConfig().defaultUseCurrencyAccountingStyle;\r\n config.style = \"currency\";\r\n config.currency = formatConfig.currency || dxConfig().defaultCurrency;\r\n config.currencySign = CURRENCY_STYLES[+useAccountingStyle]\r\n }\r\n return config\r\n },\r\n _getPrecisionConfig: function(precision) {\r\n var config;\r\n if (null === precision) {\r\n config = {\r\n minimumFractionDigits: 0,\r\n maximumFractionDigits: MAX_FRACTION_DIGITS\r\n }\r\n } else {\r\n config = {\r\n minimumFractionDigits: precision || 0,\r\n maximumFractionDigits: precision || 0\r\n }\r\n }\r\n return config\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (\"default\" === _format.currency) {\r\n _format.currency = dxConfig().defaultCurrency\r\n }\r\n if (!_format || \"function\" !== typeof _format && !_format.type && !_format.formatter) {\r\n return getFormatter(_format)(value)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getCurrencySymbolInfo: function(currency) {\r\n var formatter = getCurrencyFormatter(currency);\r\n return this._extractCurrencySymbolInfo(formatter.format(0))\r\n },\r\n _extractCurrencySymbolInfo: function(currencyValueString) {\r\n var match = detectCurrencySymbolRegex.exec(currencyValueString) || [];\r\n var position = match[1] ? \"before\" : \"after\";\r\n var symbol = match[1] || match[4] || \"\";\r\n var delimiter = match[2] || match[3] || \"\";\r\n return {\r\n position: position,\r\n symbol: symbol,\r\n delimiter: delimiter\r\n }\r\n },\r\n getCurrencySymbol: function(currency) {\r\n if (!currency) {\r\n currency = dxConfig().defaultCurrency\r\n }\r\n var symbolInfo = this._getCurrencySymbolInfo(currency);\r\n return {\r\n symbol: symbolInfo.symbol\r\n }\r\n },\r\n getOpenXmlCurrencyFormat: function(currency) {\r\n var targetCurrency = currency || dxConfig().defaultCurrency;\r\n var currencySymbol = this._getCurrencySymbolInfo(targetCurrency).symbol;\r\n var closestAccountingFormat = localizationCoreUtils.getValueByClosestLocale(locale => accountingFormats[locale]);\r\n return openXmlCurrencyFormat(currencySymbol, closestAccountingFormat)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/number.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dependencyInjector from \"../core/utils/dependency_injector\";\r\nimport {\r\n escapeRegExp\r\n} from \"../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n getFormatter\r\n} from \"./ldml/number\";\r\nimport config from \"../core/config\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n toFixed\r\n} from \"./utils\";\r\nimport currencyLocalization from \"./currency\";\r\nimport intlNumberLocalization from \"./intl/number\";\r\nvar hasIntl = \"undefined\" !== typeof Intl;\r\nvar MAX_LARGE_NUMBER_POWER = 4;\r\nvar DECIMAL_BASE = 10;\r\nvar NUMERIC_FORMATS = [\"currency\", \"fixedpoint\", \"exponential\", \"percent\", \"decimal\"];\r\nvar LargeNumberFormatPostfixes = {\r\n 1: \"K\",\r\n 2: \"M\",\r\n 3: \"B\",\r\n 4: \"T\"\r\n};\r\nvar LargeNumberFormatPowers = {\r\n largenumber: \"auto\",\r\n thousands: 1,\r\n millions: 2,\r\n billions: 3,\r\n trillions: 4\r\n};\r\nvar numberLocalization = dependencyInjector({\r\n engine: function() {\r\n return \"base\"\r\n },\r\n numericFormats: NUMERIC_FORMATS,\r\n defaultLargeNumberFormatPostfixes: LargeNumberFormatPostfixes,\r\n _parseNumberFormatString: function(formatType) {\r\n var formatObject = {};\r\n if (!formatType || \"string\" !== typeof formatType) {\r\n return\r\n }\r\n var formatList = formatType.toLowerCase().split(\" \");\r\n each(formatList, (index, value) => {\r\n if (NUMERIC_FORMATS.includes(value)) {\r\n formatObject.formatType = value\r\n } else if (value in LargeNumberFormatPowers) {\r\n formatObject.power = LargeNumberFormatPowers[value]\r\n }\r\n });\r\n if (formatObject.power && !formatObject.formatType) {\r\n formatObject.formatType = \"fixedpoint\"\r\n }\r\n if (formatObject.formatType) {\r\n return formatObject\r\n }\r\n },\r\n _calculateNumberPower: function(value, base, minPower, maxPower) {\r\n var number = Math.abs(value);\r\n var power = 0;\r\n if (number > 1) {\r\n while (number && number >= base && (void 0 === maxPower || power < maxPower)) {\r\n power++;\r\n number /= base\r\n }\r\n } else if (number > 0 && number < 1) {\r\n while (number < 1 && (void 0 === minPower || power > minPower)) {\r\n power--;\r\n number *= base\r\n }\r\n }\r\n return power\r\n },\r\n _getNumberByPower: function(number, power, base) {\r\n var result = number;\r\n while (power > 0) {\r\n result /= base;\r\n power--\r\n }\r\n while (power < 0) {\r\n result *= base;\r\n power++\r\n }\r\n return result\r\n },\r\n _formatNumber: function(value, formatObject, formatConfig) {\r\n if (\"auto\" === formatObject.power) {\r\n formatObject.power = this._calculateNumberPower(value, 1e3, 0, MAX_LARGE_NUMBER_POWER)\r\n }\r\n if (formatObject.power) {\r\n value = this._getNumberByPower(value, formatObject.power, 1e3)\r\n }\r\n var powerPostfix = this.defaultLargeNumberFormatPostfixes[formatObject.power] || \"\";\r\n var result = this._formatNumberCore(value, formatObject.formatType, formatConfig);\r\n result = result.replace(/(\\d|.$)(\\D*)$/, \"$1\" + powerPostfix + \"$2\");\r\n return result\r\n },\r\n _formatNumberExponential: function(value, formatConfig) {\r\n var power = this._calculateNumberPower(value, DECIMAL_BASE);\r\n var number = this._getNumberByPower(value, power, DECIMAL_BASE);\r\n if (void 0 === formatConfig.precision) {\r\n formatConfig.precision = 1\r\n }\r\n if (number.toFixed(formatConfig.precision || 0) >= DECIMAL_BASE) {\r\n power++;\r\n number /= DECIMAL_BASE\r\n }\r\n var powString = (power >= 0 ? \"+\" : \"\") + power.toString();\r\n return this._formatNumberCore(number, \"fixedpoint\", formatConfig) + \"E\" + powString\r\n },\r\n _addZeroes: function(value, precision) {\r\n var multiplier = Math.pow(10, precision);\r\n var sign = value < 0 ? \"-\" : \"\";\r\n value = (Math.abs(value) * multiplier >>> 0) / multiplier;\r\n var result = value.toString();\r\n while (result.length < precision) {\r\n result = \"0\" + result\r\n }\r\n return sign + result\r\n },\r\n _addGroupSeparators: function(value) {\r\n var parts = value.toString().split(\".\");\r\n return parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, config().thousandsSeparator) + (parts[1] ? config().decimalSeparator + parts[1] : \"\")\r\n },\r\n _formatNumberCore: function(value, format, formatConfig) {\r\n if (\"exponential\" === format) {\r\n return this._formatNumberExponential(value, formatConfig)\r\n }\r\n if (\"decimal\" !== format && null !== formatConfig.precision) {\r\n formatConfig.precision = formatConfig.precision || 0\r\n }\r\n if (\"percent\" === format) {\r\n value *= 100\r\n }\r\n if (void 0 !== formatConfig.precision) {\r\n if (\"decimal\" === format) {\r\n value = this._addZeroes(value, formatConfig.precision)\r\n } else {\r\n value = null === formatConfig.precision ? value.toPrecision() : toFixed(value, formatConfig.precision)\r\n }\r\n }\r\n if (\"decimal\" !== format) {\r\n value = this._addGroupSeparators(value)\r\n } else {\r\n value = value.toString().replace(\".\", config().decimalSeparator)\r\n }\r\n if (\"percent\" === format) {\r\n value += \"%\"\r\n }\r\n return value\r\n },\r\n _normalizeFormat: function(format) {\r\n if (!format) {\r\n return {}\r\n }\r\n if (\"function\" === typeof format) {\r\n return format\r\n }\r\n if (!isPlainObject(format)) {\r\n format = {\r\n type: format\r\n }\r\n }\r\n return format\r\n },\r\n _getSeparators: function() {\r\n return {\r\n decimalSeparator: this.getDecimalSeparator(),\r\n thousandsSeparator: this.getThousandsSeparator()\r\n }\r\n },\r\n getThousandsSeparator: function() {\r\n return this.format(1e4, \"fixedPoint\")[2]\r\n },\r\n getDecimalSeparator: function() {\r\n return this.format(1.2, {\r\n type: \"fixedPoint\",\r\n precision: 1\r\n })[1]\r\n },\r\n convertDigits: function(value, toStandard) {\r\n var digits = this.format(90, \"decimal\");\r\n if (\"string\" !== typeof value || \"0\" === digits[1]) {\r\n return value\r\n }\r\n var fromFirstDigit = toStandard ? digits[1] : \"0\";\r\n var toFirstDigit = toStandard ? \"0\" : digits[1];\r\n var fromLastDigit = toStandard ? digits[0] : \"9\";\r\n var regExp = new RegExp(\"[\" + fromFirstDigit + \"-\" + fromLastDigit + \"]\", \"g\");\r\n return value.replace(regExp, char => String.fromCharCode(char.charCodeAt(0) + (toFirstDigit.charCodeAt(0) - fromFirstDigit.charCodeAt(0))))\r\n },\r\n getNegativeEtalonRegExp: function(format) {\r\n var separators = this._getSeparators();\r\n var digitalRegExp = new RegExp(\"[0-9\" + escapeRegExp(separators.decimalSeparator + separators.thousandsSeparator) + \"]+\", \"g\");\r\n var negativeEtalon = this.format(-1, format).replace(digitalRegExp, \"1\");\r\n [\"\\\\\", \"(\", \")\", \"[\", \"]\", \"*\", \"+\", \"$\", \"^\", \"?\", \"|\", \"{\", \"}\"].forEach(char => {\r\n negativeEtalon = negativeEtalon.replace(new RegExp(\"\\\\\".concat(char), \"g\"), \"\\\\\".concat(char))\r\n });\r\n negativeEtalon = negativeEtalon.replace(/ /g, \"\\\\s\");\r\n negativeEtalon = negativeEtalon.replace(/1/g, \".*\");\r\n return new RegExp(negativeEtalon, \"g\")\r\n },\r\n getSign: function(text, format) {\r\n if (!format) {\r\n if (\"-\" === text.replace(/[^0-9-]/g, \"\").charAt(0)) {\r\n return -1\r\n }\r\n return 1\r\n }\r\n var negativeEtalon = this.getNegativeEtalonRegExp(format);\r\n return text.match(negativeEtalon) ? -1 : 1\r\n },\r\n format: function(value, _format) {\r\n if (\"number\" !== typeof value) {\r\n return value\r\n }\r\n if (\"number\" === typeof _format) {\r\n return value\r\n }\r\n _format = _format && _format.formatter || _format;\r\n if (\"function\" === typeof _format) {\r\n return _format(value)\r\n }\r\n _format = this._normalizeFormat(_format);\r\n if (!_format.type) {\r\n _format.type = \"decimal\"\r\n }\r\n var numberConfig = this._parseNumberFormatString(_format.type);\r\n if (!numberConfig) {\r\n var formatterConfig = this._getSeparators();\r\n formatterConfig.unlimitedIntegerDigits = _format.unlimitedIntegerDigits;\r\n return this.convertDigits(getFormatter(_format.type, formatterConfig)(value))\r\n }\r\n return this._formatNumber(value, numberConfig, _format)\r\n },\r\n parse: function(text, format) {\r\n if (!text) {\r\n return\r\n }\r\n if (format && format.parser) {\r\n return format.parser(text)\r\n }\r\n text = this.convertDigits(text, true);\r\n if (format && \"string\" !== typeof format) {\r\n errors.log(\"W0011\")\r\n }\r\n var decimalSeparator = this.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var cleanedText = text.replace(regExp, \"\").replace(decimalSeparator, \".\").replace(/\\.$/g, \"\");\r\n if (\".\" === cleanedText || \"\" === cleanedText) {\r\n return null\r\n }\r\n if (this._calcSignificantDigits(cleanedText) > 15) {\r\n return NaN\r\n }\r\n var parsed = +cleanedText * this.getSign(text, format);\r\n format = this._normalizeFormat(format);\r\n var formatConfig = this._parseNumberFormatString(format.type);\r\n var power = null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.power;\r\n if (power) {\r\n if (\"auto\" === power) {\r\n var match = text.match(/\\d(K|M|B|T)/);\r\n if (match) {\r\n power = Object.keys(LargeNumberFormatPostfixes).find(power => LargeNumberFormatPostfixes[power] === match[1])\r\n }\r\n }\r\n parsed *= Math.pow(10, 3 * power)\r\n }\r\n if (\"percent\" === (null === formatConfig || void 0 === formatConfig ? void 0 : formatConfig.formatType)) {\r\n parsed /= 100\r\n }\r\n return parsed\r\n },\r\n _calcSignificantDigits: function(text) {\r\n var [integer, fractional] = text.split(\".\");\r\n var calcDigitsAfterLeadingZeros = digits => {\r\n var index = -1;\r\n for (var i = 0; i < digits.length; i++) {\r\n if (\"0\" !== digits[i]) {\r\n index = i;\r\n break\r\n }\r\n }\r\n return index > -1 ? digits.length - index : 0\r\n };\r\n var result = 0;\r\n if (integer) {\r\n result += calcDigitsAfterLeadingZeros(integer.split(\"\"))\r\n }\r\n if (fractional) {\r\n result += calcDigitsAfterLeadingZeros(fractional.split(\"\").reverse())\r\n }\r\n return result\r\n }\r\n});\r\nnumberLocalization.inject(currencyLocalization);\r\nif (hasIntl) {\r\n numberLocalization.inject(intlNumberLocalization)\r\n}\r\nexport default numberLocalization;\r\n","/**\r\n * DevExtreme (esm/localization/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n sign,\r\n multiplyInExponentialForm\r\n} from \"../core/utils/math\";\r\nvar DECIMAL_BASE = 10;\r\n\r\nfunction roundByAbs(value) {\r\n var valueSign = sign(value);\r\n return valueSign * Math.round(Math.abs(value))\r\n}\r\n\r\nfunction adjustValue(value, precision) {\r\n var precisionMultiplier = Math.pow(DECIMAL_BASE, precision);\r\n var intermediateValue = multiplyInExponentialForm(value, precision);\r\n return roundByAbs(intermediateValue) / precisionMultiplier\r\n}\r\nexport function toFixed(value, precision) {\r\n var valuePrecision = precision || 0;\r\n var adjustedValue = valuePrecision > 0 ? adjustValue(...arguments) : value;\r\n return adjustedValue.toFixed(valuePrecision)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_context.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createContext\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var ConfigContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/core/inferno_renderer.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n render as _render\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffectHost,\r\n hydrate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createElement as _createElement\r\n} from \"inferno-create-element\";\r\nimport domAdapter from \"./dom_adapter\";\r\nimport {\r\n cleanDataRecursive\r\n} from \"./element_data\";\r\nimport injector from \"./utils/dependency_injector\";\r\nvar remove = element => {\r\n var {\r\n parentNode: parentNode\r\n } = element;\r\n if (parentNode) {\r\n cleanDataRecursive(element);\r\n parentNode.$V = element.$V;\r\n _render(null, parentNode);\r\n parentNode.appendChild(element);\r\n element.innerHTML = \"\";\r\n delete parentNode.$V\r\n }\r\n delete element.$V\r\n};\r\nexport default injector({\r\n createElement: (component, props) => _createElement(component, props),\r\n remove: remove,\r\n onAfterRender: () => {\r\n InfernoEffectHost.callEffects()\r\n },\r\n onPreRender: () => {\r\n InfernoEffectHost.lock()\r\n },\r\n render: (component, props, container, replace) => {\r\n if (!replace) {\r\n var {\r\n parentNode: parentNode\r\n } = container;\r\n var nextNode = null === container || void 0 === container ? void 0 : container.nextSibling;\r\n var rootNode = domAdapter.createElement(\"div\");\r\n rootNode.appendChild(container);\r\n var mountNode = domAdapter.createDocumentFragment().appendChild(rootNode);\r\n var vNodeAlreadyExists = !!container.$V;\r\n vNodeAlreadyExists && remove(container);\r\n hydrate(_createElement(component, props), mountNode);\r\n container.$V = mountNode.$V;\r\n if (parentNode) {\r\n parentNode.insertBefore(container, nextNode)\r\n }\r\n } else {\r\n _render(_createElement(component, props), container)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/renovation/utils/shallow_equals.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var shallowEquals = (firstObject, secondObject) => {\r\n if (Object.keys(firstObject).length !== Object.keys(secondObject).length) {\r\n return false\r\n }\r\n return Object.keys(firstObject).every(key => firstObject[key] === secondObject[key])\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/utils/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nexport var removeDifferentElements = ($children, $newChildren) => {\r\n each($newChildren, (__, element) => {\r\n var hasComponent = false;\r\n each($children, (_, oldElement) => {\r\n if (element === oldElement) {\r\n hasComponent = true\r\n }\r\n });\r\n if (!hasComponent && element.parentNode) {\r\n element.parentNode.removeChild(element)\r\n }\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/template_wrapper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n InfernoComponent,\r\n InfernoEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n findDOMfromVNode\r\n} from \"inferno\";\r\nimport {\r\n shallowEquals\r\n} from \"../../utils/shallow_equals\";\r\nimport {\r\n replaceWith\r\n} from \"../../../core/utils/dom\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n removeDifferentElements\r\n} from \"../utils/utils\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nexport class TemplateWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.renderTemplate = this.renderTemplate.bind(this)\r\n }\r\n renderTemplate() {\r\n var _this$props$model;\r\n var node = findDOMfromVNode(this.$LI, true);\r\n var parentNode = node.parentNode;\r\n var $parent = $(parentNode);\r\n var $children = $parent.contents();\r\n var {\r\n data: data,\r\n index: index\r\n } = null !== (_this$props$model = this.props.model) && void 0 !== _this$props$model ? _this$props$model : {\r\n data: {}\r\n };\r\n if (data) {\r\n Object.keys(data).forEach(name => {\r\n if (data[name] && domAdapter.isNode(data[name])) {\r\n data[name] = getPublicElement($(data[name]))\r\n }\r\n })\r\n }\r\n var $result = $(this.props.template.render(_extends({\r\n container: getPublicElement($parent),\r\n transclude: this.props.transclude\r\n }, {\r\n renovated: this.props.renovated\r\n }, !this.props.transclude ? {\r\n model: data\r\n } : {}, !this.props.transclude && Number.isFinite(index) ? {\r\n index: index\r\n } : {})));\r\n replaceWith($(node), $result);\r\n return () => {\r\n removeDifferentElements($children, $parent.contents());\r\n parentNode.appendChild(node)\r\n }\r\n }\r\n shouldComponentUpdate(nextProps) {\r\n var {\r\n model: model,\r\n template: template\r\n } = this.props;\r\n var {\r\n model: nextModel,\r\n template: nextTemplate\r\n } = nextProps;\r\n var sameTemplate = template === nextTemplate;\r\n if (!sameTemplate) {\r\n return true\r\n }\r\n if (isDefined(model) && isDefined(nextModel)) {\r\n var {\r\n data: data,\r\n index: index\r\n } = model;\r\n var {\r\n data: nextData,\r\n index: nextIndex\r\n } = nextModel;\r\n return index !== nextIndex || !shallowEquals(data, nextData)\r\n }\r\n var sameModel = model === nextModel;\r\n return !sameModel\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.renderTemplate, [this.props.template, this.props.model])]\r\n }\r\n updateEffects() {\r\n this._effects[0].update([this.props.template, this.props.model])\r\n }\r\n componentWillUnmount() {}\r\n render() {\r\n return null\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/utils/update_props_immutable.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isPlainObject\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getPathParts\r\n} from \"../../../core/utils/data\";\r\n\r\nfunction cloneObjectValue(value) {\r\n return Array.isArray(value) ? [...value] : _extends({}, value)\r\n}\r\n\r\nfunction cloneObjectProp(value, prevValue, fullNameParts) {\r\n var result = fullNameParts.length > 0 && prevValue && value !== prevValue ? cloneObjectValue(prevValue) : cloneObjectValue(value);\r\n var name = fullNameParts[0];\r\n if (fullNameParts.length > 1) {\r\n result[name] = cloneObjectProp(value[name], null === prevValue || void 0 === prevValue ? void 0 : prevValue[name], fullNameParts.slice(1))\r\n } else if (name) {\r\n if (isPlainObject(value[name])) {\r\n result[name] = cloneObjectValue(value[name])\r\n } else {\r\n result[name] = value[name]\r\n }\r\n }\r\n return result\r\n}\r\nexport function updatePropsImmutable(props, option, name, fullName) {\r\n var currentPropsValue = option[name];\r\n var prevPropsValue = props[name];\r\n var result = props;\r\n if (isPlainObject(currentPropsValue) || name !== fullName && Array.isArray(currentPropsValue)) {\r\n result[name] = cloneObjectProp(currentPropsValue, prevPropsValue, getPathParts(fullName).slice(1))\r\n } else {\r\n result[name] = currentPropsValue\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/common/component.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n createRef\r\n} from \"inferno\";\r\nimport KeyboardProcessor from \"../../../events/core/keyboard_processor\";\r\nimport renderer from \"../../../core/inferno_renderer\";\r\nimport $ from \"../../../core/renderer\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nimport DOMComponent from \"../../../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n isDefined,\r\n isRenderer,\r\n isString\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n TemplateWrapper\r\n} from \"./template_wrapper\";\r\nimport {\r\n updatePropsImmutable\r\n} from \"../utils/update_props_immutable\";\r\nvar setDefaultOptionValue = (options, defaultValueGetter) => name => {\r\n if (Object.prototype.hasOwnProperty.call(options, name) && void 0 === options[name]) {\r\n options[name] = defaultValueGetter(name)\r\n }\r\n};\r\nexport default class ComponentWrapper extends DOMComponent {\r\n constructor(element, options) {\r\n super(element, options);\r\n this._shouldRaiseContentReady = false;\r\n this.validateKeyDownHandler()\r\n }\r\n get _propsInfo() {\r\n return {\r\n allowNull: [],\r\n twoWay: [],\r\n elements: [],\r\n templates: [],\r\n props: []\r\n }\r\n }\r\n validateKeyDownHandler() {\r\n var supportedKeyNames = this.getSupportedKeyNames();\r\n var hasComponentDefaultKeyHandlers = supportedKeyNames.length > 0;\r\n var hasComponentKeyDownMethod = \"function\" === typeof this._viewComponent.prototype.keyDown;\r\n if (hasComponentDefaultKeyHandlers && !hasComponentKeyDownMethod) {\r\n throw Error(\"Component's declaration must have 'keyDown' method.\")\r\n }\r\n }\r\n get viewRef() {\r\n var _this$_viewRef;\r\n return null === (_this$_viewRef = this._viewRef) || void 0 === _this$_viewRef ? void 0 : _this$_viewRef.current\r\n }\r\n _checkContentReadyOption(fullName) {\r\n var contentReadyOptions = this._getContentReadyOptions().reduce((options, name) => {\r\n options[name] = true;\r\n return options\r\n }, {});\r\n this._checkContentReadyOption = optionName => !!contentReadyOptions[optionName];\r\n return this._checkContentReadyOption(fullName)\r\n }\r\n _getContentReadyOptions() {\r\n return [\"rtlEnabled\"]\r\n }\r\n _fireContentReady() {\r\n this._actionsMap.onContentReady({})\r\n }\r\n _getDefaultOptions() {\r\n return extend(true, super._getDefaultOptions(), this._viewComponent.defaultProps, this._propsInfo.twoWay.reduce((options, _ref) => {\r\n var [name, defaultName, eventName] = _ref;\r\n return _extends({}, options, {\r\n [name]: this._viewComponent.defaultProps[defaultName],\r\n [eventName]: value => this.option(name, value)\r\n })\r\n }, {}), this._propsInfo.templates.reduce((options, name) => _extends({}, options, {\r\n [name]: null\r\n }), {}))\r\n }\r\n _getUnwrappedOption() {\r\n var unwrappedProps = {};\r\n Object.keys(this.option()).forEach(key => {\r\n unwrappedProps[key] = this.option(key)\r\n });\r\n return unwrappedProps\r\n }\r\n _initializeComponent() {\r\n var _this$_templateManage;\r\n super._initializeComponent();\r\n null === (_this$_templateManage = this._templateManager) || void 0 === _this$_templateManage ? void 0 : _this$_templateManage.addDefaultTemplates(this.getDefaultTemplates());\r\n var optionProxy = this._getUnwrappedOption();\r\n this._props = this._optionsWithDefaultTemplates(optionProxy);\r\n this._propsInfo.templates.forEach(template => {\r\n this._componentTemplates[template] = this._createTemplateComponent(this._props[template])\r\n });\r\n Object.keys(this._getActionConfigsFull()).forEach(name => this._addAction(name));\r\n this._viewRef = createRef();\r\n this.defaultKeyHandlers = this._createDefaultKeyHandlers()\r\n }\r\n _initMarkup() {\r\n var props = this.getProps();\r\n this._renderWrapper(props)\r\n }\r\n _renderWrapper(props) {\r\n var containerNode = this.$element()[0];\r\n if (!this._isNodeReplaced) {\r\n renderer.onPreRender()\r\n }\r\n renderer.render(this._viewComponent, props, containerNode, this._isNodeReplaced);\r\n if (!this._isNodeReplaced) {\r\n this._isNodeReplaced = true;\r\n renderer.onAfterRender();\r\n this._shouldRaiseContentReady = true\r\n }\r\n if (this._shouldRaiseContentReady) {\r\n this._fireContentReady();\r\n this._shouldRaiseContentReady = false\r\n }\r\n }\r\n _silent(name, value) {\r\n this._options.silent(name, value)\r\n }\r\n _render() {}\r\n _removeWidget() {\r\n renderer.remove(this.$element()[0])\r\n }\r\n _dispose() {\r\n this._removeWidget();\r\n super._dispose()\r\n }\r\n get elementAttr() {\r\n var element = this.$element()[0];\r\n if (!this._elementAttr) {\r\n var {\r\n attributes: attributes\r\n } = element;\r\n var attrs = Array.from(attributes).filter(attr => {\r\n var _attributes$attr$name;\r\n return !this._propsInfo.templates.includes(attr.name) && (null === (_attributes$attr$name = attributes[attr.name]) || void 0 === _attributes$attr$name ? void 0 : _attributes$attr$name.specified)\r\n }).reduce((result, _ref2) => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n var updatedAttributes = result;\r\n var isDomAttr = name in element;\r\n updatedAttributes[name] = \"\" === value && isDomAttr ? element[name] : value;\r\n return updatedAttributes\r\n }, {});\r\n this._elementAttr = attrs;\r\n this._storedClasses = element.getAttribute(\"class\") || \"\"\r\n }\r\n var elemStyle = element.style;\r\n var style = {};\r\n for (var i = 0; i < elemStyle.length; i += 1) {\r\n style[elemStyle[i]] = elemStyle.getPropertyValue(elemStyle[i])\r\n }\r\n this._elementAttr.style = style;\r\n this._elementAttr.class = this._storedClasses;\r\n return this._elementAttr\r\n }\r\n _getAdditionalActionConfigs() {\r\n return {\r\n onContentReady: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n }\r\n }\r\n _getAdditionalProps() {\r\n return []\r\n }\r\n _patchOptionValues(options) {\r\n var {\r\n allowNull: allowNull,\r\n elements: elements,\r\n props: props,\r\n twoWay: twoWay\r\n } = this._propsInfo;\r\n var defaultWidgetPropsKeys = Object.keys(this._viewComponent.defaultProps);\r\n var defaultOptions = this._getDefaultOptions();\r\n var {\r\n children: children,\r\n onKeyboardHandled: onKeyboardHandled,\r\n ref: ref\r\n } = options;\r\n var onKeyDown = onKeyboardHandled ? (_, event_options) => {\r\n onKeyboardHandled(event_options)\r\n } : void 0;\r\n var widgetProps = {\r\n ref: ref,\r\n children: children,\r\n onKeyDown: onKeyDown\r\n };\r\n [...props, ...this._getAdditionalProps()].forEach(propName => {\r\n if (Object.prototype.hasOwnProperty.call(options, propName)) {\r\n widgetProps[propName] = options[propName]\r\n }\r\n });\r\n allowNull.forEach(setDefaultOptionValue(widgetProps, () => null));\r\n defaultWidgetPropsKeys.forEach(setDefaultOptionValue(widgetProps, name => defaultOptions[name]));\r\n twoWay.forEach(_ref3 => {\r\n var [name, defaultName] = _ref3;\r\n setDefaultOptionValue(widgetProps, () => defaultOptions[defaultName])(name)\r\n });\r\n elements.forEach(name => {\r\n if (name in widgetProps) {\r\n var value = widgetProps[name];\r\n if (isRenderer(value)) {\r\n widgetProps[name] = this._patchElementParam(value)\r\n }\r\n }\r\n });\r\n return widgetProps\r\n }\r\n getSupportedKeyNames() {\r\n return []\r\n }\r\n prepareStyleProp(props) {\r\n if (\"string\" === typeof props.style) {\r\n return _extends({}, props, {\r\n style: {},\r\n cssText: props.style\r\n })\r\n }\r\n return props\r\n }\r\n getProps() {\r\n var _this$elementAttr$cla, _elementAttr$class;\r\n var {\r\n elementAttr: elementAttr\r\n } = this.option();\r\n var options = this._patchOptionValues(_extends({}, this._props, {\r\n ref: this._viewRef,\r\n children: this._extractDefaultSlot(),\r\n aria: this._aria\r\n }));\r\n this._propsInfo.templates.forEach(template => {\r\n options[template] = this._componentTemplates[template]\r\n });\r\n return this.prepareStyleProp(_extends({}, options, this.elementAttr, elementAttr, {\r\n className: [...(null !== (_this$elementAttr$cla = this.elementAttr.class) && void 0 !== _this$elementAttr$cla ? _this$elementAttr$cla : \"\").split(\" \"), ...(null !== (_elementAttr$class = null === elementAttr || void 0 === elementAttr ? void 0 : elementAttr.class) && void 0 !== _elementAttr$class ? _elementAttr$class : \"\").split(\" \")].filter((c, i, a) => c && a.indexOf(c) === i).join(\" \").trim(),\r\n class: \"\"\r\n }, this._actionsMap))\r\n }\r\n _getActionConfigs() {\r\n return {}\r\n }\r\n _getActionConfigsFull() {\r\n return _extends({}, this._getActionConfigs(), this._getAdditionalActionConfigs())\r\n }\r\n getDefaultTemplates() {\r\n var defaultTemplates = Object.values(this._templatesInfo);\r\n var result = {};\r\n defaultTemplates.forEach(template => {\r\n result[template] = \"dx-renovation-template-mock\"\r\n });\r\n return result\r\n }\r\n get _templatesInfo() {\r\n return {}\r\n }\r\n _optionsWithDefaultTemplates(options) {\r\n var templateOptions = Object.entries(this._templatesInfo).reduce((result, _ref4) => {\r\n var _options$templateName;\r\n var [templateName, templateValue] = _ref4;\r\n return _extends({}, result, {\r\n [templateName]: null !== (_options$templateName = options[templateName]) && void 0 !== _options$templateName ? _options$templateName : templateValue\r\n })\r\n }, {});\r\n return _extends({}, options, templateOptions)\r\n }\r\n _init() {\r\n super._init();\r\n this.customKeyHandlers = {};\r\n this._actionsMap = {};\r\n this._aria = {};\r\n this._componentTemplates = {}\r\n }\r\n _createDefaultKeyHandlers() {\r\n var result = {};\r\n var keys = this.getSupportedKeyNames();\r\n keys.forEach(key => {\r\n result[key] = e => this.viewRef.keyDown(KeyboardProcessor.createKeyDownOptions(e))\r\n });\r\n return result\r\n }\r\n _addAction(event, actionToAdd) {\r\n var action = actionToAdd;\r\n if (!action) {\r\n var actionByOption = this._createActionByOption(event, this._getActionConfigsFull()[event]);\r\n action = actArgs => {\r\n Object.keys(actArgs).forEach(name => {\r\n if (isDefined(actArgs[name]) && domAdapter.isNode(actArgs[name])) {\r\n actArgs[name] = getPublicElement($(actArgs[name]))\r\n }\r\n });\r\n return actionByOption(actArgs)\r\n }\r\n }\r\n this._actionsMap[event] = action\r\n }\r\n _optionChanged(option) {\r\n var {\r\n fullName: fullName,\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n updatePropsImmutable(this._props, this.option(), name, fullName);\r\n if (this._propsInfo.templates.includes(name) && value !== previousValue) {\r\n this._componentTemplates[name] = this._createTemplateComponent(value)\r\n }\r\n if (name && this._getActionConfigsFull()[name]) {\r\n this._addAction(name)\r\n }\r\n this._shouldRaiseContentReady = this._shouldRaiseContentReady || this._checkContentReadyOption(fullName);\r\n super._optionChanged(option);\r\n this._invalidate()\r\n }\r\n _extractDefaultSlot() {\r\n if (this.option(\"_hasAnonymousTemplateContent\")) {\r\n return renderer.createElement(TemplateWrapper, {\r\n template: this._getTemplate(this._templateManager.anonymousTemplateName),\r\n transclude: true,\r\n renovated: true\r\n })\r\n }\r\n return null\r\n }\r\n _createTemplateComponent(templateOption) {\r\n if (!templateOption) {\r\n return\r\n }\r\n var template = this._getTemplate(templateOption);\r\n if (isString(template) && \"dx-renovation-template-mock\" === template) {\r\n return\r\n }\r\n return model => renderer.createElement(TemplateWrapper, {\r\n template: template,\r\n model: model\r\n })\r\n }\r\n _wrapKeyDownHandler(initialHandler) {\r\n return options => {\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = options;\r\n var keys = this.customKeyHandlers;\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n originalEvent.cancel = true;\r\n return originalEvent\r\n }\r\n }\r\n return null === initialHandler || void 0 === initialHandler ? void 0 : initialHandler(originalEvent, options)\r\n }\r\n }\r\n _toPublicElement(element) {\r\n return getPublicElement($(element))\r\n }\r\n _patchElementParam(value) {\r\n try {\r\n var result = $(value);\r\n var element = null === result || void 0 === result ? void 0 : result.get(0);\r\n return null !== element && void 0 !== element && element.nodeType ? element : value\r\n } catch (error) {\r\n return value\r\n }\r\n }\r\n repaint() {\r\n this._isNodeReplaced = false;\r\n this._shouldRaiseContentReady = true;\r\n this._removeWidget();\r\n this._refresh()\r\n }\r\n _supportedKeys() {\r\n return _extends({}, this.defaultKeyHandlers, this.customKeyHandlers)\r\n }\r\n registerKeyHandler(key, handler) {\r\n this.customKeyHandlers[key] = handler\r\n }\r\n setAria(name, value) {\r\n this._aria[name] = value;\r\n this._initMarkup()\r\n }\r\n}\r\nComponentWrapper.IS_RENOVATED_WIDGET = false;\r\nComponentWrapper.IS_RENOVATED_WIDGET = true;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/base_props.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var BaseWidgetProps = {\r\n className: \"\",\r\n activeStateEnabled: false,\r\n disabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n tabIndex: 0,\r\n visible: true\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/utils/get_updated_options.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n isPlainObject,\r\n type\r\n} from \"../../../../core/utils/type\";\r\nvar defaultNotDeepCopyArrays = [\"dataSource\", \"selectedRowKeys\"];\r\nvar propsToIgnore = {\r\n integrationOptions: true\r\n};\r\n\r\nfunction getDiffItem(key, value, previousValue) {\r\n return {\r\n path: key,\r\n value: value,\r\n previousValue: previousValue\r\n }\r\n}\r\n\r\nfunction compare(resultPaths, item1, item2, key, fullPropName, notDeepCopyArrays) {\r\n if (propsToIgnore[key]) {\r\n return\r\n }\r\n var type1 = type(item1);\r\n var type2 = type(item2);\r\n if (item1 === item2) {\r\n return\r\n }\r\n if (type1 !== type2) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else if (\"object\" === type1) {\r\n if (!isPlainObject(item2)) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else {\r\n var diffPaths = objectDiffs(item1, item2, fullPropName, notDeepCopyArrays);\r\n resultPaths.push(...diffPaths.map(item => _extends({}, item, {\r\n path: \"\".concat(key, \".\").concat(item.path)\r\n })))\r\n }\r\n } else if (\"array\" === type1) {\r\n var notDeepCopy = notDeepCopyArrays.some(prop => fullPropName.includes(prop));\r\n if (notDeepCopy && item1 !== item2) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else if (item1.length !== item2.length) {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n } else {\r\n var _diffPaths = objectDiffs(item1, item2, fullPropName, notDeepCopyArrays);\r\n [].push.apply(resultPaths, _diffPaths.map(item => _extends({}, item, {\r\n path: \"\".concat(key).concat(item.path)\r\n })))\r\n }\r\n } else {\r\n resultPaths.push(getDiffItem(key, item2, item1))\r\n }\r\n}\r\nvar objectDiffsFiltered = propsEnumerator => (oldProps, props, fullPropName, notDeepCopyArrays) => {\r\n var resultPaths = [];\r\n var processItem = !Array.isArray(oldProps) ? propName => {\r\n compare(resultPaths, oldProps[propName], props[propName], propName, \"\".concat(fullPropName, \".\").concat(propName), notDeepCopyArrays)\r\n } : propName => {\r\n compare(resultPaths, oldProps[propName], props[propName], \"[\".concat(propName, \"]\"), \"\".concat(fullPropName, \".\").concat(propName), notDeepCopyArrays)\r\n };\r\n propsEnumerator(oldProps).forEach(processItem);\r\n Object.keys(props).filter(propName => !Object.prototype.hasOwnProperty.call(oldProps, propName) && oldProps[propName] !== props[propName]).forEach(propName => {\r\n resultPaths.push({\r\n path: propName,\r\n value: props[propName],\r\n previousValue: oldProps[propName]\r\n })\r\n });\r\n return resultPaths\r\n};\r\nvar objectDiffs = objectDiffsFiltered(oldProps => Object.keys(oldProps));\r\nvar reactProps = {\r\n key: true,\r\n ref: true,\r\n children: true,\r\n style: true\r\n};\r\nvar objectDiffsWithoutReactProps = objectDiffsFiltered(prop => Object.keys(prop).filter(p => !reactProps[p]));\r\nexport function getUpdatedOptions(oldProps, props) {\r\n var notDeepCopyArrays = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : defaultNotDeepCopyArrays;\r\n return objectDiffsWithoutReactProps(oldProps, props, \"\", notDeepCopyArrays)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/dom_component_wrapper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"valueChange\"],\r\n _excluded2 = [\"componentProps\", \"componentType\", \"templateNames\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n renderTemplate,\r\n hasTemplate\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n getUpdatedOptions\r\n} from \"./utils/get_updated_options\";\r\nvar normalizeProps = props => Object.keys(props).reduce((accumulator, key) => {\r\n if (void 0 !== props[key]) {\r\n accumulator[key] = props[key]\r\n }\r\n return accumulator\r\n}, {});\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n componentProps: {\r\n className: className\r\n }\r\n },\r\n restAttributes: restAttributes,\r\n widgetRef: widgetRef\r\n } = _ref;\r\n return normalizeProps(createVNode(1, \"div\", className, null, 1, _extends({}, restAttributes), null, widgetRef))\r\n};\r\nexport var DomComponentWrapperProps = {};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class DomComponentWrapper extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRef = infernoCreateRef();\r\n this.getInstance = this.getInstance.bind(this);\r\n this.setupWidget = this.setupWidget.bind(this);\r\n this.updateWidget = this.updateWidget.bind(this)\r\n }\r\n get config() {\r\n if (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setupWidget, []), new InfernoEffect(this.updateWidget, [this.props.componentProps, this.config, this.props.templateNames])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.componentProps, this.config, this.props.templateNames])\r\n }\r\n setupWidget() {\r\n var componentInstance = new this.props.componentType(this.widgetRef.current, this.properties);\r\n this.instance = componentInstance;\r\n return () => {\r\n componentInstance.dispose();\r\n this.instance = null\r\n }\r\n }\r\n updateWidget() {\r\n var instance = this.getInstance();\r\n if (!instance) {\r\n return\r\n }\r\n var updatedOptions = getUpdatedOptions(this.prevProps || {}, this.properties);\r\n if (updatedOptions.length) {\r\n instance.beginUpdate();\r\n updatedOptions.forEach(_ref2 => {\r\n var {\r\n path: path,\r\n value: value\r\n } = _ref2;\r\n instance.option(path, value)\r\n });\r\n instance.endUpdate()\r\n }\r\n this.prevProps = this.properties\r\n }\r\n get properties() {\r\n var _this$config;\r\n var normalizedProps = normalizeProps(this.props.componentProps);\r\n var {\r\n valueChange: valueChange\r\n } = normalizedProps, restProps = _objectWithoutPropertiesLoose(normalizedProps, _excluded);\r\n var properties = _extends({\r\n rtlEnabled: !!(null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled),\r\n isRenovated: true\r\n }, restProps);\r\n if (valueChange) {\r\n properties.onValueChanged = _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n return valueChange(value)\r\n }\r\n }\r\n var templates = this.props.templateNames;\r\n templates.forEach(name => {\r\n if (hasTemplate(name, properties, this)) {\r\n properties[name] = (item, index, container) => {\r\n renderTemplate(this.props.componentProps[name], {\r\n item: item,\r\n index: index,\r\n container: container\r\n }, this)\r\n }\r\n }\r\n });\r\n return properties\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded2);\r\n return restProps\r\n }\r\n getInstance() {\r\n return this.instance\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRef: this.widgetRef,\r\n config: this.config,\r\n properties: this.properties,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nDomComponentWrapper.defaultProps = DomComponentWrapperProps;\r\n","/**\r\n * DevExtreme (esm/renovation/common/config_provider.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"children\", \"rtlEnabled\"];\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var viewFunction = viewModel => viewModel.props.children;\r\nexport var ConfigProviderProps = {};\r\nexport class ConfigProvider extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {}\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n ConfigContext: this.config\r\n })\r\n }\r\n get config() {\r\n if (void 0 !== this.__getterCache.config) {\r\n return this.__getterCache.config\r\n }\r\n return this.__getterCache.config = (() => ({\r\n rtlEnabled: this.props.rtlEnabled\r\n }))()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.rtlEnabled !== nextProps.rtlEnabled) {\r\n this.__getterCache.config = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nConfigProvider.defaultProps = ConfigProviderProps;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/resolve_rtl.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport globalConfig from \"../../core/config\";\r\nexport function resolveRtlEnabled(rtlProp, config) {\r\n if (void 0 !== rtlProp) {\r\n return rtlProp\r\n }\r\n if (void 0 !== (null === config || void 0 === config ? void 0 : config.rtlEnabled)) {\r\n return config.rtlEnabled\r\n }\r\n return globalConfig().rtlEnabled\r\n}\r\nexport function resolveRtlEnabledDefinition(rtlProp, config) {\r\n var isPropDefined = isDefined(rtlProp);\r\n var onlyGlobalDefined = isDefined(globalConfig().rtlEnabled) && !isPropDefined && !isDefined(null === config || void 0 === config ? void 0 : config.rtlEnabled);\r\n return isPropDefined && rtlProp !== (null === config || void 0 === config ? void 0 : config.rtlEnabled) || onlyGlobalDefined\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/widget.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"_feedbackHideTimeout\", \"_feedbackShowTimeout\", \"accessKey\", \"activeStateEnabled\", \"activeStateUnit\", \"addWidgetClass\", \"aria\", \"children\", \"className\", \"classes\", \"cssText\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"name\", \"onActive\", \"onClick\", \"onDimensionChanged\", \"onFocusIn\", \"onFocusOut\", \"onHoverEnd\", \"onHoverStart\", \"onInactive\", \"onKeyDown\", \"onRootElementRendered\", \"onVisibilityChange\", \"rootElementRef\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport \"../../../events/click\";\r\nimport \"../../../events/hover\";\r\nimport {\r\n isFunction\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n dxClick,\r\n focus,\r\n keyboard,\r\n resize,\r\n visibility\r\n} from \"../../../events/short\";\r\nimport {\r\n subscribeToDxActiveEvent,\r\n subscribeToDxInactiveEvent,\r\n subscribeToDxHoverStartEvent,\r\n subscribeToDxHoverEndEvent,\r\n subscribeToDxFocusInEvent,\r\n subscribeToDxFocusOutEvent\r\n} from \"../../utils/subscribe_to_event\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../core/utils/style\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./base_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../common/config_context\";\r\nimport {\r\n ConfigProvider\r\n} from \"../../common/config_provider\";\r\nimport {\r\n resolveRtlEnabled,\r\n resolveRtlEnabledDefinition\r\n} from \"../../utils/resolve_rtl\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport errors from \"../../../core/errors\";\r\nimport domAdapter from \"../../../core/dom_adapter\";\r\nvar DEFAULT_FEEDBACK_HIDE_TIMEOUT = 400;\r\nvar DEFAULT_FEEDBACK_SHOW_TIMEOUT = 30;\r\nvar getAria = args => Object.keys(args).reduce((r, key) => {\r\n if (args[key]) {\r\n return _extends({}, r, {\r\n [\"role\" === key || \"id\" === key ? key : \"aria-\".concat(key)]: String(args[key])\r\n })\r\n }\r\n return r\r\n}, {});\r\nexport var viewFunction = viewModel => {\r\n var widget = normalizeProps(createVNode(1, \"div\", viewModel.cssClasses, viewModel.props.children, 0, _extends({}, viewModel.attributes, {\r\n tabIndex: viewModel.tabIndex,\r\n title: viewModel.props.hint,\r\n style: normalizeStyles(viewModel.styles)\r\n }), null, viewModel.widgetElementRef));\r\n return viewModel.shouldRenderConfigProvider ? createComponentVNode(2, ConfigProvider, {\r\n rtlEnabled: viewModel.rtlEnabled,\r\n children: widget\r\n }) : widget\r\n};\r\nexport var WidgetProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n _feedbackHideTimeout: DEFAULT_FEEDBACK_HIDE_TIMEOUT,\r\n _feedbackShowTimeout: DEFAULT_FEEDBACK_SHOW_TIMEOUT,\r\n cssText: \"\",\r\n aria: Object.freeze({}),\r\n classes: \"\",\r\n name: \"\",\r\n addWidgetClass: true\r\n})));\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Widget extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetElementRef = infernoCreateRef();\r\n this.state = {\r\n active: false,\r\n focused: false,\r\n hovered: false\r\n };\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.activeEffect = this.activeEffect.bind(this);\r\n this.inactiveEffect = this.inactiveEffect.bind(this);\r\n this.clickEffect = this.clickEffect.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.focusInEffect = this.focusInEffect.bind(this);\r\n this.focusOutEffect = this.focusOutEffect.bind(this);\r\n this.hoverStartEffect = this.hoverStartEffect.bind(this);\r\n this.hoverEndEffect = this.hoverEndEffect.bind(this);\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.resizeEffect = this.resizeEffect.bind(this);\r\n this.windowResizeEffect = this.windowResizeEffect.bind(this);\r\n this.visibilityEffect = this.visibilityEffect.bind(this);\r\n this.checkDeprecation = this.checkDeprecation.bind(this);\r\n this.applyCssTextEffect = this.applyCssTextEffect.bind(this)\r\n }\r\n get config() {\r\n if (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, []), new InfernoEffect(this.activeEffect, [this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive]), new InfernoEffect(this.inactiveEffect, [this.props._feedbackHideTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.onInactive, this.state.active]), new InfernoEffect(this.clickEffect, [this.props.disabled, this.props.name, this.props.onClick]), new InfernoEffect(this.focusInEffect, [this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn]), new InfernoEffect(this.focusOutEffect, [this.props.focusStateEnabled, this.props.name, this.props.onFocusOut, this.state.focused]), new InfernoEffect(this.hoverStartEffect, [this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverStart, this.state.active]), new InfernoEffect(this.hoverEndEffect, [this.props.activeStateUnit, this.props.hoverStateEnabled, this.props.onHoverEnd, this.state.hovered]), new InfernoEffect(this.keyboardEffect, [this.props.focusStateEnabled, this.props.onKeyDown]), new InfernoEffect(this.resizeEffect, [this.props.name, this.props.onDimensionChanged]), new InfernoEffect(this.windowResizeEffect, [this.props.onDimensionChanged]), new InfernoEffect(this.visibilityEffect, [this.props.name, this.props.onVisibilityChange]), new InfernoEffect(this.checkDeprecation, [this.props.height, this.props.width]), new InfernoEffect(this.applyCssTextEffect, [this.props.cssText]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2, _this$_effects$3, _this$_effects$4, _this$_effects$5, _this$_effects$6, _this$_effects$7, _this$_effects$8, _this$_effects$9, _this$_effects$10, _this$_effects$11, _this$_effects$12, _this$_effects$13;\r\n null === (_this$_effects$ = this._effects[1]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props._feedbackShowTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.disabled, this.props.onActive]);\r\n null === (_this$_effects$2 = this._effects[2]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props._feedbackHideTimeout, this.props.activeStateEnabled, this.props.activeStateUnit, this.props.onInactive, this.state.active]);\r\n null === (_this$_effects$3 = this._effects[3]) || void 0 === _this$_effects$3 ? void 0 : _this$_effects$3.update([this.props.disabled, this.props.name, this.props.onClick]);\r\n null === (_this$_effects$4 = this._effects[4]) || void 0 === _this$_effects$4 ? void 0 : _this$_effects$4.update([this.props.disabled, this.props.focusStateEnabled, this.props.name, this.props.onFocusIn]);\r\n null === (_this$_effects$5 = this._effects[5]) || void 0 === _this$_effects$5 ? void 0 : _this$_effects$5.update([this.props.focusStateEnabled, this.props.name, this.props.onFocusOut, this.state.focused]);\r\n null === (_this$_effects$6 = this._effects[6]) || void 0 === _this$_effects$6 ? void 0 : _this$_effects$6.update([this.props.activeStateUnit, this.props.disabled, this.props.hoverStateEnabled, this.props.onHoverStart, this.state.active]);\r\n null === (_this$_effects$7 = this._effects[7]) || void 0 === _this$_effects$7 ? void 0 : _this$_effects$7.update([this.props.activeStateUnit, this.props.hoverStateEnabled, this.props.onHoverEnd, this.state.hovered]);\r\n null === (_this$_effects$8 = this._effects[8]) || void 0 === _this$_effects$8 ? void 0 : _this$_effects$8.update([this.props.focusStateEnabled, this.props.onKeyDown]);\r\n null === (_this$_effects$9 = this._effects[9]) || void 0 === _this$_effects$9 ? void 0 : _this$_effects$9.update([this.props.name, this.props.onDimensionChanged]);\r\n null === (_this$_effects$10 = this._effects[10]) || void 0 === _this$_effects$10 ? void 0 : _this$_effects$10.update([this.props.onDimensionChanged]);\r\n null === (_this$_effects$11 = this._effects[11]) || void 0 === _this$_effects$11 ? void 0 : _this$_effects$11.update([this.props.name, this.props.onVisibilityChange]);\r\n null === (_this$_effects$12 = this._effects[12]) || void 0 === _this$_effects$12 ? void 0 : _this$_effects$12.update([this.props.height, this.props.width]);\r\n null === (_this$_effects$13 = this._effects[13]) || void 0 === _this$_effects$13 ? void 0 : _this$_effects$13.update([this.props.cssText])\r\n }\r\n setRootElementRef() {\r\n var {\r\n onRootElementRendered: onRootElementRendered,\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetElementRef.current\r\n }\r\n null === onRootElementRendered || void 0 === onRootElementRendered ? void 0 : onRootElementRendered(this.widgetElementRef.current)\r\n }\r\n activeEffect() {\r\n var {\r\n _feedbackShowTimeout: _feedbackShowTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n onActive: onActive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxActiveEvent(this.widgetElementRef.current, event => {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }));\r\n null === onActive || void 0 === onActive ? void 0 : onActive(event)\r\n }, {\r\n timeout: _feedbackShowTimeout,\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n }\r\n return\r\n }\r\n inactiveEffect() {\r\n var {\r\n _feedbackHideTimeout: _feedbackHideTimeout,\r\n activeStateEnabled: activeStateEnabled,\r\n activeStateUnit: activeStateUnit,\r\n onInactive: onInactive\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (activeStateEnabled) {\r\n return subscribeToDxInactiveEvent(this.widgetElementRef.current, event => {\r\n if (this.state.active) {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }));\r\n null === onInactive || void 0 === onInactive ? void 0 : onInactive(event)\r\n }\r\n }, {\r\n timeout: _feedbackHideTimeout,\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n return\r\n }\r\n clickEffect() {\r\n var {\r\n disabled: disabled,\r\n name: name,\r\n onClick: onClick\r\n } = this.props;\r\n var namespace = name;\r\n if (onClick && !disabled) {\r\n dxClick.on(this.widgetElementRef.current, onClick, {\r\n namespace: namespace\r\n });\r\n return () => dxClick.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n focusInEffect() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusIn: onFocusIn\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxFocusInEvent(this.widgetElementRef.current, event => {\r\n if (!event.isDefaultPrevented()) {\r\n this.setState(__state_argument => ({\r\n focused: true\r\n }));\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(event)\r\n }\r\n }, null, namespace)\r\n }\r\n }\r\n return\r\n }\r\n focusOutEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n name: name,\r\n onFocusOut: onFocusOut\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"Focus\");\r\n if (focusStateEnabled) {\r\n return subscribeToDxFocusOutEvent(this.widgetElementRef.current, event => {\r\n if (!event.isDefaultPrevented() && this.state.focused) {\r\n this.setState(__state_argument => ({\r\n focused: false\r\n }));\r\n null === onFocusOut || void 0 === onFocusOut ? void 0 : onFocusOut(event)\r\n }\r\n }, null, namespace)\r\n }\r\n return\r\n }\r\n hoverStartEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n disabled: disabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverStart: onHoverStart\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n if (!disabled) {\r\n return subscribeToDxHoverStartEvent(this.widgetElementRef.current, event => {\r\n !this.state.active && this.setState(__state_argument => ({\r\n hovered: true\r\n }));\r\n null === onHoverStart || void 0 === onHoverStart ? void 0 : onHoverStart(event)\r\n }, {\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n }\r\n return\r\n }\r\n hoverEndEffect() {\r\n var {\r\n activeStateUnit: activeStateUnit,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onHoverEnd: onHoverEnd\r\n } = this.props;\r\n var selector = activeStateUnit;\r\n if (hoverStateEnabled) {\r\n return subscribeToDxHoverEndEvent(this.widgetElementRef.current, event => {\r\n if (this.state.hovered) {\r\n this.setState(__state_argument => ({\r\n hovered: false\r\n }));\r\n null === onHoverEnd || void 0 === onHoverEnd ? void 0 : onHoverEnd(event)\r\n }\r\n }, {\r\n selector: selector\r\n }, \"UIFeedback\")\r\n }\r\n return\r\n }\r\n keyboardEffect() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n if (focusStateEnabled && onKeyDown) {\r\n var id = keyboard.on(this.widgetElementRef.current, this.widgetElementRef.current, e => onKeyDown(e));\r\n return () => keyboard.off(id)\r\n }\r\n return\r\n }\r\n resizeEffect() {\r\n var namespace = \"\".concat(this.props.name, \"VisibilityChange\");\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resize.on(this.widgetElementRef.current, onDimensionChanged, {\r\n namespace: namespace\r\n });\r\n return () => resize.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n windowResizeEffect() {\r\n var {\r\n onDimensionChanged: onDimensionChanged\r\n } = this.props;\r\n if (onDimensionChanged) {\r\n resizeCallbacks.add(onDimensionChanged);\r\n return () => {\r\n resizeCallbacks.remove(onDimensionChanged)\r\n }\r\n }\r\n return\r\n }\r\n visibilityEffect() {\r\n var {\r\n name: name,\r\n onVisibilityChange: onVisibilityChange\r\n } = this.props;\r\n var namespace = \"\".concat(name, \"VisibilityChange\");\r\n if (onVisibilityChange) {\r\n visibility.on(this.widgetElementRef.current, () => onVisibilityChange(true), () => onVisibilityChange(false), {\r\n namespace: namespace\r\n });\r\n return () => visibility.off(this.widgetElementRef.current, {\r\n namespace: namespace\r\n })\r\n }\r\n return\r\n }\r\n checkDeprecation() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n if (isFunction(width)) {\r\n errors.log(\"W0017\", \"width\")\r\n }\r\n if (isFunction(height)) {\r\n errors.log(\"W0017\", \"height\")\r\n }\r\n }\r\n applyCssTextEffect() {\r\n var {\r\n cssText: cssText\r\n } = this.props;\r\n if (\"\" !== cssText) {\r\n this.widgetElementRef.current.style.cssText = cssText\r\n }\r\n }\r\n get shouldRenderConfigProvider() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabledDefinition(rtlEnabled, this.config)\r\n }\r\n get rtlEnabled() {\r\n var {\r\n rtlEnabled: rtlEnabled\r\n } = this.props;\r\n return resolveRtlEnabled(rtlEnabled, this.config)\r\n }\r\n get attributes() {\r\n var {\r\n aria: aria,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n visible: visible\r\n } = this.props;\r\n var accessKey = focusStateEnabled && !disabled && this.props.accessKey;\r\n return _extends({}, extend({}, accessKey && {\r\n accessKey: accessKey\r\n }), getAria(_extends({}, aria, {\r\n disabled: disabled,\r\n hidden: !visible\r\n })), extend({}, this.restAttributes))\r\n }\r\n get styles() {\r\n var {\r\n height: height,\r\n width: width\r\n } = this.props;\r\n var style = this.restAttributes.style || {};\r\n var computedWidth = normalizeStyleProp(\"width\", isFunction(width) ? width() : width);\r\n var computedHeight = normalizeStyleProp(\"height\", isFunction(height) ? height() : height);\r\n return _extends({}, style, {\r\n height: null !== computedHeight && void 0 !== computedHeight ? computedHeight : style.height,\r\n width: null !== computedWidth && void 0 !== computedWidth ? computedWidth : style.width\r\n })\r\n }\r\n get cssClasses() {\r\n var {\r\n activeStateEnabled: activeStateEnabled,\r\n addWidgetClass: addWidgetClass,\r\n className: className,\r\n classes: classes,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onVisibilityChange: onVisibilityChange,\r\n visible: visible\r\n } = this.props;\r\n var isFocusable = !!focusStateEnabled && !disabled;\r\n var isHoverable = !!hoverStateEnabled && !disabled;\r\n var canBeActive = !!activeStateEnabled && !disabled;\r\n var classesMap = {\r\n \"dx-widget\": !!addWidgetClass,\r\n [String(classes)]: !!classes,\r\n [String(className)]: !!className,\r\n \"dx-state-disabled\": !!disabled,\r\n \"dx-state-invisible\": !visible,\r\n \"dx-state-focused\": !!this.state.focused && isFocusable,\r\n \"dx-state-active\": !!this.state.active && canBeActive,\r\n \"dx-state-hover\": !!this.state.hovered && isHoverable && !this.state.active,\r\n \"dx-rtl\": !!this.rtlEnabled,\r\n \"dx-visibility-change-handler\": !!onVisibilityChange\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get tabIndex() {\r\n var {\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n tabIndex: tabIndex\r\n } = this.props;\r\n var isFocusable = focusStateEnabled && !disabled;\r\n return isFocusable ? tabIndex : void 0\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n focus.trigger(this.widgetElementRef.current)\r\n }\r\n blur() {\r\n var activeElement = domAdapter.getActiveElement(this.widgetElementRef.current);\r\n if (this.widgetElementRef.current === activeElement) {\r\n activeElement.blur()\r\n }\r\n }\r\n activate() {\r\n this.setState(__state_argument => ({\r\n active: true\r\n }))\r\n }\r\n deactivate() {\r\n this.setState(__state_argument => ({\r\n active: false\r\n }))\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n active: this.state.active,\r\n focused: this.state.focused,\r\n hovered: this.state.hovered,\r\n widgetElementRef: this.widgetElementRef,\r\n config: this.config,\r\n shouldRenderConfigProvider: this.shouldRenderConfigProvider,\r\n rtlEnabled: this.rtlEnabled,\r\n attributes: this.attributes,\r\n styles: this.styles,\r\n cssClasses: this.cssClasses,\r\n tabIndex: this.tabIndex,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nWidget.defaultProps = WidgetProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/overlays/validation_message.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"boundary\", \"className\", \"contentId\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"mode\", \"offset\", \"onClick\", \"onKeyDown\", \"positionSide\", \"rtlEnabled\", \"tabIndex\", \"target\", \"validationErrors\", \"visible\", \"visualContainer\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacyValidationMessage from \"../../../ui/validation_message\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../common/dom_component_wrapper\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"../common/base_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacyValidationMessage,\r\n componentProps: componentProps,\r\n templateNames: []\r\n }, restAttributes)))\r\n};\r\nexport var ValidationMessageProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n mode: \"auto\",\r\n positionSide: \"top\",\r\n offset: Object.freeze({\r\n h: 0,\r\n v: 0\r\n }),\r\n isReactComponentWrapper: true\r\n})));\r\nexport class ValidationMessage extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get componentProps() {\r\n return this.props\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nValidationMessage.defaultProps = ValidationMessageProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"aria\", \"children\", \"className\", \"classes\", \"defaultValue\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"tabIndex\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport Guid from \"../../../../core/guid\";\r\nimport {\r\n Widget,\r\n WidgetProps\r\n} from \"../../common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"../../common/base_props\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n ValidationMessage\r\n} from \"../../overlays/validation_message\";\r\nvar getCssClasses = model => {\r\n var {\r\n classes: classes,\r\n isValid: isValid,\r\n readOnly: readOnly\r\n } = model;\r\n var classesMap = {\r\n \"dx-state-readonly\": !!readOnly,\r\n \"dx-invalid\": !isValid,\r\n [\"\".concat(classes)]: !!classes\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n aria: aria,\r\n cssClasses: classes,\r\n isValidationMessageVisible: isValidationMessageVisible,\r\n onFocusIn: onFocusIn,\r\n props: {\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n children: children,\r\n className: className,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n height: height,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n visible: visible,\r\n width: width\r\n },\r\n restAttributes: restAttributes,\r\n rootElementRef: rootElementRef,\r\n validationErrors: validationErrors,\r\n validationMessageGuid: validationMessageGuid,\r\n validationMessageTarget: validationMessageTarget,\r\n widgetRef: widgetRef\r\n } = viewModel;\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n rootElementRef: rootElementRef,\r\n aria: aria,\r\n classes: classes,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n accessKey: accessKey,\r\n className: className,\r\n rtlEnabled: rtlEnabled,\r\n hint: hint,\r\n disabled: disabled,\r\n height: height,\r\n width: width,\r\n onFocusIn: onFocusIn,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n tabIndex: tabIndex,\r\n visible: visible\r\n }, restAttributes, {\r\n children: createFragment([children, isValidationMessageVisible && createComponentVNode(2, ValidationMessage, {\r\n validationErrors: validationErrors,\r\n mode: validationMessageMode,\r\n positionSide: validationMessagePosition,\r\n rtlEnabled: rtlEnabled,\r\n target: validationMessageTarget,\r\n boundary: validationMessageTarget,\r\n visualContainer: validationMessageTarget,\r\n contentId: validationMessageGuid\r\n })], 0)\r\n }), null, widgetRef))\r\n};\r\nexport var EditorProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n readOnly: false,\r\n name: \"\",\r\n validationError: null,\r\n validationErrors: null,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"bottom\",\r\n validationStatus: \"valid\",\r\n isValid: true,\r\n defaultValue: null,\r\n valueChange: () => {}\r\n})));\r\nexport var EditorPropsType = {\r\n get readOnly() {\r\n return EditorProps.readOnly\r\n },\r\n get name() {\r\n return EditorProps.name\r\n },\r\n get validationError() {\r\n return EditorProps.validationError\r\n },\r\n get validationErrors() {\r\n return EditorProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return EditorProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return EditorProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return EditorProps.validationStatus\r\n },\r\n get isValid() {\r\n return EditorProps.isValid\r\n },\r\n get defaultValue() {\r\n return EditorProps.defaultValue\r\n },\r\n get valueChange() {\r\n return EditorProps.valueChange\r\n },\r\n get className() {\r\n return EditorProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return EditorProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorProps.focusStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return EditorProps.hoverStateEnabled\r\n },\r\n get tabIndex() {\r\n return EditorProps.tabIndex\r\n },\r\n get visible() {\r\n return EditorProps.visible\r\n },\r\n get aria() {\r\n return WidgetProps.aria\r\n },\r\n get classes() {\r\n return WidgetProps.classes\r\n }\r\n};\r\nimport {\r\n convertRulesToOptions\r\n} from \"../../../../core/options/utils\";\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class Editor extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.widgetRef = infernoCreateRef();\r\n this.rootElementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.state = {\r\n validationMessageGuid: \"dx-\".concat(new Guid),\r\n isValidationMessageVisible: false,\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n };\r\n this.updateValidationMessageVisibility = this.updateValidationMessageVisibility.bind(this);\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.onFocusIn = this.onFocusIn.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateValidationMessageVisibility, [this.props.isValid, this.props.validationStatus, this.props.validationError, this.props.validationErrors]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isValid, this.props.validationStatus, this.props.validationError, this.props.validationErrors])\r\n }\r\n updateValidationMessageVisibility() {\r\n this.setState(__state_argument => ({\r\n isValidationMessageVisible: this.shouldShowValidationMessage\r\n }))\r\n }\r\n onFocusIn(event) {\r\n var {\r\n onFocusIn: onFocusIn\r\n } = this.props;\r\n null === onFocusIn || void 0 === onFocusIn ? void 0 : onFocusIn(event)\r\n }\r\n get cssClasses() {\r\n return \"\".concat(getCssClasses(_extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })))\r\n }\r\n get shouldShowValidationMessage() {\r\n var _this$validationError;\r\n var {\r\n isValid: isValid,\r\n validationStatus: validationStatus\r\n } = this.props;\r\n var validationErrors = null !== (_this$validationError = this.validationErrors) && void 0 !== _this$validationError ? _this$validationError : [];\r\n var isEditorValid = isValid && \"invalid\" !== validationStatus;\r\n return !isEditorValid && validationErrors.length > 0\r\n }\r\n get aria() {\r\n var {\r\n isValid: isValid,\r\n readOnly: readOnly\r\n } = this.props;\r\n var result = {\r\n readonly: readOnly ? \"true\" : \"false\",\r\n invalid: !isValid ? \"true\" : \"false\"\r\n };\r\n if (this.shouldShowValidationMessage) {\r\n result.describedBy = this.state.validationMessageGuid\r\n }\r\n return _extends({}, result, this.props.aria)\r\n }\r\n get validationErrors() {\r\n if (void 0 !== this.__getterCache.validationErrors) {\r\n return this.__getterCache.validationErrors\r\n }\r\n return this.__getterCache.validationErrors = (() => {\r\n var {\r\n validationError: validationError,\r\n validationErrors: validationErrors\r\n } = this.props;\r\n var allValidationErrors = validationErrors && [...validationErrors];\r\n if (!allValidationErrors && validationError) {\r\n allValidationErrors = [_extends({}, validationError)]\r\n }\r\n return allValidationErrors\r\n })()\r\n }\r\n get validationMessageTarget() {\r\n var _this$rootElementRef;\r\n return null === (_this$rootElementRef = this.rootElementRef) || void 0 === _this$rootElementRef ? void 0 : _this$rootElementRef.current\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n blur() {\r\n this.widgetRef.current.blur()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.validationError !== nextProps.validationError || this.props.validationErrors !== nextProps.validationErrors) {\r\n this.__getterCache.validationErrors = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n validationMessageGuid: this.state.validationMessageGuid,\r\n isValidationMessageVisible: this.state.isValidationMessageVisible,\r\n rootElementRef: this.rootElementRef,\r\n widgetRef: this.widgetRef,\r\n onFocusIn: this.onFocusIn,\r\n cssClasses: this.cssClasses,\r\n shouldShowValidationMessage: this.shouldShowValidationMessage,\r\n aria: this.aria,\r\n validationErrors: this.validationErrors,\r\n validationMessageTarget: this.validationMessageTarget,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\n\r\nfunction __processTwoWayProps(defaultProps) {\r\n var twoWayProps = [\"value\"];\r\n return Object.keys(defaultProps).reduce((props, propName) => {\r\n var propValue = defaultProps[propName];\r\n var defaultPropName = twoWayProps.some(p => p === propName) ? \"default\" + propName.charAt(0).toUpperCase() + propName.slice(1) : propName;\r\n props[defaultPropName] = propValue;\r\n return props\r\n }, {})\r\n}\r\nEditor.defaultProps = EditorPropsType;\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Editor.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Editor.defaultProps), Object.getOwnPropertyDescriptors(__processTwoWayProps(convertRulesToOptions(__defaultOptionRules)))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/common/consts.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var SCROLL_LINE_HEIGHT = 40;\r\nexport var DIRECTION_VERTICAL = \"vertical\";\r\nexport var DIRECTION_HORIZONTAL = \"horizontal\";\r\nexport var DIRECTION_BOTH = \"both\";\r\nexport var SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nexport var SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nexport var SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nexport var SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nexport var SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nexport var SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nexport var SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nexport var SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nexport var SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nexport var SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"dx-scrollable-scrollbar-active\";\r\nexport var SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nexport var SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nexport var HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nexport var SCROLLVIEW_CONTENT_CLASS = \"dx-scrollview-content\";\r\nexport var SCROLLVIEW_TOP_POCKET_CLASS = \"dx-scrollview-top-pocket\";\r\nexport var SCROLLVIEW_PULLDOWN = \"dx-scrollview-pull-down\";\r\nexport var SCROLLVIEW_PULLDOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nexport var SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nexport var SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nexport var SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nexport var SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nexport var SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nexport var PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nexport var SCROLLVIEW_BOTTOM_POCKET_CLASS = \"dx-scrollview-bottom-pocket\";\r\nexport var SCROLLVIEW_REACHBOTTOM_CLASS = \"dx-scrollview-scrollbottom\";\r\nexport var SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = \"dx-scrollview-scrollbottom-indicator\";\r\nexport var SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = \"dx-scrollview-scrollbottom-text\";\r\nexport var TopPocketState = {\r\n STATE_RELEASED: 0,\r\n STATE_READY: 1,\r\n STATE_REFRESHING: 2,\r\n STATE_LOADING: 3,\r\n STATE_TOUCHED: 4,\r\n STATE_PULLED: 5\r\n};\r\nexport var ShowScrollbarMode = {\r\n HOVER: \"onHover\",\r\n ALWAYS: \"always\",\r\n NEVER: \"never\",\r\n SCROLL: \"onScroll\"\r\n};\r\nexport var KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\"\r\n};\r\nexport var VALIDATE_WHEEL_TIMEOUT = 500;\r\nexport var HIDE_SCROLLBAR_TIMEOUT = 500;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_relative_offset.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getRelativeOffset(targetElementClass, sourceElement) {\r\n var offset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var element = sourceElement;\r\n while (null !== (_element = element) && void 0 !== _element && _element.offsetParent && !element.classList.contains(targetElementClass)) {\r\n var _element;\r\n var parentElement = element.offsetParent;\r\n var elementRect = element.getBoundingClientRect();\r\n var parentElementRect = parentElement.getBoundingClientRect();\r\n offset.left += elementRect.left - parentElementRect.left;\r\n offset.top += elementRect.top - parentElementRect.top;\r\n element = element.offsetParent\r\n }\r\n return offset\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/scroll_direction.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n DIRECTION_VERTICAL,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_BOTH\r\n} from \"../common/consts\";\r\nexport class ScrollDirection {\r\n constructor(direction) {\r\n this.DIRECTION_HORIZONTAL = \"horizontal\";\r\n this.DIRECTION_VERTICAL = \"vertical\";\r\n this.DIRECTION_BOTH = \"both\";\r\n this.direction = null !== direction && void 0 !== direction ? direction : DIRECTION_VERTICAL\r\n }\r\n get isHorizontal() {\r\n return this.direction === DIRECTION_HORIZONTAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isVertical() {\r\n return this.direction === DIRECTION_VERTICAL || this.direction === DIRECTION_BOTH\r\n }\r\n get isBoth() {\r\n return this.direction === DIRECTION_BOTH\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/combine_classes.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function combineClasses(classesMap) {\r\n return Object.keys(classesMap).filter(p => classesMap[p]).join(\" \")\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/get_computed_style.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nexport default function getElementComputedStyle(el) {\r\n var _window$getComputedSt;\r\n var window = getWindow();\r\n return el ? null === (_window$getComputedSt = window.getComputedStyle) || void 0 === _window$getComputedSt ? void 0 : _window$getComputedSt.call(window, el) : null\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/utils/subscribe_to_event.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport * as clickEvent from \"../../events/click\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nexport function subscribeToEvent(eventName) {\r\n return (element, handler, eventData, namespace) => {\r\n var event = namespace ? addNamespace(eventName, namespace) : eventName;\r\n if (handler) {\r\n eventsEngine.on(element, event, eventData, handler);\r\n return () => {\r\n eventsEngine.off(element, event, handler)\r\n }\r\n }\r\n return\r\n }\r\n}\r\nexport var subscribeToClickEvent = subscribeToEvent(clickEvent.name);\r\nexport var subscribeToScrollEvent = subscribeToEvent(scrollEvents.scroll);\r\nexport var subscribeToScrollInitEvent = subscribeToEvent(scrollEvents.init);\r\nexport var subscribeToDXScrollStartEvent = subscribeToEvent(scrollEvents.start);\r\nexport var subscribeToDXScrollMoveEvent = subscribeToEvent(scrollEvents.move);\r\nexport var subscribeToDXScrollEndEvent = subscribeToEvent(scrollEvents.end);\r\nexport var subscribeToDXScrollStopEvent = subscribeToEvent(scrollEvents.stop);\r\nexport var subscribeToDXScrollCancelEvent = subscribeToEvent(scrollEvents.cancel);\r\nexport var subscribeToDXPointerDownEvent = subscribeToEvent(pointerEvents.down);\r\nexport var subscribeToDXPointerUpEvent = subscribeToEvent(pointerEvents.up);\r\nexport var subscribeToDXPointerMoveEvent = subscribeToEvent(pointerEvents.move);\r\nexport var subscribeToMouseEnterEvent = subscribeToEvent(\"mouseenter\");\r\nexport var subscribeToMouseLeaveEvent = subscribeToEvent(\"mouseleave\");\r\nexport var subscribeToKeyDownEvent = subscribeToEvent(\"keydown\");\r\nexport var subscribeToDxActiveEvent = subscribeToEvent(\"dxactive\");\r\nexport var subscribeToDxInactiveEvent = subscribeToEvent(\"dxinactive\");\r\nexport var subscribeToDxHoverStartEvent = subscribeToEvent(\"dxhoverstart\");\r\nexport var subscribeToDxHoverEndEvent = subscribeToEvent(\"dxhoverend\");\r\nexport var subscribeToDxFocusInEvent = subscribeToEvent(\"focusin\");\r\nexport var subscribeToDxFocusOutEvent = subscribeToEvent(\"focusout\");\r\n","/**\r\n * DevExtreme (esm/renovation/utils/type_conversion.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function toNumber(attribute) {\r\n return attribute ? Number(attribute.replace(\"px\", \"\")) : 0\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n normalizeStyleProp,\r\n styleProp,\r\n stylePropPrefix\r\n} from \"../core/utils/style\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport CollectionWidgetItem from \"./collection/item\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar BOX_CLASS = \"dx-box\";\r\nvar BOX_FLEX_CLASS = \"dx-box-flex\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar SHRINK = 1;\r\nvar MINSIZE_MAP = {\r\n row: \"minWidth\",\r\n col: \"minHeight\"\r\n};\r\nvar MAXSIZE_MAP = {\r\n row: \"maxWidth\",\r\n col: \"maxHeight\"\r\n};\r\nvar FLEX_JUSTIFY_CONTENT_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n \"space-between\": \"space-between\",\r\n \"space-around\": \"space-around\"\r\n};\r\nvar FLEX_ALIGN_ITEMS_MAP = {\r\n start: \"flex-start\",\r\n end: \"flex-end\",\r\n center: \"center\",\r\n stretch: \"stretch\"\r\n};\r\nvar FLEX_DIRECTION_MAP = {\r\n row: \"row\",\r\n col: \"column\"\r\n};\r\nvar setFlexProp = (element, prop, value) => {\r\n value = normalizeStyleProp(prop, value);\r\n element.style[styleProp(prop)] = value;\r\n if (!hasWindow()) {\r\n if (\"\" === value || !isDefined(value)) {\r\n return\r\n }\r\n var cssName = dasherize(prop);\r\n var styleExpr = cssName + \": \" + value + \";\";\r\n if (!element.attributes.style) {\r\n element.setAttribute(\"style\", styleExpr)\r\n } else if (element.attributes.style.value.indexOf(styleExpr) < 0) {\r\n element.attributes.style.value += \" \" + styleExpr\r\n }\r\n }\r\n};\r\nclass BoxItem extends CollectionWidgetItem {\r\n _renderVisible(value, oldValue) {\r\n super._renderVisible(value);\r\n if (isDefined(oldValue)) {\r\n this._options.fireItemStateChangedAction({\r\n name: \"visible\",\r\n state: value,\r\n oldState: oldValue\r\n })\r\n }\r\n }\r\n}\r\nclass LayoutStrategy {\r\n constructor($element, option) {\r\n this._$element = $element;\r\n this._option = option\r\n }\r\n renderBox() {\r\n this._$element.css({\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\"\r\n });\r\n setFlexProp(this._$element.get(0), \"flexDirection\", FLEX_DIRECTION_MAP[this._option(\"direction\")])\r\n }\r\n renderAlign() {\r\n this._$element.css({\r\n justifyContent: this._normalizedAlign()\r\n })\r\n }\r\n _normalizedAlign() {\r\n var align = this._option(\"align\");\r\n return align in FLEX_JUSTIFY_CONTENT_MAP ? FLEX_JUSTIFY_CONTENT_MAP[align] : align\r\n }\r\n renderCrossAlign() {\r\n this._$element.css({\r\n alignItems: this._normalizedCrossAlign()\r\n })\r\n }\r\n _normalizedCrossAlign() {\r\n var crossAlign = this._option(\"crossAlign\");\r\n return crossAlign in FLEX_ALIGN_ITEMS_MAP ? FLEX_ALIGN_ITEMS_MAP[crossAlign] : crossAlign\r\n }\r\n renderItems($items) {\r\n var flexPropPrefix = stylePropPrefix(\"flexDirection\");\r\n var direction = this._option(\"direction\");\r\n each($items, (function() {\r\n var $item = $(this);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n $item.css({\r\n display: flexPropPrefix + \"flex\"\r\n }).css(MAXSIZE_MAP[direction], item.maxSize || \"none\").css(MINSIZE_MAP[direction], item.minSize || \"0\");\r\n setFlexProp($item.get(0), \"flexBasis\", item.baseSize || 0);\r\n setFlexProp($item.get(0), \"flexGrow\", item.ratio);\r\n setFlexProp($item.get(0), \"flexShrink\", isDefined(item.shrink) ? item.shrink : SHRINK);\r\n $item.children().each((_, itemContent) => {\r\n $(itemContent).css({\r\n width: \"auto\",\r\n height: \"auto\",\r\n display: stylePropPrefix(\"flexDirection\") + \"flex\",\r\n flexBasis: 0\r\n });\r\n setFlexProp(itemContent, \"flexGrow\", 1);\r\n setFlexProp(itemContent, \"flexDirection\", $(itemContent)[0].style.flexDirection || \"column\")\r\n })\r\n }))\r\n }\r\n}\r\nclass Box extends CollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n direction: \"row\",\r\n align: \"start\",\r\n crossAlign: \"stretch\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n _queue: void 0\r\n })\r\n }\r\n _itemClass() {\r\n return BOX_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return BOX_ITEM_DATA_KEY\r\n }\r\n _itemElements() {\r\n return this._itemContainer().children(this._itemSelector())\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(BOX_FLEX_CLASS);\r\n this._initLayout();\r\n this._initBoxQueue()\r\n }\r\n _initLayout() {\r\n this._layout = new LayoutStrategy(this.$element(), this.option.bind(this))\r\n }\r\n _initBoxQueue() {\r\n this._queue = this.option(\"_queue\") || []\r\n }\r\n _queueIsNotEmpty() {\r\n return this.option(\"_queue\") ? false : !!this._queue.length\r\n }\r\n _pushItemToQueue($item, config) {\r\n this._queue.push({\r\n $item: $item,\r\n config: config\r\n })\r\n }\r\n _shiftItemFromQueue() {\r\n return this._queue.shift()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(BOX_CLASS);\r\n this._layout.renderBox();\r\n super._initMarkup();\r\n this._renderAlign();\r\n this._renderActions()\r\n }\r\n _renderActions() {\r\n this._onItemStateChanged = this._createActionByOption(\"onItemStateChanged\")\r\n }\r\n _renderAlign() {\r\n this._layout.renderAlign();\r\n this._layout.renderCrossAlign()\r\n }\r\n _renderItems(items) {\r\n super._renderItems(items);\r\n while (this._queueIsNotEmpty()) {\r\n var item = this._shiftItemFromQueue();\r\n this._createComponent(item.$item, Box, extend({\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this.option(\"onItemHold\"),\r\n onItemClick: this.option(\"onItemClick\"),\r\n onItemContextMenu: this.option(\"onItemContextMenu\"),\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _queue: this._queue\r\n }, item.config))\r\n }\r\n this._layout.renderItems(this._itemElements())\r\n }\r\n _renderItemContent(args) {\r\n var $itemNode = args.itemData && args.itemData.node;\r\n if ($itemNode) {\r\n return this._renderItemContentByNode(args, $itemNode)\r\n }\r\n return super._renderItemContent(args)\r\n }\r\n _postprocessRenderItem(args) {\r\n var boxConfig = args.itemData.box;\r\n if (!boxConfig) {\r\n return\r\n }\r\n this._pushItemToQueue(args.itemContent, boxConfig)\r\n }\r\n _createItemByTemplate(itemTemplate, args) {\r\n if (args.itemData.box) {\r\n return itemTemplate.source ? itemTemplate.source() : $()\r\n }\r\n return super._createItemByTemplate(itemTemplate, args)\r\n }\r\n _itemOptionChanged(item, property, value, oldValue) {\r\n if (\"visible\" === property) {\r\n this._onItemStateChanged({\r\n name: property,\r\n state: value,\r\n oldState: false !== oldValue\r\n })\r\n }\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"_queue\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"align\":\r\n this._layout.renderAlign();\r\n break;\r\n case \"crossAlign\":\r\n this._layout.renderCrossAlign();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _itemOptions() {\r\n var options = super._itemOptions();\r\n options.fireItemStateChangedAction = e => {\r\n this._onItemStateChanged(e)\r\n };\r\n return options\r\n }\r\n}\r\nBox.ItemClass = BoxItem;\r\nregisterComponent(\"dxBox\", Box);\r\nexport default Box;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/button.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport ValidationEngine from \"../../ui/validation_engine\";\r\nimport Component from \"./common/component\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nexport default class ButtonWrapper extends Component {\r\n get _validationGroupConfig() {\r\n return ValidationEngine.getGroupConfig(this._findGroup())\r\n }\r\n getDefaultTemplateNames() {\r\n return [\"content\"]\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\", \"enter\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n props.onClick = _ref => {\r\n var {\r\n event: event\r\n } = _ref;\r\n this._clickAction({\r\n event: event,\r\n validationGroup: this._validationGroupConfig\r\n })\r\n };\r\n var iconType = getImageSourceType(props.icon);\r\n if (\"svg\" === iconType) {\r\n props.iconTemplate = this._createTemplateComponent(() => props.icon)\r\n }\r\n return props\r\n }\r\n get _templatesInfo() {\r\n return {\r\n template: \"content\"\r\n }\r\n }\r\n _toggleActiveState(_, value) {\r\n var button = this.viewRef;\r\n value ? button.activate() : button.deactivate()\r\n }\r\n _getSubmitAction() {\r\n var needValidate = true;\r\n var validationStatus = \"valid\";\r\n return this._createAction(_ref2 => {\r\n var {\r\n event: event,\r\n submitInput: submitInput\r\n } = _ref2;\r\n if (needValidate) {\r\n var validationGroup = this._validationGroupConfig;\r\n if (void 0 !== validationGroup && \"\" !== validationGroup) {\r\n var validationResult = validationGroup.validate();\r\n validationStatus = validationResult.status;\r\n if (\"pending\" === validationResult.status) {\r\n needValidate = false;\r\n this.option(\"disabled\", true);\r\n validationResult.complete.then(_ref3 => {\r\n var {\r\n status: status\r\n } = _ref3;\r\n this.option(\"disabled\", false);\r\n validationStatus = status;\r\n \"valid\" === validationStatus && submitInput.click();\r\n needValidate = true\r\n })\r\n }\r\n }\r\n }\r\n \"valid\" !== validationStatus && event.preventDefault();\r\n event.stopPropagation()\r\n })\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._addAction(\"onSubmit\", this._getSubmitAction());\r\n this._clickAction = this._createClickAction()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n var $content = this.$element().find(\".dx-button-content\");\r\n var $template = $content.children().filter(\".dx-template-wrapper\");\r\n var $input = $content.children().filter(\".dx-button-submit-input\");\r\n if ($template.length) {\r\n $template.addClass(\"dx-button-content\");\r\n $template.append($input);\r\n $content.replaceWith($template)\r\n }\r\n }\r\n _patchOptionValues(options) {\r\n return super._patchOptionValues(_extends({}, options, {\r\n templateData: options._templateData\r\n }))\r\n }\r\n _findGroup() {\r\n var $element = this.$element();\r\n var validationGroup = this.option(\"validationGroup\");\r\n return void 0 !== validationGroup && \"\" !== validationGroup ? validationGroup : ValidationEngine.findGroup($element, this._modelByElement($element))\r\n }\r\n _createClickAction() {\r\n return this._createActionByOption(\"onClick\", {\r\n excludeValidators: [\"readOnly\"]\r\n })\r\n }\r\n _optionChanged(option) {\r\n switch (option.name) {\r\n case \"onClick\":\r\n this._clickAction = this._createClickAction()\r\n }\r\n super._optionChanged(option)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/icon.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"iconTemplate\", \"position\", \"source\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../../core/utils/icon\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n iconClassName: iconClassName,\r\n props: {\r\n iconTemplate: IconTemplate,\r\n source: source\r\n },\r\n sourceType: sourceType\r\n } = _ref;\r\n return createFragment([\"dxIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"fontIcon\" === sourceType && createVNode(1, \"i\", iconClassName), \"image\" === sourceType && createVNode(1, \"img\", iconClassName, null, 1, {\r\n alt: \"\",\r\n src: source\r\n }), IconTemplate && createVNode(1, \"i\", iconClassName, IconTemplate({}), 0)], 0)\r\n};\r\nexport var IconProps = {\r\n position: \"left\",\r\n source: \"\"\r\n};\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Icon extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get sourceType() {\r\n return getImageSourceType(this.props.source)\r\n }\r\n get cssClass() {\r\n return \"left\" !== this.props.position ? \"dx-icon-right\" : \"\"\r\n }\r\n get iconClassName() {\r\n var generalClasses = {\r\n \"dx-icon\": true,\r\n [this.cssClass]: !!this.cssClass\r\n };\r\n var {\r\n source: source\r\n } = this.props;\r\n if (\"dxIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [\"dx-icon-\".concat(source)]: true\r\n }))\r\n }\r\n if (\"fontIcon\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n [String(source)]: !!source\r\n }))\r\n }\r\n if (\"image\" === this.sourceType) {\r\n return combineClasses(generalClasses)\r\n }\r\n if (\"svg\" === this.sourceType) {\r\n return combineClasses(_extends({}, generalClasses, {\r\n \"dx-svg-icon\": true\r\n }))\r\n }\r\n return \"\"\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n sourceType: this.sourceType,\r\n cssClass: this.cssClass,\r\n iconClassName: this.iconClassName,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nIcon.defaultProps = IconProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/common/ink_ripple.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"config\"];\r\nimport {\r\n createVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n initConfig,\r\n showWave,\r\n hideWave\r\n} from \"../../../ui/widget/utils.ink_ripple\";\r\nexport var viewFunction = model => normalizeProps(createVNode(1, \"div\", \"dx-inkripple\", null, 1, _extends({}, model.restAttributes)));\r\nexport var InkRippleProps = {\r\n config: Object.freeze({})\r\n};\r\nexport class InkRipple extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.hideWave = this.hideWave.bind(this);\r\n this.showWave = this.showWave.bind(this)\r\n }\r\n get getConfig() {\r\n if (void 0 !== this.__getterCache.getConfig) {\r\n return this.__getterCache.getConfig\r\n }\r\n return this.__getterCache.getConfig = (() => {\r\n var {\r\n config: config\r\n } = this.props;\r\n return initConfig(config)\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n hideWave(opts) {\r\n hideWave(this.getConfig, opts)\r\n }\r\n showWave(opts) {\r\n showWave(this.getConfig, opts)\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.config !== nextProps.config) {\r\n this.__getterCache.getConfig = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n getConfig: this.getConfig,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nInkRipple.defaultProps = InkRippleProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"children\", \"className\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"iconTemplate\", \"onClick\", \"onKeyDown\", \"onSubmit\", \"pressed\", \"rtlEnabled\", \"stylingMode\", \"tabIndex\", \"template\", \"templateData\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createDefaultOptionRules,\r\n convertRulesToOptions\r\n} from \"../../core/options/utils\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"../../ui/themes\";\r\nimport {\r\n click\r\n} from \"../../events/short\";\r\nimport {\r\n combineClasses\r\n} from \"../utils/combine_classes\";\r\nimport {\r\n getImageSourceType\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n Icon\r\n} from \"./common/icon\";\r\nimport errors from \"../../core/errors\";\r\nimport {\r\n InkRipple\r\n} from \"./common/ink_ripple\";\r\nimport {\r\n Widget\r\n} from \"./common/widget\";\r\nimport {\r\n BaseWidgetProps\r\n} from \"./common/base_props\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar stylingModes = [\"outlined\", \"text\", \"contained\"];\r\nvar getCssClasses = model => {\r\n var {\r\n icon: icon,\r\n iconPosition: iconPosition,\r\n stylingMode: stylingMode,\r\n text: text,\r\n type: type\r\n } = model;\r\n var isValidStylingMode = stylingMode && stylingModes.includes(stylingMode);\r\n var classesMap = {\r\n \"dx-button\": true,\r\n [\"dx-button-mode-\".concat(isValidStylingMode ? stylingMode : \"contained\")]: true,\r\n [\"dx-button-\".concat(null !== type && void 0 !== type ? type : \"normal\")]: true,\r\n \"dx-button-has-text\": !!text,\r\n \"dx-button-has-icon\": !!icon,\r\n \"dx-button-icon-right\": \"left\" !== iconPosition\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n children: children,\r\n iconPosition: iconPosition,\r\n iconTemplate: IconTemplate,\r\n template: ButtonTemplate,\r\n text: text\r\n } = viewModel.props;\r\n var renderText = !viewModel.props.template && !children && \"\" !== text;\r\n var isIconLeft = \"left\" === iconPosition;\r\n var iconComponent = !viewModel.props.template && !children && (viewModel.iconSource || viewModel.props.iconTemplate) && createComponentVNode(2, Icon, {\r\n source: viewModel.iconSource,\r\n position: iconPosition,\r\n iconTemplate: IconTemplate\r\n });\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n accessKey: viewModel.props.accessKey,\r\n activeStateEnabled: viewModel.props.activeStateEnabled,\r\n aria: viewModel.aria,\r\n className: viewModel.props.className,\r\n classes: viewModel.cssClasses,\r\n disabled: viewModel.props.disabled,\r\n focusStateEnabled: viewModel.props.focusStateEnabled,\r\n height: viewModel.props.height,\r\n hint: viewModel.props.hint,\r\n hoverStateEnabled: viewModel.props.hoverStateEnabled,\r\n onActive: viewModel.onActive,\r\n onClick: viewModel.onWidgetClick,\r\n onInactive: viewModel.onInactive,\r\n onKeyDown: viewModel.keyDown,\r\n rtlEnabled: viewModel.props.rtlEnabled,\r\n tabIndex: viewModel.props.tabIndex,\r\n visible: viewModel.props.visible,\r\n width: viewModel.props.width\r\n }, viewModel.restAttributes, {\r\n children: createVNode(1, \"div\", \"dx-button-content\", [viewModel.props.template && ButtonTemplate({\r\n data: viewModel.buttonTemplateData\r\n }), !viewModel.props.template && children, isIconLeft && iconComponent, renderText && createVNode(1, \"span\", \"dx-button-text\", text, 0), !isIconLeft && iconComponent, viewModel.props.useSubmitBehavior && createVNode(64, \"input\", \"dx-button-submit-input\", null, 1, {\r\n type: \"submit\",\r\n tabIndex: -1\r\n }, null, viewModel.submitInputRef), viewModel.props.useInkRipple && createComponentVNode(2, InkRipple, {\r\n config: viewModel.inkRippleConfig\r\n }, null, viewModel.inkRippleRef)], 0, null, null, viewModel.contentRef)\r\n }), null, viewModel.widgetRef))\r\n};\r\nexport var ButtonProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BaseWidgetProps), Object.getOwnPropertyDescriptors({\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n icon: \"\",\r\n iconPosition: \"left\",\r\n stylingMode: \"contained\",\r\n text: \"\",\r\n type: \"normal\",\r\n useInkRipple: false,\r\n useSubmitBehavior: false,\r\n templateData: Object.freeze({})\r\n})));\r\nexport var defaultOptionRules = createDefaultOptionRules([{\r\n device: () => \"desktop\" === devices.real().deviceType && !devices.isSimulator(),\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n}, {\r\n device: () => isMaterial(current()),\r\n options: {\r\n useInkRipple: true\r\n }\r\n}]);\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class Button extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.contentRef = infernoCreateRef();\r\n this.inkRippleRef = infernoCreateRef();\r\n this.submitInputRef = infernoCreateRef();\r\n this.widgetRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.focus = this.focus.bind(this);\r\n this.activate = this.activate.bind(this);\r\n this.deactivate = this.deactivate.bind(this);\r\n this.submitEffect = this.submitEffect.bind(this);\r\n this.checkDeprecation = this.checkDeprecation.bind(this);\r\n this.onActive = this.onActive.bind(this);\r\n this.onInactive = this.onInactive.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.submitEffect, [this.props.onSubmit, this.props.useSubmitBehavior]), new InfernoEffect(this.checkDeprecation, [this.props.type]), createReRenderEffect()]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.onSubmit, this.props.useSubmitBehavior]);\r\n null === (_this$_effects$2 = this._effects[1]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props.type])\r\n }\r\n submitEffect() {\r\n var {\r\n onSubmit: onSubmit,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n if (useSubmitBehavior && onSubmit) {\r\n click.on(this.submitInputRef.current, event => onSubmit({\r\n event: event,\r\n submitInput: this.submitInputRef.current\r\n }), {\r\n namespace: \"UIFeedback\"\r\n });\r\n return () => click.off(this.submitInputRef.current, {\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n return\r\n }\r\n checkDeprecation() {\r\n var {\r\n type: type\r\n } = this.props;\r\n if (\"back\" === type) {\r\n errors.log(\"W0016\", \"type\", \"back\", \"22.2\", \"Use the 'back' icon instead\")\r\n }\r\n }\r\n onActive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.showWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onInactive(event) {\r\n var {\r\n useInkRipple: useInkRipple\r\n } = this.props;\r\n useInkRipple && this.inkRippleRef.current.hideWave({\r\n element: this.contentRef.current,\r\n event: event\r\n })\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n onClick: onClick,\r\n useSubmitBehavior: useSubmitBehavior\r\n } = this.props;\r\n null === onClick || void 0 === onClick ? void 0 : onClick({\r\n event: event\r\n });\r\n useSubmitBehavior && this.submitInputRef.current.click()\r\n }\r\n keyDown(e) {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = e;\r\n var result = null === onKeyDown || void 0 === onKeyDown ? void 0 : onKeyDown(e);\r\n if (null !== result && void 0 !== result && result.cancel) {\r\n return result\r\n }\r\n if (\"space\" === keyName || \"space\" === which || \"enter\" === keyName || \"enter\" === which) {\r\n originalEvent.preventDefault();\r\n this.onWidgetClick(originalEvent)\r\n }\r\n return\r\n }\r\n get aria() {\r\n var {\r\n icon: icon,\r\n text: text\r\n } = this.props;\r\n var label = (null !== text && void 0 !== text ? text : \"\") || messageLocalization.format(camelize(icon, true)) || icon;\r\n if (!text && icon && \"image\" === getImageSourceType(icon)) {\r\n label = !icon.includes(\"base64\") ? icon.replace(/.+\\/([^.]+)\\..+$/, \"$1\") : \"Base64\"\r\n }\r\n return _extends({\r\n role: \"button\"\r\n }, label ? {\r\n label: label\r\n } : {})\r\n }\r\n get cssClasses() {\r\n return getCssClasses(this.props)\r\n }\r\n get iconSource() {\r\n var {\r\n icon: icon,\r\n type: type\r\n } = this.props;\r\n if (icon || \"back\" === type) {\r\n return (null !== icon && void 0 !== icon ? icon : \"\") || \"back\"\r\n }\r\n return \"\"\r\n }\r\n get inkRippleConfig() {\r\n if (void 0 !== this.__getterCache.inkRippleConfig) {\r\n return this.__getterCache.inkRippleConfig\r\n }\r\n return this.__getterCache.inkRippleConfig = (() => {\r\n var {\r\n icon: icon,\r\n text: text,\r\n type: type\r\n } = this.props;\r\n return !text && icon || \"back\" === type ? {\r\n isCentered: true,\r\n useHoldAnimation: false,\r\n waveSizeCoefficient: 1\r\n } : {}\r\n })()\r\n }\r\n get buttonTemplateData() {\r\n var {\r\n icon: icon,\r\n templateData: templateData,\r\n text: text\r\n } = this.props;\r\n return _extends({\r\n icon: icon,\r\n text: text\r\n }, templateData)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.widgetRef.current.focus()\r\n }\r\n activate() {\r\n this.widgetRef.current.activate()\r\n }\r\n deactivate() {\r\n this.widgetRef.current.deactivate()\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.icon !== nextProps.icon || this.props.text !== nextProps.text || this.props.type !== nextProps.type) {\r\n this.__getterCache.inkRippleConfig = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n template: getTemplate(props.template),\r\n iconTemplate: getTemplate(props.iconTemplate)\r\n }),\r\n contentRef: this.contentRef,\r\n submitInputRef: this.submitInputRef,\r\n inkRippleRef: this.inkRippleRef,\r\n widgetRef: this.widgetRef,\r\n onActive: this.onActive,\r\n onInactive: this.onInactive,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n aria: this.aria,\r\n cssClasses: this.cssClasses,\r\n iconSource: this.iconSource,\r\n inkRippleConfig: this.inkRippleConfig,\r\n buttonTemplateData: this.buttonTemplateData,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nButton.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(ButtonProps), Object.getOwnPropertyDescriptors(_extends({}, convertRulesToOptions(defaultOptionRules)))));\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n Button.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(Button.defaultProps), Object.getOwnPropertyDescriptors(convertRulesToOptions(defaultOptionRules)), Object.getOwnPropertyDescriptors(convertRulesToOptions(__defaultOptionRules))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/button.j.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport BaseComponent from \"../component_wrapper/button\";\r\nimport {\r\n Button as ButtonComponent,\r\n defaultOptions\r\n} from \"./button\";\r\nexport default class Button extends BaseComponent {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n focus() {\r\n var _this$viewRef;\r\n return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.focus(...arguments)\r\n }\r\n activate() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.activate(...arguments)\r\n }\r\n deactivate() {\r\n var _this$viewRef3;\r\n return null === (_this$viewRef3 = this.viewRef) || void 0 === _this$viewRef3 ? void 0 : _this$viewRef3.deactivate(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onClick: {\r\n excludeValidators: [\"readOnly\"]\r\n },\r\n onSubmit: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [],\r\n allowNull: [],\r\n elements: [\"onSubmit\"],\r\n templates: [\"template\", \"iconTemplate\"],\r\n props: [\"activeStateEnabled\", \"hoverStateEnabled\", \"icon\", \"iconPosition\", \"onClick\", \"onSubmit\", \"pressed\", \"stylingMode\", \"template\", \"iconTemplate\", \"text\", \"type\", \"useInkRipple\", \"useSubmitBehavior\", \"templateData\", \"className\", \"accessKey\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return ButtonComponent\r\n }\r\n}\r\nregisterComponent(\"dxButton\", Button);\r\nButton.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/ui/button.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/button.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/renovation/utils/dom.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function querySelectorInSameDocument(el, selector) {\r\n var _el$getRootNode, _el$getRootNode2;\r\n var root = null !== (_el$getRootNode = null === (_el$getRootNode2 = el.getRootNode) || void 0 === _el$getRootNode2 ? void 0 : _el$getRootNode2.call(el)) && void 0 !== _el$getRootNode ? _el$getRootNode : document;\r\n return root.querySelector(selector)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/editor.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport Component from \"../common/component\";\r\nimport ValidationEngine from \"../../../ui/validation_engine\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../../core/element_data\";\r\nimport Callbacks from \"../../../core/utils/callbacks\";\r\nimport OldEditor from \"../../../ui/editor/editor\";\r\nimport {\r\n querySelectorInSameDocument\r\n} from \"../../utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nexport default class Editor extends Component {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onFocusIn = () => {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (isValidationMessageShownOnFocus) {\r\n var $validationMessageWrapper = $(querySelectorInSameDocument(this.element(), \".dx-invalid-message.dx-overlay-wrapper\"));\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n this.showValidationMessageTimeout = setTimeout(() => {\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO)\r\n }, 150)\r\n }\r\n };\r\n props.saveValueChangeEvent = e => {\r\n this._valueChangeEventInstance = e\r\n };\r\n return props\r\n }\r\n _createElement(element) {\r\n super._createElement(element);\r\n this.showValidationMessageTimeout = void 0;\r\n this.validationRequest = Callbacks();\r\n data(this.$element()[0], VALIDATION_TARGET, this)\r\n }\r\n _render() {\r\n var _this$option;\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n }\r\n _initializeComponent() {\r\n super._initializeComponent();\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n _initOptions(options) {\r\n super._initOptions(options);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n }\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var innerWidgetOptions = extend({}, innerWidget.option());\r\n var syncOptions = () => this._silent(optionsContainer, innerWidgetOptions);\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n }\r\n _raiseValidation(value, previousValue) {\r\n var areValuesEmpty = !isDefined(value) && !isDefined(previousValue);\r\n if (value !== previousValue && !areValuesEmpty) {\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n }\r\n }\r\n _raiseValueChangeAction(value, previousValue) {\r\n var _this$_valueChangeAct;\r\n null === (_this$_valueChangeAct = this._valueChangeAction) || void 0 === _this$_valueChangeAct ? void 0 : _this$_valueChangeAct.call(this, {\r\n element: this.$element(),\r\n previousValue: previousValue,\r\n value: value,\r\n event: this._valueChangeEventInstance\r\n });\r\n this._valueChangeEventInstance = void 0\r\n }\r\n _optionChanged(option) {\r\n var {\r\n name: name,\r\n previousValue: previousValue,\r\n value: value\r\n } = option;\r\n if (name && void 0 !== this._getActionConfigs()[name]) {\r\n this._addAction(name)\r\n }\r\n switch (name) {\r\n case \"value\":\r\n this._raiseValidation(value, previousValue);\r\n this._raiseValueChangeAction(value, previousValue);\r\n break;\r\n case \"onValueChanged\":\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(option, this.option()))\r\n }\r\n super._optionChanged(option)\r\n }\r\n reset() {\r\n var {\r\n value: value\r\n } = this._getDefaultOptions();\r\n this.option({\r\n value: value\r\n })\r\n }\r\n _dispose() {\r\n super._dispose();\r\n data(this.element(), VALIDATION_TARGET, null);\r\n if (this.showValidationMessageTimeout) {\r\n clearTimeout(this.showValidationMessageTimeout)\r\n }\r\n }\r\n}\r\nvar prevIsEditor = OldEditor.isEditor;\r\nvar newIsEditor = instance => prevIsEditor(instance) || instance instanceof Editor;\r\nEditor.isEditor = newIsEditor;\r\nOldEditor.isEditor = newIsEditor;\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/editors/check_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Editor from \"./editor\";\r\nexport default class CheckBox extends Editor {\r\n _useTemplates() {\r\n return false\r\n }\r\n _isFocused() {\r\n var focusTarget = this.$element()[0];\r\n return focusTarget.classList.contains(\"dx-state-focused\")\r\n }\r\n getSupportedKeyNames() {\r\n return [\"space\"]\r\n }\r\n getProps() {\r\n var props = super.getProps();\r\n if (null !== props.value) {\r\n props.value = Boolean(props.value)\r\n }\r\n return props\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isMaterial,\r\n isCompact,\r\n current\r\n} from \"../../../../ui/themes\";\r\nvar defaultIconSizes = [\r\n [22, 16],\r\n [18, 16]\r\n];\r\nvar defaultFontSizes = [\r\n [\r\n [12, 8],\r\n [20, 18]\r\n ],\r\n [\r\n [16, 10],\r\n [16, 14]\r\n ]\r\n];\r\n\r\nfunction getThemeType() {\r\n var theme = current();\r\n return {\r\n isMaterialTheme: isMaterial(theme),\r\n isCompactTheme: isCompact(theme)\r\n }\r\n}\r\n\r\nfunction getDefaultIconSize() {\r\n var {\r\n isCompactTheme: isCompactTheme,\r\n isMaterialTheme: isMaterialTheme\r\n } = getThemeType();\r\n return defaultIconSizes[+isMaterialTheme][+isCompactTheme]\r\n}\r\n\r\nfunction getDefaultFontSize(isChecked) {\r\n var {\r\n isCompactTheme: isCompactTheme,\r\n isMaterialTheme: isMaterialTheme\r\n } = getThemeType();\r\n return defaultFontSizes[+isChecked][+isMaterialTheme][+isCompactTheme]\r\n}\r\n\r\nfunction getFontSizeByIconSize(iconSize, isChecked) {\r\n var defaultFontSize = getDefaultFontSize(isChecked);\r\n var defaultIconSize = getDefaultIconSize();\r\n var fontToIconSizeRatio = defaultFontSize / defaultIconSize;\r\n return Math.ceil(fontToIconSizeRatio * iconSize)\r\n}\r\nexport {\r\n getDefaultFontSize,\r\n getDefaultIconSize,\r\n getFontSizeByIconSize\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box_icon.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"isChecked\", \"size\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport getElementComputedStyle from \"../../../utils/get_computed_style\";\r\nimport {\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n normalizeStyleProp\r\n} from \"../../../../core/utils/style\";\r\nimport {\r\n isNumeric as isNumber\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n getFontSizeByIconSize\r\n} from \"./utils\";\r\nexport var viewFunction = viewModel => {\r\n var {\r\n cssStyles: cssStyles,\r\n elementRef: elementRef\r\n } = viewModel;\r\n return createVNode(1, \"span\", \"dx-checkbox-icon\", null, 1, {\r\n style: normalizeStyles(cssStyles)\r\n }, null, elementRef)\r\n};\r\nexport var CheckBoxIconProps = {\r\n isChecked: false\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBoxIcon extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.elementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.updateFontSize = this.updateFontSize.bind(this);\r\n this.setIconFontSize = this.setIconFontSize.bind(this);\r\n this.getIconSize = this.getIconSize.bind(this);\r\n this.getComputedIconSize = this.getComputedIconSize.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateFontSize, [this.props.isChecked, this.props.size])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props.isChecked, this.props.size])\r\n }\r\n updateFontSize() {\r\n var {\r\n isChecked: isChecked,\r\n size: size\r\n } = this.props;\r\n if (hasWindow() && size) {\r\n var newIconSize = this.getIconSize(size);\r\n var newFontSize = getFontSizeByIconSize(newIconSize, isChecked);\r\n this.setIconFontSize(newFontSize)\r\n }\r\n }\r\n setIconFontSize(fontSize) {\r\n var element = this.elementRef.current;\r\n element.style.fontSize = \"\".concat(fontSize, \"px\")\r\n }\r\n getIconSize(size) {\r\n if (isNumber(size)) {\r\n return size\r\n }\r\n if (size.endsWith(\"px\")) {\r\n return parseInt(size, 10)\r\n }\r\n return this.getComputedIconSize()\r\n }\r\n getComputedIconSize() {\r\n var element = this.elementRef.current;\r\n var iconComputedStyle = getElementComputedStyle(element);\r\n var computedIconSize = parseInt(null === iconComputedStyle || void 0 === iconComputedStyle ? void 0 : iconComputedStyle.width, 10);\r\n return computedIconSize\r\n }\r\n get cssStyles() {\r\n if (void 0 !== this.__getterCache.cssStyles) {\r\n return this.__getterCache.cssStyles\r\n }\r\n return this.__getterCache.cssStyles = (() => {\r\n var {\r\n size: size\r\n } = this.props;\r\n var width = normalizeStyleProp(\"width\", size);\r\n var height = normalizeStyleProp(\"height\", size);\r\n return {\r\n height: height,\r\n width: width\r\n }\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.size !== nextProps.size) {\r\n this.__getterCache.cssStyles = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n elementRef: this.elementRef,\r\n setIconFontSize: this.setIconFontSize,\r\n getIconSize: this.getIconSize,\r\n getComputedIconSize: this.getComputedIconSize,\r\n cssStyles: this.cssStyles,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nCheckBoxIcon.defaultProps = CheckBoxIconProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"aria\", \"className\", \"defaultValue\", \"disabled\", \"enableThreeStateBehavior\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"iconSize\", \"isValid\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"saveValueChangeEvent\", \"tabIndex\", \"text\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport devices from \"../../../../core/devices\";\r\nimport {\r\n Editor,\r\n EditorProps\r\n} from \"../common/editor\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n CheckBoxIcon\r\n} from \"./check_box_icon\";\r\nimport {\r\n WidgetProps\r\n} from \"../../common/widget\";\r\nvar getCssClasses = model => {\r\n var {\r\n text: text,\r\n value: value\r\n } = model;\r\n var checked = value;\r\n var indeterminate = null === checked;\r\n var classesMap = {\r\n \"dx-checkbox\": true,\r\n \"dx-checkbox-checked\": true === checked,\r\n \"dx-checkbox-has-text\": !!text,\r\n \"dx-checkbox-indeterminate\": indeterminate\r\n };\r\n return combineClasses(classesMap)\r\n};\r\nexport var viewFunction = viewModel => {\r\n var {\r\n aria: aria,\r\n cssClasses: classes,\r\n editorRef: editorRef,\r\n keyDown: onKeyDown,\r\n onWidgetClick: onClick,\r\n props: {\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n className: className,\r\n disabled: disabled,\r\n focusStateEnabled: focusStateEnabled,\r\n height: height,\r\n hint: hint,\r\n hoverStateEnabled: hoverStateEnabled,\r\n iconSize: iconSize,\r\n isValid: isValid,\r\n name: name,\r\n onFocusIn: onFocusIn,\r\n readOnly: readOnly,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n text: text,\r\n validationError: validationError,\r\n validationErrors: validationErrors,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationStatus: validationStatus,\r\n value: value,\r\n visible: visible,\r\n width: width\r\n },\r\n restAttributes: restAttributes\r\n } = viewModel;\r\n return normalizeProps(createComponentVNode(2, Editor, _extends({\r\n aria: aria,\r\n classes: classes,\r\n onClick: onClick,\r\n onKeyDown: onKeyDown,\r\n accessKey: accessKey,\r\n activeStateEnabled: activeStateEnabled,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n className: className,\r\n disabled: disabled,\r\n readOnly: readOnly,\r\n hint: hint,\r\n height: height,\r\n width: width,\r\n rtlEnabled: rtlEnabled,\r\n tabIndex: tabIndex,\r\n visible: visible,\r\n validationError: validationError,\r\n validationErrors: validationErrors,\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationStatus: validationStatus,\r\n isValid: isValid,\r\n onFocusIn: onFocusIn\r\n }, restAttributes, {\r\n children: createFragment([normalizeProps(createVNode(64, \"input\", null, null, 1, _extends({\r\n type: \"hidden\",\r\n value: \"\".concat(value)\r\n }, name && {\r\n name: name\r\n }))), createVNode(1, \"div\", \"dx-checkbox-container\", [createComponentVNode(2, CheckBoxIcon, {\r\n size: iconSize,\r\n isChecked: true === value\r\n }), text && createVNode(1, \"span\", \"dx-checkbox-text\", text, 0)], 0)], 4)\r\n }), null, editorRef))\r\n};\r\nexport var CheckBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n text: \"\",\r\n enableThreeStateBehavior: false,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n get focusStateEnabled() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n defaultValue: false,\r\n valueChange: () => {}\r\n})));\r\nexport var CheckBoxPropsType = {\r\n get text() {\r\n return CheckBoxProps.text\r\n },\r\n get enableThreeStateBehavior() {\r\n return CheckBoxProps.enableThreeStateBehavior\r\n },\r\n get activeStateEnabled() {\r\n return CheckBoxProps.activeStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return CheckBoxProps.hoverStateEnabled\r\n },\r\n get focusStateEnabled() {\r\n return CheckBoxProps.focusStateEnabled\r\n },\r\n get defaultValue() {\r\n return CheckBoxProps.defaultValue\r\n },\r\n get valueChange() {\r\n return CheckBoxProps.valueChange\r\n },\r\n get readOnly() {\r\n return CheckBoxProps.readOnly\r\n },\r\n get name() {\r\n return CheckBoxProps.name\r\n },\r\n get validationError() {\r\n return CheckBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return CheckBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return CheckBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return CheckBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return CheckBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return CheckBoxProps.isValid\r\n },\r\n get className() {\r\n return CheckBoxProps.className\r\n },\r\n get disabled() {\r\n return CheckBoxProps.disabled\r\n },\r\n get tabIndex() {\r\n return CheckBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return CheckBoxProps.visible\r\n },\r\n get aria() {\r\n return WidgetProps.aria\r\n }\r\n};\r\nimport {\r\n convertRulesToOptions\r\n} from \"../../../../core/options/utils\";\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class CheckBox extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.editorRef = infernoCreateRef();\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n };\r\n this.focus = this.focus.bind(this);\r\n this.blur = this.blur.bind(this);\r\n this.onWidgetClick = this.onWidgetClick.bind(this);\r\n this.keyDown = this.keyDown.bind(this)\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n onWidgetClick(event) {\r\n var {\r\n enableThreeStateBehavior: enableThreeStateBehavior,\r\n readOnly: readOnly,\r\n saveValueChangeEvent: saveValueChangeEvent\r\n } = this.props;\r\n if (!readOnly) {\r\n null === saveValueChangeEvent || void 0 === saveValueChangeEvent ? void 0 : saveValueChangeEvent(event);\r\n if (enableThreeStateBehavior) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = null === (void 0 !== this.props.value ? this.props.value : __state_argument.value) || (!(void 0 !== this.props.value ? this.props.value : __state_argument.value) ? null : false);\r\n return {\r\n value: __newValue\r\n }\r\n });\r\n this.props.valueChange(__newValue)\r\n } else {\r\n var _newValue;\r\n this.setState(__state_argument => {\r\n var _ref;\r\n _newValue = !(null !== (_ref = void 0 !== this.props.value ? this.props.value : __state_argument.value) && void 0 !== _ref ? _ref : false);\r\n return {\r\n value: _newValue\r\n }\r\n });\r\n this.props.valueChange(_newValue)\r\n }\r\n }\r\n }\r\n keyDown(e) {\r\n var {\r\n onKeyDown: onKeyDown\r\n } = this.props;\r\n var {\r\n keyName: keyName,\r\n originalEvent: originalEvent,\r\n which: which\r\n } = e;\r\n var result = null === onKeyDown || void 0 === onKeyDown ? void 0 : onKeyDown(e);\r\n if (null !== result && void 0 !== result && result.cancel) {\r\n return result\r\n }\r\n if (\"space\" === keyName || \"space\" === which) {\r\n originalEvent.preventDefault();\r\n this.onWidgetClick(originalEvent)\r\n }\r\n return\r\n }\r\n get cssClasses() {\r\n return getCssClasses(_extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }))\r\n }\r\n get aria() {\r\n var checked = true === (void 0 !== this.props.value ? this.props.value : this.state.value);\r\n var indeterminate = null === (void 0 !== this.props.value ? this.props.value : this.state.value);\r\n var result = {\r\n role: \"checkbox\",\r\n checked: indeterminate ? \"mixed\" : \"\".concat(checked)\r\n };\r\n return _extends({}, result, this.props.aria)\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n focus() {\r\n this.editorRef.current.focus()\r\n }\r\n blur() {\r\n this.editorRef.current.blur()\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n editorRef: this.editorRef,\r\n onWidgetClick: this.onWidgetClick,\r\n keyDown: this.keyDown,\r\n cssClasses: this.cssClasses,\r\n aria: this.aria,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\n\r\nfunction __processTwoWayProps(defaultProps) {\r\n var twoWayProps = [\"value\"];\r\n return Object.keys(defaultProps).reduce((props, propName) => {\r\n var propValue = defaultProps[propName];\r\n var defaultPropName = twoWayProps.some(p => p === propName) ? \"default\" + propName.charAt(0).toUpperCase() + propName.slice(1) : propName;\r\n props[defaultPropName] = propValue;\r\n return props\r\n }, {})\r\n}\r\nCheckBox.defaultProps = CheckBoxPropsType;\r\nvar __defaultOptionRules = [];\r\nexport function defaultOptions(rule) {\r\n __defaultOptionRules.push(rule);\r\n CheckBox.defaultProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(CheckBox.defaultProps), Object.getOwnPropertyDescriptors(__processTwoWayProps(convertRulesToOptions(__defaultOptionRules)))))\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/check_box/check_box.j.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../../core/component_registrator\";\r\nimport BaseComponent from \"../../../component_wrapper/editors/check_box\";\r\nimport {\r\n CheckBox as CheckBoxComponent,\r\n defaultOptions\r\n} from \"./check_box\";\r\nexport default class CheckBox extends BaseComponent {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n focus() {\r\n var _this$viewRef;\r\n return null === (_this$viewRef = this.viewRef) || void 0 === _this$viewRef ? void 0 : _this$viewRef.focus(...arguments)\r\n }\r\n blur() {\r\n var _this$viewRef2;\r\n return null === (_this$viewRef2 = this.viewRef) || void 0 === _this$viewRef2 ? void 0 : _this$viewRef2.blur(...arguments)\r\n }\r\n _getActionConfigs() {\r\n return {\r\n onFocusIn: {},\r\n onClick: {}\r\n }\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [\r\n [\"value\", \"defaultValue\", \"valueChange\"]\r\n ],\r\n allowNull: [\"defaultValue\", \"validationError\", \"validationErrors\", \"value\"],\r\n elements: [],\r\n templates: [],\r\n props: [\"text\", \"iconSize\", \"enableThreeStateBehavior\", \"activeStateEnabled\", \"hoverStateEnabled\", \"focusStateEnabled\", \"saveValueChangeEvent\", \"defaultValue\", \"valueChange\", \"readOnly\", \"name\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"isValid\", \"onFocusIn\", \"className\", \"accessKey\", \"disabled\", \"height\", \"hint\", \"onClick\", \"onKeyDown\", \"rtlEnabled\", \"tabIndex\", \"visible\", \"width\", \"aria\", \"value\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return CheckBoxComponent\r\n }\r\n}\r\nregisterComponent(\"dxCheckBox\", CheckBox);\r\nCheckBox.defaultOptions = defaultOptions;\r\n","/**\r\n * DevExtreme (esm/ui/check_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/editors/check_box/check_box.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/ui/collection/item.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n attachInstanceToElement,\r\n getInstanceByElement\r\n} from \"../../core/utils/public_component\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar forcibleWatcher = function(watchMethod, fn, callback) {\r\n var filteredCallback = function(value) {\r\n if (oldValue !== value) {\r\n callback(value, oldValue);\r\n oldValue = value\r\n }\r\n };\r\n var oldValue;\r\n return {\r\n dispose: watchMethod(fn, filteredCallback),\r\n force: function() {\r\n filteredCallback(fn())\r\n }\r\n }\r\n};\r\nvar CollectionItem = Class.inherit({\r\n ctor: function($element, options, rawData) {\r\n this._$element = $element;\r\n this._options = options;\r\n this._rawData = rawData;\r\n attachInstanceToElement($element, this, this._dispose);\r\n this._render()\r\n },\r\n _render: function() {\r\n var $placeholder = $(\"<div>\").addClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n this._$element.append($placeholder);\r\n this._watchers = [];\r\n this._renderWatchers()\r\n },\r\n _renderWatchers: function() {\r\n this._startWatcher(\"disabled\", this._renderDisabled.bind(this));\r\n this._startWatcher(\"visible\", this._renderVisible.bind(this))\r\n },\r\n _startWatcher: function(field, render) {\r\n var rawData = this._rawData;\r\n var exprGetter = this._options.fieldGetter(field);\r\n var watcher = forcibleWatcher(this._options.watchMethod(), (function() {\r\n return exprGetter(rawData)\r\n }), function(value, oldValue) {\r\n this._dirty = true;\r\n render(value, oldValue)\r\n }.bind(this));\r\n this._watchers.push(watcher)\r\n },\r\n setDataField: function() {\r\n this._dirty = false;\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.force()\r\n }));\r\n if (this._dirty) {\r\n return true\r\n }\r\n },\r\n _renderDisabled: function(value, oldValue) {\r\n this._$element.toggleClass(DISABLED_STATE_CLASS, !!value);\r\n this._updateOwnerFocus(value)\r\n },\r\n _updateOwnerFocus: function(isDisabled) {\r\n var ownerComponent = this._options.owner;\r\n if (ownerComponent && isDisabled) {\r\n ownerComponent._resetItemFocus(this._$element)\r\n }\r\n },\r\n _renderVisible: function(value, oldValue) {\r\n this._$element.toggleClass(INVISIBLE_STATE_CLASS, void 0 !== value && !value)\r\n },\r\n _dispose: function() {\r\n each(this._watchers, (function(_, watcher) {\r\n watcher.dispose()\r\n }))\r\n }\r\n});\r\nCollectionItem.getInstance = function($element) {\r\n return getInstanceByElement($element, this)\r\n};\r\nexport default CollectionItem;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n findTemplates\r\n} from \"../../core/utils/template_manager\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport Action from \"../../core/action\";\r\nimport Guid from \"../../core/guid\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport CollectionWidgetItem from \"./item\";\r\nimport {\r\n focusable\r\n} from \"../widget/selectors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nvar COLLECTION_CLASS = \"dx-collection\";\r\nvar ITEM_CLASS = \"dx-item\";\r\nvar CONTENT_CLASS_POSTFIX = \"-content\";\r\nvar ITEM_CONTENT_PLACEHOLDER_CLASS = \"dx-item-content-placeholder\";\r\nvar ITEM_DATA_KEY = \"dxItemData\";\r\nvar ITEM_INDEX_KEY = \"dxItemIndex\";\r\nvar ITEM_TEMPLATE_ID_PREFIX = \"tmpl-\";\r\nvar ITEMS_OPTIONS_NAME = \"dxItem\";\r\nvar SELECTED_ITEM_CLASS = \"dx-item-selected\";\r\nvar ITEM_RESPONSE_WAIT_CLASS = \"dx-item-response-wait\";\r\nvar EMPTY_COLLECTION = \"dx-empty-collection\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar ITEM_PATH_REGEX = /^([^.]+\\[\\d+\\]\\.)+([\\w.]+)$/;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"item\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_PAGE_UP = \"pageup\";\r\nvar FOCUS_PAGE_DOWN = \"pagedown\";\r\nvar FOCUS_LAST = \"last\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar CollectionWidget = Widget.inherit({\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _supportedKeys: function() {\r\n var enter = function(e) {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n this._itemClickHandler(extend({}, e, {\r\n target: $itemElement.get(0),\r\n currentTarget: $itemElement.get(0)\r\n }))\r\n };\r\n var move = function(location, e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._moveFocus(location, e)\r\n }\r\n };\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n enter.call(this, e)\r\n },\r\n enter: enter,\r\n leftArrow: move.bind(this, FOCUS_LEFT),\r\n rightArrow: move.bind(this, FOCUS_RIGHT),\r\n upArrow: move.bind(this, FOCUS_UP),\r\n downArrow: move.bind(this, FOCUS_DOWN),\r\n pageUp: move.bind(this, FOCUS_UP),\r\n pageDown: move.bind(this, FOCUS_DOWN),\r\n home: move.bind(this, FOCUS_FIRST),\r\n end: move.bind(this, FOCUS_LAST)\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectOnFocus: false,\r\n loopItemFocus: true,\r\n items: [],\r\n itemTemplate: \"item\",\r\n onItemRendered: null,\r\n onItemClick: null,\r\n onItemHold: null,\r\n itemHoldTimeout: 750,\r\n onItemContextMenu: null,\r\n onFocusedItemChanged: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n dataSource: null,\r\n _dataController: null,\r\n _itemAttributes: {},\r\n itemTemplateProperty: \"template\",\r\n focusOnSelectedItem: true,\r\n focusedElement: null,\r\n displayExpr: void 0,\r\n disabledExpr: function(data) {\r\n return data ? data.disabled : void 0\r\n },\r\n visibleExpr: function(data) {\r\n return data ? data.visible : void 0\r\n }\r\n })\r\n },\r\n _init: function() {\r\n this._compileDisplayGetter();\r\n this._initDataController();\r\n this.callBase();\r\n this._cleanRenderedItems();\r\n this._refreshDataSource()\r\n },\r\n _compileDisplayGetter: function() {\r\n var displayExpr = this.option(\"displayExpr\");\r\n this._displayGetter = displayExpr ? compileGetter(this.option(\"displayExpr\")) : void 0\r\n },\r\n _initTemplates: function() {\r\n this._initItemsFromMarkup();\r\n this._initDefaultItemTemplate();\r\n this.callBase()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initDefaultItemTemplate: function() {\r\n var fieldsMap = this._getFieldsMap();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n if (fieldsMap && isFunction(fieldsMap.text)) {\r\n data = fieldsMap.text(data)\r\n }\r\n $container.text(String(ensureDefined(data, \"\")))\r\n }\r\n }.bind(this), this._getBindableFields(), this.option(\"integrationOptions.watchMethod\"), fieldsMap)\r\n })\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\"]\r\n },\r\n _getFieldsMap: function() {\r\n if (this._displayGetter) {\r\n return {\r\n text: this._displayGetter\r\n }\r\n }\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n if (isDefined(data.text)) {\r\n $container.text(data.text)\r\n }\r\n if (isDefined(data.html)) {\r\n $container.html(data.html)\r\n }\r\n },\r\n _initItemsFromMarkup: function() {\r\n var rawItems = findTemplates(this.$element(), ITEMS_OPTIONS_NAME);\r\n if (!rawItems.length || this.option(\"items\").length) {\r\n return\r\n }\r\n var items = rawItems.map(_ref => {\r\n var {\r\n element: element,\r\n options: options\r\n } = _ref;\r\n var isTemplateRequired = /\\S/.test(element.innerHTML) && !options.template;\r\n if (isTemplateRequired) {\r\n options.template = this._prepareItemTemplate(element)\r\n } else {\r\n $(element).remove()\r\n }\r\n return options\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _prepareItemTemplate: function(item) {\r\n var templateId = ITEM_TEMPLATE_ID_PREFIX + new Guid;\r\n var $template = $(item).detach().clone().removeAttr(\"data-options\").addClass(TEMPLATE_WRAPPER_CLASS);\r\n this._saveTemplate(templateId, $template);\r\n return templateId\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _cleanRenderedItems: function() {\r\n this._renderedItemsCount = 0\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._isFocusTarget(e.target)) {\r\n return\r\n }\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n this._setFocusedItem($focusedElement)\r\n } else {\r\n var $activeItem = this._getActiveItem();\r\n if ($activeItem.length) {\r\n this.option(\"focusedElement\", getPublicElement($activeItem))\r\n }\r\n }\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n var $target = $(this.option(\"focusedElement\"));\r\n this._updateFocusedItemState($target, false)\r\n },\r\n _getActiveItem: function(last) {\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n if ($focusedElement.length) {\r\n return $focusedElement\r\n }\r\n var index = this.option(\"focusOnSelectedItem\") ? this.option(\"selectedIndex\") : 0;\r\n var activeElements = this._getActiveElement();\r\n var lastIndex = activeElements.length - 1;\r\n if (index < 0) {\r\n index = last ? lastIndex : 0\r\n }\r\n return activeElements.eq(index)\r\n },\r\n _moveFocus: function(location) {\r\n var $items = this._getAvailableItems();\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_PAGE_UP:\r\n case FOCUS_UP:\r\n $newTarget = this._prevItem($items);\r\n break;\r\n case FOCUS_PAGE_DOWN:\r\n case FOCUS_DOWN:\r\n $newTarget = this._nextItem($items);\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._prevItem($items) : this._nextItem($items);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._nextItem($items) : this._prevItem($items);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n break;\r\n default:\r\n return false\r\n }\r\n if (0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n },\r\n _getVisibleItems: function($itemElements) {\r\n $itemElements = $itemElements || this._itemElements();\r\n return $itemElements.filter(\":visible\")\r\n },\r\n _getAvailableItems: function($itemElements) {\r\n return this._getVisibleItems($itemElements).not(\".dx-state-disabled\")\r\n },\r\n _prevItem: function($items) {\r\n var $target = this._getActiveItem();\r\n var targetIndex = $items.index($target);\r\n var $last = $items.last();\r\n var $item = $($items[targetIndex - 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $last\r\n }\r\n return $item\r\n },\r\n _nextItem: function($items) {\r\n var $target = this._getActiveItem(true);\r\n var targetIndex = $items.index($target);\r\n var $first = $items.first();\r\n var $item = $($items[targetIndex + 1]);\r\n var loop = this.option(\"loopItemFocus\");\r\n if (0 === $item.length && loop) {\r\n $item = $first\r\n }\r\n return $item\r\n },\r\n _selectFocusedItem: function($target) {\r\n this.selectItem($target)\r\n },\r\n _updateFocusedItemState: function(target, isFocused, needCleanItemId) {\r\n var $target = $(target);\r\n if ($target.length) {\r\n this._refreshActiveDescendant();\r\n this._refreshItemId($target, needCleanItemId);\r\n this._toggleFocusClass(isFocused, $target)\r\n }\r\n this._updateParentActiveDescendant()\r\n },\r\n _refreshActiveDescendant: function($target) {\r\n this.setAria(\"activedescendant\", isDefined(this.option(\"focusedElement\")) ? this.getFocusedItemId() : null, $target)\r\n },\r\n _refreshItemId: function($target, needCleanItemId) {\r\n if (!needCleanItemId && this.option(\"focusedElement\")) {\r\n this.setAria(\"id\", this.getFocusedItemId(), $target)\r\n } else {\r\n this.setAria(\"id\", null, $target)\r\n }\r\n },\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n this._updateFocusedItemState($target, true);\r\n this.onFocusedItemChanged(this.getFocusedItemId());\r\n if (this.option(\"selectOnFocus\")) {\r\n this._selectFocusedItem($target)\r\n }\r\n },\r\n _findItemElementByItem: function(item) {\r\n var result = $();\r\n var that = this;\r\n this.itemElements().each((function() {\r\n var $item = $(this);\r\n if ($item.data(that._itemDataKey()) === item) {\r\n result = $item;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n _getIndexByItem: function(item) {\r\n return this.option(\"items\").indexOf(item)\r\n },\r\n _itemOptionChanged: function(item, property, value, oldValue) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n if (!this.constructor.ItemClass.getInstance($item).setDataField(property, value)) {\r\n this._refreshItem($item, item)\r\n }\r\n var isDisabling = \"disabled\" === property && value;\r\n if (isDisabling) {\r\n this._resetItemFocus($item)\r\n }\r\n },\r\n _resetItemFocus($item) {\r\n if ($item.is(this.option(\"focusedElement\"))) {\r\n this.option(\"focusedElement\", null)\r\n }\r\n },\r\n _refreshItem: function($item) {\r\n var itemData = this._getItemData($item);\r\n var index = $item.data(this._itemIndexKey());\r\n this._renderItem(this._renderedItemsCount + index, itemData, null, $item)\r\n },\r\n _updateParentActiveDescendant: noop,\r\n _optionChanged: function(args) {\r\n if (\"items\" === args.name) {\r\n var matches = args.fullName.match(ITEM_PATH_REGEX);\r\n if (matches && matches.length) {\r\n var property = matches[matches.length - 1];\r\n var itemPath = args.fullName.replace(\".\" + property, \"\");\r\n var item = this.option(itemPath);\r\n this._itemOptionChanged(item, property, args.value, args.previousValue);\r\n return\r\n }\r\n }\r\n switch (args.name) {\r\n case \"items\":\r\n case \"_itemAttributes\":\r\n case \"itemTemplateProperty\":\r\n case \"useItemTextAsTitle\":\r\n this._cleanRenderedItems();\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n this._refreshDataSource();\r\n this._renderEmptyMessage();\r\n break;\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n this._renderEmptyMessage();\r\n break;\r\n case \"itemTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"onItemRendered\":\r\n this._createItemRenderAction();\r\n break;\r\n case \"onItemClick\":\r\n break;\r\n case \"onItemHold\":\r\n case \"itemHoldTimeout\":\r\n this._attachHoldEvent();\r\n break;\r\n case \"onItemContextMenu\":\r\n this._attachContextMenuEvent();\r\n break;\r\n case \"onFocusedItemChanged\":\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n break;\r\n case \"selectOnFocus\":\r\n case \"loopItemFocus\":\r\n case \"focusOnSelectedItem\":\r\n break;\r\n case \"focusedElement\":\r\n this._updateFocusedItemState(args.previousValue, false, true);\r\n this._setFocusedItem($(args.value));\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDefaultItemTemplate();\r\n this._invalidate();\r\n break;\r\n case \"visibleExpr\":\r\n case \"disabledExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _invalidate: function() {\r\n this.option(\"focusedElement\", null);\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _loadNextPage: function() {\r\n this._expectNextPageLoading();\r\n return this._dataController.loadNextPage()\r\n },\r\n _expectNextPageLoading: function() {\r\n this._startIndexForAppendedItems = 0\r\n },\r\n _expectLastItemLoading: function() {\r\n this._startIndexForAppendedItems = -1\r\n },\r\n _forgetNextPageLoading: function() {\r\n this._startIndexForAppendedItems = null\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && items && this._shouldAppendItems()) {\r\n this._renderedItemsCount = items.length;\r\n if (!this._isLastPage() || -1 !== this._startIndexForAppendedItems) {\r\n this.option().items = items.concat(newItems.slice(this._startIndexForAppendedItems))\r\n }\r\n this._forgetNextPageLoading();\r\n this._refreshContent()\r\n } else {\r\n this.option(\"items\", newItems.slice())\r\n }\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n this.option(\"items\", this.option(\"items\"))\r\n },\r\n _shouldAppendItems: function() {\r\n return null != this._startIndexForAppendedItems && this._allowDynamicItemsAppend()\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return false\r\n },\r\n _clean: function() {\r\n this._cleanFocusState();\r\n this._cleanItemContainer();\r\n this._inkRipple && delete this._inkRipple;\r\n this._resetActiveState()\r\n },\r\n _cleanItemContainer: function() {\r\n $(this._itemContainer()).empty()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._itemFocusTimeout)\r\n },\r\n _refresh: function() {\r\n this._cleanRenderedItems();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _itemContainer: function() {\r\n return this.$element()\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemContentClass: function() {\r\n return this._itemClass() + CONTENT_CLASS_POSTFIX\r\n },\r\n _selectedItemClass: function() {\r\n return SELECTED_ITEM_CLASS\r\n },\r\n _itemResponseWaitClass: function() {\r\n return ITEM_RESPONSE_WAIT_CLASS\r\n },\r\n _itemSelector: function() {\r\n return \".\" + this._itemClass()\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _itemIndexKey: function() {\r\n return ITEM_INDEX_KEY\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().find(this._itemSelector())\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.onFocusedItemChanged = this._createActionByOption(\"onFocusedItemChanged\");\r\n this.$element().addClass(COLLECTION_CLASS);\r\n this._prepareContent()\r\n },\r\n _prepareContent: deferRenderer((function() {\r\n this._renderContentImpl()\r\n })),\r\n _renderContent: function() {\r\n this._fireContentReadyAction()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._attachClickEvent();\r\n this._attachHoldEvent();\r\n this._attachContextMenuEvent()\r\n },\r\n _attachClickEvent: function() {\r\n var itemSelector = this._itemSelector();\r\n var clickEventNamespace = addNamespace(clickEventName, this.NAME);\r\n var pointerDownEventNamespace = addNamespace(pointerEvents.down, this.NAME);\r\n var that = this;\r\n var pointerDownAction = new Action((function(args) {\r\n var event = args.event;\r\n that._itemPointerDownHandler(event)\r\n }));\r\n eventsEngine.off(this._itemContainer(), clickEventNamespace, itemSelector);\r\n eventsEngine.off(this._itemContainer(), pointerDownEventNamespace, itemSelector);\r\n eventsEngine.on(this._itemContainer(), clickEventNamespace, itemSelector, function(e) {\r\n this._itemClickHandler(e)\r\n }.bind(this));\r\n eventsEngine.on(this._itemContainer(), pointerDownEventNamespace, itemSelector, (function(e) {\r\n pointerDownAction.execute({\r\n element: $(e.target),\r\n event: e\r\n })\r\n }))\r\n },\r\n _itemClickHandler: function(e, args, config) {\r\n this._itemDXEventHandler(e, \"onItemClick\", args, config)\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n this._itemFocusHandler = function() {\r\n clearTimeout(this._itemFocusTimeout);\r\n this._itemFocusHandler = null;\r\n if (e.isDefaultPrevented()) {\r\n return\r\n }\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n var $closestFocusable = this._closestFocusable($target);\r\n if ($closestItem.length && this._isFocusTarget(null === $closestFocusable || void 0 === $closestFocusable ? void 0 : $closestFocusable.get(0))) {\r\n this.option(\"focusedElement\", getPublicElement($closestItem))\r\n }\r\n }.bind(this);\r\n this._itemFocusTimeout = setTimeout(this._forcePointerDownFocus.bind(this))\r\n },\r\n _closestFocusable: function($target) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n } else {\r\n $target = $target.parent();\r\n while ($target.length && !domAdapter.isDocument($target.get(0)) && !domAdapter.isDocumentFragment($target.get(0))) {\r\n if ($target.is(focusable)) {\r\n return $target\r\n }\r\n $target = $target.parent()\r\n }\r\n }\r\n },\r\n _forcePointerDownFocus: function() {\r\n this._itemFocusHandler && this._itemFocusHandler()\r\n },\r\n _updateFocusState: function() {\r\n this.callBase.apply(this, arguments);\r\n this._forcePointerDownFocus()\r\n },\r\n _attachHoldEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(holdEvent.name, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, {\r\n timeout: this._getHoldTimeout()\r\n }, this._itemHoldHandler.bind(this))\r\n },\r\n _getHoldTimeout: function() {\r\n return this.option(\"itemHoldTimeout\")\r\n },\r\n _shouldFireHoldEvent: function() {\r\n return this.hasActionSubscription(\"onItemHold\")\r\n },\r\n _itemHoldHandler: function(e) {\r\n if (this._shouldFireHoldEvent()) {\r\n this._itemDXEventHandler(e, \"onItemHold\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _attachContextMenuEvent: function() {\r\n var $itemContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, itemSelector);\r\n eventsEngine.on($itemContainer, eventName, itemSelector, this._itemContextMenuHandler.bind(this))\r\n },\r\n _shouldFireContextMenuEvent: function() {\r\n return this.hasActionSubscription(\"onItemContextMenu\")\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n if (this._shouldFireContextMenuEvent()) {\r\n this._itemDXEventHandler(e, \"onItemContextMenu\")\r\n } else {\r\n e.cancel = true\r\n }\r\n },\r\n _renderContentImpl: function() {\r\n var items = this.option(\"items\") || [];\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (items.length) {\r\n each(items, function(index, itemData) {\r\n this._renderItem(this._renderedItemsCount + index, itemData)\r\n }.bind(this))\r\n }\r\n this._renderEmptyMessage()\r\n },\r\n _renderItem: function(index, itemData, $container, $itemToReplace) {\r\n var _index$item;\r\n var itemIndex = null !== (_index$item = null === index || void 0 === index ? void 0 : index.item) && void 0 !== _index$item ? _index$item : index;\r\n $container = $container || this._itemContainer();\r\n var $itemFrame = this._renderItemFrame(itemIndex, itemData, $container, $itemToReplace);\r\n this._setElementData($itemFrame, itemData, itemIndex);\r\n $itemFrame.attr(this.option(\"_itemAttributes\"));\r\n this._attachItemClickEvent(itemData, $itemFrame);\r\n var $itemContent = this._getItemContent($itemFrame);\r\n var renderContentPromise = this._renderItemContent({\r\n index: itemIndex,\r\n itemData: itemData,\r\n container: getPublicElement($itemContent),\r\n contentClass: this._itemContentClass(),\r\n defaultTemplateName: this.option(\"itemTemplate\")\r\n });\r\n var that = this;\r\n when(renderContentPromise).done((function($itemContent) {\r\n that._postprocessRenderItem({\r\n itemElement: $itemFrame,\r\n itemContent: $itemContent,\r\n itemData: itemData,\r\n itemIndex: itemIndex\r\n });\r\n that._executeItemRenderAction(index, itemData, getPublicElement($itemFrame))\r\n }));\r\n return $itemFrame\r\n },\r\n _getItemContent: function($itemFrame) {\r\n var $itemContent = $itemFrame.find(\".\" + ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n $itemContent.removeClass(ITEM_CONTENT_PLACEHOLDER_CLASS);\r\n return $itemContent\r\n },\r\n _attachItemClickEvent: function(itemData, $itemElement) {\r\n if (!itemData || !itemData.onClick) {\r\n return\r\n }\r\n eventsEngine.on($itemElement, clickEventName, function(e) {\r\n this._itemEventHandlerByHandler($itemElement, itemData.onClick, {\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _renderItemContent: function(args) {\r\n var itemTemplateName = this._getItemTemplateName(args);\r\n var itemTemplate = this._getTemplate(itemTemplateName);\r\n this._addItemContentClasses(args);\r\n var $templateResult = $(this._createItemByTemplate(itemTemplate, args));\r\n if (!$templateResult.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n return args.container\r\n }\r\n return this._renderItemContentByNode(args, $templateResult)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n $(args.container).replaceWith($node);\r\n args.container = getPublicElement($node);\r\n this._addItemContentClasses(args);\r\n return $node\r\n },\r\n _addItemContentClasses: function(args) {\r\n var classes = [ITEM_CLASS + CONTENT_CLASS_POSTFIX, args.contentClass];\r\n $(args.container).addClass(classes.join(\" \"))\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n $itemFrame.appendTo($container)\r\n },\r\n _renderItemFrame: function(index, itemData, $container, $itemToReplace) {\r\n var $itemFrame = $(\"<div>\");\r\n new this.constructor.ItemClass($itemFrame, this._itemOptions(), itemData || {});\r\n if ($itemToReplace && $itemToReplace.length) {\r\n $itemToReplace.replaceWith($itemFrame)\r\n } else {\r\n this._appendItemToContainer.call(this, $container, $itemFrame, index)\r\n }\r\n if (this.option(\"useItemTextAsTitle\")) {\r\n var displayValue = this._displayGetter ? this._displayGetter(itemData) : itemData;\r\n $itemFrame.attr(\"title\", displayValue)\r\n }\r\n return $itemFrame\r\n },\r\n _itemOptions: function() {\r\n var that = this;\r\n return {\r\n watchMethod: function() {\r\n return that.option(\"integrationOptions.watchMethod\")\r\n },\r\n owner: that,\r\n fieldGetter: function(field) {\r\n var expr = that.option(field + \"Expr\");\r\n var getter = compileGetter(expr);\r\n return getter\r\n }\r\n }\r\n },\r\n _postprocessRenderItem: noop,\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: index,\r\n itemData: itemData\r\n })\r\n },\r\n _setElementData: function(element, data, index) {\r\n element.addClass([ITEM_CLASS, this._itemClass()].join(\" \")).data(this._itemDataKey(), data).data(this._itemIndexKey(), index)\r\n },\r\n _createItemRenderAction: function() {\r\n return this._itemRenderAction = this._createActionByOption(\"onItemRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n })\r\n },\r\n _getItemRenderAction: function() {\r\n return this._itemRenderAction || this._createItemRenderAction()\r\n },\r\n _getItemTemplateName: function(args) {\r\n var data = args.itemData;\r\n var templateProperty = args.templateProperty || this.option(\"itemTemplateProperty\");\r\n var template = data && data[templateProperty];\r\n return template || args.defaultTemplateName\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index\r\n })\r\n },\r\n _emptyMessageContainer: function() {\r\n return this._itemContainer()\r\n },\r\n _renderEmptyMessage: function(items) {\r\n items = items || this.option(\"items\");\r\n var noDataText = this.option(\"noDataText\");\r\n var hideNoData = !noDataText || items && items.length || this._dataController.isLoading();\r\n if (hideNoData && this._$noData) {\r\n this._$noData.remove();\r\n this._$noData = null;\r\n this.setAria(\"label\", void 0)\r\n }\r\n if (!hideNoData) {\r\n this._$noData = this._$noData || $(\"<div>\").addClass(\"dx-empty-message\");\r\n this._$noData.appendTo(this._emptyMessageContainer());\r\n if (this.option(\"encodeNoDataText\")) {\r\n this._$noData.text(noDataText)\r\n } else {\r\n this._$noData.html(noDataText)\r\n }\r\n this.setAria(\"label\", noDataText)\r\n }\r\n this.$element().toggleClass(EMPTY_COLLECTION, !hideNoData)\r\n },\r\n _itemDXEventHandler: function(dxEvent, handlerOptionName, actionArgs, actionConfig) {\r\n this._itemEventHandler(dxEvent.target, handlerOptionName, extend(actionArgs, {\r\n event: dxEvent\r\n }), actionConfig)\r\n },\r\n _itemEventHandler: function(initiator, handlerOptionName, actionArgs, actionConfig) {\r\n var action = this._createActionByOption(handlerOptionName, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerByHandler: function(initiator, handler, actionArgs, actionConfig) {\r\n var action = this._createAction(handler, extend({\r\n validatingTargetName: \"itemElement\"\r\n }, actionConfig));\r\n return this._itemEventHandlerImpl(initiator, action, actionArgs)\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = this._closestItemElement($(initiator));\r\n var args = extend({}, actionArgs);\r\n return action(extend(actionArgs, this._extendActionArgs($itemElement), args))\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n return {\r\n itemElement: getPublicElement($itemElement),\r\n itemIndex: this._itemElements().index($itemElement),\r\n itemData: this._getItemData($itemElement)\r\n }\r\n },\r\n _closestItemElement: function($element) {\r\n return $($element).closest(this._itemSelector())\r\n },\r\n _getItemData: function(itemElement) {\r\n return $(itemElement).data(this._itemDataKey())\r\n },\r\n _getSummaryItemsWidth: function(items, includeMargin) {\r\n var result = 0;\r\n if (items) {\r\n each(items, (function(_, item) {\r\n result += getOuterWidth(item, includeMargin || false)\r\n }))\r\n }\r\n return result\r\n },\r\n getFocusedItemId: function() {\r\n if (!this._focusedItemId) {\r\n this._focusedItemId = \"dx-\" + new Guid\r\n }\r\n return this._focusedItemId\r\n },\r\n itemElements: function() {\r\n return this._itemElements()\r\n },\r\n itemsContainer: function() {\r\n return this._itemContainer()\r\n }\r\n}).include(DataHelperMixin);\r\nCollectionWidget.ItemClass = CollectionWidgetItem;\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport BaseCollectionWidget from \"./ui.collection_widget.base\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport PlainEditStrategy from \"./ui.collection_widget.edit.strategy.plain\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n normalizeLoadResult\r\n} from \"../../data/data_source/utils\";\r\nimport Selection from \"../selection/selection\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nvar ITEM_DELETING_DATA_KEY = \"dxItemDeleting\";\r\nvar NOT_EXISTING_INDEX = -1;\r\nvar indexExists = function(index) {\r\n return index !== NOT_EXISTING_INDEX\r\n};\r\nvar CollectionWidget = BaseCollectionWidget.inherit({\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectionMode: \"none\",\r\n selectionRequired: false,\r\n selectionByClick: true,\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n maxFilterLengthInRequest: 1500,\r\n keyExpr: null,\r\n selectedIndex: NOT_EXISTING_INDEX,\r\n selectedItem: null,\r\n onSelectionChanged: null,\r\n onItemReordered: null,\r\n onItemDeleting: null,\r\n onItemDeleted: null\r\n })\r\n },\r\n ctor: function(element, options) {\r\n this._userOptions = options || {};\r\n this.callBase(element, options)\r\n },\r\n _init: function() {\r\n this._initEditStrategy();\r\n this.callBase();\r\n this._initKeyGetter();\r\n this._initSelectionModule()\r\n },\r\n _initKeyGetter: function() {\r\n this._keyGetter = compileGetter(this.option(\"keyExpr\"))\r\n },\r\n _getKeysByItems: function(selectedItems) {\r\n return this._editStrategy.getKeysByItems(selectedItems)\r\n },\r\n _getItemsByKeys: function(selectedItemKeys, selectedItems) {\r\n return this._editStrategy.getItemsByKeys(selectedItemKeys, selectedItems)\r\n },\r\n _getKeyByIndex: function(index) {\r\n return this._editStrategy.getKeyByIndex(index)\r\n },\r\n _getIndexByKey: function(key) {\r\n return this._editStrategy.getIndexByKey(key)\r\n },\r\n _getIndexByItemData: function(itemData) {\r\n return this._editStrategy.getIndexByItemData(itemData)\r\n },\r\n _isKeySpecified: function() {\r\n return !!this._dataController.key()\r\n },\r\n _getCombinedFilter: function() {\r\n return this._dataController.filter()\r\n },\r\n key: function() {\r\n if (this.option(\"keyExpr\")) {\r\n return this.option(\"keyExpr\")\r\n }\r\n return this._dataController.key()\r\n },\r\n keyOf: function(item) {\r\n var key = item;\r\n if (this.option(\"keyExpr\")) {\r\n key = this._keyGetter(item)\r\n } else if (this._dataController.store()) {\r\n key = this._dataController.keyOf(item)\r\n }\r\n return key\r\n },\r\n _nullValueSelectionSupported: function() {\r\n return false\r\n },\r\n _initSelectionModule: function() {\r\n var that = this;\r\n var itemsGetter = that._editStrategy.itemsGetter;\r\n this._selection = new Selection({\r\n allowNullValue: this._nullValueSelectionSupported(),\r\n mode: this.option(\"selectionMode\"),\r\n maxFilterLengthInRequest: this.option(\"maxFilterLengthInRequest\"),\r\n equalByReference: !this._isKeySpecified(),\r\n onSelectionChanged: function(args) {\r\n if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n that.option(\"selectedItems\", that._getItemsByKeys(args.selectedItemKeys, args.selectedItems));\r\n that._updateSelectedItems(args)\r\n }\r\n },\r\n filter: that._getCombinedFilter.bind(that),\r\n totalCount: function() {\r\n var items = that.option(\"items\");\r\n var totalCount = that._dataController.totalCount();\r\n return totalCount >= 0 ? totalCount : that._getItemsCount(items)\r\n },\r\n key: that.key.bind(that),\r\n keyOf: that.keyOf.bind(that),\r\n load: function(options) {\r\n var _dataController$loadO;\r\n var dataController = that._dataController;\r\n options.customQueryParams = null === (_dataController$loadO = dataController.loadOptions()) || void 0 === _dataController$loadO ? void 0 : _dataController$loadO.customQueryParams;\r\n options.userData = dataController.userData();\r\n if (dataController.store()) {\r\n return dataController.loadFromStore(options).done((function(loadResult) {\r\n if (that._disposed) {\r\n return\r\n }\r\n var items = normalizeLoadResult(loadResult).data;\r\n dataController.applyMapFunction(items)\r\n }))\r\n } else {\r\n return (new Deferred).resolve(this.plainItems())\r\n }\r\n },\r\n dataFields: function() {\r\n return that._dataController.select()\r\n },\r\n plainItems: itemsGetter.bind(that._editStrategy)\r\n })\r\n },\r\n _getItemsCount: function(items) {\r\n return items.reduce((itemsCount, item) => itemsCount + (item.items ? this._getItemsCount(item.items) : 1), 0)\r\n },\r\n _initEditStrategy: function() {\r\n var Strategy = PlainEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n },\r\n _getSelectedItemIndices: function(keys) {\r\n var that = this;\r\n var indices = [];\r\n keys = keys || this._selection.getSelectedItemKeys();\r\n that._editStrategy.beginCache();\r\n each(keys, (function(_, key) {\r\n var selectedIndex = that._getIndexByKey(key);\r\n if (indexExists(selectedIndex)) {\r\n indices.push(selectedIndex)\r\n }\r\n }));\r\n that._editStrategy.endCache();\r\n return indices\r\n },\r\n _initMarkup: function() {\r\n this._rendering = true;\r\n if (!this._dataController.isLoading()) {\r\n this._syncSelectionOptions().done(() => this._normalizeSelectedItems())\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._rendering = false\r\n },\r\n _fireContentReadyAction: function() {\r\n this._rendering = false;\r\n this._rendered = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _syncSelectionOptions: function(byOption) {\r\n byOption = byOption || this._chooseSelectOption();\r\n var selectedItem;\r\n var selectedIndex;\r\n var selectedItemKeys;\r\n var selectedItems;\r\n switch (byOption) {\r\n case \"selectedIndex\":\r\n selectedItem = this._editStrategy.getItemDataByIndex(this.option(\"selectedIndex\"));\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n break;\r\n case \"selectedItems\":\r\n selectedItems = this.option(\"selectedItems\") || [];\r\n selectedIndex = selectedItems.length ? this._editStrategy.getIndexByItemData(selectedItems[0]) : NOT_EXISTING_INDEX;\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItems[0]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems(selectedItems));\r\n break;\r\n case \"selectedItem\":\r\n selectedItem = this.option(\"selectedItem\");\r\n selectedIndex = this._editStrategy.getIndexByItemData(selectedItem);\r\n if (this.option(\"selectionRequired\") && !indexExists(selectedIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n if (isDefined(selectedItem)) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [selectedItem]);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", selectedIndex);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._editStrategy.getKeysByItems([selectedItem]))\r\n } else {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", []);\r\n this._setOptionWithoutOptionChange(\"selectedIndex\", NOT_EXISTING_INDEX)\r\n }\r\n break;\r\n case \"selectedItemKeys\":\r\n selectedItemKeys = this.option(\"selectedItemKeys\");\r\n if (this.option(\"selectionRequired\")) {\r\n var selectedItemIndex = this._getIndexByKey(selectedItemKeys[0]);\r\n if (!indexExists(selectedItemIndex)) {\r\n return this._syncSelectionOptions(\"selectedIndex\")\r\n }\r\n }\r\n return this._selection.setSelection(selectedItemKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _chooseSelectOption: function() {\r\n var optionName = \"selectedIndex\";\r\n var isOptionDefined = function(optionName) {\r\n var optionValue = this.option(optionName);\r\n var length = isDefined(optionValue) && optionValue.length;\r\n return length || optionName in this._userOptions\r\n }.bind(this);\r\n if (isOptionDefined(\"selectedItems\")) {\r\n optionName = \"selectedItems\"\r\n } else if (isOptionDefined(\"selectedItem\")) {\r\n optionName = \"selectedItem\"\r\n } else if (isOptionDefined(\"selectedItemKeys\")) {\r\n optionName = \"selectedItemKeys\"\r\n }\r\n return optionName\r\n },\r\n _compareKeys: function(oldKeys, newKeys) {\r\n if (oldKeys.length !== newKeys.length) {\r\n return false\r\n }\r\n for (var i = 0; i < newKeys.length; i++) {\r\n if (oldKeys[i] !== newKeys[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _normalizeSelectedItems: function() {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n } else if (\"single\" === this.option(\"selectionMode\")) {\r\n var newSelection = this.option(\"selectedItems\");\r\n if (newSelection.length > 1 || !newSelection.length && this.option(\"selectionRequired\") && this.option(\"items\") && this.option(\"items\").length) {\r\n var currentSelection = this._selection.getSelectedItems();\r\n var normalizedSelection = void 0 === newSelection[0] ? currentSelection[0] : newSelection[0];\r\n if (void 0 === normalizedSelection) {\r\n normalizedSelection = this._editStrategy.itemsGetter()[0]\r\n }\r\n if (this.option(\"grouped\") && normalizedSelection && normalizedSelection.items) {\r\n normalizedSelection.items = [normalizedSelection.items[0]]\r\n }\r\n this._selection.setSelection(this._getKeysByItems([normalizedSelection]));\r\n this._setOptionWithoutOptionChange(\"selectedItems\", [normalizedSelection]);\r\n return this._syncSelectionOptions(\"selectedItems\")\r\n } else {\r\n this._selection.setSelection(this._getKeysByItems(newSelection))\r\n }\r\n } else {\r\n var newKeys = this._getKeysByItems(this.option(\"selectedItems\"));\r\n var oldKeys = this._selection.getSelectedItemKeys();\r\n if (!this._compareKeys(oldKeys, newKeys)) {\r\n this._selection.setSelection(newKeys)\r\n }\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n _itemClickHandler: function(e) {\r\n var itemSelectPromise = (new Deferred).resolve();\r\n var callBase = this.callBase;\r\n this._createAction(function(e) {\r\n var _this$_itemSelectHand;\r\n itemSelectPromise = null !== (_this$_itemSelectHand = this._itemSelectHandler(e.event)) && void 0 !== _this$_itemSelectHand ? _this$_itemSelectHand : itemSelectPromise\r\n }.bind(this), {\r\n validatingTargetName: \"itemElement\"\r\n })({\r\n itemElement: $(e.currentTarget),\r\n event: e\r\n });\r\n itemSelectPromise.always(() => {\r\n callBase.apply(this, arguments)\r\n })\r\n },\r\n _itemSelectHandler: function(e) {\r\n var _itemSelectPromise;\r\n var itemSelectPromise;\r\n if (!this.option(\"selectionByClick\")) {\r\n return\r\n }\r\n var $itemElement = e.currentTarget;\r\n if (this.isItemSelected($itemElement)) {\r\n this.unselectItem(e.currentTarget)\r\n } else {\r\n itemSelectPromise = this.selectItem(e.currentTarget)\r\n }\r\n return null === (_itemSelectPromise = itemSelectPromise) || void 0 === _itemSelectPromise ? void 0 : _itemSelectPromise.promise()\r\n },\r\n _selectedItemElement: function(index) {\r\n return this._itemElements().eq(index)\r\n },\r\n _postprocessRenderItem: function(args) {\r\n if (\"none\" !== this.option(\"selectionMode\")) {\r\n var $itemElement = $(args.itemElement);\r\n var normalizedItemIndex = this._editStrategy.getNormalizedIndex($itemElement);\r\n var isItemSelected = this._isItemSelected(normalizedItemIndex);\r\n this._processSelectableItem($itemElement, isItemSelected)\r\n }\r\n },\r\n _processSelectableItem: function($itemElement, isSelected) {\r\n $itemElement.toggleClass(this._selectedItemClass(), isSelected);\r\n this._setAriaSelected($itemElement, String(isSelected))\r\n },\r\n _updateSelectedItems: function(args) {\r\n var that = this;\r\n var addedItemKeys = args.addedItemKeys;\r\n var removedItemKeys = args.removedItemKeys;\r\n if (that._rendered && (addedItemKeys.length || removedItemKeys.length)) {\r\n var selectionChangePromise = that._selectionChangePromise;\r\n if (!that._rendering) {\r\n var addedSelection = [];\r\n var normalizedIndex;\r\n var removedSelection = [];\r\n that._editStrategy.beginCache();\r\n for (var i = 0; i < addedItemKeys.length; i++) {\r\n normalizedIndex = that._getIndexByKey(addedItemKeys[i]);\r\n addedSelection.push(normalizedIndex);\r\n that._addSelection(normalizedIndex)\r\n }\r\n for (var _i = 0; _i < removedItemKeys.length; _i++) {\r\n normalizedIndex = that._getIndexByKey(removedItemKeys[_i]);\r\n removedSelection.push(normalizedIndex);\r\n that._removeSelection(normalizedIndex)\r\n }\r\n that._editStrategy.endCache();\r\n that._updateSelection(addedSelection, removedSelection)\r\n }\r\n when(selectionChangePromise).done((function() {\r\n that._fireSelectionChangeEvent(args.addedItems, args.removedItems)\r\n }))\r\n }\r\n },\r\n _fireSelectionChangeEvent: function(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _updateSelection: noop,\r\n _setAriaSelected: function($target, value) {\r\n this.setAria(\"selected\", value, $target)\r\n },\r\n _removeSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, false);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", false)\r\n }\r\n },\r\n _addSelection: function(normalizedIndex) {\r\n var $itemElement = this._editStrategy.getItemElement(normalizedIndex);\r\n if (indexExists(normalizedIndex)) {\r\n this._processSelectableItem($itemElement, true);\r\n eventsEngine.triggerHandler($itemElement, \"stateChanged\", true)\r\n }\r\n },\r\n _isItemSelected: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n return this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"selectionMode\":\r\n this._invalidate();\r\n break;\r\n case \"dataSource\":\r\n if (!args.value || Array.isArray(args.value) && !args.value.length) {\r\n this.option(\"selectedItemKeys\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n case \"selectedItems\":\r\n case \"selectedItemKeys\":\r\n this._syncSelectionOptions(args.name).done(() => this._normalizeSelectedItems());\r\n break;\r\n case \"keyExpr\":\r\n this._initKeyGetter();\r\n break;\r\n case \"selectionRequired\":\r\n this._normalizeSelectedItems();\r\n break;\r\n case \"selectionByClick\":\r\n case \"onSelectionChanged\":\r\n case \"onItemDeleting\":\r\n case \"onItemDeleted\":\r\n case \"onItemReordered\":\r\n case \"maxFilterLengthInRequest\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearSelectedItems: function() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", []);\r\n this._syncSelectionOptions(\"selectedItems\")\r\n },\r\n _waitDeletingPrepare: function($itemElement) {\r\n if ($itemElement.data(ITEM_DELETING_DATA_KEY)) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, true);\r\n var deferred = new Deferred;\r\n var deletingActionArgs = {\r\n cancel: false\r\n };\r\n var deletePromise = this._itemEventHandler($itemElement, \"onItemDeleting\", deletingActionArgs, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n when(deletePromise).always(function(value) {\r\n var deletePromiseExists = !deletePromise;\r\n var deletePromiseResolved = !deletePromiseExists && \"resolved\" === deletePromise.state();\r\n var argumentsSpecified = !!arguments.length;\r\n var shouldDelete = deletePromiseExists || deletePromiseResolved && !argumentsSpecified || deletePromiseResolved && value;\r\n when(fromPromise(deletingActionArgs.cancel)).always((function() {\r\n $itemElement.data(ITEM_DELETING_DATA_KEY, false)\r\n })).done((function(cancel) {\r\n shouldDelete && !cancel ? deferred.resolve() : deferred.reject()\r\n })).fail(deferred.reject)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _deleteItemFromDS: function($item) {\r\n var dataController = this._dataController;\r\n var deferred = new Deferred;\r\n var disabledState = this.option(\"disabled\");\r\n var dataStore = dataController.store();\r\n if (!dataStore) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n if (!dataStore.remove) {\r\n throw errors.Error(\"E1011\")\r\n }\r\n this.option(\"disabled\", true);\r\n dataStore.remove(dataController.keyOf(this._getItemData($item))).done((function(key) {\r\n if (void 0 !== key) {\r\n deferred.resolve()\r\n } else {\r\n deferred.reject()\r\n }\r\n })).fail((function() {\r\n deferred.reject()\r\n }));\r\n deferred.always(function() {\r\n this.option(\"disabled\", disabledState)\r\n }.bind(this));\r\n return deferred\r\n },\r\n _tryRefreshLastPage: function() {\r\n var deferred = new Deferred;\r\n if (this._isLastPage() || this.option(\"grouped\")) {\r\n deferred.resolve()\r\n } else {\r\n this._refreshLastPage().done((function() {\r\n deferred.resolve()\r\n }))\r\n }\r\n return deferred.promise()\r\n },\r\n _refreshLastPage: function() {\r\n this._expectLastItemLoading();\r\n return this._dataController.load()\r\n },\r\n _updateSelectionAfterDelete: function(index) {\r\n var key = this._getKeyByIndex(index);\r\n this._selection.deselect([key])\r\n },\r\n _updateIndicesAfterIndex: function(index) {\r\n var itemElements = this._itemElements();\r\n for (var i = index + 1; i < itemElements.length; i++) {\r\n $(itemElements[i]).data(this._itemIndexKey(), i - 1)\r\n }\r\n },\r\n _simulateOptionChange: function(optionName) {\r\n var optionValue = this.option(optionName);\r\n if (optionValue instanceof DataSource) {\r\n return\r\n }\r\n this._optionChangedAction({\r\n name: optionName,\r\n fullName: optionName,\r\n value: optionValue\r\n })\r\n },\r\n isItemSelected: function(itemElement) {\r\n return this._isItemSelected(this._editStrategy.getNormalizedIndex(itemElement))\r\n },\r\n selectItem: function(itemElement) {\r\n if (\"none\" === this.option(\"selectionMode\")) {\r\n return\r\n }\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (this._selection.isItemSelected(key)) {\r\n return\r\n }\r\n if (\"single\" === this.option(\"selectionMode\")) {\r\n return this._selection.setSelection([key])\r\n } else {\r\n var selectedItemKeys = this.option(\"selectedItemKeys\") || [];\r\n return this._selection.setSelection([...selectedItemKeys, key], [key])\r\n }\r\n },\r\n unselectItem: function(itemElement) {\r\n var itemIndex = this._editStrategy.getNormalizedIndex(itemElement);\r\n if (!indexExists(itemIndex)) {\r\n return\r\n }\r\n var selectedItemKeys = this._selection.getSelectedItemKeys();\r\n if (this.option(\"selectionRequired\") && selectedItemKeys.length <= 1) {\r\n return\r\n }\r\n var key = this._getKeyByIndex(itemIndex);\r\n if (!this._selection.isItemSelected(key, {\r\n checkPending: true\r\n })) {\r\n return\r\n }\r\n this._selection.deselect([key])\r\n },\r\n _deleteItemElementByIndex: function(index) {\r\n this._updateSelectionAfterDelete(index);\r\n this._updateIndicesAfterIndex(index);\r\n this._editStrategy.deleteItemAtIndex(index)\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n this._simulateOptionChange(changingOption);\r\n this._itemEventHandler($item, \"onItemDeleted\", deletedActionArgs, {\r\n beforeExecute: function() {\r\n $item.remove()\r\n },\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._renderEmptyMessage()\r\n },\r\n deleteItem: function(itemElement) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var index = this._editStrategy.getNormalizedIndex(itemElement);\r\n var itemResponseWaitClass = this._itemResponseWaitClass();\r\n if (indexExists(index)) {\r\n this._waitDeletingPrepare($item).done((function() {\r\n $item.addClass(itemResponseWaitClass);\r\n var deletedActionArgs = that._extendActionArgs($item);\r\n that._deleteItemFromDS($item).done((function() {\r\n that._deleteItemElementByIndex(index);\r\n that._afterItemElementDeleted($item, deletedActionArgs);\r\n that._tryRefreshLastPage().done((function() {\r\n deferred.resolveWith(that)\r\n }))\r\n })).fail((function() {\r\n $item.removeClass(itemResponseWaitClass);\r\n deferred.rejectWith(that)\r\n }))\r\n })).fail((function() {\r\n deferred.rejectWith(that)\r\n }))\r\n } else {\r\n deferred.rejectWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var deferred = new Deferred;\r\n var that = this;\r\n var strategy = this._editStrategy;\r\n var $movingItem = strategy.getItemElement(itemElement);\r\n var $destinationItem = strategy.getItemElement(toItemElement);\r\n var movingIndex = strategy.getNormalizedIndex(itemElement);\r\n var destinationIndex = strategy.getNormalizedIndex(toItemElement);\r\n var changingOption = this._dataController.getDataSource() ? \"dataSource\" : \"items\";\r\n var canMoveItems = indexExists(movingIndex) && indexExists(destinationIndex) && movingIndex !== destinationIndex;\r\n if (canMoveItems) {\r\n deferred.resolveWith(this)\r\n } else {\r\n deferred.rejectWith(this)\r\n }\r\n return deferred.promise().done((function() {\r\n $destinationItem[strategy.itemPlacementFunc(movingIndex, destinationIndex)]($movingItem);\r\n strategy.moveItemAtIndexToIndex(movingIndex, destinationIndex);\r\n this._updateIndicesAfterIndex(movingIndex);\r\n that.option(\"selectedItems\", that._getItemsByKeys(that._selection.getSelectedItemKeys(), that._selection.getSelectedItems()));\r\n if (\"items\" === changingOption) {\r\n that._simulateOptionChange(changingOption)\r\n }\r\n that._itemEventHandler($movingItem, \"onItemReordered\", {\r\n fromIndex: strategy.getIndex(movingIndex),\r\n toIndex: strategy.getIndex(destinationIndex)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }))\r\n }\r\n});\r\nexport default CollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isRenderer\r\n} from \"../../core/utils/type\";\r\nvar abstract = Class.abstract;\r\nvar EditStrategy = Class.inherit({\r\n ctor: function(collectionWidget) {\r\n this._collectionWidget = collectionWidget\r\n },\r\n getIndexByItemData: abstract,\r\n getItemDataByIndex: abstract,\r\n getKeysByItems: abstract,\r\n getItemsByKeys: abstract,\r\n itemsGetter: abstract,\r\n getKeyByIndex: function(index) {\r\n var resultIndex = this._denormalizeItemIndex(index);\r\n return this.getKeysByItems([this.getItemDataByIndex(resultIndex)])[0]\r\n },\r\n _equalKeys: function(key1, key2) {\r\n if (this._collectionWidget._isKeySpecified()) {\r\n return equalByValue(key1, key2)\r\n } else {\r\n return key1 === key2\r\n }\r\n },\r\n beginCache: function() {\r\n this._cache = {}\r\n },\r\n endCache: function() {\r\n this._cache = null\r\n },\r\n getIndexByKey: abstract,\r\n getNormalizedIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._normalizeItemIndex(value)\r\n }\r\n if (this._isNode(value)) {\r\n return this._getNormalizedItemIndex(value)\r\n }\r\n return this._normalizeItemIndex(this.getIndexByItemData(value))\r\n },\r\n getIndex: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._denormalizeItemIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return value\r\n }\r\n if (this._isNode(value)) {\r\n return this._denormalizeItemIndex(this._getNormalizedItemIndex(value))\r\n }\r\n return this.getIndexByItemData(value)\r\n },\r\n getItemElement: function(value) {\r\n if (this._isNormalizedItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(value)\r\n }\r\n if (this._isItemIndex(value)) {\r\n return this._getItemByNormalizedIndex(this._normalizeItemIndex(value))\r\n }\r\n if (this._isNode(value)) {\r\n return $(value)\r\n }\r\n var normalizedItemIndex = this._normalizeItemIndex(this.getIndexByItemData(value));\r\n return this._getItemByNormalizedIndex(normalizedItemIndex)\r\n },\r\n _isNode: el => domAdapter.isNode(el && isRenderer(el) ? el.get(0) : el),\r\n deleteItemAtIndex: abstract,\r\n itemPlacementFunc: function(movingIndex, destinationIndex) {\r\n return this._itemsFromSameParent(movingIndex, destinationIndex) && movingIndex < destinationIndex ? \"after\" : \"before\"\r\n },\r\n moveItemAtIndexToIndex: abstract,\r\n _isNormalizedItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _isItemIndex: abstract,\r\n _getNormalizedItemIndex: abstract,\r\n _normalizeItemIndex: abstract,\r\n _denormalizeItemIndex: abstract,\r\n _getItemByNormalizedIndex: abstract,\r\n _itemsFromSameParent: abstract\r\n});\r\nexport default EditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.edit.strategy.plain.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EditStrategy from \"./ui.collection_widget.edit.strategy\";\r\nvar PlainEditStrategy = EditStrategy.inherit({\r\n _getPlainItems: function() {\r\n return this._collectionWidget.option(\"items\") || []\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n if (keyOf) {\r\n return this.getIndexByKey(keyOf(itemData))\r\n } else {\r\n return this._getPlainItems().indexOf(itemData)\r\n }\r\n },\r\n getItemDataByIndex: function(index) {\r\n return this._getPlainItems()[index]\r\n },\r\n deleteItemAtIndex: function(index) {\r\n this._getPlainItems().splice(index, 1)\r\n },\r\n itemsGetter: function() {\r\n return this._getPlainItems()\r\n },\r\n getKeysByItems: function(items) {\r\n var keyOf = this._collectionWidget.keyOf.bind(this._collectionWidget);\r\n var result = items;\r\n if (keyOf) {\r\n result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n result.push(keyOf(items[i]))\r\n }\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key) {\r\n var cache = this._cache;\r\n var keys = cache && cache.keys || this.getKeysByItems(this._getPlainItems());\r\n if (cache && !cache.keys) {\r\n cache.keys = keys\r\n }\r\n if (\"object\" === typeof key) {\r\n for (var i = 0, length = keys.length; i < length; i++) {\r\n if (this._equalKeys(key, keys[i])) {\r\n return i\r\n }\r\n }\r\n } else {\r\n return keys.indexOf(key)\r\n }\r\n return -1\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n return (items || keys).slice()\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._getPlainItems();\r\n var movedItemData = items[movingIndex];\r\n items.splice(movingIndex, 1);\r\n items.splice(destinationIndex, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return \"number\" === typeof index && Math.round(index) === index\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n return this._collectionWidget._itemElements().index(itemElement)\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return index\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n return index > -1 ? this._collectionWidget._itemElements().eq(index) : null\r\n },\r\n _itemsFromSameParent: function() {\r\n return true\r\n }\r\n});\r\nexport default PlainEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.live_update.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidget from \"./ui.collection_widget.edit\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n update,\r\n insert,\r\n indexByKey\r\n} from \"../../data/array_utils\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar PRIVATE_KEY_FIELD = \"__dx_key__\";\r\nexport default CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n repaintChangesOnly: false\r\n })\r\n },\r\n ctor: function() {\r\n var _this$_dataController;\r\n this.callBase.apply(this, arguments);\r\n this._customizeStoreLoadOptions = e => {\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !this._dataController.isLoaded()) {\r\n this._correctionIndex = 0\r\n }\r\n if (this._correctionIndex && e.storeLoadOptions) {\r\n e.storeLoadOptions.skip += this._correctionIndex\r\n }\r\n }, null === (_this$_dataController = this._dataController) || void 0 === _this$_dataController ? void 0 : _this$_dataController.on(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions)\r\n },\r\n reload: function() {\r\n this._correctionIndex = 0\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._refreshItemsCache();\r\n this._correctionIndex = 0\r\n },\r\n _findItemElementByKey: function(key) {\r\n var result = $();\r\n var keyExpr = this.key();\r\n this.itemElements().each((_, item) => {\r\n var $item = $(item);\r\n var itemData = this._getItemData($item);\r\n if (keyExpr ? keysEqual(keyExpr, this.keyOf(itemData), key) : this._isItemEquals(itemData, key)) {\r\n result = $item;\r\n return false\r\n }\r\n });\r\n return result\r\n },\r\n _dataSourceChangedHandler: function(newItems, e) {\r\n if (null !== e && void 0 !== e && e.changes) {\r\n this._modifyByChanges(e.changes)\r\n } else {\r\n this.callBase(newItems, e);\r\n this._refreshItemsCache()\r\n }\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (item1 && item1[PRIVATE_KEY_FIELD]) {\r\n item1 = item1.data\r\n }\r\n try {\r\n return JSON.stringify(item1) === JSON.stringify(item2)\r\n } catch (e) {\r\n return item1 === item2\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n return this._isItemEquals(item1, item2)\r\n },\r\n _shouldAddNewGroup: function(changes, items) {\r\n var result = false;\r\n if (this.option(\"grouped\")) {\r\n if (!changes.length) {\r\n result = true\r\n }\r\n each(changes, (i, change) => {\r\n if (\"insert\" === change.type) {\r\n result = true;\r\n each(items, (_, item) => {\r\n if (void 0 !== change.data.key && change.data.key === item.key) {\r\n result = false;\r\n return false\r\n }\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _partialRefresh: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var result = findChanges(this._itemsCache, this._editStrategy.itemsGetter(), data => {\r\n if (data && void 0 !== data[PRIVATE_KEY_FIELD]) {\r\n return data[PRIVATE_KEY_FIELD]\r\n }\r\n return this.keyOf(data)\r\n }, this._isItemStrictEquals.bind(this));\r\n if (result && this._itemsCache.length && !this._shouldAddNewGroup(result, this._itemsCache)) {\r\n this._modifyByChanges(result, true);\r\n this._renderEmptyMessage();\r\n return true\r\n } else {\r\n this._refreshItemsCache()\r\n }\r\n }\r\n return false\r\n },\r\n _refreshItemsCache: function() {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var items = this._editStrategy.itemsGetter();\r\n try {\r\n this._itemsCache = extend(true, [], items);\r\n if (!this.key()) {\r\n this._itemsCache = this._itemsCache.map((itemCache, index) => ({\r\n [PRIVATE_KEY_FIELD]: items[index],\r\n data: itemCache\r\n }))\r\n }\r\n } catch (e) {\r\n this._itemsCache = extend([], items)\r\n }\r\n }\r\n },\r\n _dispose: function() {\r\n this._dataController.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptions);\r\n this.callBase()\r\n },\r\n _updateByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n if (isPartialRefresh) {\r\n this._renderItem(change.index, change.data, null, this._findItemElementByKey(change.key))\r\n } else {\r\n var changedItem = items[indexByKey(keyInfo, items, change.key)];\r\n if (changedItem) {\r\n update(keyInfo, items, change.key, change.data).done(() => {\r\n this._renderItem(items.indexOf(changedItem), changedItem, null, this._findItemElementByKey(change.key))\r\n })\r\n }\r\n }\r\n },\r\n _insertByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n when(isPartialRefresh || insert(keyInfo, items, change.data, change.index)).done(() => {\r\n var _change$index;\r\n this._beforeItemElementInserted(change);\r\n var $itemContainer = this._getItemContainer(change.data);\r\n this._renderItem(null !== (_change$index = change.index) && void 0 !== _change$index ? _change$index : items.length, change.data, $itemContainer);\r\n this._afterItemElementInserted();\r\n this._correctionIndex++\r\n })\r\n },\r\n _getItemContainer: function(changeData) {\r\n return this._itemContainer()\r\n },\r\n _updateSelectionAfterRemoveByChange: function(removeIndex) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (selectedIndex > removeIndex) {\r\n this.option(\"selectedIndex\", selectedIndex - 1)\r\n } else if (selectedIndex === removeIndex && 1 === this.option(\"selectedItems\").length) {\r\n this.option(\"selectedItems\", [])\r\n } else {\r\n this._normalizeSelectedItems()\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n if (change.index <= selectedIndex) {\r\n this.option(\"selectedIndex\", selectedIndex + 1)\r\n }\r\n },\r\n _afterItemElementInserted: noop,\r\n _removeByChange: function(keyInfo, items, change, isPartialRefresh) {\r\n var index = isPartialRefresh ? change.index : indexByKey(keyInfo, items, change.key);\r\n var removedItem = isPartialRefresh ? change.oldItem : items[index];\r\n if (removedItem) {\r\n var $removedItemElement = this._findItemElementByKey(change.key);\r\n var deletedActionArgs = this._extendActionArgs($removedItemElement);\r\n this._waitDeletingPrepare($removedItemElement).done(() => {\r\n if (isPartialRefresh) {\r\n this._updateIndicesAfterIndex(index - 1);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs);\r\n this._updateSelectionAfterRemoveByChange(index)\r\n } else {\r\n this._deleteItemElementByIndex(index);\r\n this._afterItemElementDeleted($removedItemElement, deletedActionArgs)\r\n }\r\n });\r\n this._correctionIndex--\r\n }\r\n },\r\n _modifyByChanges: function(changes, isPartialRefresh) {\r\n var items = this._editStrategy.itemsGetter();\r\n var keyInfo = {\r\n key: this.key.bind(this),\r\n keyOf: this.keyOf.bind(this)\r\n };\r\n var dataController = this._dataController;\r\n var paginate = dataController.paginate();\r\n var group = dataController.group();\r\n if (paginate || group) {\r\n changes = changes.filter(item => \"insert\" !== item.type || void 0 !== item.index)\r\n }\r\n changes.forEach(change => this[\"_\".concat(change.type, \"ByChange\")](keyInfo, items, change, isPartialRefresh));\r\n this._renderedItemsCount = items.length;\r\n this._refreshItemsCache();\r\n this._fireContentReadyAction()\r\n },\r\n _appendItemToContainer: function($container, $itemFrame, index) {\r\n var nextSiblingElement = $container.children(this._itemSelector()).get(index);\r\n domAdapter.insertElement($container.get(0), $itemFrame.get(0), nextSiblingElement)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n var isItemsUpdated = this._partialRefresh(args.value);\r\n if (!isItemsUpdated) {\r\n this.callBase(args)\r\n }\r\n break;\r\n case \"dataSource\":\r\n if (!this.option(\"repaintChangesOnly\") || !args.value) {\r\n this.option(\"items\", [])\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"repaintChangesOnly\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.context_menu.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isObject,\r\n isRenderer,\r\n isWindow,\r\n isFunction,\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n contains\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport fx from \"../../animation/fx\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport MenuBase from \"./ui.menu_base\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n name as contextMenuEventName\r\n} from \"../../events/contextmenu\";\r\nimport holdEvent from \"../../events/hold\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_PHONE_CLASS = \"dx-menu-phone-overlay\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = DX_MENU_ITEM_CLASS + \"-wrapper\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_HAS_CONTEXT_MENU_CLASS = \"dx-has-context-menu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_FOCUSED_CLASS = \"dx-state-focused\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar FOCUS_FIRST = \"first\";\r\nvar FOCUS_LAST = \"last\";\r\nvar ACTIONS = [\"onShowing\", \"onShown\", \"onSubmenuCreated\", \"onHiding\", \"onHidden\", \"onPositioning\", \"onLeftFirstItem\", \"onLeftLastItem\", \"onCloseRootSubmenu\", \"onExpandLastSubmenu\"];\r\nvar LOCAL_SUBMENU_DIRECTIONS = [FOCUS_UP, FOCUS_DOWN, FOCUS_FIRST, FOCUS_LAST];\r\nvar DEFAULT_SHOW_EVENT = \"dxcontextmenu\";\r\nvar window = getWindow();\r\nclass ContextMenu extends MenuBase {\r\n getShowEvent(showEventOption) {\r\n var result = null;\r\n if (isObject(showEventOption)) {\r\n if (null !== showEventOption.name) {\r\n result = showEventOption.name || DEFAULT_SHOW_EVENT\r\n }\r\n } else {\r\n result = showEventOption\r\n }\r\n return result\r\n }\r\n getShowDelay(showEventOption) {\r\n return isObject(showEventOption) && showEventOption.delay\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showEvent: DEFAULT_SHOW_EVENT,\r\n hideOnOutsideClick: true,\r\n position: {\r\n at: \"top left\",\r\n my: \"top left\"\r\n },\r\n onShowing: null,\r\n onShown: null,\r\n onSubmenuCreated: null,\r\n onHiding: null,\r\n onHidden: null,\r\n onPositioning: null,\r\n submenuDirection: \"auto\",\r\n visible: false,\r\n target: void 0,\r\n onLeftFirstItem: null,\r\n onLeftLastItem: null,\r\n onCloseRootSubmenu: null,\r\n onExpandLastSubmenu: null\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: () => !hasWindow(),\r\n options: {\r\n animation: null\r\n }\r\n }])\r\n }\r\n _setDeprecatedOptions() {\r\n super._setDeprecatedOptions();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.2\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action) || noop\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _focusInHandler() {}\r\n _itemContainer() {\r\n return this._overlay ? this._overlay.$content() : $()\r\n }\r\n _eventBindingTarget() {\r\n return this._itemContainer()\r\n }\r\n itemsContainer() {\r\n return this._overlay ? this._overlay.$content() : void 0\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n this.hide();\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n escape: this.hide\r\n })\r\n }\r\n _getActiveItem() {\r\n var $availableItems = this._getAvailableItems();\r\n var $focusedItem = $availableItems.filter(\".\".concat(DX_STATE_FOCUSED_CLASS));\r\n var $hoveredItem = $availableItems.filter(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $hoveredItemContainer = $hoveredItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS));\r\n if ($hoveredItemContainer.find(\".\".concat(DX_MENU_ITEM_CLASS)).index($focusedItem) >= 0) {\r\n return $focusedItem\r\n }\r\n if ($hoveredItem.length) {\r\n return $hoveredItem\r\n }\r\n return super._getActiveItem()\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getItemsByLocation(location);\r\n var $oldTarget = this._getActiveItem(true);\r\n var $hoveredItem = this.itemsContainer().find(\".\".concat(DX_STATE_HOVER_CLASS));\r\n var $focusedItem = $(this.option(\"focusedElement\"));\r\n var $activeItemHighlighted = !!($focusedItem.length || $hoveredItem.length);\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n $newTarget = $activeItemHighlighted ? this._prevItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.first())) {\r\n this._actions.onLeftFirstItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n $newTarget = $activeItemHighlighted ? this._nextItem($items) : $oldTarget;\r\n this._setFocusedElement($newTarget);\r\n if ($oldTarget.is($items.last())) {\r\n this._actions.onLeftLastItem($oldTarget)\r\n }\r\n break;\r\n case FOCUS_RIGHT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._hideSubmenuHandler() : this._expandSubmenuHandler($items, location);\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LEFT:\r\n $newTarget = this.option(\"rtlEnabled\") ? this._expandSubmenuHandler($items, location) : this._hideSubmenuHandler();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_FIRST:\r\n $newTarget = $items.first();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n case FOCUS_LAST:\r\n $newTarget = $items.last();\r\n this._setFocusedElement($newTarget);\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n }\r\n _setFocusedElement($element) {\r\n if ($element && 0 !== $element.length) {\r\n this.option(\"focusedElement\", getPublicElement($element))\r\n }\r\n }\r\n _getItemsByLocation(location) {\r\n var $activeItem = this._getActiveItem(true);\r\n var $items;\r\n if (LOCAL_SUBMENU_DIRECTIONS.includes(location)) {\r\n $items = $activeItem.closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).children().children()\r\n }\r\n $items = this._getAvailableItems($items);\r\n return $items\r\n }\r\n _getAriaTarget() {\r\n return this.$element()\r\n }\r\n _refreshActiveDescendant() {\r\n if (isDefined(this._overlay)) {\r\n var $target = this._overlay.$content();\r\n super._refreshActiveDescendant($target)\r\n }\r\n }\r\n _hideSubmenuHandler() {\r\n var $curItem = this._getActiveItem(true);\r\n var $parentItem = $curItem.parents(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).first();\r\n if ($parentItem.length) {\r\n this._hideSubmenusOnSameLevel($parentItem);\r\n this._hideSubmenu($curItem.closest(\".\".concat(DX_SUBMENU_CLASS)));\r\n return $parentItem\r\n }\r\n this._actions.onCloseRootSubmenu($curItem);\r\n return $curItem\r\n }\r\n _expandSubmenuHandler($items, location) {\r\n var $curItem = this._getActiveItem(true);\r\n var itemData = this._getItemData($curItem);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var isItemHasSubmenu = this._hasSubmenu(node);\r\n var $submenu = $curItem.children(\".\".concat(DX_SUBMENU_CLASS));\r\n if (isItemHasSubmenu && !$curItem.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n if (!$submenu.length || \"hidden\" === $submenu.css(\"visibility\")) {\r\n this._showSubmenu($curItem)\r\n }\r\n return this._nextItem(this._getItemsByLocation(location))\r\n }\r\n this._actions.onExpandLastSubmenu($curItem);\r\n return\r\n }\r\n _clean() {\r\n if (this._overlay) {\r\n this._overlay.$element().remove();\r\n this._overlay = null\r\n }\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n super._clean()\r\n }\r\n _initMarkup() {\r\n this.$element().addClass(DX_HAS_CONTEXT_MENU_CLASS);\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderVisibility(this.option(\"visible\"));\r\n this._addWidgetClass()\r\n }\r\n _renderContentImpl() {\r\n this._detachShowContextMenuEvents(this._getTarget());\r\n this._attachShowContextMenuEvents()\r\n }\r\n _attachKeyboardEvents() {\r\n !this._keyboardListenerId && this._focusTarget().length && super._attachKeyboardEvents()\r\n }\r\n _renderContextMenuOverlay() {\r\n if (this._overlay) {\r\n return\r\n }\r\n var overlayOptions = this._getOverlayOptions();\r\n this._overlay = this._createComponent($(\"<div>\").appendTo(this._$element), Overlay, overlayOptions);\r\n var $overlayContent = this._overlay.$content();\r\n $overlayContent.addClass(DX_CONTEXT_MENU_CLASS);\r\n this._addCustomCssClass($overlayContent);\r\n this._addPlatformDependentClass($overlayContent);\r\n this._attachContextMenuEvent()\r\n }\r\n preventShowingDefaultContextMenuAboveOverlay() {\r\n var $itemContainer = this._itemContainer();\r\n var eventName = addNamespace(contextMenuEventName, this.NAME);\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS));\r\n eventsEngine.on($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS), (e => {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n eventsEngine.off($itemContainer, eventName, \".\".concat(DX_SUBMENU_CLASS))\r\n }).bind(this))\r\n }\r\n _itemContextMenuHandler(e) {\r\n super._itemContextMenuHandler(e);\r\n e.stopPropagation()\r\n }\r\n _addPlatformDependentClass($element) {\r\n if (devices.current().phone) {\r\n $element.addClass(DX_MENU_PHONE_CLASS)\r\n }\r\n }\r\n _detachShowContextMenuEvents(target) {\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n if (this._showContextMenuEventHandler) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n } else {\r\n eventsEngine.off($(target), eventName)\r\n }\r\n }\r\n _attachShowContextMenuEvents() {\r\n var target = this._getTarget();\r\n var showEvent = this.getShowEvent(this.option(\"showEvent\"));\r\n if (!showEvent) {\r\n return\r\n }\r\n var eventName = addNamespace(showEvent, this.NAME);\r\n var contextMenuAction = this._createAction(e => {\r\n var delay = this.getShowDelay(this.option(\"showEvent\"));\r\n if (delay) {\r\n setTimeout(() => this._show(e.event), delay)\r\n } else {\r\n this._show(e.event)\r\n }\r\n }, {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = e => contextMenuAction({\r\n event: e,\r\n target: $(e.currentTarget)\r\n });\r\n contextMenuAction = this._createAction(contextMenuAction);\r\n if (isRenderer(target) || target.nodeType || isWindow(target)) {\r\n this._showContextMenuEventHandler = void 0;\r\n eventsEngine.on(target, eventName, handler)\r\n } else {\r\n this._showContextMenuEventHandler = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, this._showContextMenuEventHandler)\r\n }\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n e.stopPropagation()\r\n }\r\n _renderDimensions() {}\r\n _renderContainer($wrapper, submenuContainer) {\r\n var $holder = submenuContainer || this._itemContainer();\r\n $wrapper = $(\"<div>\");\r\n $wrapper.appendTo($holder).addClass(DX_SUBMENU_CLASS).css(\"visibility\", submenuContainer ? \"hidden\" : \"visible\");\r\n if (!$wrapper.parent().hasClass(OVERLAY_CONTENT_CLASS)) {\r\n this._addCustomCssClass($wrapper)\r\n }\r\n var $itemsContainer = super._renderContainer($wrapper);\r\n if (submenuContainer) {\r\n return $itemsContainer\r\n }\r\n if (this.option(\"width\")) {\r\n return $itemsContainer.css(\"minWidth\", this.option(\"width\"))\r\n }\r\n if (this.option(\"height\")) {\r\n return $itemsContainer.css(\"minHeight\", this.option(\"height\"))\r\n }\r\n return $itemsContainer\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n this._renderItems(this._getChildNodes(node), $itemFrame);\r\n this._actions.onSubmenuCreated({\r\n itemElement: getPublicElement($itemFrame),\r\n itemData: node.internalFields.item,\r\n submenuElement: getPublicElement($itemFrame.children(\".\".concat(DX_SUBMENU_CLASS)))\r\n })\r\n }\r\n _getOverlayOptions() {\r\n var position = this.option(\"position\");\r\n var overlayOptions = {\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n innerOverlay: true,\r\n hideOnOutsideClick: e => this._hideOnOutsideClickHandler(e),\r\n propagateOutsideClick: true,\r\n hideOnParentScroll: true,\r\n deferRendering: false,\r\n position: {\r\n at: position.at,\r\n my: position.my,\r\n of: this._getTarget(),\r\n collision: \"flipfit\"\r\n },\r\n shading: false,\r\n showTitle: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n onShown: this._overlayShownActionHandler.bind(this),\r\n onHiding: this._overlayHidingActionHandler.bind(this),\r\n onHidden: this._overlayHiddenActionHandler.bind(this),\r\n visualContainer: window\r\n };\r\n return overlayOptions\r\n }\r\n _overlayShownActionHandler(arg) {\r\n this._actions.onShown(arg)\r\n }\r\n _overlayHidingActionHandler(arg) {\r\n this._actions.onHiding(arg);\r\n if (!arg.cancel) {\r\n this._hideAllShownSubmenus();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n }\r\n _overlayHiddenActionHandler(arg) {\r\n this._actions.onHidden(arg)\r\n }\r\n _shouldHideOnOutsideClick(e) {\r\n var {\r\n closeOnOutsideClick: closeOnOutsideClick,\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n } else if (isFunction(closeOnOutsideClick)) {\r\n return closeOnOutsideClick(e)\r\n } else {\r\n return hideOnOutsideClick || closeOnOutsideClick\r\n }\r\n }\r\n _hideOnOutsideClickHandler(e) {\r\n if (!this._shouldHideOnOutsideClick(e)) {\r\n return false\r\n }\r\n if (domAdapter.isDocument(e.target)) {\r\n return true\r\n }\r\n var $activeItemContainer = this._getActiveItemsContainer(e.target);\r\n var $itemContainers = this._getItemsContainers();\r\n var $clickedItem = this._searchActiveItem(e.target);\r\n var $rootItem = this.$element().parents(\".\".concat(DX_MENU_ITEM_CLASS));\r\n var isRootItemClicked = $clickedItem[0] === $rootItem[0] && $clickedItem.length && $rootItem.length;\r\n var isInnerOverlayClicked = this._isIncludeOverlay($activeItemContainer, $itemContainers) && $clickedItem.length;\r\n if (isInnerOverlayClicked || isRootItemClicked) {\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._hideAllShownChildSubmenus($clickedItem)\r\n }\r\n return false\r\n }\r\n return true\r\n }\r\n _getActiveItemsContainer(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _getItemsContainers() {\r\n return this._overlay.$content().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS))\r\n }\r\n _searchActiveItem(target) {\r\n return $(target).closest(\".\".concat(DX_MENU_ITEM_CLASS)).eq(0)\r\n }\r\n _isIncludeOverlay($activeOverlay, $allOverlays) {\r\n var isSame = false;\r\n each($allOverlays, (index, $overlay) => {\r\n if ($activeOverlay.is($overlay) && !isSame) {\r\n isSame = true\r\n }\r\n });\r\n return isSame\r\n }\r\n _hideAllShownChildSubmenus($clickedItem) {\r\n var $submenuElements = $clickedItem.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n if ($submenuElements.length > 0) {\r\n each(shownSubmenus, (index, $submenu) => {\r\n var $context = this._searchActiveItem($submenu.context).parent();\r\n if ($context.parent().is($clickedItem.parent().parent()) && !$context.is($clickedItem.parent())) {\r\n this._hideSubmenu($submenu)\r\n }\r\n })\r\n }\r\n }\r\n _showSubmenu($item) {\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n this._hideSubmenusOnSameLevel($item);\r\n if (!this._hasSubmenu(node)) {\r\n return\r\n }\r\n var $submenu = $item.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var isSubmenuRendered = $submenu.length;\r\n super._showSubmenu($item);\r\n if (!isSubmenuRendered) {\r\n this._renderSubmenuItems(node, $item)\r\n }\r\n if (!this._isSubmenuVisible($submenu)) {\r\n this._drawSubmenu($item)\r\n }\r\n }\r\n _hideSubmenusOnSameLevel($item) {\r\n var $expandedItems = $item.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)).siblings().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n if ($expandedItems.length) {\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenu($expandedItems.find(\".\".concat(DX_SUBMENU_CLASS)))\r\n }\r\n }\r\n _hideSubmenuGroup($submenu) {\r\n if (this._isSubmenuVisible($submenu)) {\r\n this._hideSubmenuCore($submenu)\r\n }\r\n }\r\n _isSubmenuVisible($submenu) {\r\n return \"visible\" === $submenu.css(\"visibility\")\r\n }\r\n _drawSubmenu($itemElement) {\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").show : {};\r\n var $submenu = $itemElement.children(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuPosition = this._getSubmenuPosition($itemElement);\r\n if (this._overlay && this._overlay.option(\"visible\")) {\r\n if (!isDefined(this._shownSubmenus)) {\r\n this._shownSubmenus = []\r\n }\r\n if (!this._shownSubmenus.includes($submenu)) {\r\n this._shownSubmenus.push($submenu)\r\n }\r\n if (animation) {\r\n fx.stop($submenu)\r\n }\r\n animationPosition.setup($submenu, submenuPosition);\r\n if (animation) {\r\n if (isPlainObject(animation.to)) {\r\n animation.to.position = submenuPosition\r\n }\r\n this._animate($submenu, animation)\r\n }\r\n $submenu.css(\"visibility\", \"visible\")\r\n }\r\n }\r\n _animate($container, options) {\r\n fx.animate($container, options)\r\n }\r\n _getSubmenuPosition($rootItem) {\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var $rootItemWrapper = $rootItem.parent(\".\".concat(DX_MENU_ITEM_WRAPPER_CLASS));\r\n var position = {\r\n collision: \"flip\",\r\n of: $rootItemWrapper,\r\n offset: {\r\n h: 0,\r\n v: -1\r\n }\r\n };\r\n switch (submenuDirection) {\r\n case \"left\":\r\n position.at = \"left top\";\r\n position.my = \"right top\";\r\n break;\r\n case \"right\":\r\n position.at = \"right top\";\r\n position.my = \"left top\";\r\n break;\r\n default:\r\n if (this.option(\"rtlEnabled\")) {\r\n position.at = \"left top\";\r\n position.my = \"right top\"\r\n } else {\r\n position.at = \"right top\";\r\n position.my = \"left top\"\r\n }\r\n }\r\n return position\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n if (!actionArgs.args.length) {\r\n return\r\n }\r\n var itemData = actionArgs.args[0].itemData;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (!node) {\r\n return\r\n }\r\n var $itemElement = $(actionArgs.args[0].itemElement);\r\n var $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var shouldRenderSubmenu = this._hasSubmenu(node) && !$submenu.length;\r\n if (shouldRenderSubmenu) {\r\n this._renderSubmenuItems(node, $itemElement);\r\n $submenu = $itemElement.find(\".\".concat(DX_SUBMENU_CLASS))\r\n }\r\n if ($itemElement.context === $submenu.context && \"visible\" === $submenu.css(\"visibility\")) {\r\n return\r\n }\r\n this._updateSelectedItemOnClick(actionArgs);\r\n var notCloseMenuOnItemClick = itemData && false === itemData.closeMenuOnClick;\r\n if (!itemData || itemData.disabled || notCloseMenuOnItemClick) {\r\n return\r\n }\r\n if (0 === $submenu.length) {\r\n var $prevSubmenu = $($itemElement.parents(\".\".concat(DX_SUBMENU_CLASS))[0]);\r\n this._hideSubmenu($prevSubmenu);\r\n if (!actionArgs.canceled && this._overlay && this._overlay.option(\"visible\")) {\r\n this.option(\"visible\", false)\r\n }\r\n } else {\r\n if (this._shownSubmenus && this._shownSubmenus.length > 0) {\r\n if (this._shownSubmenus[0].is($submenu)) {\r\n this._hideSubmenu($submenu)\r\n }\r\n }\r\n this._showSubmenu($itemElement)\r\n }\r\n }\r\n _hideSubmenu($curSubmenu) {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n each(shownSubmenus, (index, $submenu) => {\r\n if ($curSubmenu.is($submenu) || contains($curSubmenu[0], $submenu[0])) {\r\n $submenu.parent().removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n this._hideSubmenuCore($submenu)\r\n }\r\n })\r\n }\r\n _hideSubmenuCore($submenu) {\r\n var index = this._shownSubmenus.indexOf($submenu);\r\n var animation = this.option(\"animation\") ? this.option(\"animation\").hide : null;\r\n if (index >= 0) {\r\n this._shownSubmenus.splice(index, 1)\r\n }\r\n this._stopAnimate($submenu);\r\n animation && this._animate($submenu, animation);\r\n $submenu.css(\"visibility\", \"hidden\")\r\n }\r\n _stopAnimate($container) {\r\n fx.stop($container, true)\r\n }\r\n _hideAllShownSubmenus() {\r\n var shownSubmenus = extend([], this._shownSubmenus);\r\n var $expandedItems = this._overlay.$content().find(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS));\r\n $expandedItems.removeClass(DX_MENU_ITEM_EXPANDED_CLASS);\r\n each(shownSubmenus, (_, $submenu) => {\r\n this._hideSubmenu($submenu)\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._renderContentImpl()\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.includes(args.name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"visible\":\r\n this._renderVisibility(args.value);\r\n break;\r\n case \"showEvent\":\r\n case \"position\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachShowContextMenuEvents(args.previousValue);\r\n this._invalidate();\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _renderVisibility(showing) {\r\n return showing ? this._show() : this._hide()\r\n }\r\n _toggleVisibility() {}\r\n _show(event) {\r\n var args = {\r\n jQEvent: event\r\n };\r\n var promise = (new Deferred).reject().promise();\r\n this._actions.onShowing(args);\r\n if (args.cancel) {\r\n return promise\r\n }\r\n var position = this._positionContextMenu(event);\r\n if (position) {\r\n var _event$originalEvent;\r\n if (!this._overlay) {\r\n this._renderContextMenuOverlay();\r\n this._overlay.$content().addClass(this._widgetClass());\r\n this._renderFocusState();\r\n this._attachHoverEvents();\r\n this._attachClickEvent();\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n this._setOptionWithoutOptionChange(\"visible\", true);\r\n this._overlay.option(\"position\", position);\r\n promise = this._overlay.show();\r\n event && event.stopPropagation();\r\n this._setAriaAttributes();\r\n if ((null === event || void 0 === event ? void 0 : null === (_event$originalEvent = event.originalEvent) || void 0 === _event$originalEvent ? void 0 : _event$originalEvent.type) === holdEvent.name) {\r\n this.preventShowingDefaultContextMenuAboveOverlay()\r\n }\r\n }\r\n return promise\r\n }\r\n _setAriaAttributes() {\r\n this._overlayContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"owns\", this._overlayContentId);\r\n this.setAria({\r\n id: this._overlayContentId,\r\n role: \"menu\"\r\n }, this._overlay.$content())\r\n }\r\n _cleanAriaAttributes() {\r\n this._overlay && this.setAria(\"id\", null, this._overlay.$content());\r\n this.setAria(\"owns\", void 0)\r\n }\r\n _getTarget() {\r\n return this.option(\"target\") || this.option(\"position\").of || $(domAdapter.getDocument())\r\n }\r\n _getContextMenuPosition() {\r\n return extend({}, this.option(\"position\"), {\r\n of: this._getTarget()\r\n })\r\n }\r\n _positionContextMenu(jQEvent) {\r\n var position = this._getContextMenuPosition();\r\n var isInitialPosition = this._isInitialOptionValue(\"position\");\r\n var positioningAction = this._createActionByOption(\"onPositioning\");\r\n if (jQEvent && jQEvent.preventDefault && isInitialPosition) {\r\n position.of = jQEvent\r\n }\r\n var actionArgs = {\r\n position: position,\r\n event: jQEvent\r\n };\r\n positioningAction(actionArgs);\r\n if (actionArgs.cancel) {\r\n position = null\r\n } else if (actionArgs.event) {\r\n actionArgs.event.cancel = true;\r\n jQEvent.preventDefault()\r\n }\r\n return position\r\n }\r\n _refresh() {\r\n if (!hasWindow()) {\r\n super._refresh()\r\n } else if (this._overlay) {\r\n var lastPosition = this._overlay.option(\"position\");\r\n super._refresh();\r\n this._overlay && this._overlay.option(\"position\", lastPosition)\r\n } else {\r\n super._refresh()\r\n }\r\n }\r\n _hide() {\r\n var promise;\r\n if (this._overlay) {\r\n promise = this._overlay.hide();\r\n this._setOptionWithoutOptionChange(\"visible\", false)\r\n }\r\n this._cleanAriaAttributes();\r\n this.option(\"focusedElement\", null);\r\n return promise || (new Deferred).reject().promise()\r\n }\r\n toggle(showing) {\r\n var visible = this.option(\"visible\");\r\n showing = void 0 === showing ? !visible : showing;\r\n return this._renderVisibility(showing)\r\n }\r\n show() {\r\n return this.toggle(true)\r\n }\r\n hide() {\r\n return this.toggle(false)\r\n }\r\n}\r\nregisterComponent(\"dxContextMenu\", ContextMenu);\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ContextMenu from \"./context_menu/ui.context_menu\";\r\nexport default ContextMenu;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.edit.strategy.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport PlainEditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nclass MenuBaseEditStrategy extends PlainEditStrategy {\r\n _getPlainItems() {\r\n return map(this._collectionWidget.option(\"items\"), (function getMenuItems(item) {\r\n return item.items ? [item].concat(map(item.items, getMenuItems)) : item\r\n }))\r\n }\r\n _stringifyItem(item) {\r\n return JSON.stringify(item, (key, value) => {\r\n if (\"template\" === key) {\r\n return this._getTemplateString(value)\r\n }\r\n return value\r\n })\r\n }\r\n _getTemplateString(template) {\r\n var result;\r\n if (\"object\" === typeof template) {\r\n result = $(template).text()\r\n } else {\r\n result = template.toString()\r\n }\r\n return result\r\n }\r\n}\r\nexport default MenuBaseEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/context_menu/ui.menu_base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop,\r\n asyncNoop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport MenuBaseEditStrategy from \"./ui.menu_base.edit.strategy\";\r\nimport devices from \"../../core/devices\";\r\nimport MenuItem from \"../collection/item\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_NO_ICONS_CLASS = DX_MENU_CLASS + \"-no-icons\";\r\nvar DX_MENU_BASE_CLASS = \"dx-menu-base\";\r\nvar ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_ITEM_CONTENT_CLASS = ITEM_CLASS + \"-content\";\r\nvar DX_MENU_SELECTED_ITEM_CLASS = ITEM_CLASS + \"-selected\";\r\nvar DX_MENU_ITEM_WRAPPER_CLASS = ITEM_CLASS + \"-wrapper\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = ITEM_CLASS + \"-expanded\";\r\nvar DX_MENU_SEPARATOR_CLASS = DX_MENU_CLASS + \"-separator\";\r\nvar DX_MENU_ITEM_LAST_GROUP_ITEM = DX_MENU_CLASS + \"-last-group-item\";\r\nvar DX_ITEM_HAS_TEXT = ITEM_CLASS + \"-has-text\";\r\nvar DX_ITEM_HAS_ICON = ITEM_CLASS + \"-has-icon\";\r\nvar DX_ITEM_HAS_SUBMENU = ITEM_CLASS + \"-has-submenu\";\r\nvar DX_MENU_ITEM_POPOUT_CLASS = ITEM_CLASS + \"-popout\";\r\nvar DX_MENU_ITEM_POPOUT_CONTAINER_CLASS = DX_MENU_ITEM_POPOUT_CLASS + \"-container\";\r\nvar DX_MENU_ITEM_CAPTION_CLASS = ITEM_CLASS + \"-text\";\r\nvar SINGLE_SELECTION_MODE = \"single\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nclass MenuBase extends HierarchicalCollectionWidget {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n cssClass: \"\",\r\n activeStateEnabled: true,\r\n showSubmenuMode: {\r\n name: \"onHover\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1,\r\n duration: 100\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0,\r\n duration: 100\r\n }\r\n },\r\n selectByClick: false,\r\n focusOnSelectedItem: false,\r\n keyExpr: null,\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n },\r\n useInkRipple: false\r\n })\r\n }\r\n _itemDataKey() {\r\n return \"dxMenuItemDataKey\"\r\n }\r\n _itemClass() {\r\n return ITEM_CLASS\r\n }\r\n _setAriaSelected() {}\r\n _selectedItemClass() {\r\n return DX_MENU_SELECTED_ITEM_CLASS\r\n }\r\n _widgetClass() {\r\n return DX_MENU_BASE_CLASS\r\n }\r\n _focusTarget() {\r\n return this._itemContainer()\r\n }\r\n _clean() {\r\n this.option(\"focusedElement\", null);\r\n super._clean()\r\n }\r\n _supportedKeys() {\r\n return extend(super._supportedKeys(), {\r\n space: () => {\r\n var $item = $(this.option(\"focusedElement\"));\r\n if (!$item.length || !this._isSelectionEnabled()) {\r\n return\r\n }\r\n this.selectItem($item[0])\r\n },\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n }\r\n _isSelectionEnabled() {\r\n return this.option(\"selectionMode\") === SINGLE_SELECTION_MODE\r\n }\r\n _init() {\r\n this._activeStateUnit = \".\".concat(ITEM_CLASS);\r\n super._init();\r\n this._renderSelectedItem();\r\n this._initActions()\r\n }\r\n _getTextContainer(itemData) {\r\n var itemText = itemData.text;\r\n var $itemContainer = $(\"<span>\").addClass(DX_MENU_ITEM_CAPTION_CLASS);\r\n var itemContent = isPlainObject(itemData) ? itemText : String(itemData);\r\n return itemText && $itemContainer.text(itemContent)\r\n }\r\n _getPopoutContainer(itemData) {\r\n var items = itemData.items;\r\n var $popOutContainer;\r\n if (items && items.length) {\r\n var $popOutImage = $(\"<div>\").addClass(DX_MENU_ITEM_POPOUT_CLASS);\r\n $popOutContainer = $(\"<span>\").addClass(DX_MENU_ITEM_POPOUT_CONTAINER_CLASS).append($popOutImage)\r\n }\r\n return $popOutContainer\r\n }\r\n _getDataAdapterOptions() {\r\n return {\r\n rootValue: 0,\r\n multipleSelection: false,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n searchValue: \"\"\r\n }\r\n }\r\n _selectByItem(selectedItem) {\r\n if (!selectedItem) {\r\n return\r\n }\r\n var nodeToSelect = this._dataAdapter.getNodeByItem(selectedItem);\r\n this._dataAdapter.toggleSelection(nodeToSelect.internalFields.key, true)\r\n }\r\n _renderSelectedItem() {\r\n var selectedKeys = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedKey = selectedKeys.length && selectedKeys[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (!selectedKey) {\r\n this._selectByItem(selectedItem);\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByKey(selectedKey);\r\n if (false === node.selectable) {\r\n return\r\n }\r\n if (!selectedItem) {\r\n this.option(\"selectedItem\", node.internalFields.item);\r\n return\r\n }\r\n if (selectedItem !== node.internalFields.item) {\r\n this._dataAdapter.toggleSelection(selectedKey, false);\r\n this._selectByItem(selectedItem)\r\n }\r\n }\r\n _initActions() {}\r\n _initMarkup() {\r\n super._initMarkup();\r\n this.option(\"useInkRipple\") && this._renderInkRipple()\r\n }\r\n _renderInkRipple() {\r\n this._inkRipple = render()\r\n }\r\n _toggleActiveState($element, value, e) {\r\n super._toggleActiveState.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n }\r\n _getShowSubmenuMode() {\r\n var optionValue = this.option(\"showSubmenuMode\");\r\n optionValue = isObject(optionValue) ? optionValue.name : optionValue;\r\n return this._isDesktopDevice() ? optionValue : \"onClick\"\r\n }\r\n _initSelectedItems() {}\r\n _isDesktopDevice() {\r\n return \"desktop\" === devices.real().deviceType\r\n }\r\n _initEditStrategy() {\r\n var Strategy = MenuBaseEditStrategy;\r\n this._editStrategy = new Strategy(this)\r\n }\r\n _addCustomCssClass($element) {\r\n $element.addClass(this.option(\"cssClass\"))\r\n }\r\n _itemWrapperSelector() {\r\n return \".\".concat(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _hoverStartHandler(e) {\r\n var $itemElement = this._getItemElementByEventArgs(e);\r\n if (!$itemElement || this._isItemDisabled($itemElement)) {\r\n return\r\n }\r\n e.stopPropagation();\r\n if (\"onHover\" === this._getShowSubmenuMode()) {\r\n clearTimeout(this._showSubmenusTimeout);\r\n this._showSubmenusTimeout = setTimeout(this._showSubmenu.bind(this, $itemElement), this._getSubmenuDelay(\"show\"))\r\n }\r\n }\r\n _getAvailableItems($itemElements) {\r\n return super._getAvailableItems($itemElements).filter((function() {\r\n return \"hidden\" !== $(this).css(\"visibility\")\r\n }))\r\n }\r\n _isItemDisabled($item) {\r\n return this._disabledGetter($item.data(this._itemDataKey()))\r\n }\r\n _showSubmenu($itemElement) {\r\n this._addExpandedClass($itemElement)\r\n }\r\n _addExpandedClass(itemElement) {\r\n $(itemElement).addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _getSubmenuDelay(action) {\r\n var {\r\n delay: delay\r\n } = this.option(\"showSubmenuMode\");\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[action]\r\n }\r\n return isObject(delay) ? delay[action] : delay\r\n }\r\n _getItemElementByEventArgs(eventArgs) {\r\n var $target = $(eventArgs.target);\r\n if ($target.hasClass(this._itemClass()) || $target.get(0) === eventArgs.currentTarget) {\r\n return $target\r\n }\r\n while (!$target.hasClass(this._itemClass())) {\r\n $target = $target.parent();\r\n if ($target.hasClass(\"dx-submenu\")) {\r\n return null\r\n }\r\n }\r\n return $target\r\n }\r\n _hoverEndHandler() {\r\n clearTimeout(this._showSubmenusTimeout)\r\n }\r\n _hasSubmenu(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n }\r\n _renderContentImpl() {\r\n this._renderItems(this._dataAdapter.getRootNodes())\r\n }\r\n _renderItems(nodes, submenuContainer) {\r\n if (nodes.length) {\r\n this.hasIcons = false;\r\n var $nodeContainer = this._renderContainer(this.$element(), submenuContainer);\r\n var firstVisibleIndex = -1;\r\n var nextGroupFirstIndex = -1;\r\n each(nodes, (index, node) => {\r\n var isVisibleNode = false !== node.visible;\r\n if (isVisibleNode && firstVisibleIndex < 0) {\r\n firstVisibleIndex = index\r\n }\r\n var isBeginGroup = firstVisibleIndex < index && (node.beginGroup || index === nextGroupFirstIndex);\r\n if (isBeginGroup) {\r\n nextGroupFirstIndex = isVisibleNode ? index : index + 1\r\n }\r\n if (index === nextGroupFirstIndex && firstVisibleIndex < index) {\r\n this._renderSeparator($nodeContainer)\r\n }\r\n this._renderItem(index, node, $nodeContainer)\r\n });\r\n if (!this.hasIcons) {\r\n $nodeContainer.addClass(DX_MENU_NO_ICONS_CLASS)\r\n }\r\n }\r\n }\r\n _renderContainer($wrapper) {\r\n var $container = $(\"<ul>\");\r\n this.setAria(\"role\", \"none\", $container);\r\n return $container.appendTo($wrapper).addClass(DX_MENU_ITEMS_CONTAINER_CLASS)\r\n }\r\n _createDOMElement($nodeContainer) {\r\n var $node = $(\"<li>\");\r\n this.setAria(\"role\", \"none\", $node);\r\n return $node.appendTo($nodeContainer).addClass(DX_MENU_ITEM_WRAPPER_CLASS)\r\n }\r\n _renderItem(index, node, $nodeContainer, $nodeElement) {\r\n var items = this.option(\"items\");\r\n var $node = $nodeElement || this._createDOMElement($nodeContainer);\r\n if (items[index + 1] && items[index + 1].beginGroup) {\r\n $node.addClass(DX_MENU_ITEM_LAST_GROUP_ITEM)\r\n }\r\n var $itemFrame = super._renderItem(index, node.internalFields.item, $node);\r\n if (node.internalFields.item === this.option(\"selectedItem\")) {\r\n $itemFrame.addClass(DX_MENU_SELECTED_ITEM_CLASS)\r\n }\r\n $itemFrame.attr(\"tabIndex\", -1);\r\n if (this._hasSubmenu(node)) {\r\n this.setAria(\"haspopup\", \"true\", $itemFrame)\r\n }\r\n }\r\n _renderItemFrame(index, itemData, $itemContainer) {\r\n var $itemFrame = $itemContainer.children(\".\".concat(ITEM_CLASS));\r\n return $itemFrame.length ? $itemFrame : super._renderItemFrame.apply(this, arguments)\r\n }\r\n _refreshItem($item, item) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n var index = $item.data(this._itemIndexKey());\r\n var $nodeContainer = $item.closest(\"ul\");\r\n var $nodeElement = $item.closest(\"li\");\r\n this._renderItem(index, node, $nodeContainer, $nodeElement)\r\n }\r\n _addContentClasses(itemData, $itemFrame) {\r\n var hasText = itemData.text ? !!itemData.text.length : false;\r\n var hasIcon = !!itemData.icon;\r\n var hasSubmenu = itemData.items ? !!itemData.items.length : false;\r\n $itemFrame.toggleClass(DX_ITEM_HAS_TEXT, hasText);\r\n $itemFrame.toggleClass(DX_ITEM_HAS_ICON, hasIcon);\r\n if (!this.hasIcons) {\r\n this.hasIcons = hasIcon\r\n }\r\n $itemFrame.toggleClass(DX_ITEM_HAS_SUBMENU, hasSubmenu)\r\n }\r\n _getItemContent($itemFrame) {\r\n var $itemContent = super._getItemContent($itemFrame);\r\n if (!$itemContent.length) {\r\n $itemContent = $itemFrame.children(\".\".concat(DX_ITEM_CONTENT_CLASS))\r\n }\r\n return $itemContent\r\n }\r\n _postprocessRenderItem(args) {\r\n var $itemElement = $(args.itemElement);\r\n var selectedIndex = this._dataAdapter.getSelectedNodesKeys();\r\n if (!selectedIndex.length || !this._selectedGetter(args.itemData) || !this._isItemSelectable(args.itemData)) {\r\n this._setAriaSelected($itemElement, \"false\");\r\n return\r\n }\r\n var node = this._dataAdapter.getNodeByItem(args.itemData);\r\n if (node.internalFields.key === selectedIndex[0]) {\r\n $itemElement.addClass(this._selectedItemClass());\r\n this._setAriaSelected($itemElement, \"true\")\r\n } else {\r\n this._setAriaSelected($itemElement, \"false\")\r\n }\r\n }\r\n _isItemSelectable(item) {\r\n return false !== item.selectable\r\n }\r\n _renderSeparator($itemsContainer) {\r\n $(\"<li>\").appendTo($itemsContainer).addClass(DX_MENU_SEPARATOR_CLASS)\r\n }\r\n _itemClickHandler(e) {\r\n if (e._skipHandling) {\r\n return\r\n }\r\n var itemClickActionHandler = this._createAction(this._updateSubmenuVisibilityOnClick.bind(this));\r\n this._itemDXEventHandler(e, \"onItemClick\", {}, {\r\n afterExecute: itemClickActionHandler.bind(this)\r\n });\r\n e._skipHandling = true\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (\"onClick\" === this._getShowSubmenuMode()) {\r\n this._addExpandedClass(actionArgs.args[0].itemElement)\r\n }\r\n }\r\n _updateSelectedItemOnClick(actionArgs) {\r\n var args = actionArgs.args ? actionArgs.args[0] : actionArgs;\r\n if (!this._isItemSelectionAllowed(args.itemData)) {\r\n return\r\n }\r\n var selectedItemKey = this._dataAdapter.getSelectedNodesKeys();\r\n var selectedNode = selectedItemKey.length && this._dataAdapter.getNodeByKey(selectedItemKey[0]);\r\n if (selectedNode) {\r\n this._toggleItemSelection(selectedNode, false)\r\n }\r\n if (!selectedNode || selectedNode.internalFields.item !== args.itemData) {\r\n this.selectItem(args.itemData)\r\n } else {\r\n this._fireSelectionChangeEvent(null, this.option(\"selectedItem\"));\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n _isItemSelectionAllowed(item) {\r\n var isSelectionByClickEnabled = this._isSelectionEnabled() && this.option(\"selectByClick\");\r\n return !this._isContainerEmpty() && isSelectionByClickEnabled && this._isItemSelectable(item) && !this._itemsGetter(item)\r\n }\r\n _isContainerEmpty() {\r\n return this._itemContainer().is(\":empty\")\r\n }\r\n _syncSelectionOptions() {\r\n return asyncNoop()\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"showSubmenuMode\":\r\n break;\r\n case \"selectedItem\":\r\n var node = this._dataAdapter.getNodeByItem(args.value);\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n if (node && node.internalFields.key !== selectedKey) {\r\n if (false === node.selectable) {\r\n break\r\n }\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems()\r\n }\r\n break;\r\n case \"cssClass\":\r\n case \"position\":\r\n case \"selectByClick\":\r\n case \"animation\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _toggleItemSelection(node, value) {\r\n var itemElement = this._getElementByItem(node.internalFields.item);\r\n itemElement && $(itemElement).toggleClass(DX_MENU_SELECTED_ITEM_CLASS);\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value)\r\n }\r\n _getElementByItem(itemData) {\r\n var result;\r\n each(this._itemElements(), (_, itemElement) => {\r\n if ($(itemElement).data(this._itemDataKey()) !== itemData) {\r\n return true\r\n }\r\n result = itemElement;\r\n return false\r\n });\r\n return result\r\n }\r\n _updateSelectedItems(oldSelection, newSelection) {\r\n if (oldSelection || newSelection) {\r\n this._fireSelectionChangeEvent(newSelection, oldSelection)\r\n }\r\n }\r\n _fireSelectionChangeEvent(addedSelection, removedSelection) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: [addedSelection],\r\n removedItems: [removedSelection]\r\n })\r\n }\r\n selectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var selectedKey = this._dataAdapter.getSelectedNodesKeys()[0];\r\n var selectedItem = this.option(\"selectedItem\");\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n if (node.internalFields.key !== selectedKey) {\r\n if (selectedKey) {\r\n this._toggleItemSelection(this._dataAdapter.getNodeByKey(selectedKey), false)\r\n }\r\n this._toggleItemSelection(node, true);\r\n this._updateSelectedItems(selectedItem, itemData);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", itemData)\r\n }\r\n }\r\n unselectItem(itemElement) {\r\n var itemData = itemElement.nodeType ? this._getItemData(itemElement) : itemElement;\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n var selectedItem = this.option(\"selectedItem\");\r\n if (node.internalFields.selected) {\r\n this._toggleItemSelection(node, false);\r\n this._updateSelectedItems(selectedItem, null);\r\n this._setOptionWithoutOptionChange(\"selectedItem\", null)\r\n }\r\n }\r\n}\r\nMenuBase.ItemClass = MenuItem;\r\nexport default MenuBase;\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.column_headers.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnHeadersModule\r\n} from \"../grid_core/ui.grid_core.column_headers\";\r\nexport var ColumnHeadersView = columnHeadersModule.views.columnHeadersView;\r\ngridCore.registerModule(\"columnHeaders\", columnHeadersModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.columns_controller.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnsControllerModule\r\n} from \"../grid_core/ui.grid_core.columns_controller\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\ngridCore.registerModule(\"columns\", {\r\n defaultOptions: function() {\r\n return extend(true, {}, columnsControllerModule.defaultOptions(), {\r\n commonColumnSettings: {\r\n allowExporting: true\r\n }\r\n })\r\n },\r\n controllers: columnsControllerModule.controllers\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.data_source_adapter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataSourceAdapter from \"../grid_core/ui.grid_core.data_source_adapter\";\r\nvar dataSourceAdapterType = DataSourceAdapter;\r\nexport default {\r\n extend: function(extender) {\r\n dataSourceAdapterType = dataSourceAdapterType.inherit(extender)\r\n },\r\n create: function(component) {\r\n return new dataSourceAdapterType(component)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.data_controller.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport dataSourceAdapterProvider from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n dataControllerModule\r\n} from \"../grid_core/ui.grid_core.data_controller\";\r\nexport var DataController = dataControllerModule.controllers.data.inherit({\r\n _getDataSourceAdapter: function() {\r\n return dataSourceAdapterProvider\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (dataSource && !Array.isArray(dataSource) && this.option(\"keyExpr\")) {\r\n errors.log(\"W1011\")\r\n }\r\n return this.callBase()\r\n }\r\n});\r\ngridCore.registerModule(\"data\", {\r\n defaultOptions: dataControllerModule.defaultOptions,\r\n controllers: {\r\n data: DataController\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.sorting.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n sortingModule\r\n} from \"../grid_core/ui.grid_core.sorting\";\r\ngridCore.registerModule(\"sorting\", sortingModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.rows.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n rowsModule\r\n} from \"../grid_core/ui.grid_core.rows\";\r\nexport var RowsView = rowsModule.views.rowsView;\r\ngridCore.registerModule(\"rows\", rowsModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.context_menu.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport treeListCore from \"./ui.data_grid.core\";\r\nimport {\r\n contextMenuModule\r\n} from \"../grid_core/ui.grid_core.context_menu\";\r\ntreeListCore.registerModule(\"contextMenu\", contextMenuModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.error_handling.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n errorHandlingModule\r\n} from \"../grid_core/ui.grid_core.error_handling\";\r\ngridCore.registerModule(\"errorHandling\", errorHandlingModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grid_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n gridViewModule\r\n} from \"../grid_core/ui.grid_core.grid_view\";\r\ngridCore.registerModule(\"gridView\", gridViewModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.header_panel.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n headerPanelModule\r\n} from \"../grid_core/ui.grid_core.header_panel\";\r\nexport var HeaderPanel = headerPanelModule.views.headerPanel;\r\ngridCore.registerModule(\"headerPanel\", headerPanelModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n deferRender,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n logger\r\n} from \"../../core/utils/console\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nvar DATAGRID_ROW_SELECTOR = \".dx-row\";\r\nvar DATAGRID_DEPRECATED_TEMPLATE_WARNING = \"Specifying grid templates with the jQuery selector name is now deprecated. Use the DOM Node or the jQuery object that references this selector instead.\";\r\nimport \"./ui.data_grid.column_headers\";\r\nimport \"./ui.data_grid.columns_controller\";\r\nimport \"./ui.data_grid.data_controller\";\r\nimport \"./ui.data_grid.sorting\";\r\nimport \"./ui.data_grid.rows\";\r\nimport \"./ui.data_grid.context_menu\";\r\nimport \"./ui.data_grid.error_handling\";\r\nimport \"./ui.data_grid.grid_view\";\r\nimport \"./ui.data_grid.header_panel\";\r\ngridCore.registerModulesOrder([\"stateStoring\", \"columns\", \"selection\", \"editorFactory\", \"columnChooser\", \"grouping\", \"editing\", \"editingRowBased\", \"editingFormBased\", \"editingCellBased\", \"masterDetail\", \"validating\", \"adaptivity\", \"data\", \"virtualScrolling\", \"columnHeaders\", \"filterRow\", \"headerPanel\", \"headerFilter\", \"sorting\", \"search\", \"rows\", \"pager\", \"columnsResizingReordering\", \"contextMenu\", \"keyboardNavigation\", \"errorHandling\", \"summary\", \"columnFixing\", \"export\", \"gridView\"]);\r\nvar DataGrid = Widget.inherit({\r\n _activeStateUnit: DATAGRID_ROW_SELECTOR,\r\n _getDefaultOptions: function() {\r\n var result = this.callBase();\r\n each(gridCore.modules, (function() {\r\n if (isFunction(this.defaultOptions)) {\r\n extend(true, result, this.defaultOptions())\r\n }\r\n }));\r\n return result\r\n },\r\n _setDeprecatedOptions: function() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n useKeyboard: {\r\n since: \"19.2\",\r\n alias: \"keyboardNavigation.enabled\"\r\n },\r\n rowTemplate: {\r\n since: \"21.2\",\r\n message: 'Use the \"dataRowTemplate\" option instead'\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n showRowLines: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n showRowLines: true,\r\n showColumnLines: false,\r\n headerFilter: {\r\n height: 315\r\n },\r\n editing: {\r\n useIcons: true\r\n },\r\n selection: {\r\n showCheckBoxesMode: \"always\"\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return browser.webkit\r\n },\r\n options: {\r\n loadingTimeout: 30,\r\n loadPanel: {\r\n animation: {\r\n show: {\r\n easing: \"cubic-bezier(1, 0, 1, 0)\",\r\n duration: 500,\r\n from: {\r\n opacity: 0\r\n },\r\n to: {\r\n opacity: 1\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n grouping: {\r\n expandMode: \"rowClick\"\r\n }\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n gridCore.processModules(this, gridCore);\r\n gridCore.callModuleItemsMethod(this, \"init\")\r\n },\r\n _clean: noop,\r\n _optionChanged: function(args) {\r\n gridCore.callModuleItemsMethod(this, \"optionChanged\", [args]);\r\n if (!args.handled) {\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions(true)\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.updateDimensions()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"gridView\").render(this.$element())\r\n },\r\n _renderContentImpl: function() {\r\n this.getView(\"gridView\").update()\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n deferRender((function() {\r\n that._renderContentImpl()\r\n }))\r\n },\r\n _getTemplate: function(templateName) {\r\n var template = templateName;\r\n if (isString(template) && \"#\" === template[0]) {\r\n template = $(templateName);\r\n logger.warn(DATAGRID_DEPRECATED_TEMPLATE_WARNING)\r\n }\r\n return this.callBase(template)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"dispose\")\r\n },\r\n isReady: function() {\r\n return this.getController(\"data\").isReady()\r\n },\r\n beginUpdate: function() {\r\n this.callBase();\r\n gridCore.callModuleItemsMethod(this, \"beginUpdate\")\r\n },\r\n endUpdate: function() {\r\n gridCore.callModuleItemsMethod(this, \"endUpdate\");\r\n this.callBase()\r\n },\r\n getController: function(name) {\r\n return this._controllers[name]\r\n },\r\n getView: function(name) {\r\n return this._views[name]\r\n },\r\n focus: function(element) {\r\n this.getController(\"keyboardNavigation\").focus(element)\r\n }\r\n});\r\nDataGrid.registerModule = gridCore.registerModule.bind(gridCore);\r\nregisterComponent(\"dxDataGrid\", DataGrid);\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.state_storing.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n stateStoringModule\r\n} from \"../grid_core/ui.grid_core.state_storing\";\r\ngridCore.registerModule(\"stateStoring\", stateStoringModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.selection.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n selectionModule\r\n} from \"../grid_core/ui.grid_core.selection\";\r\ngridCore.registerModule(\"selection\", selectionModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.column_chooser.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnChooserModule\r\n} from \"../grid_core/ui.grid_core.column_chooser\";\r\nexport var ColumnChooserController = columnChooserModule.controllers.columnChooser;\r\nexport var ColumnChooserView = columnChooserModule.views.columnChooserView;\r\ngridCore.registerModule(\"columnChooser\", columnChooserModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.core.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../data/utils\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nexport function createOffsetFilter(path, storeLoadOptions, lastLevelOnly) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = lastLevelOnly ? path.length - 1 : 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n var selector = groups[j].selector;\r\n if (i === j && (null === path[j] || false === path[j] || true === path[j])) {\r\n if (false === path[j]) {\r\n filterElement.push([selector, \"=\", groups[j].desc ? true : null])\r\n } else if (path[j] ? !groups[j].desc : groups[j].desc) {\r\n filterElement.push([selector, \"<>\", path[j]])\r\n } else {\r\n filterElement.push([selector, \"<>\", null]);\r\n filterElement.push([selector, \"=\", null])\r\n }\r\n } else {\r\n var currentFilter = [selector, i === j ? groups[j].desc ? \">\" : \"<\" : \"=\", path[j]];\r\n if (\"<\" === currentFilter[1]) {\r\n filterElement.push([currentFilter, \"or\", [selector, \"=\", null]])\r\n } else {\r\n filterElement.push(currentFilter)\r\n }\r\n }\r\n }\r\n filter.push(gridCore.combineFilters(filterElement))\r\n }\r\n filter = gridCore.combineFilters(filter, \"or\");\r\n return gridCore.combineFilters([filter, storeLoadOptions.filter])\r\n}\r\nexport var GroupingHelper = Class.inherit(function() {\r\n var findGroupInfoByKey = function(groupsInfo, key) {\r\n var hash = groupsInfo.hash;\r\n return hash && hash[JSON.stringify(key)]\r\n };\r\n var getGroupInfoIndexByOffset = function(groupsInfo, offset) {\r\n var leftIndex = 0;\r\n var rightIndex = groupsInfo.length - 1;\r\n if (!groupsInfo.length) {\r\n return 0\r\n }\r\n do {\r\n var middleIndex = rightIndex + leftIndex >> 1;\r\n if (groupsInfo[middleIndex].offset > offset) {\r\n rightIndex = middleIndex\r\n } else {\r\n leftIndex = middleIndex\r\n }\r\n } while (rightIndex - leftIndex > 1);\r\n var index;\r\n for (index = leftIndex; index <= rightIndex; index++) {\r\n if (groupsInfo[index].offset > offset) {\r\n break\r\n }\r\n }\r\n return index\r\n };\r\n return {\r\n ctor: function(dataSourceAdapter) {\r\n this._dataSource = dataSourceAdapter;\r\n this.reset()\r\n },\r\n reset: function() {\r\n this._groupsInfo = [];\r\n this._totalCountCorrection = 0\r\n },\r\n totalCountCorrection: function() {\r\n return this._totalCountCorrection\r\n },\r\n updateTotalItemsCount: function(totalCountCorrection) {\r\n this._totalCountCorrection = totalCountCorrection || 0\r\n },\r\n isGroupItemCountable: function(item) {\r\n return !this._isVirtualPaging() || !item.isContinuation\r\n },\r\n _isVirtualPaging: function() {\r\n var scrollingMode = this._dataSource.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n },\r\n itemsCount: function() {\r\n var dataSourceAdapter = this._dataSource;\r\n var dataSource = dataSourceAdapter._dataSource;\r\n var groupCount = gridCore.normalizeSortingInfo(dataSource.group() || []).length;\r\n var itemsCount = function calculateItemsCount(that, items, groupsCount) {\r\n var result = 0;\r\n if (items) {\r\n if (!groupsCount) {\r\n result = items.length\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n if (that.isGroupItemCountable(items[i])) {\r\n result++\r\n }\r\n result += calculateItemsCount(that, items[i].items, groupsCount - 1)\r\n }\r\n }\r\n }\r\n return result\r\n }(this, dataSource.items(), groupCount);\r\n return itemsCount\r\n },\r\n foreachGroups: function(callback, childrenAtFirst, foreachCollapsedGroups, updateOffsets, updateParentOffsets) {\r\n var that = this;\r\n return function foreachGroupsCore(groupsInfo, callback, childrenAtFirst, parents) {\r\n var callbackResults = [];\r\n\r\n function executeCallback(callback, data, parents, callbackResults) {\r\n var callbackResult = data && callback(data, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n return callbackResult\r\n }\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n parents.push(groupsInfo[i].data);\r\n if (!childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.isExpanded || foreachCollapsedGroups) {\r\n var children = groupsInfo[i].children;\r\n var callbackResult = children.length && foreachGroupsCore(children, callback, childrenAtFirst, parents);\r\n callbackResult && callbackResults.push(callbackResult);\r\n if (false === callbackResult) {\r\n return false\r\n }\r\n }\r\n if (childrenAtFirst && false === executeCallback(callback, groupsInfo[i].data, parents, callbackResults)) {\r\n return false\r\n }\r\n if (!groupsInfo[i].data || groupsInfo[i].data.offset !== groupsInfo[i].offset) {\r\n updateOffsets = true\r\n }\r\n parents.pop()\r\n }\r\n var currentParents = updateParentOffsets && parents.slice(0);\r\n return updateOffsets && when.apply($, callbackResults).always((function() {\r\n that._updateGroupInfoOffsets(groupsInfo, currentParents)\r\n }))\r\n }(that._groupsInfo, callback, childrenAtFirst, [])\r\n },\r\n _updateGroupInfoOffsets: function(groupsInfo, parents) {\r\n parents = parents || [];\r\n for (var index = 0; index < groupsInfo.length; index++) {\r\n var groupInfo = groupsInfo[index];\r\n if (groupInfo.data && groupInfo.data.offset !== groupInfo.offset) {\r\n groupInfo.offset = groupInfo.data.offset;\r\n for (var parentIndex = 0; parentIndex < parents.length; parentIndex++) {\r\n parents[parentIndex].offset = groupInfo.offset\r\n }\r\n }\r\n }\r\n groupsInfo.sort((function(a, b) {\r\n return a.offset - b.offset\r\n }))\r\n },\r\n findGroupInfo: function(path) {\r\n var groupInfo;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; groupsInfo && pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n groupsInfo = groupInfo && groupInfo.children\r\n }\r\n return groupInfo && groupInfo.data\r\n },\r\n addGroupInfo: function(groupInfoData) {\r\n var groupInfo;\r\n var path = groupInfoData.path;\r\n var groupsInfo = this._groupsInfo;\r\n for (var pathIndex = 0; pathIndex < path.length; pathIndex++) {\r\n groupInfo = findGroupInfoByKey(groupsInfo, path[pathIndex]);\r\n if (!groupInfo) {\r\n groupInfo = {\r\n key: path[pathIndex],\r\n offset: groupInfoData.offset,\r\n data: {\r\n offset: groupInfoData.offset,\r\n isExpanded: true,\r\n path: path.slice(0, pathIndex + 1)\r\n },\r\n children: []\r\n };\r\n var index = getGroupInfoIndexByOffset(groupsInfo, groupInfoData.offset);\r\n groupsInfo.splice(index, 0, groupInfo);\r\n groupsInfo.hash = groupsInfo.hash || {};\r\n groupsInfo.hash[JSON.stringify(groupInfo.key)] = groupInfo\r\n }\r\n if (pathIndex === path.length - 1) {\r\n groupInfo.data = groupInfoData;\r\n if (groupInfo.offset !== groupInfoData.offset) {\r\n this._updateGroupInfoOffsets(groupsInfo)\r\n }\r\n }\r\n groupsInfo = groupInfo.children\r\n }\r\n },\r\n allowCollapseAll: function() {\r\n return true\r\n },\r\n refresh: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = normalizeSortingInfo(storeLoadOptions.group || []);\r\n var oldGroups = \"_group\" in this ? normalizeSortingInfo(this._group || []) : groups;\r\n var groupsCount = Math.min(oldGroups.length, groups.length);\r\n this._group = storeLoadOptions.group;\r\n for (var groupIndex = 0; groupIndex < groupsCount; groupIndex++) {\r\n if (oldGroups[groupIndex].selector !== groups[groupIndex].selector) {\r\n groupsCount = groupIndex;\r\n break\r\n }\r\n }\r\n if (!groupsCount) {\r\n this.reset()\r\n } else {\r\n ! function cleanGroupsInfo(groupsInfo, groupIndex, groupsCount) {\r\n for (var i = 0; i < groupsInfo.length; i++) {\r\n if (groupIndex + 1 >= groupsCount) {\r\n groupsInfo[i].children = []\r\n } else {\r\n cleanGroupsInfo(groupsInfo[i].children, groupIndex + 1, groupsCount)\r\n }\r\n }\r\n }(this._groupsInfo, 0, groupsCount)\r\n }\r\n },\r\n handleDataLoading: function() {},\r\n handleDataLoaded: function(options, callBase) {\r\n callBase(options)\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n callBase(options)\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../data/utils\";\r\nexport function createGroupFilter(path, storeLoadOptions) {\r\n var groups = normalizeSortingInfo(storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n filter.push([groups[i].selector, \"=\", path[i]])\r\n }\r\n if (storeLoadOptions.filter) {\r\n filter.push(storeLoadOptions.filter)\r\n }\r\n return gridCoreUtils.combineFilters(filter)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.expanded.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n keysEqual\r\n} from \"../../data/utils\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport dataGridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as GroupingHelperCore,\r\n createOffsetFilter\r\n} from \"./ui.data_grid.grouping.core\";\r\nimport {\r\n createGroupFilter\r\n} from \"./ui.data_grid.utils\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar loadTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }, options);\r\n dataSource.load(loadOptions).done((function(data, extra) {\r\n d.resolve(extra && extra.totalCount)\r\n })).fail(d.reject.bind(d));\r\n return d\r\n};\r\nexport var GroupingHelper = GroupingHelperCore.inherit(function() {\r\n var foreachCollapsedGroups = function(that, callback, updateOffsets) {\r\n return that.foreachGroups((function(groupInfo) {\r\n if (!groupInfo.isExpanded) {\r\n return callback(groupInfo)\r\n }\r\n }), false, false, updateOffsets, true)\r\n };\r\n var correctSkipLoadOption = function(that, skip) {\r\n var skipCorrection = 0;\r\n var resultSkip = skip || 0;\r\n if (skip) {\r\n foreachCollapsedGroups(that, (function(groupInfo) {\r\n if (groupInfo.offset - skipCorrection >= skip) {\r\n return false\r\n }\r\n skipCorrection += groupInfo.count - 1\r\n }));\r\n resultSkip += skipCorrection\r\n }\r\n return resultSkip\r\n };\r\n var pathEquals = function(path1, path2) {\r\n if (path1.length !== path2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < path1.length; i++) {\r\n if (!keysEqual(null, path1[i], path2[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n };\r\n var updateGroupOffsets = function updateGroupOffsets(that, items, path, offset, additionalGroupInfo) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"key\" in item && void 0 !== item.items) {\r\n path.push(item.key);\r\n if (additionalGroupInfo && pathEquals(additionalGroupInfo.path, path) && !item.isContinuation) {\r\n additionalGroupInfo.offset = offset\r\n }\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !item.isContinuation) {\r\n groupInfo.offset = offset\r\n }\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n offset += groupInfo.count\r\n } else {\r\n offset = updateGroupOffsets(that, item.items, path, offset, additionalGroupInfo)\r\n }\r\n path.pop()\r\n } else {\r\n offset++\r\n }\r\n }\r\n return offset\r\n };\r\n var getGroupCount = function getGroupCount(item, groupCount) {\r\n var count = item.count || item.items.length;\r\n if (!item.count && groupCount > 1) {\r\n count = 0;\r\n for (var i = 0; i < item.items.length; i++) {\r\n count += getGroupCount(item.items[i], groupCount - 1)\r\n }\r\n }\r\n return count\r\n };\r\n return {\r\n handleDataLoading: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var collapsedGroups = [];\r\n var collapsedItemsCount = 0;\r\n var skipFirstItem = false;\r\n var take;\r\n var group = options.loadOptions.group;\r\n var skipCorrection = 0;\r\n ! function(storeLoadOptions, loadOptions) {\r\n if (loadOptions.group) {\r\n var groups = dataGridCore.normalizeSortingInfo(loadOptions.group);\r\n var sorts = dataGridCore.normalizeSortingInfo(storeLoadOptions.sort);\r\n storeLoadOptions.sort = storeHelper.arrangeSortingInfo(groups, sorts);\r\n delete loadOptions.group\r\n }\r\n }(storeLoadOptions, options.loadOptions);\r\n options.group = options.group || group;\r\n if (options.isCustomLoading) {\r\n return\r\n }\r\n var loadOptions = extend({}, storeLoadOptions);\r\n loadOptions.skip = correctSkipLoadOption(this, storeLoadOptions.skip);\r\n if (loadOptions.skip && loadOptions.take && group) {\r\n loadOptions.skip--;\r\n loadOptions.take++;\r\n skipFirstItem = true\r\n }\r\n if (loadOptions.take && group) {\r\n take = loadOptions.take;\r\n loadOptions.take++\r\n }\r\n foreachCollapsedGroups(this, (function(groupInfo) {\r\n if (groupInfo.offset >= loadOptions.skip + loadOptions.take + skipCorrection) {\r\n return false\r\n } else if (groupInfo.offset >= loadOptions.skip + skipCorrection && groupInfo.count) {\r\n skipCorrection += groupInfo.count - 1;\r\n collapsedGroups.push(groupInfo);\r\n collapsedItemsCount += groupInfo.count\r\n }\r\n }));\r\n each(collapsedGroups, (function() {\r\n loadOptions.filter = function(path, storeLoadOptions, group) {\r\n var groups = dataGridCore.normalizeSortingInfo(group || storeLoadOptions.group);\r\n var filter = [];\r\n for (var i = 0; i < path.length; i++) {\r\n var filterElement = [];\r\n for (var j = 0; j <= i; j++) {\r\n filterElement.push([groups[j].selector, i === j ? \"<>\" : \"=\", path[j]])\r\n }\r\n filter.push(dataGridCore.combineFilters(filterElement))\r\n }\r\n filter = dataGridCore.combineFilters(filter, \"or\");\r\n return dataGridCore.combineFilters([filter, storeLoadOptions.filter])\r\n }(this.path, loadOptions, group)\r\n }));\r\n options.storeLoadOptions = loadOptions;\r\n options.collapsedGroups = collapsedGroups;\r\n options.collapsedItemsCount = collapsedItemsCount;\r\n options.skip = loadOptions.skip || 0;\r\n options.skipFirstItem = skipFirstItem;\r\n options.take = take\r\n },\r\n handleDataLoaded: function(options, callBase) {\r\n var collapsedGroups = options.collapsedGroups;\r\n var groups = dataGridCore.normalizeSortingInfo(options.group);\r\n var groupCount = groups.length;\r\n\r\n function appendCollapsedPath(data, path, groups, collapsedGroup, offset) {\r\n if (!data || !path.length || !groups.length) {\r\n return\r\n }\r\n var keyValue;\r\n var i;\r\n var pathValue = toComparable(path[0], true);\r\n for (i = 0; i < data.length; i++) {\r\n keyValue = toComparable(data[i].key, true);\r\n if (offset >= collapsedGroup.offset || pathValue === keyValue) {\r\n break\r\n } else {\r\n offset += getGroupCount(data[i], groups.length)\r\n }\r\n }\r\n if (!data.length || pathValue !== keyValue) {\r\n data.splice(i, 0, {\r\n key: path[0],\r\n items: [],\r\n count: 1 === path.length ? collapsedGroup.count : void 0\r\n })\r\n }\r\n appendCollapsedPath(data[i].items, path.slice(1), groups.slice(1), collapsedGroup, offset)\r\n }\r\n if (options.collapsedItemsCount && options.extra && options.extra.totalCount >= 0) {\r\n if (!options.extra._totalCountWasIncreasedByCollapsedItems) {\r\n options.extra.totalCount += options.collapsedItemsCount;\r\n options.extra._totalCountWasIncreasedByCollapsedItems = true\r\n }\r\n }\r\n callBase(options);\r\n if (groupCount) {\r\n var data = options.data;\r\n var query = dataQuery(data);\r\n storeHelper.multiLevelGroup(query, groups).enumerate().done((function(groupedData) {\r\n data = groupedData\r\n }));\r\n if (collapsedGroups) {\r\n for (var pathIndex = 0; pathIndex < collapsedGroups.length; pathIndex++) {\r\n appendCollapsedPath(data, collapsedGroups[pathIndex].path, groups, collapsedGroups[pathIndex], options.skip)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n ! function processGroupItems(that, items, path, offset, skipFirstItem, take) {\r\n var removeLastItemsCount = 0;\r\n var needRemoveFirstItem = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n var groupInfo = that.findGroupInfo(path);\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null;\r\n offset += groupInfo.count;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n } else if (item.items) {\r\n var offsetInfo = processGroupItems(that, item.items, path, offset, skipFirstItem, take);\r\n if (skipFirstItem) {\r\n if (offsetInfo.offset - offset > 1) {\r\n item.isContinuation = true\r\n } else {\r\n needRemoveFirstItem = true\r\n }\r\n }\r\n offset = offsetInfo.offset;\r\n take = offsetInfo.take;\r\n if (take < 0) {\r\n if (item.items.length) {\r\n item.isContinuationOnNextPage = true\r\n } else {\r\n removeLastItemsCount++\r\n }\r\n }\r\n }\r\n path.pop()\r\n } else {\r\n if (skipFirstItem) {\r\n needRemoveFirstItem = true\r\n }\r\n offset++;\r\n take--;\r\n if (take < 0) {\r\n removeLastItemsCount++\r\n }\r\n }\r\n skipFirstItem = false\r\n }\r\n if (needRemoveFirstItem) {\r\n items.splice(0, 1)\r\n }\r\n if (removeLastItemsCount) {\r\n items.splice(-removeLastItemsCount, removeLastItemsCount)\r\n }\r\n return {\r\n offset: offset,\r\n take: take\r\n }\r\n }(this, data, [], options.skip, options.skipFirstItem, options.take)\r\n }\r\n options.data = data\r\n }\r\n },\r\n isGroupItemCountable: function(item) {\r\n return null === item.items\r\n },\r\n updateTotalItemsCount: function() {\r\n var itemsCountCorrection = 0;\r\n foreachCollapsedGroups(this, (function(groupInfo) {\r\n if (groupInfo.count) {\r\n itemsCountCorrection -= groupInfo.count - 1\r\n }\r\n }));\r\n this.callBase(itemsCountCorrection)\r\n },\r\n changeRowExpand: function(path) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var beginPageIndex = dataSource.beginPageIndex ? dataSource.beginPageIndex() : dataSource.pageIndex();\r\n var dataSourceItems = dataSource.items();\r\n var offset = correctSkipLoadOption(that, beginPageIndex * dataSource.pageSize());\r\n var groupInfo = that.findGroupInfo(path);\r\n var groupCountQuery;\r\n if (groupInfo && !groupInfo.isExpanded) {\r\n groupCountQuery = (new Deferred).resolve(groupInfo.count)\r\n } else {\r\n groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.filter(),\r\n group: dataSource.group()\r\n })\r\n })\r\n }\r\n return when(groupCountQuery).done((function(count) {\r\n count = parseInt(count.length ? count[0] : count);\r\n if (groupInfo) {\r\n updateGroupOffsets(that, dataSourceItems, [], offset);\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n groupInfo.count = count\r\n } else {\r\n groupInfo = {\r\n offset: -1,\r\n count: count,\r\n path: path,\r\n isExpanded: false\r\n };\r\n updateGroupOffsets(that, dataSourceItems, [], offset, groupInfo);\r\n if (groupInfo.offset >= 0) {\r\n that.addGroupInfo(groupInfo)\r\n }\r\n }\r\n that.updateTotalItemsCount()\r\n })).fail((function() {\r\n dataSource._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n }))\r\n },\r\n allowCollapseAll: function() {\r\n return false\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var dataSource = that._dataSource;\r\n this.callBase.apply(this, arguments);\r\n if (operationTypes.reload) {\r\n return foreachCollapsedGroups(that, (function(groupInfo) {\r\n var groupCountQuery = loadTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n var groupOffsetQuery = loadTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, storeLoadOptions)\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount()\r\n }\r\n }))\r\n }), true)\r\n }\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.collapsed.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dataGridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as GroupingHelperCore,\r\n createOffsetFilter\r\n} from \"./ui.data_grid.grouping.core\";\r\nimport {\r\n createGroupFilter\r\n} from \"./ui.data_grid.utils\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n errors as dataErrors\r\n} from \"../../data/errors\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\n\r\nfunction getContinuationGroupCount(groupOffset, pageSize, groupSize, groupIndex) {\r\n groupIndex = groupIndex || 0;\r\n if (pageSize > 1 && groupSize > 0) {\r\n var pageOffset = groupOffset - Math.floor(groupOffset / pageSize) * pageSize || pageSize;\r\n pageOffset += groupSize - groupIndex - 2;\r\n if (pageOffset < 0) {\r\n pageOffset += pageSize\r\n }\r\n return Math.floor(pageOffset / (pageSize - groupIndex - 1))\r\n }\r\n return 0\r\n}\r\nexport var GroupingHelper = GroupingHelperCore.inherit(function() {\r\n var foreachExpandedGroups = function(that, callback, updateGroups) {\r\n return that.foreachGroups((function(groupInfo, parents) {\r\n if (groupInfo.isExpanded) {\r\n return callback(groupInfo, parents)\r\n }\r\n }), true, false, updateGroups, updateGroups)\r\n };\r\n var processGroupItems = function processGroupItems(that, items, groupsCount, expandedInfo, path, isCustomLoading, isLastGroupExpanded) {\r\n var isExpanded;\r\n expandedInfo.items = expandedInfo.items || [];\r\n expandedInfo.paths = expandedInfo.paths || [];\r\n expandedInfo.count = expandedInfo.count || 0;\r\n expandedInfo.lastCount = expandedInfo.lastCount || 0;\r\n if (!groupsCount) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (void 0 !== item.items) {\r\n path.push(item.key);\r\n if (isCustomLoading) {\r\n isExpanded = true\r\n } else {\r\n var groupInfo = that.findGroupInfo(path);\r\n isExpanded = groupInfo && groupInfo.isExpanded\r\n }\r\n if (!isExpanded) {\r\n item.collapsedItems = item.items;\r\n item.items = null\r\n } else if (item.items) {\r\n processGroupItems(that, item.items, groupsCount - 1, expandedInfo, path, isCustomLoading, isLastGroupExpanded)\r\n } else if (1 === groupsCount && item.count && (!isCustomLoading || isLastGroupExpanded)) {\r\n expandedInfo.items.push(item);\r\n expandedInfo.paths.push(path.slice(0));\r\n expandedInfo.count += expandedInfo.lastCount;\r\n expandedInfo.lastCount = item.count\r\n }\r\n path.pop()\r\n }\r\n }\r\n };\r\n var updateGroupInfoItem = function(that, item, isLastGroupLevel, path, offset) {\r\n var groupInfo = that.findGroupInfo(path);\r\n var count;\r\n if (!groupInfo) {\r\n if (isLastGroupLevel) {\r\n count = item.count > 0 ? item.count : item.items.length\r\n }\r\n that.addGroupInfo({\r\n isExpanded: that._isGroupExpanded(path.length - 1),\r\n path: path.slice(0),\r\n offset: offset,\r\n count: count || 0\r\n })\r\n } else {\r\n if (isLastGroupLevel) {\r\n groupInfo.count = item.count > 0 ? item.count : item.items && item.items.length || 0\r\n } else {\r\n item.count = groupInfo.count || item.count\r\n }\r\n groupInfo.offset = offset\r\n }\r\n };\r\n var updateGroupInfos = function updateGroupInfos(that, options, items, loadedGroupCount, groupIndex, path, parentIndex) {\r\n var groupCount = options.group ? options.group.length : 0;\r\n var isLastGroupLevel = groupCount === loadedGroupCount;\r\n var remotePaging = options.remoteOperations.paging;\r\n var offset = 0;\r\n var totalCount = 0;\r\n var count;\r\n groupIndex = groupIndex || 0;\r\n path = path || [];\r\n if (remotePaging && !parentIndex) {\r\n offset = 0 === groupIndex ? options.skip || 0 : options.skips[groupIndex - 1] || 0\r\n }\r\n if (groupIndex >= loadedGroupCount) {\r\n return items.length\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item) {\r\n path.push(item.key);\r\n if (!item.count && !item.items || void 0 === item.items) {\r\n return -1\r\n }\r\n updateGroupInfoItem(that, item, isLastGroupLevel, path, offset + i);\r\n count = item.items ? updateGroupInfos(that, options, item.items, loadedGroupCount, groupIndex + 1, path, i) : item.count || -1;\r\n if (count < 0) {\r\n return -1\r\n }\r\n totalCount += count;\r\n path.pop()\r\n }\r\n }\r\n return totalCount\r\n };\r\n var isGroupExpanded = function(groups, groupIndex) {\r\n return groups && groups.length && groups[groupIndex] && !!groups[groupIndex].isExpanded\r\n };\r\n var getTotalOffset = function(groupInfos, pageSize, offset) {\r\n var groupSize;\r\n var totalOffset = offset;\r\n for (var groupIndex = 0; groupIndex < groupInfos.length; groupIndex++) {\r\n groupSize = groupInfos[groupIndex].offset + 1;\r\n if (groupIndex > 0) {\r\n groupSize += groupInfos[groupIndex - 1].childrenTotalCount;\r\n if (pageSize) {\r\n groupSize += getContinuationGroupCount(totalOffset, pageSize, groupSize, groupIndex - 1) * groupIndex\r\n }\r\n }\r\n totalOffset += groupSize\r\n }\r\n return totalOffset\r\n };\r\n\r\n function applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n var skip = options.skips && options.skips[groupLevel];\r\n var take = options.takes && options.takes[groupLevel];\r\n var isLastExpandedItem = expandedItemIndex === expandedInfo.items.length - 1;\r\n var isFirstExpandedItem = 0 === expandedItemIndex;\r\n var lastExpandedItemSkip = isFirstExpandedItem && skip || 0;\r\n var isItemsTruncatedByTake = item.count > take + lastExpandedItemSkip;\r\n if (isFirstExpandedItem && void 0 !== skip) {\r\n item.isContinuation = true\r\n }\r\n if (isLastExpandedItem && void 0 !== take && isItemsTruncatedByTake) {\r\n item.isContinuationOnNextPage = true\r\n }\r\n }\r\n\r\n function isDataDeferred(data) {\r\n return !Array.isArray(data)\r\n }\r\n\r\n function makeDataDeferred(options) {\r\n if (!isDataDeferred(options.data)) {\r\n options.data = new Deferred\r\n }\r\n }\r\n\r\n function loadGroupItems(that, options, loadedGroupCount, expandedInfo, groupLevel, data) {\r\n if (!options.isCustomLoading) {\r\n expandedInfo = {};\r\n processGroupItems(that, data, loadedGroupCount, expandedInfo, []);\r\n ! function(options, expandedInfo, currentGroupCount) {\r\n var currentGroupIndex = currentGroupCount - 1;\r\n var groupCount = options.group ? options.group.length : 0;\r\n expandedInfo.skip = options.skips && options.skips[currentGroupIndex];\r\n if (options.takes && void 0 !== options.takes[currentGroupIndex]) {\r\n if (groupCount === currentGroupCount) {\r\n expandedInfo.take = expandedInfo.count ? expandedInfo.count - (expandedInfo.skip || 0) : 0\r\n } else {\r\n expandedInfo.take = 0\r\n }\r\n expandedInfo.take += options.takes[currentGroupIndex]\r\n }\r\n }(options, expandedInfo, loadedGroupCount)\r\n }\r\n var groupCount = options.group ? options.group.length : 0;\r\n if (expandedInfo.paths.length && groupCount - loadedGroupCount > 0) {\r\n makeDataDeferred(options);\r\n ! function(that, options, expandedInfo, loadedGroupCount, groupLevel, data) {\r\n var groups = options.group || [];\r\n var currentGroup = groups[groupLevel + 1];\r\n var deferreds = [];\r\n each(expandedInfo.paths, (function(expandedItemIndex) {\r\n var loadOptions = {\r\n requireTotalCount: false,\r\n requireGroupCount: true,\r\n group: [currentGroup],\r\n groupSummary: options.storeLoadOptions.groupSummary,\r\n filter: createGroupFilter(expandedInfo.paths[expandedItemIndex], {\r\n filter: options.storeLoadOptions.filter,\r\n group: groups\r\n }),\r\n select: options.storeLoadOptions.select\r\n };\r\n if (0 === expandedItemIndex) {\r\n loadOptions.skip = expandedInfo.skip || 0\r\n }\r\n if (expandedItemIndex === expandedInfo.paths.length - 1) {\r\n loadOptions.take = expandedInfo.take\r\n }\r\n var loadResult = 0 === loadOptions.take ? [] : that._dataSource.loadFromStore(loadOptions);\r\n when(loadResult).done((function(data) {\r\n var item = expandedInfo.items[expandedItemIndex];\r\n applyContinuationToGroupItem(options, expandedInfo, groupLevel, expandedItemIndex);\r\n item.items = data\r\n }));\r\n deferreds.push(loadResult)\r\n }));\r\n when.apply(null, deferreds).done((function() {\r\n updateGroupInfos(that, options, data, loadedGroupCount + 1);\r\n loadGroupItems(that, options, loadedGroupCount + 1, expandedInfo, groupLevel + 1, data)\r\n }))\r\n }(that, options, expandedInfo, loadedGroupCount, groupLevel, data)\r\n } else if (expandedInfo.paths.length && options.storeLoadOptions.group) {\r\n makeDataDeferred(options);\r\n ! function(that, options, expandedInfo, data) {\r\n var expandedFilters = [];\r\n var groups = options.group || [];\r\n each(expandedInfo.paths, (function(_, expandedPath) {\r\n expandedFilters.push(createGroupFilter(expandedPath, {\r\n group: options.isCustomLoading ? options.storeLoadOptions.group : groups\r\n }))\r\n }));\r\n var filter = options.storeLoadOptions.filter;\r\n if (!options.storeLoadOptions.isLoadingAll) {\r\n filter = dataGridCore.combineFilters([filter, dataGridCore.combineFilters(expandedFilters, \"or\")])\r\n }\r\n var loadOptions = extend({}, options.storeLoadOptions, {\r\n requireTotalCount: false,\r\n requireGroupCount: false,\r\n group: null,\r\n sort: groups.concat(dataGridCore.normalizeSortingInfo(options.storeLoadOptions.sort || [])),\r\n filter: filter\r\n });\r\n var isPagingLocal = that._dataSource.isLastLevelGroupItemsPagingLocal();\r\n if (!isPagingLocal) {\r\n loadOptions.skip = expandedInfo.skip;\r\n loadOptions.take = expandedInfo.take\r\n }\r\n when(0 === expandedInfo.take ? [] : that._dataSource.loadFromStore(loadOptions)).done((function(items, extra) {\r\n if (isPagingLocal) {\r\n items = that._dataSource.sortLastLevelGroupItems(items, groups, expandedInfo.paths);\r\n items = expandedInfo.skip ? items.slice(expandedInfo.skip) : items;\r\n items = expandedInfo.take ? items.slice(0, expandedInfo.take) : items\r\n }\r\n each(expandedInfo.items, (function(index, item) {\r\n var itemCount = item.count - (0 === index && expandedInfo.skip || 0);\r\n var expandedItems = items.splice(0, itemCount);\r\n applyContinuationToGroupItem(options, expandedInfo, groups.length - 1, index);\r\n item.items = expandedItems\r\n }));\r\n options.data.resolve(data)\r\n })).fail(options.data.reject)\r\n }(that, options, expandedInfo, data)\r\n } else if (isDataDeferred(options.data)) {\r\n options.data.resolve(data)\r\n }\r\n }\r\n var loadGroupTotalCount = function(dataSource, options) {\r\n var d = new Deferred;\r\n var isGrouping = !!(options.group && options.group.length);\r\n var loadOptions = extend({\r\n skip: 0,\r\n take: 1,\r\n requireGroupCount: isGrouping,\r\n requireTotalCount: !isGrouping\r\n }, options, {\r\n group: isGrouping ? options.group : null\r\n });\r\n dataSource.load(loadOptions).done((function(data, extra) {\r\n var count = extra && (isGrouping ? extra.groupCount : extra.totalCount);\r\n if (!isFinite(count)) {\r\n d.reject(dataErrors.Error(isGrouping ? \"E4022\" : \"E4021\"));\r\n return\r\n }\r\n d.resolve(count)\r\n })).fail(d.reject.bind(d));\r\n return d\r\n };\r\n return {\r\n updateTotalItemsCount: function(options) {\r\n var totalItemsCount = 0;\r\n var totalCount = options.extra && options.extra.totalCount || 0;\r\n var groupCount = options.extra && options.extra.groupCount || 0;\r\n var pageSize = this._dataSource.pageSize();\r\n var isVirtualPaging = this._isVirtualPaging();\r\n foreachExpandedGroups(this, (function(groupInfo) {\r\n groupInfo.childrenTotalCount = 0\r\n }));\r\n foreachExpandedGroups(this, (function(groupInfo, parents) {\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, totalItemsCount);\r\n var count = groupInfo.count + groupInfo.childrenTotalCount;\r\n if (!isVirtualPaging) {\r\n count += getContinuationGroupCount(totalOffset, pageSize, count, parents.length - 1)\r\n }\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += count\r\n } else {\r\n totalItemsCount += count\r\n }\r\n }));\r\n this.callBase(totalItemsCount - totalCount + groupCount)\r\n },\r\n _isGroupExpanded: function(groupIndex) {\r\n var groups = this._dataSource.group();\r\n return isGroupExpanded(groups, groupIndex)\r\n },\r\n _updatePagingOptions: function(options, callback) {\r\n var isVirtualPaging = this._isVirtualPaging();\r\n var pageSize = this._dataSource.pageSize();\r\n var skips = [];\r\n var takes = [];\r\n var skipChildrenTotalCount = 0;\r\n var childrenTotalCount = 0;\r\n if (options.take) {\r\n foreachExpandedGroups(this, (function(groupInfo) {\r\n groupInfo.childrenTotalCount = 0;\r\n groupInfo.skipChildrenTotalCount = 0\r\n }));\r\n foreachExpandedGroups(this, (function(groupInfo, parents) {\r\n var take;\r\n var takeCorrection = 0;\r\n var parentTakeCorrection = 0;\r\n var totalOffset = getTotalOffset(parents, isVirtualPaging ? 0 : pageSize, childrenTotalCount);\r\n var continuationGroupCount = 0;\r\n var skipContinuationGroupCount = 0;\r\n var groupInfoCount = groupInfo.count + groupInfo.childrenTotalCount;\r\n var childrenGroupInfoCount = groupInfoCount;\r\n callback && callback(groupInfo, totalOffset);\r\n var skip = options.skip - totalOffset;\r\n if (totalOffset <= options.skip + options.take && groupInfoCount) {\r\n take = options.take;\r\n if (!isVirtualPaging) {\r\n continuationGroupCount = getContinuationGroupCount(totalOffset, pageSize, groupInfoCount, parents.length - 1);\r\n groupInfoCount += continuationGroupCount * parents.length;\r\n childrenGroupInfoCount += continuationGroupCount;\r\n if (pageSize && skip >= 0) {\r\n takeCorrection = parents.length;\r\n parentTakeCorrection = parents.length - 1;\r\n skipContinuationGroupCount = Math.floor(skip / pageSize)\r\n }\r\n }\r\n if (skip >= 0) {\r\n if (totalOffset + groupInfoCount > options.skip) {\r\n skips.unshift(skip - skipContinuationGroupCount * takeCorrection - groupInfo.skipChildrenTotalCount)\r\n }\r\n if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take - takeCorrection - groupInfo.childrenTotalCount + groupInfo.skipChildrenTotalCount)\r\n }\r\n } else if (totalOffset + groupInfoCount >= options.skip + take) {\r\n takes.unshift(take + skip - groupInfo.childrenTotalCount)\r\n }\r\n }\r\n if (totalOffset <= options.skip) {\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1 - skipContinuationGroupCount * parentTakeCorrection)\r\n } else {\r\n skipChildrenTotalCount += Math.min(childrenGroupInfoCount, skip + 1)\r\n }\r\n }\r\n if (totalOffset <= options.skip + take) {\r\n groupInfoCount = Math.min(childrenGroupInfoCount, skip + take - (skipContinuationGroupCount + 1) * parentTakeCorrection);\r\n if (parents[parents.length - 2]) {\r\n parents[parents.length - 2].childrenTotalCount += groupInfoCount\r\n } else {\r\n childrenTotalCount += groupInfoCount\r\n }\r\n }\r\n }));\r\n options.skip -= skipChildrenTotalCount;\r\n options.take -= childrenTotalCount - skipChildrenTotalCount\r\n }\r\n options.skips = skips;\r\n options.takes = takes\r\n },\r\n changeRowExpand: function(path) {\r\n var groupInfo = this.findGroupInfo(path);\r\n var dataSource = this._dataSource;\r\n var remoteGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var groups = dataGridCore.normalizeSortingInfo(dataSource.group());\r\n if (groupInfo) {\r\n groupInfo.isExpanded = !groupInfo.isExpanded;\r\n if (remoteGroupPaging && groupInfo.isExpanded && path.length < groups.length) {\r\n return loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(path, {\r\n filter: dataSource.lastLoadOptions().filter,\r\n group: dataSource.group()\r\n }),\r\n group: [groups[path.length]],\r\n select: dataSource.select()\r\n }).done((function(groupCount) {\r\n groupInfo.count = groupCount\r\n }))\r\n }\r\n return (new Deferred).resolve()\r\n }\r\n return (new Deferred).reject()\r\n },\r\n handleDataLoading: function(options) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var groups = dataGridCore.normalizeSortingInfo(storeLoadOptions.group || options.loadOptions.group);\r\n if (options.isCustomLoading || !groups.length) {\r\n return\r\n }\r\n if (options.remoteOperations.grouping) {\r\n var remotePaging = this._dataSource.remoteOperations().paging;\r\n storeLoadOptions.group = dataGridCore.normalizeSortingInfo(storeLoadOptions.group);\r\n storeLoadOptions.group.forEach((function(group, index) {\r\n var isLastGroup = index === storeLoadOptions.group.length - 1;\r\n group.isExpanded = !remotePaging || !isLastGroup\r\n }))\r\n }\r\n options.group = options.group || groups;\r\n if (options.remoteOperations.paging) {\r\n options.skip = storeLoadOptions.skip;\r\n options.take = storeLoadOptions.take;\r\n storeLoadOptions.requireGroupCount = true;\r\n storeLoadOptions.group = groups.slice(0, 1);\r\n this._updatePagingOptions(options);\r\n storeLoadOptions.skip = options.skip;\r\n storeLoadOptions.take = options.take\r\n } else {\r\n options.skip = options.loadOptions.skip;\r\n options.take = options.loadOptions.take;\r\n this._updatePagingOptions(options)\r\n }\r\n },\r\n handleDataLoadedCore: function(options, callBase) {\r\n var loadedGroupCount = dataGridCore.normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var groupCount = options.group ? options.group.length : 0;\r\n var totalCount;\r\n var expandedInfo = {};\r\n if (options.isCustomLoading) {\r\n callBase(options);\r\n processGroupItems(this, options.data, loadedGroupCount, expandedInfo, [], options.isCustomLoading, options.storeLoadOptions.isLoadingAll)\r\n } else {\r\n if (!options.remoteOperations.paging) {\r\n this.foreachGroups((function(groupInfo) {\r\n groupInfo.count = 0\r\n }))\r\n }\r\n totalCount = updateGroupInfos(this, options, options.data, loadedGroupCount);\r\n if (totalCount < 0) {\r\n options.data = (new Deferred).reject(errors.Error(\"E1037\"));\r\n return\r\n }\r\n if (!options.remoteOperations.paging) {\r\n if (loadedGroupCount && options.extra && options.loadOptions.requireTotalCount) {\r\n options.extra.totalCount = totalCount;\r\n options.extra.groupCount = options.data.length\r\n }\r\n }\r\n if (groupCount && options.storeLoadOptions.requireGroupCount && !isFinite(options.extra.groupCount)) {\r\n options.data = (new Deferred).reject(dataErrors.Error(\"E4022\"));\r\n return\r\n }\r\n this.updateTotalItemsCount(options);\r\n if (!options.remoteOperations.paging) {\r\n this._updatePagingOptions(options)\r\n }\r\n callBase(options);\r\n if (!options.remoteOperations.paging) {\r\n this._processPaging(options, loadedGroupCount)\r\n }\r\n }\r\n loadGroupItems(this, options, loadedGroupCount, expandedInfo, 0, options.data)\r\n },\r\n _processSkips: function(items, skips, groupCount) {\r\n if (!groupCount) {\r\n return\r\n }\r\n var firstItem = items[0];\r\n var skip = skips[0];\r\n var children = firstItem && firstItem.items;\r\n if (void 0 !== skip) {\r\n firstItem.isContinuation = true;\r\n if (children) {\r\n firstItem.items = children.slice(skip);\r\n this._processSkips(firstItem.items, skips.slice(1), groupCount - 1)\r\n }\r\n }\r\n },\r\n _processTakes: function(items, skips, takes, groupCount, parents) {\r\n if (!groupCount || !items) {\r\n return\r\n }\r\n parents = parents || [];\r\n var lastItem = items[items.length - 1];\r\n var children = lastItem && lastItem.items;\r\n var take = takes[0];\r\n var skip = skips[0];\r\n if (lastItem) {\r\n var maxTakeCount = lastItem.count - (lastItem.isContinuation && skip || 0) || children.length;\r\n if (void 0 !== take && maxTakeCount > take) {\r\n lastItem.isContinuationOnNextPage = true;\r\n parents.forEach((function(parent) {\r\n parent.isContinuationOnNextPage = true\r\n }));\r\n if (children) {\r\n children = children.slice(0, take);\r\n lastItem.items = children\r\n }\r\n }\r\n parents.push(lastItem);\r\n this._processTakes(children, skips.slice(1), takes.slice(1), groupCount - 1, parents)\r\n }\r\n },\r\n _processPaging: function(options, groupCount) {\r\n this._processSkips(options.data, options.skips, groupCount);\r\n this._processTakes(options.data, options.skips, options.takes, groupCount)\r\n },\r\n isLastLevelGroupItemsPagingLocal: function() {\r\n return false\r\n },\r\n sortLastLevelGroupItems: function(items) {\r\n return items\r\n },\r\n refresh: function(options, operationTypes) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var group = options.group || options.storeLoadOptions.group;\r\n var oldGroups = dataGridCore.normalizeSortingInfo(that._group);\r\n var isExpanded;\r\n var groupIndex;\r\n\r\n function handleGroup(groupInfo, parents) {\r\n if (parents.length === groupIndex + 1) {\r\n groupInfo.isExpanded = isExpanded\r\n }\r\n }\r\n for (groupIndex = 0; groupIndex < oldGroups.length; groupIndex++) {\r\n isExpanded = isGroupExpanded(group, groupIndex);\r\n if (isGroupExpanded(that._group, groupIndex) !== isExpanded) {\r\n that.foreachGroups(handleGroup)\r\n }\r\n }\r\n that.callBase.apply(this, arguments);\r\n if (group && options.remoteOperations.paging && operationTypes.reload) {\r\n return foreachExpandedGroups(that, (function(groupInfo) {\r\n var groupCountQuery = loadGroupTotalCount(dataSource, {\r\n filter: createGroupFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }),\r\n group: group.slice(groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n var groupOffsetQuery = loadGroupTotalCount(dataSource, {\r\n filter: createOffsetFilter(groupInfo.path, {\r\n filter: storeLoadOptions.filter,\r\n group: group\r\n }, true),\r\n group: group.slice(groupInfo.path.length - 1, groupInfo.path.length),\r\n select: storeLoadOptions.select\r\n });\r\n return when(groupOffsetQuery, groupCountQuery).done((function(offset, count) {\r\n offset = parseInt(offset.length ? offset[0] : offset);\r\n count = parseInt(count.length ? count[0] : count);\r\n groupInfo.offset = offset;\r\n if (groupInfo.count !== count) {\r\n groupInfo.count = count;\r\n that.updateTotalItemsCount(options)\r\n }\r\n }))\r\n }), true)\r\n }\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.grouping.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n GroupingHelper as ExpandedGroupingHelper\r\n} from \"./ui.data_grid.grouping.expanded\";\r\nimport {\r\n GroupingHelper as CollapsedGroupingHelper\r\n} from \"./ui.data_grid.grouping.collapsed\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dataSourceAdapter from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"../grid_core/ui.grid_core.accessibility\";\r\nimport {\r\n setTabIndex,\r\n restoreFocus\r\n} from \"../shared/accessibility\";\r\nvar DATAGRID_GROUP_PANEL_CLASS = \"dx-datagrid-group-panel\";\r\nvar DATAGRID_GROUP_PANEL_MESSAGE_CLASS = \"dx-group-panel-message\";\r\nvar DATAGRID_GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nvar DATAGRID_GROUP_PANEL_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar DATAGRID_GROUP_PANEL_CONTAINER_CLASS = \"dx-toolbar-item\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar DATAGRID_GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar GroupingDataSourceAdapterExtender = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._initGroupingHelper()\r\n },\r\n _initGroupingHelper: function(options) {\r\n var grouping = this._grouping;\r\n var isAutoExpandAll = this.option(\"grouping.autoExpandAll\");\r\n var isFocusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var remoteOperations = options ? options.remoteOperations : this.remoteOperations();\r\n var isODataRemoteOperations = remoteOperations.filtering && remoteOperations.sorting && remoteOperations.paging;\r\n if (isODataRemoteOperations && !remoteOperations.grouping && (isAutoExpandAll || !isFocusedRowEnabled)) {\r\n if (!grouping || grouping instanceof CollapsedGroupingHelper) {\r\n this._grouping = new ExpandedGroupingHelper(this)\r\n }\r\n } else if (!grouping || grouping instanceof ExpandedGroupingHelper) {\r\n this._grouping = new CollapsedGroupingHelper(this)\r\n }\r\n },\r\n totalItemsCount: function() {\r\n var totalCount = this.callBase();\r\n return totalCount > 0 && this._dataSource.group() && this._dataSource.requireTotalCount() ? totalCount + this._grouping.totalCountCorrection() : totalCount\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.group() ? this._grouping.itemsCount() || 0 : this.callBase.apply(this, arguments)\r\n },\r\n allowCollapseAll: function() {\r\n return this._grouping.allowCollapseAll()\r\n },\r\n isGroupItemCountable: function(item) {\r\n return this._grouping.isGroupItemCountable(item)\r\n },\r\n isRowExpanded: function(key) {\r\n var groupInfo = this._grouping.findGroupInfo(key);\r\n return groupInfo ? groupInfo.isExpanded : !this._grouping.allowCollapseAll()\r\n },\r\n collapseAll: function(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, false)\r\n },\r\n expandAll: function(groupIndex) {\r\n return this._collapseExpandAll(groupIndex, true)\r\n },\r\n _collapseExpandAll: function(groupIndex, isExpand) {\r\n var dataSource = this._dataSource;\r\n var group = dataSource.group();\r\n var groups = gridCore.normalizeSortingInfo(group || []);\r\n if (groups.length) {\r\n for (var i = 0; i < groups.length; i++) {\r\n if (void 0 === groupIndex || groupIndex === i) {\r\n groups[i].isExpanded = isExpand\r\n } else if (group && group[i]) {\r\n groups[i].isExpanded = group[i].isExpanded\r\n }\r\n }\r\n dataSource.group(groups);\r\n this._grouping.foreachGroups((function(groupInfo, parents) {\r\n if (void 0 === groupIndex || groupIndex === parents.length - 1) {\r\n groupInfo.isExpanded = isExpand\r\n }\r\n }), false, true);\r\n this.resetPagesCache()\r\n }\r\n return true\r\n },\r\n refresh: function() {\r\n this.callBase.apply(this, arguments);\r\n return this._grouping.refresh.apply(this._grouping, arguments)\r\n },\r\n changeRowExpand: function(path) {\r\n var dataSource = this._dataSource;\r\n if (dataSource.group()) {\r\n dataSource.beginLoading();\r\n if (this._lastLoadOptions) {\r\n this._lastLoadOptions.groupExpand = true\r\n }\r\n return this._changeRowExpandCore(path).always((function() {\r\n dataSource.endLoading()\r\n }))\r\n }\r\n },\r\n _changeRowExpandCore: function(path) {\r\n return this._grouping.changeRowExpand(path)\r\n },\r\n _hasGroupLevelsExpandState: function(group, isExpanded) {\r\n if (group && Array.isArray(group)) {\r\n for (var i = 0; i < group.length; i++) {\r\n if (group[i].isExpanded === isExpanded) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var remoteOperations = options.remoteOperations;\r\n if (options.storeLoadOptions.group) {\r\n if (remoteOperations.grouping && !options.isCustomLoading) {\r\n if (!remoteOperations.groupPaging || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, true)) {\r\n remoteOperations.paging = false\r\n }\r\n }\r\n if (!remoteOperations.grouping && (!remoteOperations.sorting || !remoteOperations.filtering || options.isCustomLoading || this._hasGroupLevelsExpandState(options.storeLoadOptions.group, false))) {\r\n remoteOperations.paging = false\r\n }\r\n } else if (!options.isCustomLoading && remoteOperations.paging && operationTypes.grouping) {\r\n this.resetCache()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleDataLoading: function(options) {\r\n this.callBase(options);\r\n this._initGroupingHelper(options);\r\n return this._grouping.handleDataLoading(options)\r\n },\r\n _handleDataLoaded: function(options) {\r\n return this._grouping.handleDataLoaded(options, this.callBase.bind(this))\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n return this._grouping.handleDataLoadedCore(options, this.callBase.bind(this))\r\n }\r\n};\r\ndataSourceAdapter.extend(GroupingDataSourceAdapterExtender);\r\nvar GroupingDataControllerExtender = {\r\n init: function() {\r\n this.callBase();\r\n this.createAction(\"onRowExpanding\");\r\n this.createAction(\"onRowExpanded\");\r\n this.createAction(\"onRowCollapsing\");\r\n this.createAction(\"onRowCollapsed\")\r\n },\r\n _beforeProcessItems: function(items) {\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n items = this.callBase(items);\r\n if (items.length && groupColumns.length) {\r\n items = this._processGroupItems(items, groupColumns.length)\r\n }\r\n return items\r\n },\r\n _processItem: function(item, options) {\r\n if (isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")) {\r\n item = this._processGroupItem(item, options);\r\n options.dataIndex = 0\r\n } else {\r\n item = this.callBase.apply(this, arguments)\r\n }\r\n return item\r\n },\r\n _processGroupItem: function(item) {\r\n return item\r\n },\r\n _processGroupItems: function(items, groupsCount, options) {\r\n var groupedColumns = this._columnsController.getGroupColumns();\r\n var column = groupedColumns[groupedColumns.length - groupsCount];\r\n if (!options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n options = {\r\n collectContinuationItems: \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode,\r\n resultItems: [],\r\n path: [],\r\n values: []\r\n }\r\n }\r\n var resultItems = options.resultItems;\r\n if (options.data) {\r\n if (options.collectContinuationItems || !options.data.isContinuation) {\r\n resultItems.push({\r\n rowType: \"group\",\r\n data: options.data,\r\n groupIndex: options.path.length - 1,\r\n isExpanded: !!options.data.items,\r\n key: options.path.slice(0),\r\n values: options.values.slice(0)\r\n })\r\n }\r\n }\r\n if (items) {\r\n if (0 === groupsCount) {\r\n resultItems.push.apply(resultItems, items)\r\n } else {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (item && \"items\" in item) {\r\n options.data = item;\r\n options.path.push(item.key);\r\n options.values.push(column && column.deserializeValue && !column.calculateDisplayValue ? column.deserializeValue(item.key) : item.key);\r\n this._processGroupItems(item.items, groupsCount - 1, options);\r\n options.data = void 0;\r\n options.path.pop();\r\n options.values.pop()\r\n } else {\r\n resultItems.push(item)\r\n }\r\n }\r\n }\r\n }\r\n return resultItems\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"collapseAll\", \"expandAll\", \"isRowExpanded\", \"expandRow\", \"collapseRow\"])\r\n },\r\n collapseAll: function(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.collapseAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n expandAll: function(groupIndex) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && dataSource.expandAll(groupIndex)) {\r\n dataSource.pageIndex(0);\r\n dataSource.reload()\r\n }\r\n },\r\n changeRowExpand: function(key) {\r\n var that = this;\r\n var expanded = that.isRowExpanded(key);\r\n var args = {\r\n key: key,\r\n expanded: expanded\r\n };\r\n that.executeAction(expanded ? \"onRowCollapsing\" : \"onRowExpanding\", args);\r\n if (!args.cancel) {\r\n return when(that._changeRowExpandCore(key)).done((function() {\r\n args.expanded = !expanded;\r\n that.executeAction(expanded ? \"onRowCollapsed\" : \"onRowExpanded\", args)\r\n }))\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n d.resolve()\r\n } else {\r\n when(dataSource.changeRowExpand(key)).done((function() {\r\n that.load().done(d.resolve).fail(d.reject)\r\n })).fail(d.reject)\r\n }\r\n return d\r\n },\r\n isRowExpanded: function(key) {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.isRowExpanded(key)\r\n },\r\n expandRow: function(key) {\r\n if (!this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n collapseRow: function(key) {\r\n if (this.isRowExpanded(key)) {\r\n return this.changeRowExpand(key)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n optionChanged: function(args) {\r\n if (\"grouping\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n }\r\n};\r\nvar onGroupingMenuItemClick = function(column, params) {\r\n var columnsController = this._columnsController;\r\n switch (params.itemData.value) {\r\n case \"group\":\r\n var groups = columnsController._dataSource.group() || [];\r\n columnsController.columnOption(column.dataField, \"groupIndex\", groups.length);\r\n break;\r\n case \"ungroup\":\r\n columnsController.columnOption(column.dataField, \"groupIndex\", -1);\r\n break;\r\n case \"ungroupAll\":\r\n this.component.clearGrouping()\r\n }\r\n};\r\nexport var GroupingHeaderPanelExtender = {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendGroupingItem(items)\r\n },\r\n _appendGroupingItem: function(items) {\r\n if (this._isGroupPanelVisible()) {\r\n var isRendered = false;\r\n var toolbarItem = {\r\n template: () => {\r\n var $groupPanel = $(\"<div>\").addClass(DATAGRID_GROUP_PANEL_CLASS);\r\n this._updateGroupPanelContent($groupPanel);\r\n registerKeyboardAction(\"groupPanel\", this, $groupPanel, void 0, this._handleActionKeyDown.bind(this));\r\n return $groupPanel\r\n },\r\n name: \"groupPanel\",\r\n onItemRendered: () => {\r\n isRendered && this.renderCompleted.fire();\r\n isRendered = true\r\n },\r\n location: \"before\",\r\n locateInMenu: \"never\",\r\n sortIndex: 1\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = $(event.target);\r\n var groupColumnIndex = $target.closest(\".\".concat(DATAGRID_GROUP_PANEL_ITEM_CLASS)).index();\r\n var column = this._columnsController.getGroupColumns()[groupColumnIndex];\r\n var columnIndex = column && column.index;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n this.getController(\"headerFilter\").showHeaderFilterMenu(columnIndex, true)\r\n } else {\r\n this._processGroupItemAction(columnIndex)\r\n }\r\n event.preventDefault()\r\n },\r\n _isGroupPanelVisible: function() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var isVisible;\r\n if (groupPanelOptions) {\r\n isVisible = groupPanelOptions.visible;\r\n if (\"auto\" === isVisible) {\r\n isVisible = \"desktop\" === devices.current().deviceType ? true : false\r\n }\r\n }\r\n return isVisible\r\n },\r\n _renderGroupPanelItems: function($groupPanel, groupColumns) {\r\n var that = this;\r\n $groupPanel.empty();\r\n each(groupColumns, (function(index, groupColumn) {\r\n that._createGroupPanelItem($groupPanel, groupColumn)\r\n }));\r\n restoreFocus(this)\r\n },\r\n _createGroupPanelItem: function($rootElement, groupColumn) {\r\n var $groupPanelItem = $(\"<div>\").addClass(groupColumn.cssClass).addClass(DATAGRID_GROUP_PANEL_ITEM_CLASS).data(\"columnData\", groupColumn).appendTo($rootElement).text(groupColumn.caption);\r\n setTabIndex(this, $groupPanelItem);\r\n return $groupPanelItem\r\n },\r\n _columnOptionChanged: function(e) {\r\n if (!this._requireReady && !gridCore.checkChanges(e.optionNames, [\"width\", \"visibleWidth\"])) {\r\n var $toolbarElement = this.element();\r\n var $groupPanel = $toolbarElement && $toolbarElement.find(\".\" + DATAGRID_GROUP_PANEL_CLASS);\r\n if ($groupPanel && $groupPanel.length) {\r\n this._updateGroupPanelContent($groupPanel);\r\n this.renderCompleted.fire()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n _updateGroupPanelContent: function($groupPanel) {\r\n var groupColumns = this.getController(\"columns\").getGroupColumns();\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n this._renderGroupPanelItems($groupPanel, groupColumns);\r\n if (groupPanelOptions.allowColumnDragging && !groupColumns.length) {\r\n $(\"<div>\").addClass(DATAGRID_GROUP_PANEL_MESSAGE_CLASS).text(groupPanelOptions.emptyPanelText).appendTo($groupPanel);\r\n $groupPanel.closest(\".\" + DATAGRID_GROUP_PANEL_CONTAINER_CLASS).addClass(DATAGRID_GROUP_PANEL_LABEL_CLASS);\r\n $groupPanel.closest(\".\" + DATAGRID_GROUP_PANEL_LABEL_CLASS).css(\"maxWidth\", \"none\");\r\n this.updateToolbarDimensions()\r\n }\r\n },\r\n allowDragging: function(column) {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n return this._isGroupPanelVisible() && groupPanelOptions.allowColumnDragging && column && column.allowGrouping\r\n },\r\n getColumnElements: function() {\r\n var $element = this.element();\r\n return $element && $element.find(\".\" + DATAGRID_GROUP_PANEL_ITEM_CLASS)\r\n },\r\n getColumns: function() {\r\n return this.getController(\"columns\").getGroupColumns()\r\n },\r\n getBoundingRect: function() {\r\n var $element = this.element();\r\n if ($element && $element.find(\".\" + DATAGRID_GROUP_PANEL_CLASS).length) {\r\n var offset = $element.offset();\r\n return {\r\n top: offset.top,\r\n bottom: offset.top + getHeight($element)\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"group\"\r\n },\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var $groupedColumnElement = $(options.targetElement).closest(\".\" + DATAGRID_GROUP_PANEL_ITEM_CLASS);\r\n var items;\r\n if ($groupedColumnElement.length) {\r\n options.column = $groupedColumnElement.data(\"columnData\")\r\n }\r\n if (contextMenuEnabled && options.column) {\r\n var column = options.column;\r\n var isGroupingAllowed = isDefined(column.allowGrouping) ? column.allowGrouping : true;\r\n if (isGroupingAllowed) {\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [{\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n return items\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isGroupPanelVisible()\r\n },\r\n optionChanged: function(args) {\r\n if (\"groupPanel\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nvar GroupingRowsViewExtender = {\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items;\r\n if (contextMenuEnabled && options.row && \"group\" === options.row.rowType) {\r\n var columnsController = this._columnsController;\r\n var column = columnsController.columnOption(\"groupIndex:\" + options.row.groupIndex);\r\n if (column && column.allowGrouping) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = [];\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n onItemClick: onItemClick\r\n }, {\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n _rowClick: function(e) {\r\n var expandMode = this.option(\"grouping.expandMode\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isGroupRowStateChanged = \"infinite\" !== scrollingMode && \"rowClick\" === expandMode && $(e.event.target).closest(\".\" + DATAGRID_GROUP_ROW_CLASS).length;\r\n var isExpandButtonClicked = $(e.event.target).closest(\".\" + DATAGRID_EXPAND_CLASS).length;\r\n if (isGroupRowStateChanged || isExpandButtonClicked) {\r\n this._changeGroupRowState(e)\r\n }\r\n this.callBase(e)\r\n },\r\n _changeGroupRowState: function(e) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.items()[e.rowIndex];\r\n var allowCollapsing = this._columnsController.columnOption(\"groupIndex:\" + row.groupIndex, \"allowCollapsing\");\r\n if (\"data\" === row.rowType || \"group\" === row.rowType && false !== allowCollapsing) {\r\n dataController.changeRowExpand(row.key, true);\r\n e.event.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n};\r\nvar columnHeadersViewExtender = {\r\n getContextMenuItems: function(options) {\r\n var contextMenuEnabled = this.option(\"grouping.contextMenuEnabled\");\r\n var items = this.callBase(options);\r\n if (contextMenuEnabled && options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var column = options.column;\r\n if (!column.command && (!isDefined(column.allowGrouping) || column.allowGrouping)) {\r\n var groupingTexts = this.option(\"grouping.texts\");\r\n var isColumnGrouped = isDefined(column.groupIndex) && column.groupIndex > -1;\r\n var onItemClick = onGroupingMenuItemClick.bind(this, column);\r\n items = items || [];\r\n items.push({\r\n text: groupingTexts.groupByThisColumn,\r\n value: \"group\",\r\n beginGroup: true,\r\n disabled: isColumnGrouped,\r\n onItemClick: onItemClick\r\n });\r\n if (column.showWhenGrouped) {\r\n items.push({\r\n text: groupingTexts.ungroup,\r\n value: \"ungroup\",\r\n disabled: !isColumnGrouped,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n items.push({\r\n text: groupingTexts.ungroupAll,\r\n value: \"ungroupAll\",\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n }\r\n};\r\ngridCore.registerModule(\"grouping\", {\r\n defaultOptions: function() {\r\n return {\r\n grouping: {\r\n autoExpandAll: true,\r\n allowCollapsing: true,\r\n contextMenuEnabled: false,\r\n expandMode: \"buttonClick\",\r\n texts: {\r\n groupContinuesMessage: messageLocalization.format(\"dxDataGrid-groupContinuesMessage\"),\r\n groupContinuedMessage: messageLocalization.format(\"dxDataGrid-groupContinuedMessage\"),\r\n groupByThisColumn: messageLocalization.format(\"dxDataGrid-groupHeaderText\"),\r\n ungroup: messageLocalization.format(\"dxDataGrid-ungroupHeaderText\"),\r\n ungroupAll: messageLocalization.format(\"dxDataGrid-ungroupAllText\")\r\n }\r\n },\r\n groupPanel: {\r\n visible: false,\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-groupPanelEmptyText\"),\r\n allowColumnDragging: true\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n data: GroupingDataControllerExtender,\r\n columns: {\r\n _getExpandColumnOptions: function() {\r\n var options = this.callBase.apply(this, arguments);\r\n options.cellTemplate = gridCore.getExpandCellTemplate();\r\n return options\r\n }\r\n },\r\n editing: {\r\n _isProcessedItem: function(item) {\r\n return isDefined(item.groupIndex) && isString(item.rowType) && 0 === item.rowType.indexOf(\"group\")\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: GroupingHeaderPanelExtender,\r\n rowsView: GroupingRowsViewExtender,\r\n columnHeadersView: columnHeadersViewExtender\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.master_detail.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n masterDetailModule\r\n} from \"../grid_core/ui.grid_core.master_detail\";\r\ngridCore.registerModule(\"masterDetail\", masterDetailModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editor_factory.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editorFactoryModule\r\n} from \"../grid_core/ui.grid_core.editor_factory\";\r\ngridCore.registerModule(\"editorFactory\", editorFactoryModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editing.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"./ui.data_grid.editor_factory\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editingModule\r\n} from \"../grid_core/ui.grid_core.editing\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\ngridCore.registerModule(\"editing\", extend(true, {}, editingModule, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _changeRowExpandCore: function(key) {\r\n var editingController = this._editingController;\r\n if (Array.isArray(key)) {\r\n editingController && editingController.refresh()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editing_row_based.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editingRowBasedModule\r\n} from \"../grid_core/ui.grid_core.editing_row_based\";\r\ngridCore.registerModule(\"editingRowBased\", editingRowBasedModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editing_form_based.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n editingFormBasedModule\r\n} from \"../grid_core/ui.grid_core.editing_form_based\";\r\ngridCore.registerModule(\"editingFormBased\", editingFormBasedModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.editing_cell_based.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport editingCellBasedModule from \"../grid_core/ui.grid_core.editing_cell_based\";\r\ngridCore.registerModule(\"editingCellBased\", editingCellBasedModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.validating.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n validatingModule\r\n} from \"../grid_core/ui.grid_core.validating\";\r\ngridCore.registerModule(\"validating\", validatingModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.virtual_scrolling.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport dataSourceAdapter from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n virtualScrollingModule\r\n} from \"../grid_core/ui.grid_core.virtual_scrolling\";\r\ngridCore.registerModule(\"virtualScrolling\", virtualScrollingModule);\r\ndataSourceAdapter.extend(virtualScrollingModule.extenders.dataSourceAdapter);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.filter_row.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport core from \"./ui.data_grid.core\";\r\nimport {\r\n filterRowModule\r\n} from \"../grid_core/ui.grid_core.filter_row\";\r\ncore.registerModule(\"filterRow\", filterRowModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.header_filter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport core from \"./ui.data_grid.core\";\r\nimport {\r\n headerFilterModule\r\n} from \"../grid_core/ui.grid_core.header_filter\";\r\ncore.registerModule(\"headerFilter\", headerFilterModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.filter_sync.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport core from \"./ui.data_grid.core\";\r\nimport {\r\n filterSyncModule\r\n} from \"../grid_core/ui.grid_core.filter_sync\";\r\ncore.registerModule(\"filterSync\", filterSyncModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.filter_builder.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport core from \"./ui.data_grid.core\";\r\nimport {\r\n filterBuilderModule\r\n} from \"../grid_core/ui.grid_core.filter_builder\";\r\ncore.registerModule(\"filterBuilder\", filterBuilderModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.filter_panel.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport core from \"./ui.data_grid.core\";\r\nimport {\r\n filterPanelModule\r\n} from \"../grid_core/ui.grid_core.filter_panel\";\r\ncore.registerModule(\"filterPanel\", filterPanelModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.search.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n searchModule\r\n} from \"../grid_core/ui.grid_core.search\";\r\ngridCore.registerModule(\"search\", searchModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.pager.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n pagerModule\r\n} from \"../grid_core/ui.grid_core.pager\";\r\ngridCore.registerModule(\"pager\", pagerModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.columns_resizing_reordering.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnsResizingReorderingModule\r\n} from \"../grid_core/ui.grid_core.columns_resizing_reordering\";\r\nexport var DraggingHeaderView = columnsResizingReorderingModule.views.draggingHeaderView;\r\nexport var DraggingHeaderViewController = columnsResizingReorderingModule.controllers.draggingHeader;\r\nexport var ColumnsSeparatorView = columnsResizingReorderingModule.views.columnsSeparatorView;\r\nexport var TablePositionViewController = columnsResizingReorderingModule.controllers.tablePosition;\r\nexport var ColumnsResizerViewController = columnsResizingReorderingModule.controllers.columnsResizer;\r\nexport var TrackerView = columnsResizingReorderingModule.views.trackerView;\r\ngridCore.registerModule(\"columnsResizingReordering\", columnsResizingReorderingModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.keyboard_navigation.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n keyboardNavigationModule\r\n} from \"../grid_core/ui.grid_core.keyboard_navigation\";\r\ngridCore.registerModule(\"keyboardNavigation\", keyboardNavigationModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/aggregate_calculator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n errors\r\n} from \"../../data/errors\";\r\nimport {\r\n aggregators\r\n} from \"../../data/utils\";\r\n\r\nfunction depthFirstSearch(i, depth, root, callback) {\r\n var j = 0;\r\n if (i < depth) {\r\n for (; j < root.items.length; j++) {\r\n depthFirstSearch(i + 1, depth, root.items[j], callback)\r\n }\r\n }\r\n if (i === depth) {\r\n callback(root)\r\n }\r\n}\r\n\r\nfunction map(array, callback) {\r\n var i;\r\n if (\"map\" in array) {\r\n return array.map(callback)\r\n }\r\n var result = new Array(array.length);\r\n for (i in array) {\r\n result[i] = callback(array[i], i)\r\n }\r\n return result\r\n}\r\n\r\nfunction isEmpty(x) {\r\n return x !== x || \"\" === x || null === x || void 0 === x\r\n}\r\n\r\nfunction isCount(aggregator) {\r\n return aggregator === aggregators.count\r\n}\r\n\r\nfunction normalizeAggregate(aggregate) {\r\n var selector = compileGetter(aggregate.selector);\r\n var skipEmptyValues = \"skipEmptyValues\" in aggregate ? aggregate.skipEmptyValues : true;\r\n var aggregator = aggregate.aggregator;\r\n if (\"string\" === typeof aggregator) {\r\n aggregator = aggregators[aggregator];\r\n if (!aggregator) {\r\n throw errors.Error(\"E4001\", aggregate.aggregator)\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n}\r\nexport default Class.inherit({\r\n ctor: function(options) {\r\n this._data = options.data;\r\n this._groupLevel = options.groupLevel || 0;\r\n this._totalAggregates = map(options.totalAggregates || [], normalizeAggregate);\r\n this._groupAggregates = map(options.groupAggregates || [], normalizeAggregate);\r\n this._totals = []\r\n },\r\n calculate: function() {\r\n if (this._totalAggregates.length) {\r\n this._calculateTotals(0, {\r\n items: this._data\r\n })\r\n }\r\n if (this._groupAggregates.length && this._groupLevel > 0) {\r\n this._calculateGroups({\r\n items: this._data\r\n })\r\n }\r\n },\r\n totalAggregates: function() {\r\n return this._totals\r\n },\r\n _aggregate: function(aggregates, data, container) {\r\n var length = data.items ? data.items.length : 0;\r\n for (var i = 0; i < aggregates.length; i++) {\r\n if (isCount(aggregates[i].aggregator)) {\r\n container[i] = (container[i] || 0) + length;\r\n continue\r\n }\r\n for (var j = 0; j < length; j++) {\r\n this._accumulate(i, aggregates[i], container, data.items[j])\r\n }\r\n }\r\n },\r\n _calculateTotals: function(level, data) {\r\n if (0 === level) {\r\n this._totals = this._seed(this._totalAggregates)\r\n }\r\n if (level === this._groupLevel) {\r\n this._aggregate(this._totalAggregates, data, this._totals)\r\n } else {\r\n for (var i = 0; i < data.items.length; i++) {\r\n this._calculateTotals(level + 1, data.items[i])\r\n }\r\n }\r\n if (0 === level) {\r\n this._totals = this._finalize(this._totalAggregates, this._totals)\r\n }\r\n },\r\n _calculateGroups: function(root) {\r\n var maxLevel = this._groupLevel;\r\n var currentLevel = maxLevel + 1;\r\n var seedFn = this._seed.bind(this, this._groupAggregates);\r\n var stepFn = this._aggregate.bind(this, this._groupAggregates);\r\n var finalizeFn = this._finalize.bind(this, this._groupAggregates);\r\n\r\n function aggregator(node) {\r\n node.aggregates = seedFn(currentLevel - 1);\r\n if (currentLevel === maxLevel) {\r\n stepFn(node, node.aggregates)\r\n } else {\r\n depthFirstSearch(currentLevel, maxLevel, node, (function(innerNode) {\r\n stepFn(innerNode, node.aggregates)\r\n }))\r\n }\r\n node.aggregates = finalizeFn(node.aggregates)\r\n }\r\n while (--currentLevel > 0) {\r\n depthFirstSearch(0, currentLevel, root, aggregator)\r\n }\r\n },\r\n _seed: function(aggregates, groupIndex) {\r\n return map(aggregates, (function(aggregate) {\r\n var aggregator = aggregate.aggregator;\r\n var seed = \"seed\" in aggregator ? isFunction(aggregator.seed) ? aggregator.seed(groupIndex) : aggregator.seed : NaN;\r\n return seed\r\n }))\r\n },\r\n _accumulate: function(aggregateIndex, aggregate, results, item) {\r\n var value = aggregate.selector(item);\r\n var aggregator = aggregate.aggregator;\r\n var skipEmptyValues = aggregate.skipEmptyValues;\r\n if (skipEmptyValues && isEmpty(value)) {\r\n return\r\n }\r\n if (results[aggregateIndex] !== results[aggregateIndex]) {\r\n results[aggregateIndex] = value\r\n } else {\r\n results[aggregateIndex] = aggregator.step(results[aggregateIndex], value)\r\n }\r\n },\r\n _finalize: function(aggregates, results) {\r\n return map(aggregates, (function(aggregate, index) {\r\n var fin = aggregate.aggregator.finalize;\r\n return fin ? fin(results[index]) : results[index]\r\n }))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.summary.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isEmptyObject,\r\n isString,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dataSourceAdapter from \"./ui.data_grid.data_source_adapter\";\r\nimport {\r\n ColumnsView\r\n} from \"../grid_core/ui.grid_core.columns_view\";\r\nimport AggregateCalculator from \"./aggregate_calculator\";\r\nimport dataQuery from \"../../data/query\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport {\r\n normalizeSortingInfo\r\n} from \"../../data/utils\";\r\nvar DATAGRID_TOTAL_FOOTER_CLASS = \"dx-datagrid-total-footer\";\r\nvar DATAGRID_SUMMARY_ITEM_CLASS = \"dx-datagrid-summary-item\";\r\nvar DATAGRID_TEXT_CONTENT_CLASS = \"dx-datagrid-text-content\";\r\nvar DATAGRID_GROUP_FOOTER_CLASS = \"dx-datagrid-group-footer\";\r\nvar DATAGRID_GROUP_TEXT_CONTENT_CLASS = \"dx-datagrid-group-text-content\";\r\nvar DATAGRID_NOWRAP_CLASS = \"dx-datagrid-nowrap\";\r\nvar DATAGRID_FOOTER_ROW_CLASS = \"dx-footer-row\";\r\nvar DATAGRID_GROUP_FOOTER_ROW_TYPE = \"groupFooter\";\r\nvar DATAGRID_TOTAL_FOOTER_ROW_TYPE = \"totalFooter\";\r\nexport var renderSummaryCell = function(cell, options) {\r\n var $cell = $(cell);\r\n var column = options.column;\r\n var summaryItems = options.summaryItems;\r\n var $summaryItems = [];\r\n if (!column.command && summaryItems) {\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n $summaryItems.push($(\"<div>\").css(\"textAlign\", summaryItem.alignment || column.alignment).addClass(DATAGRID_SUMMARY_ITEM_CLASS).addClass(DATAGRID_TEXT_CONTENT_CLASS).addClass(summaryItem.cssClass).toggleClass(DATAGRID_GROUP_TEXT_CONTENT_CLASS, \"group\" === options.rowType).text(gridCore.getSummaryText(summaryItem, options.summaryTexts)))\r\n }\r\n $cell.append($summaryItems)\r\n }\r\n};\r\nvar getSummaryCellOptions = function(that, options) {\r\n var summaryTexts = that.option(\"summary.texts\") || {};\r\n return {\r\n totalItem: options.row,\r\n summaryItems: options.row.summaryCells[options.columnIndex],\r\n summaryTexts: summaryTexts\r\n }\r\n};\r\nvar getGroupAggregates = function(data) {\r\n return data.summary || data.aggregates || []\r\n};\r\nvar recalculateWhileEditing = function(that) {\r\n return that.option(\"summary.recalculateWhileEditing\")\r\n};\r\nexport var FooterView = ColumnsView.inherit({\r\n _getRows: function() {\r\n return this._dataController.footerItems()\r\n },\r\n _getCellOptions: function(options) {\r\n return extend(this.callBase(options), getSummaryCellOptions(this, options))\r\n },\r\n _renderCellContent: function($cell, options) {\r\n renderSummaryCell($cell, options);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderCore: function(change) {\r\n var needUpdateScrollLeft = false;\r\n var totalItem = this._dataController.footerItems()[0];\r\n if (!change || !change.columnIndices) {\r\n this.element().empty().addClass(DATAGRID_TOTAL_FOOTER_CLASS).toggleClass(DATAGRID_NOWRAP_CLASS, !this.option(\"wordWrapEnabled\"));\r\n needUpdateScrollLeft = true\r\n }\r\n if (totalItem && totalItem.summaryCells && totalItem.summaryCells.length) {\r\n this._updateContent(this._renderTable({\r\n change: change\r\n }), change);\r\n needUpdateScrollLeft && this._updateScrollLeftPosition()\r\n }\r\n },\r\n _updateContent: function($newTable, change) {\r\n if (change && \"update\" === change.changeType && change.columnIndices) {\r\n return this._waitAsyncTemplates(change).done(() => {\r\n var $row = this.getTableElement().find(\".dx-row\");\r\n var $newRow = $newTable.find(\".dx-row\");\r\n this._updateCells($row, $newRow, change.columnIndices[0])\r\n })\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowClick: function(e) {\r\n var item = this._dataController.footerItems()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({}, e, item))\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e)\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n var changeType = e.changeType;\r\n if (\"update\" === e.changeType && e.repaintChangesOnly) {\r\n if (!e.totalColumnIndices) {\r\n this.render()\r\n } else if (e.totalColumnIndices.length) {\r\n this.render(null, {\r\n changeType: \"update\",\r\n columnIndices: [e.totalColumnIndices]\r\n })\r\n }\r\n } else if (\"refresh\" === changeType || \"append\" === changeType || \"prepend\" === changeType) {\r\n this.render()\r\n }\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row.rowType === DATAGRID_TOTAL_FOOTER_ROW_TYPE) {\r\n $row.addClass(DATAGRID_FOOTER_ROW_CLASS)\r\n }\r\n return $row\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n isVisible: function() {\r\n return !!this._dataController.footerItems().length\r\n }\r\n});\r\nvar SummaryDataSourceAdapterExtender = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._totalAggregates = [];\r\n this._summaryGetter = noop\r\n },\r\n summaryGetter: function(_summaryGetter) {\r\n if (!arguments.length) {\r\n return this._summaryGetter\r\n }\r\n if (isFunction(_summaryGetter)) {\r\n this._summaryGetter = _summaryGetter\r\n }\r\n },\r\n summary: function(_summary) {\r\n if (!arguments.length) {\r\n return this._summaryGetter()\r\n }\r\n this._summaryGetter = function() {\r\n return _summary\r\n }\r\n },\r\n totalAggregates: function() {\r\n return this._totalAggregates\r\n },\r\n isLastLevelGroupItemsPagingLocal: function() {\r\n var summary = this.summary();\r\n var sortByGroupsInfo = summary && summary.sortByGroups();\r\n return sortByGroupsInfo && sortByGroupsInfo.length\r\n },\r\n sortLastLevelGroupItems: function(items, groups, paths) {\r\n var groupedItems = storeHelper.multiLevelGroup(dataQuery(items), groups).toArray();\r\n var result = [];\r\n paths.forEach((function(path) {\r\n ! function forEachGroup(groups, groupCount, callback, path) {\r\n path = path || [];\r\n for (var i = 0; i < groups.length; i++) {\r\n path.push(groups[i].key);\r\n if (1 === groupCount) {\r\n callback(path, groups[i].items)\r\n } else {\r\n forEachGroup(groups[i].items, groupCount - 1, callback, path)\r\n }\r\n path.pop()\r\n }\r\n }(groupedItems, groups.length, (function(itemsPath, items) {\r\n if (path.toString() === itemsPath.toString()) {\r\n result = result.concat(items)\r\n }\r\n }))\r\n }));\r\n return result\r\n }\r\n};\r\nvar SummaryDataSourceAdapterClientExtender = function() {\r\n var calculateAggregates = function(that, summary, data, groupLevel) {\r\n var calculator;\r\n if (recalculateWhileEditing(that)) {\r\n var editingController = that.getController(\"editing\");\r\n if (editingController) {\r\n var insertedData = editingController.getInsertedData();\r\n if (insertedData.length) {\r\n data = function applyAddedData(data, insertedData, groupLevel) {\r\n if (groupLevel) {\r\n return applyAddedData(data, insertedData.map(item => ({\r\n items: [item]\r\n }), groupLevel - 1))\r\n }\r\n return data.concat(insertedData)\r\n }(data, insertedData, groupLevel)\r\n }\r\n var removedData = editingController.getRemovedData();\r\n if (removedData.length) {\r\n data = function applyRemovedData(data, removedData, groupLevel) {\r\n if (groupLevel) {\r\n return data.map(data => {\r\n var updatedData = {};\r\n var updatedItems = applyRemovedData(data.items || [], removedData, groupLevel - 1);\r\n Object.defineProperty(updatedData, \"aggregates\", {\r\n get: () => data.aggregates,\r\n set: value => {\r\n data.aggregates = value\r\n }\r\n });\r\n return extend(updatedData, data, {\r\n items: updatedItems\r\n })\r\n })\r\n }\r\n return data.filter(data => removedData.indexOf(data) < 0)\r\n }(data, removedData, groupLevel)\r\n }\r\n }\r\n }\r\n if (summary) {\r\n calculator = new AggregateCalculator({\r\n totalAggregates: summary.totalAggregates,\r\n groupAggregates: summary.groupAggregates,\r\n data: data,\r\n groupLevel: groupLevel\r\n });\r\n calculator.calculate()\r\n }\r\n return calculator ? calculator.totalAggregates() : []\r\n };\r\n var sortGroupsBySummary = function(data, group, summary) {\r\n var sortByGroups = summary && summary.sortByGroups && summary.sortByGroups();\r\n if (sortByGroups && sortByGroups.length) {\r\n return function sortGroupsBySummaryCore(items, groups, sortByGroups) {\r\n if (!items || !groups.length) {\r\n return items\r\n }\r\n var group = groups[0];\r\n var sorts = sortByGroups[0];\r\n var query;\r\n if (group && sorts && sorts.length) {\r\n query = dataQuery(items);\r\n each(sorts, (function(index) {\r\n if (0 === index) {\r\n query = query.sortBy(this.selector, this.desc)\r\n } else {\r\n query = query.thenBy(this.selector, this.desc)\r\n }\r\n }));\r\n query.enumerate().done((function(sortedItems) {\r\n items = sortedItems\r\n }))\r\n }\r\n groups = groups.slice(1);\r\n sortByGroups = sortByGroups.slice(1);\r\n if (groups.length && sortByGroups.length) {\r\n each(items, (function() {\r\n this.items = sortGroupsBySummaryCore(this.items, groups, sortByGroups)\r\n }))\r\n }\r\n return items\r\n }(data, group, sortByGroups)\r\n }\r\n return data\r\n };\r\n return {\r\n _customizeRemoteOperations: function(options) {\r\n var summary = this.summary();\r\n if (summary) {\r\n if (options.remoteOperations.summary) {\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (options.storeLoadOptions.group) {\r\n if (options.remoteOperations.grouping) {\r\n options.storeLoadOptions.groupSummary = summary.groupAggregates\r\n } else if (summary.groupAggregates.length) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n options.storeLoadOptions.totalSummary = summary.totalAggregates\r\n }\r\n } else if (summary.totalAggregates.length || summary.groupAggregates.length && options.storeLoadOptions.group) {\r\n options.remoteOperations.paging = false\r\n }\r\n }\r\n this.callBase.apply(this, arguments);\r\n var cachedExtra = options.cachedData.extra;\r\n if (cachedExtra && cachedExtra.summary && !options.isCustomLoading) {\r\n options.storeLoadOptions.totalSummary = void 0\r\n }\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n var groups = normalizeSortingInfo(options.storeLoadOptions.group || options.loadOptions.group || []);\r\n var remoteOperations = options.remoteOperations || {};\r\n var summary = this.summaryGetter()(remoteOperations);\r\n if (!options.isCustomLoading || options.storeLoadOptions.isLoadingAll) {\r\n if (remoteOperations.summary) {\r\n if (!remoteOperations.paging && groups.length && summary) {\r\n if (!remoteOperations.grouping) {\r\n calculateAggregates(this, {\r\n groupAggregates: summary.groupAggregates\r\n }, options.data, groups.length)\r\n }\r\n options.data = sortGroupsBySummary(options.data, groups, summary)\r\n }\r\n } else if (!remoteOperations.paging && summary) {\r\n var _options$cachedData, _options$cachedData$e;\r\n var operationTypes = options.operationTypes || {};\r\n var hasOperations = Object.keys(operationTypes).some(type => operationTypes[type]);\r\n if (!hasOperations || !(null !== (_options$cachedData = options.cachedData) && void 0 !== _options$cachedData && null !== (_options$cachedData$e = _options$cachedData.extra) && void 0 !== _options$cachedData$e && _options$cachedData$e.summary) || groups.length && summary.groupAggregates.length) {\r\n var totalAggregates = calculateAggregates(this, summary, options.data, groups.length);\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.summary = totalAggregates;\r\n if (options.cachedData) {\r\n options.cachedData.extra = options.extra\r\n }\r\n }\r\n options.data = sortGroupsBySummary(options.data, groups, summary)\r\n }\r\n }\r\n if (!options.isCustomLoading) {\r\n this._totalAggregates = options.extra && options.extra.summary || this._totalAggregates\r\n }\r\n this.callBase(options)\r\n }\r\n }\r\n}();\r\ndataSourceAdapter.extend(SummaryDataSourceAdapterExtender);\r\ndataSourceAdapter.extend(SummaryDataSourceAdapterClientExtender);\r\ngridCore.registerModule(\"summary\", {\r\n defaultOptions: function() {\r\n return {\r\n summary: {\r\n groupItems: void 0,\r\n totalItems: void 0,\r\n calculateCustomSummary: void 0,\r\n skipEmptyValues: true,\r\n recalculateWhileEditing: false,\r\n texts: {\r\n sum: messageLocalization.format(\"dxDataGrid-summarySum\"),\r\n sumOtherColumn: messageLocalization.format(\"dxDataGrid-summarySumOtherColumn\"),\r\n min: messageLocalization.format(\"dxDataGrid-summaryMin\"),\r\n minOtherColumn: messageLocalization.format(\"dxDataGrid-summaryMinOtherColumn\"),\r\n max: messageLocalization.format(\"dxDataGrid-summaryMax\"),\r\n maxOtherColumn: messageLocalization.format(\"dxDataGrid-summaryMaxOtherColumn\"),\r\n avg: messageLocalization.format(\"dxDataGrid-summaryAvg\"),\r\n avgOtherColumn: messageLocalization.format(\"dxDataGrid-summaryAvgOtherColumn\"),\r\n count: messageLocalization.format(\"dxDataGrid-summaryCount\")\r\n }\r\n },\r\n sortByGroupSummaryInfo: void 0\r\n }\r\n },\r\n views: {\r\n footerView: FooterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n _isDataColumn: function(column) {\r\n return column && (!isDefined(column.groupIndex) || column.showWhenGrouped)\r\n },\r\n _isGroupFooterVisible: function() {\r\n var groupItems = this.option(\"summary.groupItems\") || [];\r\n for (var i = 0; i < groupItems.length; i++) {\r\n var groupItem = groupItems[i];\r\n var column = this._columnsController.columnOption(groupItem.showInColumn || groupItem.column);\r\n if (groupItem.showInGroupFooter && this._isDataColumn(column)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _processGroupItems: function(items, groupCount, options) {\r\n var data = options && options.data;\r\n var result = this.callBase.apply(this, arguments);\r\n if (options) {\r\n if (void 0 === options.isGroupFooterVisible) {\r\n options.isGroupFooterVisible = this._isGroupFooterVisible()\r\n }\r\n if (data && data.items && options.isGroupFooterVisible && (options.collectContinuationItems || !data.isContinuationOnNextPage)) {\r\n result.push({\r\n rowType: DATAGRID_GROUP_FOOTER_ROW_TYPE,\r\n key: options.path.slice(),\r\n data: data,\r\n groupIndex: options.path.length - 1,\r\n values: []\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _processGroupItem: function(groupItem, options) {\r\n var that = this;\r\n if (!options.summaryGroupItems) {\r\n options.summaryGroupItems = that.option(\"summary.groupItems\") || []\r\n }\r\n if (\"group\" === groupItem.rowType) {\r\n var groupColumnIndex = -1;\r\n var afterGroupColumnIndex = -1;\r\n each(options.visibleColumns, (function(visibleIndex) {\r\n var prevColumn = options.visibleColumns[visibleIndex - 1];\r\n if (groupItem.groupIndex === this.groupIndex) {\r\n groupColumnIndex = this.index\r\n }\r\n if (visibleIndex > 0 && \"expand\" === prevColumn.command && \"expand\" !== this.command) {\r\n afterGroupColumnIndex = this.index\r\n }\r\n }));\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, (function(summaryItem, column) {\r\n if (summaryItem.showInGroupFooter) {\r\n return -1\r\n }\r\n if (summaryItem.alignByColumn && column && !isDefined(column.groupIndex) && column.index !== afterGroupColumnIndex) {\r\n return column.index\r\n } else {\r\n return groupColumnIndex\r\n }\r\n }), true)\r\n }\r\n if (groupItem.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE) {\r\n groupItem.summaryCells = this._calculateSummaryCells(options.summaryGroupItems, getGroupAggregates(groupItem.data), options.visibleColumns, (function(summaryItem, column) {\r\n return summaryItem.showInGroupFooter && that._isDataColumn(column) ? column.index : -1\r\n }))\r\n }\r\n return groupItem\r\n },\r\n _calculateSummaryCells: function(summaryItems, aggregates, visibleColumns, calculateTargetColumnIndex, isGroupRow) {\r\n var that = this;\r\n var summaryCells = [];\r\n var summaryCellsByColumns = {};\r\n each(summaryItems, (function(summaryIndex, summaryItem) {\r\n var column = that._columnsController.columnOption(summaryItem.column);\r\n var showInColumn = summaryItem.showInColumn && that._columnsController.columnOption(summaryItem.showInColumn) || column;\r\n var columnIndex = calculateTargetColumnIndex(summaryItem, showInColumn);\r\n if (columnIndex >= 0) {\r\n if (!summaryCellsByColumns[columnIndex]) {\r\n summaryCellsByColumns[columnIndex] = []\r\n }\r\n var aggregate = aggregates[summaryIndex];\r\n if (aggregate === aggregate) {\r\n var valueFormat;\r\n if (isDefined(summaryItem.valueFormat)) {\r\n valueFormat = summaryItem.valueFormat\r\n } else if (\"count\" !== summaryItem.summaryType) {\r\n valueFormat = gridCore.getFormatByDataType(column && column.dataType)\r\n }\r\n summaryCellsByColumns[columnIndex].push(extend({}, summaryItem, {\r\n value: isString(aggregate) && column && column.deserializeValue ? column.deserializeValue(aggregate) : aggregate,\r\n valueFormat: valueFormat,\r\n columnCaption: column && column.index !== columnIndex ? column.caption : void 0\r\n }))\r\n }\r\n }\r\n }));\r\n if (!isEmptyObject(summaryCellsByColumns)) {\r\n visibleColumns.forEach((column, visibleIndex) => {\r\n var prevColumn = visibleColumns[visibleIndex - 1];\r\n var columnIndex = isGroupRow && (\"expand\" === (null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.command) || \"expand\" === column.command) ? null === prevColumn || void 0 === prevColumn ? void 0 : prevColumn.index : column.index;\r\n summaryCells.push(summaryCellsByColumns[columnIndex] || [])\r\n })\r\n }\r\n return summaryCells\r\n },\r\n _getSummaryCells: function(summaryTotalItems, totalAggregates) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n return that._calculateSummaryCells(summaryTotalItems, totalAggregates, columnsController.getVisibleColumns(), (function(summaryItem, column) {\r\n return that._isDataColumn(column) ? column.index : -1\r\n }))\r\n },\r\n _updateItemsCore: function(change) {\r\n var summaryCells;\r\n var dataSource = this._dataSource;\r\n var footerItems = this._footerItems;\r\n var oldSummaryCells = footerItems && footerItems[0] && footerItems[0].summaryCells;\r\n var summaryTotalItems = this.option(\"summary.totalItems\");\r\n this._footerItems = [];\r\n if (dataSource && summaryTotalItems && summaryTotalItems.length) {\r\n var totalAggregates = dataSource.totalAggregates();\r\n summaryCells = this._getSummaryCells(summaryTotalItems, totalAggregates);\r\n if (change && change.repaintChangesOnly && oldSummaryCells) {\r\n change.totalColumnIndices = summaryCells.map((function(summaryCell, index) {\r\n if (JSON.stringify(summaryCell) !== JSON.stringify(oldSummaryCells[index])) {\r\n return index\r\n }\r\n return -1\r\n })).filter(index => index >= 0)\r\n }\r\n if (summaryCells.length) {\r\n this._footerItems.push({\r\n rowType: DATAGRID_TOTAL_FOOTER_ROW_TYPE,\r\n summaryCells: summaryCells\r\n })\r\n }\r\n }\r\n this.callBase(change)\r\n },\r\n _prepareUnsavedDataSelector: function(selector) {\r\n if (recalculateWhileEditing(this)) {\r\n var editingController = this.getController(\"editing\");\r\n if (editingController) {\r\n return function(data) {\r\n data = editingController.getUpdatedData(data);\r\n return selector(data)\r\n }\r\n }\r\n }\r\n return selector\r\n },\r\n _prepareAggregateSelector: function(selector, aggregator) {\r\n selector = this._prepareUnsavedDataSelector(selector);\r\n if (\"avg\" === aggregator || \"sum\" === aggregator) {\r\n return function(data) {\r\n var value = selector(data);\r\n return isDefined(value) ? Number(value) : value\r\n }\r\n }\r\n return selector\r\n },\r\n _getAggregates: function(summaryItems, remoteOperations) {\r\n var that = this;\r\n var columnsController = that.getController(\"columns\");\r\n var calculateCustomSummary = that.option(\"summary.calculateCustomSummary\");\r\n var commonSkipEmptyValues = that.option(\"summary.skipEmptyValues\");\r\n return map(summaryItems || [], (function(summaryItem) {\r\n var column = columnsController.columnOption(summaryItem.column);\r\n var calculateCellValue = column && column.calculateCellValue ? column.calculateCellValue.bind(column) : compileGetter(column ? column.dataField : summaryItem.column);\r\n var aggregator = summaryItem.summaryType || \"count\";\r\n var skipEmptyValues = isDefined(summaryItem.skipEmptyValues) ? summaryItem.skipEmptyValues : commonSkipEmptyValues;\r\n if (remoteOperations) {\r\n return {\r\n selector: summaryItem.column,\r\n summaryType: aggregator\r\n }\r\n } else {\r\n var selector = that._prepareAggregateSelector(calculateCellValue, aggregator);\r\n if (\"custom\" === aggregator) {\r\n if (!calculateCustomSummary) {\r\n errors.log(\"E1026\");\r\n calculateCustomSummary = function() {}\r\n }\r\n var options = {\r\n component: that.component,\r\n name: summaryItem.name\r\n };\r\n calculateCustomSummary(options);\r\n options.summaryProcess = \"calculate\";\r\n aggregator = {\r\n seed: function(groupIndex) {\r\n options.summaryProcess = \"start\";\r\n options.totalValue = void 0;\r\n options.groupIndex = groupIndex;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n step: function(totalValue, value) {\r\n options.summaryProcess = \"calculate\";\r\n options.totalValue = totalValue;\r\n options.value = value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n },\r\n finalize: function(totalValue) {\r\n options.summaryProcess = \"finalize\";\r\n options.totalValue = totalValue;\r\n delete options.value;\r\n calculateCustomSummary(options);\r\n return options.totalValue\r\n }\r\n }\r\n }\r\n return {\r\n selector: selector,\r\n aggregator: aggregator,\r\n skipEmptyValues: skipEmptyValues\r\n }\r\n }\r\n }))\r\n },\r\n _addSortInfo: function(sortByGroups, groupColumn, selector, sortOrder) {\r\n if (groupColumn) {\r\n var groupIndex = groupColumn.groupIndex;\r\n sortOrder = sortOrder || groupColumn.sortOrder;\r\n if (isDefined(groupIndex)) {\r\n sortByGroups[groupIndex] = sortByGroups[groupIndex] || [];\r\n sortByGroups[groupIndex].push({\r\n selector: selector,\r\n desc: \"desc\" === sortOrder\r\n })\r\n }\r\n }\r\n },\r\n _findSummaryItem: function(summaryItems, name) {\r\n var summaryItemIndex = -1;\r\n if (isDefined(name)) {\r\n each(summaryItems || [], (function(index) {\r\n if (this.name === name || index === name || this.summaryType === name || this.column === name || (summaryItem = this, summaryType = summaryItem.summaryType, column = summaryItem.column, summaryType && column && summaryType + \"_\" + column) === name) {\r\n summaryItemIndex = index;\r\n return false\r\n }\r\n var summaryItem, summaryType, column\r\n }))\r\n }\r\n return summaryItemIndex\r\n },\r\n _getSummarySortByGroups: function(sortByGroupSummaryInfo, groupSummaryItems) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var groupColumns = columnsController.getGroupColumns();\r\n var sortByGroups = [];\r\n if (!groupSummaryItems || !groupSummaryItems.length) {\r\n return\r\n }\r\n each(sortByGroupSummaryInfo || [], (function() {\r\n var sortOrder = this.sortOrder;\r\n var groupColumn = this.groupColumn;\r\n var summaryItemIndex = that._findSummaryItem(groupSummaryItems, this.summaryItem);\r\n if (summaryItemIndex < 0) {\r\n return\r\n }\r\n var selector = function(data) {\r\n return getGroupAggregates(data)[summaryItemIndex]\r\n };\r\n if (isDefined(groupColumn)) {\r\n groupColumn = columnsController.columnOption(groupColumn);\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n } else {\r\n each(groupColumns, (function(groupIndex, groupColumn) {\r\n that._addSortInfo(sortByGroups, groupColumn, selector, sortOrder)\r\n }))\r\n }\r\n }));\r\n return sortByGroups\r\n },\r\n _createDataSourceAdapterCore: function(dataSource, remoteOperations) {\r\n var that = this;\r\n var dataSourceAdapter = this.callBase(dataSource, remoteOperations);\r\n dataSourceAdapter.summaryGetter((function(currentRemoteOperations) {\r\n return that._getSummaryOptions(currentRemoteOperations || remoteOperations)\r\n }));\r\n return dataSourceAdapter\r\n },\r\n _getSummaryOptions: function(remoteOperations) {\r\n var that = this;\r\n var groupSummaryItems = that.option(\"summary.groupItems\");\r\n var totalSummaryItems = that.option(\"summary.totalItems\");\r\n var sortByGroupSummaryInfo = that.option(\"sortByGroupSummaryInfo\");\r\n var groupAggregates = that._getAggregates(groupSummaryItems, remoteOperations && remoteOperations.grouping && remoteOperations.summary);\r\n var totalAggregates = that._getAggregates(totalSummaryItems, remoteOperations && remoteOperations.summary);\r\n if (groupAggregates.length || totalAggregates.length) {\r\n return {\r\n groupAggregates: groupAggregates,\r\n totalAggregates: totalAggregates,\r\n sortByGroups: function() {\r\n return that._getSummarySortByGroups(sortByGroupSummaryInfo, groupSummaryItems)\r\n }\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n var methods = this.callBase();\r\n methods.push(\"getTotalSummaryValue\");\r\n return methods\r\n },\r\n getTotalSummaryValue: function(summaryItemName) {\r\n var summaryItemIndex = this._findSummaryItem(this.option(\"summary.totalItems\"), summaryItemName);\r\n var aggregates = this._dataSource.totalAggregates();\r\n if (aggregates.length && summaryItemIndex > -1) {\r\n return aggregates[summaryItemIndex]\r\n }\r\n },\r\n optionChanged: function(args) {\r\n if (\"summary\" === args.name || \"sortByGroupSummaryInfo\" === args.name) {\r\n args.name = \"dataSource\"\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this._footerItems = [];\r\n this.callBase()\r\n },\r\n footerItems: function() {\r\n return this._footerItems\r\n }\r\n },\r\n editing: {\r\n _refreshSummary: function() {\r\n if (recalculateWhileEditing(this) && !this.isSaving()) {\r\n this._dataController.refresh({\r\n load: true,\r\n changesOnly: true\r\n })\r\n }\r\n },\r\n _addChange: function(params) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (params.type) {\r\n this._refreshSummary()\r\n }\r\n return result\r\n },\r\n _removeChange: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n },\r\n cancelEditData: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n this._refreshSummary();\r\n return result\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n row && $row.addClass(row.rowType === DATAGRID_GROUP_FOOTER_ROW_TYPE ? DATAGRID_GROUP_FOOTER_CLASS : \"\");\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n this.callBase.apply(this, arguments);\r\n if (\"group\" === options.row.rowType && options.row.summaryCells && options.row.summaryCells.length) {\r\n this._renderGroupSummaryCells($row, options)\r\n }\r\n },\r\n _hasAlignByColumnSummaryItems: function(columnIndex, options) {\r\n return !isDefined(options.columns[columnIndex].groupIndex) && options.row.summaryCells[columnIndex].length\r\n },\r\n _getAlignByColumnCellCount: function(groupCellColSpan, options) {\r\n var alignByColumnCellCount = 0;\r\n for (var i = 1; i < groupCellColSpan; i++) {\r\n var columnIndex = options.row.summaryCells.length - i;\r\n alignByColumnCellCount = this._hasAlignByColumnSummaryItems(columnIndex, options) ? i : alignByColumnCellCount\r\n }\r\n return alignByColumnCellCount\r\n },\r\n _renderGroupSummaryCells: function($row, options) {\r\n var $groupCell = $row.children().last();\r\n var groupCellColSpan = Number($groupCell.attr(\"colSpan\")) || 1;\r\n var alignByColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n this._renderGroupSummaryCellsCore($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n },\r\n _renderGroupSummaryCellsCore: function($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n if (alignByColumnCellCount > 0) {\r\n $groupCell.attr(\"colSpan\", groupCellColSpan - alignByColumnCellCount);\r\n for (var i = 0; i < alignByColumnCellCount; i++) {\r\n var columnIndex = options.columns.length - alignByColumnCellCount + i;\r\n this._renderCell($groupCell.parent(), extend({\r\n column: options.columns[columnIndex],\r\n columnIndex: this._getSummaryCellIndex(columnIndex, options.columns)\r\n }, options))\r\n }\r\n }\r\n },\r\n _getSummaryCellIndex: function(columnIndex) {\r\n return columnIndex\r\n },\r\n _getCellTemplate: function(options) {\r\n if (!options.column.command && !isDefined(options.column.groupIndex) && options.summaryItems && options.summaryItems.length) {\r\n return renderSummaryCell\r\n } else {\r\n return this.callBase(options)\r\n }\r\n },\r\n _getCellOptions: function(options) {\r\n var parameters = this.callBase(options);\r\n if (options.row.summaryCells) {\r\n return extend(parameters, getSummaryCellOptions(this, options))\r\n } else {\r\n return parameters\r\n }\r\n }\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.column_fixing.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n columnFixingModule\r\n} from \"../grid_core/ui.grid_core.column_fixing\";\r\ngridCore.registerModule(\"columnFixing\", columnFixingModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.adaptivity.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n adaptivityModule\r\n} from \"../grid_core/ui.grid_core.adaptivity\";\r\ngridCore.registerModule(\"adaptivity\", adaptivityModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.virtual_columns.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n virtualColumnsModule\r\n} from \"../grid_core/ui.grid_core.virtual_columns\";\r\ngridCore.registerModule(\"virtualColumns\", virtualColumnsModule);\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.export.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\n\r\nfunction prepareItems(items, emptyCell) {\r\n var defaultSetter = value => !value ? 1 : value;\r\n var resultItems = [];\r\n var cols = (items[0] || []).reduce((sum, item) => sum + defaultSetter(item.colspan), 0);\r\n var getItem = (items => {\r\n var rowIndex = 0;\r\n var cellIndex = 0;\r\n return () => {\r\n var row = items[rowIndex] || [];\r\n var item = row[cellIndex++];\r\n if (cellIndex >= row.length) {\r\n rowIndex++;\r\n cellIndex = 0\r\n }\r\n if (item) {\r\n item.colspan = defaultSetter(item.colspan);\r\n item.rowspan = defaultSetter(item.rowspan)\r\n }\r\n return item\r\n }\r\n })(items);\r\n var addItem = (rowIndex, cellIndex, item) => {\r\n var row = resultItems[rowIndex] = resultItems[rowIndex] || [];\r\n row[cellIndex] = item;\r\n if (item.colspan > 1 || item.rowspan > 1) {\r\n var clone = (item => extend({}, item, emptyCell))(item);\r\n for (var c = 1; c < item.colspan; c++) {\r\n addItem(rowIndex, cellIndex + c, clone)\r\n }\r\n for (var r = 1; r < item.rowspan; r++) {\r\n for (var _c = 0; _c < item.colspan; _c++) {\r\n addItem(rowIndex + r, cellIndex + _c, clone)\r\n }\r\n }\r\n }\r\n };\r\n var item = getItem();\r\n var rowIndex = 0;\r\n while (item) {\r\n for (var cellIndex = 0; cellIndex < cols; cellIndex++) {\r\n if (!item) {\r\n break\r\n }\r\n if (resultItems[rowIndex] && resultItems[rowIndex][cellIndex]) {\r\n continue\r\n }\r\n addItem(rowIndex, cellIndex, item);\r\n cellIndex += item.colspan - 1;\r\n item = getItem()\r\n }\r\n rowIndex++\r\n }\r\n return resultItems\r\n}\r\nexport {\r\n prepareItems\r\n};\r\n","/**\r\n * DevExtreme (esm/exporter/file_saver.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n getWindow,\r\n getNavigator\r\n} from \"../core/utils/window\";\r\nimport errors from \"../ui/widget/ui.errors\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n logger\r\n} from \"../core/utils/console\";\r\nvar window = getWindow();\r\nvar navigator = getNavigator();\r\nvar FILE_EXTESIONS = {\r\n EXCEL: \"xlsx\",\r\n CSS: \"css\",\r\n PNG: \"png\",\r\n JPEG: \"jpeg\",\r\n GIF: \"gif\",\r\n SVG: \"svg\",\r\n PDF: \"pdf\"\r\n};\r\nexport var MIME_TYPES = {\r\n CSS: \"text/css\",\r\n EXCEL: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\r\n PNG: \"image/png\",\r\n JPEG: \"image/jpeg\",\r\n GIF: \"image/gif\",\r\n SVG: \"image/svg+xml\",\r\n PDF: \"application/pdf\"\r\n};\r\nexport var fileSaver = {\r\n _revokeObjectURLTimeout: 3e4,\r\n _getDataUri: function(format, data) {\r\n var mimeType = this._getMimeType(format);\r\n return \"data:\".concat(mimeType, \";base64,\").concat(data)\r\n },\r\n _getMimeType: function(format) {\r\n return MIME_TYPES[format] || \"application/octet-stream\"\r\n },\r\n _linkDownloader: function(fileName, href) {\r\n var exportLinkElement = domAdapter.createElement(\"a\");\r\n exportLinkElement.download = fileName;\r\n exportLinkElement.href = href;\r\n exportLinkElement.target = \"_blank\";\r\n return exportLinkElement\r\n },\r\n _winJSBlobSave: function(blob, fileName, format) {\r\n var savePicker = new Windows.Storage.Pickers.FileSavePicker;\r\n savePicker.suggestedStartLocation = Windows.Storage.Pickers.PickerLocationId.documentsLibrary;\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n var mimeType = this._getMimeType(format);\r\n savePicker.fileTypeChoices.insert(mimeType, [\".\" + fileExtension])\r\n }\r\n savePicker.suggestedFileName = fileName;\r\n savePicker.pickSaveFileAsync().then((function(file) {\r\n if (file) {\r\n file.openAsync(Windows.Storage.FileAccessMode.readWrite).then((function(outputStream) {\r\n var inputStream = blob.msDetachStream();\r\n Windows.Storage.Streams.RandomAccessStream.copyAsync(inputStream, outputStream).then((function() {\r\n outputStream.flushAsync().done((function() {\r\n inputStream.close();\r\n outputStream.close()\r\n }))\r\n }))\r\n }))\r\n }\r\n }))\r\n },\r\n _click: function(link) {\r\n try {\r\n link.dispatchEvent(new MouseEvent(\"click\", {\r\n cancelable: true\r\n }))\r\n } catch (e) {\r\n var event = domAdapter.getDocument().createEvent(\"MouseEvents\");\r\n event.initMouseEvent(\"click\", true, true, window, 0, 0, 0, 80, 20, false, false, false, false, 0, null);\r\n link.dispatchEvent(event)\r\n }\r\n },\r\n _saveBlobAs: function(fileName, format, data) {\r\n this._blobSaved = false;\r\n if (isDefined(navigator.msSaveOrOpenBlob)) {\r\n navigator.msSaveOrOpenBlob(data, fileName);\r\n this._blobSaved = true\r\n } else if (isDefined(window.WinJS)) {\r\n this._winJSBlobSave(data, fileName, format);\r\n this._blobSaved = true\r\n } else {\r\n var URL = window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL;\r\n if (isDefined(URL)) {\r\n var objectURL = URL.createObjectURL(data);\r\n var downloadLink = this._linkDownloader(fileName, objectURL);\r\n setTimeout(() => {\r\n URL.revokeObjectURL(objectURL);\r\n this._objectUrlRevoked = true\r\n }, this._revokeObjectURLTimeout);\r\n this._click(downloadLink)\r\n } else {\r\n logger.warn(\"window.URL || window.webkitURL || window.mozURL || window.msURL || window.oURL is not defined\")\r\n }\r\n }\r\n },\r\n saveAs: function(fileName, format, data) {\r\n var fileExtension = FILE_EXTESIONS[format];\r\n if (fileExtension) {\r\n fileName += \".\" + fileExtension\r\n }\r\n if (isFunction(window.Blob)) {\r\n this._saveBlobAs(fileName, format, data)\r\n } else {\r\n if (!isDefined(navigator.userAgent.match(/iPad/i))) {\r\n errors.log(\"E1034\")\r\n }\r\n var downloadLink = this._linkDownloader(fileName, this._getDataUri(format, data));\r\n this._click(downloadLink)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/localization/language_codes.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport localizationCoreUtils from \"./core\";\r\nvar LANGUAGE_CODES = {\r\n ar: 1,\r\n bg: 2,\r\n ca: 3,\r\n \"zh-Hans\": 4,\r\n cs: 5,\r\n da: 6,\r\n de: 7,\r\n el: 8,\r\n en: 9,\r\n es: 10,\r\n fi: 11,\r\n fr: 12,\r\n he: 13,\r\n hu: 14,\r\n is: 15,\r\n it: 16,\r\n ja: 17,\r\n ko: 18,\r\n nl: 19,\r\n no: 20,\r\n pl: 21,\r\n pt: 22,\r\n rm: 23,\r\n ro: 24,\r\n ru: 25,\r\n hr: 26,\r\n sk: 27,\r\n sq: 28,\r\n sv: 29,\r\n th: 30,\r\n tr: 31,\r\n ur: 32,\r\n id: 33,\r\n uk: 34,\r\n be: 35,\r\n sl: 36,\r\n et: 37,\r\n lv: 38,\r\n lt: 39,\r\n tg: 40,\r\n fa: 41,\r\n vi: 42,\r\n hy: 43,\r\n az: 44,\r\n eu: 45,\r\n hsb: 46,\r\n mk: 47,\r\n tn: 50,\r\n xh: 52,\r\n zu: 53,\r\n af: 54,\r\n ka: 55,\r\n fo: 56,\r\n hi: 57,\r\n mt: 58,\r\n se: 59,\r\n ga: 60,\r\n ms: 62,\r\n kk: 63,\r\n ky: 64,\r\n sw: 65,\r\n tk: 66,\r\n uz: 67,\r\n tt: 68,\r\n bn: 69,\r\n pa: 70,\r\n gu: 71,\r\n or: 72,\r\n ta: 73,\r\n te: 74,\r\n kn: 75,\r\n ml: 76,\r\n as: 77,\r\n mr: 78,\r\n sa: 79,\r\n mn: 80,\r\n bo: 81,\r\n cy: 82,\r\n km: 83,\r\n lo: 84,\r\n gl: 86,\r\n kok: 87,\r\n syr: 90,\r\n si: 91,\r\n iu: 93,\r\n am: 94,\r\n tzm: 95,\r\n ne: 97,\r\n fy: 98,\r\n ps: 99,\r\n fil: 100,\r\n dv: 101,\r\n ha: 104,\r\n yo: 106,\r\n quz: 107,\r\n nso: 108,\r\n ba: 109,\r\n lb: 110,\r\n kl: 111,\r\n ig: 112,\r\n ii: 120,\r\n arn: 122,\r\n moh: 124,\r\n br: 126,\r\n ug: 128,\r\n mi: 129,\r\n oc: 130,\r\n co: 131,\r\n gsw: 132,\r\n sah: 133,\r\n qut: 134,\r\n rw: 135,\r\n wo: 136,\r\n prs: 140,\r\n gd: 145,\r\n \"ar-SA\": 1025,\r\n \"bg-BG\": 1026,\r\n \"ca-ES\": 1027,\r\n \"zh-TW\": 1028,\r\n \"cs-CZ\": 1029,\r\n \"da-DK\": 1030,\r\n \"de-DE\": 1031,\r\n \"el-GR\": 1032,\r\n \"en-US\": 1033,\r\n \"fi-FI\": 1035,\r\n \"fr-FR\": 1036,\r\n \"he-IL\": 1037,\r\n \"hu-HU\": 1038,\r\n \"is-IS\": 1039,\r\n \"it-IT\": 1040,\r\n \"ja-JP\": 1041,\r\n \"ko-KR\": 1042,\r\n \"nl-NL\": 1043,\r\n \"nb-NO\": 1044,\r\n \"pl-PL\": 1045,\r\n \"pt-BR\": 1046,\r\n \"rm-CH\": 1047,\r\n \"ro-RO\": 1048,\r\n \"ru-RU\": 1049,\r\n \"hr-HR\": 1050,\r\n \"sk-SK\": 1051,\r\n \"sq-AL\": 1052,\r\n \"sv-SE\": 1053,\r\n \"th-TH\": 1054,\r\n \"tr-TR\": 1055,\r\n \"ur-PK\": 1056,\r\n \"id-ID\": 1057,\r\n \"uk-UA\": 1058,\r\n \"be-BY\": 1059,\r\n \"sl-SI\": 1060,\r\n \"et-EE\": 1061,\r\n \"lv-LV\": 1062,\r\n \"lt-LT\": 1063,\r\n \"tg-Cyrl-TJ\": 1064,\r\n \"fa-IR\": 1065,\r\n \"vi-VN\": 1066,\r\n \"hy-AM\": 1067,\r\n \"az-Latn-AZ\": 1068,\r\n \"eu-ES\": 1069,\r\n \"hsb-DE\": 1070,\r\n \"mk-MK\": 1071,\r\n \"tn-ZA\": 1074,\r\n \"xh-ZA\": 1076,\r\n \"zu-ZA\": 1077,\r\n \"af-ZA\": 1078,\r\n \"ka-GE\": 1079,\r\n \"fo-FO\": 1080,\r\n \"hi-IN\": 1081,\r\n \"mt-MT\": 1082,\r\n \"se-NO\": 1083,\r\n \"ms-MY\": 1086,\r\n \"kk-KZ\": 1087,\r\n \"ky-KG\": 1088,\r\n \"sw-KE\": 1089,\r\n \"tk-TM\": 1090,\r\n \"uz-Latn-UZ\": 1091,\r\n \"tt-RU\": 1092,\r\n \"bn-IN\": 1093,\r\n \"pa-IN\": 1094,\r\n \"gu-IN\": 1095,\r\n \"or-IN\": 1096,\r\n \"ta-IN\": 1097,\r\n \"te-IN\": 1098,\r\n \"kn-IN\": 1099,\r\n \"ml-IN\": 1100,\r\n \"as-IN\": 1101,\r\n \"mr-IN\": 1102,\r\n \"sa-IN\": 1103,\r\n \"mn-MN\": 1104,\r\n \"bo-CN\": 1105,\r\n \"cy-GB\": 1106,\r\n \"km-KH\": 1107,\r\n \"lo-LA\": 1108,\r\n \"gl-ES\": 1110,\r\n \"kok-IN\": 1111,\r\n \"syr-SY\": 1114,\r\n \"si-LK\": 1115,\r\n \"iu-Cans-CA\": 1117,\r\n \"am-ET\": 1118,\r\n \"ne-NP\": 1121,\r\n \"fy-NL\": 1122,\r\n \"ps-AF\": 1123,\r\n \"fil-PH\": 1124,\r\n \"dv-MV\": 1125,\r\n \"ha-Latn-NG\": 1128,\r\n \"yo-NG\": 1130,\r\n \"quz-BO\": 1131,\r\n \"nso-ZA\": 1132,\r\n \"ba-RU\": 1133,\r\n \"lb-LU\": 1134,\r\n \"kl-GL\": 1135,\r\n \"ig-NG\": 1136,\r\n \"ii-CN\": 1144,\r\n \"arn-CL\": 1146,\r\n \"moh-CA\": 1148,\r\n \"br-FR\": 1150,\r\n \"ug-CN\": 1152,\r\n \"mi-NZ\": 1153,\r\n \"oc-FR\": 1154,\r\n \"co-FR\": 1155,\r\n \"gsw-FR\": 1156,\r\n \"sah-RU\": 1157,\r\n \"qut-GT\": 1158,\r\n \"rw-RW\": 1159,\r\n \"wo-SN\": 1160,\r\n \"prs-AF\": 1164,\r\n \"gd-GB\": 1169,\r\n \"ar-IQ\": 2049,\r\n \"zh-CN\": 2052,\r\n \"de-CH\": 2055,\r\n \"en-GB\": 2057,\r\n \"es-MX\": 2058,\r\n \"fr-BE\": 2060,\r\n \"it-CH\": 2064,\r\n \"nl-BE\": 2067,\r\n \"nn-NO\": 2068,\r\n \"pt-PT\": 2070,\r\n \"sr-Latn-CS\": 2074,\r\n \"sv-FI\": 2077,\r\n \"az-Cyrl-AZ\": 2092,\r\n \"dsb-DE\": 2094,\r\n \"se-SE\": 2107,\r\n \"ga-IE\": 2108,\r\n \"ms-BN\": 2110,\r\n \"uz-Cyrl-UZ\": 2115,\r\n \"bn-BD\": 2117,\r\n \"mn-Mong-CN\": 2128,\r\n \"iu-Latn-CA\": 2141,\r\n \"tzm-Latn-DZ\": 2143,\r\n \"quz-EC\": 2155,\r\n \"ar-EG\": 3073,\r\n \"zh-HK\": 3076,\r\n \"de-AT\": 3079,\r\n \"en-AU\": 3081,\r\n \"es-ES\": 3082,\r\n \"fr-CA\": 3084,\r\n \"sr-Cyrl-CS\": 3098,\r\n \"se-FI\": 3131,\r\n \"quz-PE\": 3179,\r\n \"ar-LY\": 4097,\r\n \"zh-SG\": 4100,\r\n \"de-LU\": 4103,\r\n \"en-CA\": 4105,\r\n \"es-GT\": 4106,\r\n \"fr-CH\": 4108,\r\n \"hr-BA\": 4122,\r\n \"smj-NO\": 4155,\r\n \"ar-DZ\": 5121,\r\n \"zh-MO\": 5124,\r\n \"de-LI\": 5127,\r\n \"en-NZ\": 5129,\r\n \"es-CR\": 5130,\r\n \"fr-LU\": 5132,\r\n \"bs-Latn-BA\": 5146,\r\n \"smj-SE\": 5179,\r\n \"ar-MA\": 6145,\r\n \"en-IE\": 6153,\r\n \"es-PA\": 6154,\r\n \"fr-MC\": 6156,\r\n \"sr-Latn-BA\": 6170,\r\n \"sma-NO\": 6203,\r\n \"ar-TN\": 7169,\r\n \"en-ZA\": 7177,\r\n \"es-DO\": 7178,\r\n \"sr-Cyrl-BA\": 7194,\r\n \"sma-SE\": 7227,\r\n \"ar-OM\": 8193,\r\n \"en-JM\": 8201,\r\n \"es-VE\": 8202,\r\n \"bs-Cyrl-BA\": 8218,\r\n \"sms-FI\": 8251,\r\n \"ar-YE\": 9217,\r\n \"en-029\": 9225,\r\n \"es-CO\": 9226,\r\n \"sr-Latn-RS\": 9242,\r\n \"smn-FI\": 9275,\r\n \"ar-SY\": 10241,\r\n \"en-BZ\": 10249,\r\n \"es-PE\": 10250,\r\n \"sr-Cyrl-RS\": 10266,\r\n \"ar-JO\": 11265,\r\n \"en-TT\": 11273,\r\n \"es-AR\": 11274,\r\n \"sr-Latn-ME\": 11290,\r\n \"ar-LB\": 12289,\r\n \"en-ZW\": 12297,\r\n \"es-EC\": 12298,\r\n \"sr-Cyrl-ME\": 12314,\r\n \"ar-KW\": 13313,\r\n \"en-PH\": 13321,\r\n \"es-CL\": 13322,\r\n \"ar-AE\": 14337,\r\n \"es-UY\": 14346,\r\n \"ar-BH\": 15361,\r\n \"es-PY\": 15370,\r\n \"ar-QA\": 16385,\r\n \"en-IN\": 16393,\r\n \"es-BO\": 16394,\r\n \"en-MY\": 17417,\r\n \"es-SV\": 17418,\r\n \"en-SG\": 18441,\r\n \"es-HN\": 18442,\r\n \"es-NI\": 19466,\r\n \"es-PR\": 20490,\r\n \"es-US\": 21514,\r\n \"bs-Cyrl\": 25626,\r\n \"bs-Latn\": 26650,\r\n \"sr-Cyrl\": 27674,\r\n \"sr-Latn\": 28698,\r\n smn: 28731,\r\n \"az-Cyrl\": 29740,\r\n sms: 29755,\r\n zh: 30724,\r\n nn: 30740,\r\n bs: 30746,\r\n \"az-Latn\": 30764,\r\n sma: 30779,\r\n \"uz-Cyrl\": 30787,\r\n \"mn-Cyrl\": 30800,\r\n \"iu-Cans\": 30813,\r\n \"zh-Hant\": 31748,\r\n nb: 31764,\r\n sr: 31770,\r\n \"tg-Cyrl\": 31784,\r\n dsb: 31790,\r\n smj: 31803,\r\n \"uz-Latn\": 31811,\r\n \"mn-Mong\": 31824,\r\n \"iu-Latn\": 31837,\r\n \"tzm-Latn\": 31839,\r\n \"ha-Latn\": 31848\r\n};\r\nexport function getLanguageId() {\r\n return LANGUAGE_CODES[localizationCoreUtils.locale()]\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/excel_format_converter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n format as stringFormat\r\n} from \"../core/utils/string\";\r\nimport numberFormatter from \"../localization/number\";\r\nimport dateLocalization from \"../localization/date\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n getFormat\r\n} from \"../localization/ldml/date.format\";\r\nimport {\r\n getLanguageId\r\n} from \"../localization/language_codes\";\r\nimport \"../localization/currency\";\r\nvar ARABIC_ZERO_CODE = 1632;\r\nvar DEFINED_NUMBER_FORMTATS = {\r\n thousands: \"#,##0{0},"K"\",\r\n millions: \"#,##0{0},,"M"\",\r\n billions: \"#,##0{0},,,"B"\",\r\n trillions: \"#,##0{0},,,,"T"\",\r\n percent: \"0{0}%\",\r\n decimal: \"#{0}\",\r\n fixedpoint: \"#,##0{0}\",\r\n exponential: \"0{0}E+00\",\r\n currency: \" \"\r\n};\r\nvar PERIOD_REGEXP = /a+/g;\r\nvar DAY_REGEXP = /E/g;\r\nvar DO_REGEXP = /dE+/g;\r\nvar STANDALONE_MONTH_REGEXP = /L/g;\r\nvar HOUR_REGEXP = /h/g;\r\nvar ANY_REGEXP = /./g;\r\nvar excelFormatConverter = {\r\n _applyPrecision: function(format, precision) {\r\n var result;\r\n var i;\r\n if (precision > 0) {\r\n result = \"decimal\" !== format ? \".\" : \"\";\r\n for (i = 0; i < precision; i++) {\r\n result += \"0\"\r\n }\r\n return result\r\n }\r\n return \"\"\r\n },\r\n _hasArabicDigits: function(text) {\r\n var code;\r\n for (var i = 0; i < text.length; i++) {\r\n code = text.charCodeAt(i);\r\n if (code >= ARABIC_ZERO_CODE && code < ARABIC_ZERO_CODE + 10) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _convertDateFormatToOpenXml: function(format) {\r\n return format.split(\"/\").join(\"\\\\/\").split(\"'\").map((function(datePart, index) {\r\n if (index % 2 === 0) {\r\n return datePart.replace(PERIOD_REGEXP, \"AM/PM\").replace(DO_REGEXP, \"d\").replace(DAY_REGEXP, \"d\").replace(STANDALONE_MONTH_REGEXP, \"M\").replace(HOUR_REGEXP, \"H\").split(\"[\").join(\"\\\\[\").split(\"]\").join(\"\\\\]\")\r\n }\r\n if (datePart) {\r\n return datePart.replace(ANY_REGEXP, \"\\\\$&\")\r\n }\r\n return \"'\"\r\n })).join(\"\")\r\n },\r\n _convertDateFormat: function(format) {\r\n var formattedValue = (dateLocalization.format(new Date(2009, 8, 8, 6, 5, 4), format) || \"\").toString();\r\n var result = getFormat(value => dateLocalization.format(value, format));\r\n if (result) {\r\n result = this._convertDateFormatToOpenXml(result);\r\n result = this._getLanguageInfo(formattedValue) + result\r\n }\r\n return result\r\n },\r\n _getLanguageInfo: function(defaultPattern) {\r\n var languageID = getLanguageId();\r\n var languageIDStr = languageID ? languageID.toString(16) : \"\";\r\n var languageInfo = \"\";\r\n if (this._hasArabicDigits(defaultPattern)) {\r\n while (languageIDStr.length < 3) {\r\n languageIDStr = \"0\" + languageIDStr\r\n }\r\n languageInfo = \"[$-2010\" + languageIDStr + \"]\"\r\n } else if (languageIDStr) {\r\n languageInfo = \"[$-\" + languageIDStr + \"]\"\r\n }\r\n return languageInfo\r\n },\r\n _convertNumberFormat: function(format, precision, currency) {\r\n var result;\r\n var excelFormat;\r\n if (\"currency\" === format) {\r\n excelFormat = numberFormatter.getOpenXmlCurrencyFormat(currency)\r\n } else {\r\n excelFormat = DEFINED_NUMBER_FORMTATS[format.toLowerCase()]\r\n }\r\n if (excelFormat) {\r\n result = stringFormat(excelFormat, this._applyPrecision(format, precision))\r\n }\r\n return result\r\n },\r\n convertFormat: function(format, precision, type, currency) {\r\n if (isDefined(format)) {\r\n if (\"date\" === type) {\r\n return excelFormatConverter._convertDateFormat(format)\r\n } else if (isString(format) && DEFINED_NUMBER_FORMTATS[format.toLowerCase()]) {\r\n return excelFormatConverter._convertNumberFormat(format, precision, currency)\r\n }\r\n }\r\n }\r\n};\r\nexport default excelFormatConverter;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.tag_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar tagHelper = {\r\n toXml: function(tagName, attributes, content) {\r\n var result = [\"<\", tagName];\r\n for (var attributeName in attributes) {\r\n var attributeValue = attributes[attributeName];\r\n if (isDefined(attributeValue)) {\r\n result.push(\" \", attributeName, '=\"', attributeValue, '\"')\r\n }\r\n }\r\n if (isDefined(content) && \"\" !== content) {\r\n result.push(\">\", content, \"</\", tagName, \">\")\r\n } else {\r\n result.push(\" />\")\r\n }\r\n return result.join(\"\")\r\n }\r\n};\r\nexport default tagHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.cell_alignment_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nvar cellAlignmentHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n vertical: sourceObj.vertical,\r\n wrapText: sourceObj.wrapText,\r\n horizontal: sourceObj.horizontal\r\n };\r\n if (cellAlignmentHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.horizontal) {\r\n result.horizontal = source.horizontal\r\n }\r\n if (void 0 !== source.vertical) {\r\n result.vertical = source.vertical\r\n }\r\n if (void 0 !== source.wrapText) {\r\n result.wrapText = source.wrapText\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellAlignmentHelper.isEmpty(leftTag) && cellAlignmentHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.vertical === rightTag.vertical && leftTag.wrapText === rightTag.wrapText && leftTag.horizontal === rightTag.horizontal\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.vertical) && !isDefined(tag.wrapText) && !isDefined(tag.horizontal)\r\n },\r\n toXml: function(tag) {\r\n return tagHelper.toXml(\"alignment\", {\r\n vertical: tag.vertical,\r\n wrapText: isDefined(tag.wrapText) ? Number(tag.wrapText) : void 0,\r\n horizontal: tag.horizontal\r\n })\r\n }\r\n};\r\nexport default cellAlignmentHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.color_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nvar colorHelper = {\r\n _tryConvertColor: function(source) {\r\n if (\"string\" !== typeof source) {\r\n return source\r\n }\r\n var result;\r\n if (source.length > 0 && \"#\" === source[0]) {\r\n var colorCode = source.substr(1, source.length);\r\n if (6 === colorCode.length) {\r\n result = \"FF\" + colorCode\r\n } else if (8 === colorCode.length) {\r\n result = colorCode[6] + colorCode[7] + colorCode.substr(0, 6)\r\n } else {\r\n result = colorCode\r\n }\r\n } else {\r\n result = source\r\n }\r\n return result\r\n },\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n rgb: this._tryConvertColor(sourceObj)\r\n }\r\n } else {\r\n result = {\r\n rgb: this._tryConvertColor(sourceObj.rgb),\r\n theme: sourceObj.theme\r\n }\r\n }\r\n if (colorHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n if (\"string\" === typeof source) {\r\n result = source\r\n } else {\r\n result = {};\r\n if (void 0 !== source.rgb) {\r\n result.rgb = source.rgb\r\n }\r\n if (void 0 !== source.theme) {\r\n result.theme = source.theme\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.rgb) && !isDefined(tag.theme)\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return colorHelper.isEmpty(leftTag) && colorHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.rgb === rightTag.rgb && leftTag.theme === rightTag.theme\r\n },\r\n toXml: function(tagName, tag) {\r\n return tagHelper.toXml(tagName, {\r\n rgb: tag.rgb,\r\n theme: tag.theme\r\n })\r\n }\r\n};\r\nexport default colorHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.pattern_fill_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport colorHelper from \"./excel.color_helper\";\r\nvar patternFillHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n patternType: sourceObj.patternType,\r\n backgroundColor: colorHelper.tryCreateTag(sourceObj.backgroundColor),\r\n foregroundColor: colorHelper.tryCreateTag(sourceObj.foregroundColor)\r\n };\r\n if (patternFillHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.patternType) {\r\n result.patternType = source.patternType\r\n }\r\n if (void 0 !== source.backgroundColor) {\r\n result.backgroundColor = colorHelper.copy(source.backgroundColor)\r\n }\r\n if (void 0 !== source.foregroundColor) {\r\n result.foregroundColor = colorHelper.copy(source.foregroundColor)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return patternFillHelper.isEmpty(leftTag) && patternFillHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.patternType === rightTag.patternType && colorHelper.areEqual(leftTag.backgroundColor, rightTag.backgroundColor) && colorHelper.areEqual(leftTag.foregroundColor, rightTag.foregroundColor)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.patternType)\r\n },\r\n toXml: function(tag) {\r\n var content = [isDefined(tag.foregroundColor) ? colorHelper.toXml(\"fgColor\", tag.foregroundColor) : \"\", isDefined(tag.backgroundColor) ? colorHelper.toXml(\"bgColor\", tag.backgroundColor) : \"\"].join(\"\");\r\n return tagHelper.toXml(\"patternFill\", {\r\n patternType: tag.patternType\r\n }, content)\r\n }\r\n};\r\nexport default patternFillHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.fill_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport patternFillHelper from \"./excel.pattern_fill_helper\";\r\nvar fillHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n patternFill: patternFillHelper.tryCreateTag(sourceObj.patternFill)\r\n };\r\n if (fillHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n tryCreateFillFromSimpleFormat: function() {\r\n var {\r\n backgroundColor: backgroundColor,\r\n fillPatternType: fillPatternType,\r\n fillPatternColor: fillPatternColor\r\n } = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n if (isDefined(backgroundColor) && !(isDefined(fillPatternType) && isDefined(fillPatternColor))) {\r\n return {\r\n patternFill: {\r\n patternType: \"solid\",\r\n foregroundColor: {\r\n rgb: backgroundColor\r\n }\r\n }\r\n }\r\n } else if (isDefined(fillPatternType) && isDefined(fillPatternColor)) {\r\n return {\r\n patternFill: {\r\n patternType: fillPatternType,\r\n foregroundColor: {\r\n rgb: fillPatternColor\r\n },\r\n backgroundColor: {\r\n rgb: backgroundColor\r\n }\r\n }\r\n }\r\n }\r\n },\r\n copySimpleFormat: function(source, target) {\r\n if (void 0 !== source.backgroundColor) {\r\n target.backgroundColor = source.backgroundColor\r\n }\r\n if (void 0 !== source.fillPatternType) {\r\n target.fillPatternType = source.fillPatternType\r\n }\r\n if (void 0 !== source.fillPatternColor) {\r\n target.fillPatternColor = source.fillPatternColor\r\n }\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.patternFill) {\r\n result.patternFill = patternFillHelper.copy(source.patternFill)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return fillHelper.isEmpty(leftTag) && fillHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && patternFillHelper.areEqual(leftTag.patternFill, rightTag.patternFill)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || patternFillHelper.isEmpty(tag.patternFill)\r\n },\r\n toXml: function(tag) {\r\n return tagHelper.toXml(\"fill\", {}, patternFillHelper.toXml(tag.patternFill))\r\n }\r\n};\r\nexport default fillHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.font_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport colorHelper from \"./excel.color_helper\";\r\nvar fontHelper = {\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n result = {\r\n size: sourceObj.size,\r\n name: sourceObj.name,\r\n family: sourceObj.family,\r\n scheme: sourceObj.scheme,\r\n bold: sourceObj.bold,\r\n italic: sourceObj.italic,\r\n underline: sourceObj.underline,\r\n color: colorHelper.tryCreateTag(sourceObj.color)\r\n };\r\n if (fontHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result = null;\r\n if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.size) {\r\n result.size = source.size\r\n }\r\n if (void 0 !== source.name) {\r\n result.name = source.name\r\n }\r\n if (void 0 !== source.family) {\r\n result.family = source.family\r\n }\r\n if (void 0 !== source.scheme) {\r\n result.scheme = source.scheme\r\n }\r\n if (void 0 !== source.bold) {\r\n result.bold = source.bold\r\n }\r\n if (void 0 !== source.italic) {\r\n result.italic = source.italic\r\n }\r\n if (void 0 !== source.underline) {\r\n result.underline = source.underline\r\n }\r\n if (void 0 !== source.color) {\r\n result.color = colorHelper.copy(source.color)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return fontHelper.isEmpty(leftTag) && fontHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.size === rightTag.size && leftTag.name === rightTag.name && leftTag.family === rightTag.family && leftTag.scheme === rightTag.scheme && (leftTag.bold === rightTag.bold || !leftTag.bold === !rightTag.bold) && (leftTag.italic === rightTag.italic || !leftTag.italic === !rightTag.italic) && leftTag.underline === rightTag.underline && colorHelper.areEqual(leftTag.color, rightTag.color)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.size) && !isDefined(tag.name) && !isDefined(tag.family) && !isDefined(tag.scheme) && (!isDefined(tag.bold) || !tag.bold) && (!isDefined(tag.italic) || !tag.italic) && !isDefined(tag.underline) && colorHelper.isEmpty(tag.color)\r\n },\r\n toXml: function(tag) {\r\n var content = [isDefined(tag.bold) && tag.bold ? tagHelper.toXml(\"b\", {}) : \"\", isDefined(tag.size) ? tagHelper.toXml(\"sz\", {\r\n val: tag.size\r\n }) : \"\", isDefined(tag.color) ? colorHelper.toXml(\"color\", tag.color) : \"\", isDefined(tag.name) ? tagHelper.toXml(\"name\", {\r\n val: tag.name\r\n }) : \"\", isDefined(tag.family) ? tagHelper.toXml(\"family\", {\r\n val: tag.family\r\n }) : \"\", isDefined(tag.scheme) ? tagHelper.toXml(\"scheme\", {\r\n val: tag.scheme\r\n }) : \"\", isDefined(tag.italic) && tag.italic ? tagHelper.toXml(\"i\", {}) : \"\", isDefined(tag.underline) ? tagHelper.toXml(\"u\", {\r\n val: tag.underline\r\n }) : \"\"].join(\"\");\r\n return tagHelper.toXml(\"font\", {}, content)\r\n }\r\n};\r\nexport default fontHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.cell_format_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport cellAlignmentHelper from \"./excel.cell_alignment_helper\";\r\nimport fillHelper from \"./excel.fill_helper\";\r\nimport fontHelper from \"./excel.font_helper\";\r\nvar cellFormatHelper = {\r\n tryCreateTag: function(sourceObj, sharedItemsContainer) {\r\n var result = null;\r\n if (isDefined(sourceObj)) {\r\n var numberFormatId;\r\n if (\"number\" === typeof sourceObj.numberFormat) {\r\n numberFormatId = sourceObj.numberFormat\r\n } else {\r\n numberFormatId = sharedItemsContainer.registerNumberFormat(sourceObj.numberFormat)\r\n }\r\n var fill = sourceObj.fill;\r\n if (!isDefined(fill)) {\r\n fill = fillHelper.tryCreateFillFromSimpleFormat(sourceObj)\r\n }\r\n result = {\r\n numberFormatId: numberFormatId,\r\n alignment: cellAlignmentHelper.tryCreateTag(sourceObj.alignment),\r\n fontId: sharedItemsContainer.registerFont(sourceObj.font),\r\n fillId: sharedItemsContainer.registerFill(fill)\r\n };\r\n if (cellFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n copy: function(source) {\r\n var result;\r\n if (null === source) {\r\n result = null\r\n } else if (isDefined(source)) {\r\n result = {};\r\n if (void 0 !== source.numberFormat) {\r\n result.numberFormat = source.numberFormat\r\n }\r\n if (void 0 !== source.fill) {\r\n result.fill = fillHelper.copy(source.fill)\r\n } else {\r\n fillHelper.copySimpleFormat(source, result)\r\n }\r\n if (void 0 !== source.alignment) {\r\n result.alignment = cellAlignmentHelper.copy(source.alignment)\r\n }\r\n if (void 0 !== source.font) {\r\n result.font = fontHelper.copy(source.font)\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return cellFormatHelper.isEmpty(leftTag) && cellFormatHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.fontId === rightTag.fontId && leftTag.numberFormatId === rightTag.numberFormatId && leftTag.fillId === rightTag.fillId && cellAlignmentHelper.areEqual(leftTag.alignment, rightTag.alignment)\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.fontId) && !isDefined(tag.numberFormatId) && !isDefined(tag.fillId) && cellAlignmentHelper.isEmpty(tag.alignment)\r\n },\r\n toXml: function(tag) {\r\n var isAlignmentEmpty = cellAlignmentHelper.isEmpty(tag.alignment);\r\n var applyNumberFormat;\r\n if (isDefined(tag.numberFormatId)) {\r\n applyNumberFormat = tag.numberFormatId > 0 ? 1 : 0\r\n }\r\n return tagHelper.toXml(\"xf\", {\r\n xfId: 0,\r\n applyAlignment: isAlignmentEmpty ? null : 1,\r\n fontId: tag.fontId,\r\n applyNumberFormat: applyNumberFormat,\r\n fillId: tag.fillId,\r\n numFmtId: tag.numberFormatId\r\n }, isAlignmentEmpty ? null : cellAlignmentHelper.toXml(tag.alignment))\r\n }\r\n};\r\nexport default cellFormatHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.number_format_helper.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nvar numberFormatHelper = {\r\n ID_PROPERTY_NAME: \"id\",\r\n tryCreateTag: function(sourceObj) {\r\n var result = null;\r\n if (\"string\" === typeof sourceObj) {\r\n result = {\r\n formatCode: sourceObj\r\n };\r\n if (numberFormatHelper.isEmpty(result)) {\r\n result = null\r\n }\r\n }\r\n return result\r\n },\r\n areEqual: function(leftTag, rightTag) {\r\n return numberFormatHelper.isEmpty(leftTag) && numberFormatHelper.isEmpty(rightTag) || isDefined(leftTag) && isDefined(rightTag) && leftTag.formatCode === rightTag.formatCode\r\n },\r\n isEmpty: function(tag) {\r\n return !isDefined(tag) || !isDefined(tag.formatCode) || \"\" === tag.formatCode\r\n },\r\n toXml: function(tag) {\r\n return tagHelper.toXml(\"numFmt\", {\r\n numFmtId: tag[numberFormatHelper.ID_PROPERTY_NAME],\r\n formatCode: tag.formatCode\r\n })\r\n }\r\n};\r\nexport default numberFormatHelper;\r\n","/**\r\n * DevExtreme (esm/exporter/excel/excel.file.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport tagHelper from \"./excel.tag_helper\";\r\nimport cellFormatHelper from \"./excel.cell_format_helper\";\r\nimport fillHelper from \"./excel.fill_helper\";\r\nimport fontHelper from \"./excel.font_helper\";\r\nimport numberFormatHelper from \"./excel.number_format_helper\";\r\nexport default class ExcelFile {\r\n constructor() {\r\n this._cellFormatTags = [];\r\n this._fillTags = [];\r\n this._fontTags = [];\r\n this._numberFormatTags = [];\r\n this._fillTags.push(fillHelper.tryCreateTag({\r\n patternFill: {\r\n patternType: \"none\"\r\n }\r\n }))\r\n }\r\n registerCellFormat(cellFormat) {\r\n var result;\r\n var cellFormatTag = cellFormatHelper.tryCreateTag(cellFormat, {\r\n registerFill: this.registerFill.bind(this),\r\n registerFont: this.registerFont.bind(this),\r\n registerNumberFormat: this.registerNumberFormat.bind(this)\r\n });\r\n if (isDefined(cellFormatTag)) {\r\n for (var i = 0; i < this._cellFormatTags.length; i++) {\r\n if (cellFormatHelper.areEqual(this._cellFormatTags[i], cellFormatTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._cellFormatTags.push(cellFormatTag) - 1\r\n }\r\n }\r\n return result\r\n }\r\n static copyCellFormat(source) {\r\n return cellFormatHelper.copy(source)\r\n }\r\n generateCellFormatsXml() {\r\n var cellFormatTagsAsXmlStringsArray = this._cellFormatTags.map(tag => cellFormatHelper.toXml(tag));\r\n return tagHelper.toXml(\"cellXfs\", {\r\n count: cellFormatTagsAsXmlStringsArray.length\r\n }, cellFormatTagsAsXmlStringsArray.join(\"\"))\r\n }\r\n registerFill(fill) {\r\n var result;\r\n var fillTag = fillHelper.tryCreateTag(fill);\r\n if (isDefined(fillTag)) {\r\n for (var i = 0; i < this._fillTags.length; i++) {\r\n if (fillHelper.areEqual(this._fillTags[i], fillTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n if (this._fillTags.length < 2) {\r\n this._fillTags.push(fillHelper.tryCreateTag({\r\n patternFill: {\r\n patternType: \"Gray125\"\r\n }\r\n }))\r\n }\r\n result = this._fillTags.push(fillTag) - 1\r\n }\r\n }\r\n return result\r\n }\r\n generateFillsXml() {\r\n var tagsAsXmlStringsArray = this._fillTags.map(tag => fillHelper.toXml(tag));\r\n return tagHelper.toXml(\"fills\", {\r\n count: tagsAsXmlStringsArray.length\r\n }, tagsAsXmlStringsArray.join(\"\"))\r\n }\r\n registerFont(font) {\r\n var result;\r\n var fontTag = fontHelper.tryCreateTag(font);\r\n if (isDefined(fontTag)) {\r\n for (var i = 0; i < this._fontTags.length; i++) {\r\n if (fontHelper.areEqual(this._fontTags[i], fontTag)) {\r\n result = i;\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n result = this._fontTags.push(fontTag) - 1\r\n }\r\n }\r\n return result\r\n }\r\n generateFontsXml() {\r\n var xmlStringsArray = this._fontTags.map(tag => fontHelper.toXml(tag));\r\n return tagHelper.toXml(\"fonts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n }\r\n _convertNumberFormatIndexToId(index) {\r\n return 165 + index\r\n }\r\n registerNumberFormat(numberFormat) {\r\n var result;\r\n var tag = numberFormatHelper.tryCreateTag(numberFormat);\r\n if (isDefined(tag)) {\r\n for (var i = 0; i < this._numberFormatTags.length; i++) {\r\n if (numberFormatHelper.areEqual(this._numberFormatTags[i], tag)) {\r\n result = this._numberFormatTags[i][numberFormatHelper.ID_PROPERTY_NAME];\r\n break\r\n }\r\n }\r\n if (void 0 === result) {\r\n tag[numberFormatHelper.ID_PROPERTY_NAME] = this._convertNumberFormatIndexToId(this._numberFormatTags.length);\r\n result = tag[numberFormatHelper.ID_PROPERTY_NAME];\r\n this._numberFormatTags.push(tag)\r\n }\r\n }\r\n return result\r\n }\r\n generateNumberFormatsXml() {\r\n if (this._numberFormatTags.length > 0) {\r\n var xmlStringsArray = this._numberFormatTags.map(tag => numberFormatHelper.toXml(tag));\r\n return tagHelper.toXml(\"numFmts\", {\r\n count: xmlStringsArray.length\r\n }, xmlStringsArray.join(\"\"))\r\n } else {\r\n return \"\"\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/excel_creator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isDate,\r\n isBoolean,\r\n isObject,\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport errors from \"../ui/widget/ui.errors\";\r\nimport {\r\n encodeHtml\r\n} from \"../core/utils/string\";\r\nimport JSZip from \"jszip\";\r\nimport {\r\n MIME_TYPES\r\n} from \"./file_saver\";\r\nimport excelFormatConverter from \"./excel_format_converter\";\r\nimport ExcelFile from \"./excel/excel.file\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar XML_TAG = '<?xml version=\"1.0\" encoding=\"utf-8\"?>';\r\nvar GROUP_SHEET_PR_XML = '<sheetPr><outlinePr summaryBelow=\"0\"/></sheetPr>';\r\nvar SINGLE_SHEET_PR_XML = \"<sheetPr/>\";\r\nvar BASE_STYLE_XML2 = '<borders count=\"1\"><border><left style=\"thin\"><color rgb=\"FFD3D3D3\"/></left><right style=\"thin\"><color rgb=\"FFD3D3D3\"/></right><top style=\"thin\"><color rgb=\"FFD3D3D3\"/></top><bottom style=\"thin\"><color rgb=\"FFD3D3D3\"/></bottom></border></borders><cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>';\r\nvar OPEN_XML_FORMAT_URL = \"http://schemas.openxmlformats.org\";\r\nvar RELATIONSHIP_PART_NAME = \"rels\";\r\nvar XL_FOLDER_NAME = \"xl\";\r\nvar WORKBOOK_FILE_NAME = \"workbook.xml\";\r\nvar CONTENTTYPES_FILE_NAME = \"[Content_Types].xml\";\r\nvar SHAREDSTRING_FILE_NAME = \"sharedStrings.xml\";\r\nvar STYLE_FILE_NAME = \"styles.xml\";\r\nvar WORKSHEETS_FOLDER = \"worksheets\";\r\nvar WORKSHEET_FILE_NAME = \"sheet1.xml\";\r\nvar WORKSHEET_HEADER_XML = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?><worksheet xmlns=\"http://schemas.openxmlformats.org/spreadsheetml/2006/main\" xmlns:r=\"http://schemas.openxmlformats.org/officeDocument/2006/relationships\" xmlns:mc=\"http://schemas.openxmlformats.org/markup-compatibility/2006\" mc:Ignorable=\"x14ac\" xmlns:x14ac=\"http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac\">';\r\nvar VALID_TYPES = {\r\n boolean: \"b\",\r\n date: \"d\",\r\n number: \"n\",\r\n string: \"s\"\r\n};\r\nvar EXCEL_START_TIME = Date.UTC(1899, 11, 30);\r\nvar DAYS_COUNT_BEFORE_29_FEB_1900 = 60;\r\nvar MAX_DIGIT_WIDTH_IN_PIXELS = 7;\r\nvar UNSUPPORTED_FORMAT_MAPPING = {\r\n quarter: \"shortDate\",\r\n quarterAndYear: \"shortDate\",\r\n minute: \"longTime\",\r\n millisecond: \"longTime\"\r\n};\r\nexport var ExcelCreator = Class.inherit({\r\n _getXMLTag: function(tagName, attributes, content) {\r\n var result = \"<\" + tagName;\r\n var i;\r\n var length = attributes.length;\r\n var attr;\r\n for (i = 0; i < length; i++) {\r\n attr = attributes[i];\r\n if (void 0 !== attr.value) {\r\n result = result + \" \" + attr.name + '=\"' + attr.value + '\"'\r\n }\r\n }\r\n return isDefined(content) ? result + \">\" + content + \"</\" + tagName + \">\" : result + \" />\"\r\n },\r\n _convertToExcelCellRef: function(zeroBasedRowIndex, zeroBasedCellIndex) {\r\n var columnName = \"\";\r\n var charCode;\r\n var isCellIndexFound;\r\n while (!isCellIndexFound) {\r\n charCode = 65 + (zeroBasedCellIndex >= 26 ? zeroBasedCellIndex % 26 : Math.ceil(zeroBasedCellIndex));\r\n columnName = String.fromCharCode(charCode) + columnName;\r\n if (zeroBasedCellIndex >= 26) {\r\n zeroBasedCellIndex = Math.floor(zeroBasedCellIndex / 26) - 1\r\n } else {\r\n isCellIndexFound = true\r\n }\r\n }\r\n return columnName + (zeroBasedRowIndex + 1)\r\n },\r\n _convertToExcelCellRefAndTrackMaxIndex: function(rowIndex, cellIndex) {\r\n if (this._maxRowIndex < Number(rowIndex)) {\r\n this._maxRowIndex = Number(rowIndex)\r\n }\r\n if (this._maxColumnIndex < Number(cellIndex)) {\r\n this._maxColumnIndex = Number(cellIndex)\r\n }\r\n return this._convertToExcelCellRef(rowIndex, cellIndex)\r\n },\r\n _getDataType: function(dataType) {\r\n return VALID_TYPES[dataType] || VALID_TYPES.string\r\n },\r\n _tryGetExcelCellDataType: function(object) {\r\n if (isDefined(object)) {\r\n if (\"number\" === typeof object) {\r\n if (isFinite(object)) {\r\n return VALID_TYPES.number\r\n } else {\r\n return VALID_TYPES.string\r\n }\r\n } else if (isString(object)) {\r\n return VALID_TYPES.string\r\n } else if (isDate(object)) {\r\n return VALID_TYPES.number\r\n } else if (isBoolean(object)) {\r\n return VALID_TYPES.boolean\r\n }\r\n }\r\n },\r\n _formatObjectConverter: function(format, dataType) {\r\n var result = {\r\n format: format,\r\n precision: format && format.precision,\r\n dataType: dataType\r\n };\r\n if (isObject(format)) {\r\n return extend(result, format, {\r\n format: format.formatter || format.type,\r\n currency: format.currency\r\n })\r\n }\r\n return result\r\n },\r\n _tryConvertToExcelNumberFormat: function(format, dataType) {\r\n var newFormat = this._formatObjectConverter(format, dataType);\r\n format = newFormat.format;\r\n var currency = newFormat.currency;\r\n dataType = newFormat.dataType;\r\n if (isDefined(format) && \"date\" === dataType) {\r\n format = UNSUPPORTED_FORMAT_MAPPING[format && format.type || format] || format\r\n }\r\n return excelFormatConverter.convertFormat(format, newFormat.precision, dataType, currency)\r\n },\r\n _appendString: function(value) {\r\n if (isDefined(value)) {\r\n value = String(value);\r\n if (value.length) {\r\n value = encodeHtml(value);\r\n if (void 0 === this._stringHash[value]) {\r\n this._stringHash[value] = this._stringArray.length;\r\n this._stringArray.push(value)\r\n }\r\n return this._stringHash[value]\r\n }\r\n }\r\n },\r\n _tryGetExcelDateValue: function(date) {\r\n var days;\r\n var totalTime;\r\n if (isDate(date)) {\r\n days = Math.floor((Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()) - EXCEL_START_TIME) / 864e5);\r\n if (days < DAYS_COUNT_BEFORE_29_FEB_1900) {\r\n days--\r\n }\r\n totalTime = (3600 * date.getHours() + 60 * date.getMinutes() + date.getSeconds()) / 86400;\r\n return days + totalTime\r\n }\r\n },\r\n _prepareValue: function(rowIndex, cellIndex) {\r\n var dataProvider = this._dataProvider;\r\n var {\r\n cellSourceData: cellSourceData\r\n } = dataProvider.getCellData(rowIndex, cellIndex) || {};\r\n var {\r\n value: value\r\n } = dataProvider.getCellData(rowIndex, cellIndex) || {};\r\n var sourceValue;\r\n var type = this._getDataType(dataProvider.getCellType(rowIndex, cellIndex));\r\n if (type === VALID_TYPES.date && !isDate(value)) {\r\n type = VALID_TYPES.string\r\n }\r\n switch (type) {\r\n case VALID_TYPES.string:\r\n sourceValue = value;\r\n value = this._appendString(value);\r\n break;\r\n case VALID_TYPES.date:\r\n sourceValue = value;\r\n value = this._tryGetExcelDateValue(value);\r\n type = VALID_TYPES.number\r\n }\r\n return {\r\n value: value,\r\n type: type,\r\n sourceValue: sourceValue,\r\n cellSourceData: cellSourceData\r\n }\r\n },\r\n _callCustomizeExcelCell: function(_ref) {\r\n var {\r\n dataProvider: dataProvider,\r\n value: value,\r\n style: style,\r\n sourceData: sourceData\r\n } = _ref;\r\n var styleCopy = ExcelFile.copyCellFormat(style);\r\n var args = {\r\n value: value,\r\n numberFormat: styleCopy.numberFormat,\r\n clearStyle: function() {\r\n this.horizontalAlignment = null;\r\n this.verticalAlignment = null;\r\n this.wrapTextEnabled = null;\r\n this.font = null;\r\n this.numberFormat = null\r\n }\r\n };\r\n if (isDefined(styleCopy)) {\r\n if (isDefined(styleCopy.alignment)) {\r\n args.horizontalAlignment = styleCopy.alignment.horizontal;\r\n args.verticalAlignment = styleCopy.alignment.vertical;\r\n args.wrapTextEnabled = styleCopy.alignment.wrapText\r\n }\r\n args.backgroundColor = styleCopy.backgroundColor;\r\n args.fillPatternType = styleCopy.fillPatternType;\r\n args.fillPatternColor = styleCopy.fillPatternColor;\r\n args.font = styleCopy.font\r\n }\r\n dataProvider.customizeExcelCell(args, sourceData);\r\n var newStyle = styleCopy || {};\r\n newStyle.font = args.font;\r\n newStyle.alignment = newStyle.alignment || {};\r\n newStyle.alignment.horizontal = args.horizontalAlignment;\r\n newStyle.alignment.vertical = args.verticalAlignment;\r\n newStyle.alignment.wrapText = args.wrapTextEnabled;\r\n newStyle.backgroundColor = args.backgroundColor;\r\n newStyle.fillPatternType = args.fillPatternType;\r\n newStyle.fillPatternColor = args.fillPatternColor;\r\n newStyle.numberFormat = args.numberFormat;\r\n return {\r\n value: args.value,\r\n style: newStyle\r\n }\r\n },\r\n _getDataArray: function() {\r\n var rowIndex;\r\n var cellIndex;\r\n var cellsArray;\r\n var cellData;\r\n var result = [];\r\n var dataProvider = this._dataProvider;\r\n var rowsLength = dataProvider.getRowsCount();\r\n var columns = dataProvider.getColumns();\r\n var cellsLength;\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n cellsArray = [];\r\n cellsLength = columns.length;\r\n for (cellIndex = 0; cellIndex !== cellsLength; cellIndex++) {\r\n cellData = this._prepareValue(rowIndex, cellIndex);\r\n var styleArrayIndex = dataProvider.getStyleId(rowIndex, cellIndex);\r\n var cellStyleId = this._styleArrayIndexToCellStyleIdMap[styleArrayIndex];\r\n if (dataProvider.hasCustomizeExcelCell && dataProvider.hasCustomizeExcelCell()) {\r\n var value = cellData.sourceValue || cellData.value;\r\n var modifiedExcelCell = this._callCustomizeExcelCell({\r\n dataProvider: dataProvider,\r\n value: value,\r\n style: this._styleArray[styleArrayIndex],\r\n sourceData: cellData.cellSourceData\r\n });\r\n if (modifiedExcelCell.value !== value) {\r\n if (typeof modifiedExcelCell.value !== typeof value || \"number\" === typeof modifiedExcelCell.value && !isFinite(modifiedExcelCell.value)) {\r\n var cellDataType = this._tryGetExcelCellDataType(modifiedExcelCell.value);\r\n if (isDefined(cellDataType)) {\r\n cellData.type = cellDataType\r\n }\r\n }\r\n switch (cellData.type) {\r\n case VALID_TYPES.string:\r\n cellData.value = this._appendString(modifiedExcelCell.value);\r\n break;\r\n case VALID_TYPES.date:\r\n cellData.value = modifiedExcelCell.value;\r\n break;\r\n case VALID_TYPES.number:\r\n var newValue = modifiedExcelCell.value;\r\n var excelDateValue = this._tryGetExcelDateValue(newValue);\r\n if (isDefined(excelDateValue)) {\r\n newValue = excelDateValue\r\n }\r\n cellData.value = newValue;\r\n break;\r\n default:\r\n cellData.value = modifiedExcelCell.value\r\n }\r\n }\r\n cellStyleId = this._excelFile.registerCellFormat(modifiedExcelCell.style)\r\n }\r\n cellsArray.push({\r\n style: cellStyleId,\r\n value: cellData.value,\r\n type: cellData.type\r\n })\r\n }\r\n if (!this._needSheetPr && dataProvider.getGroupLevel(rowIndex) > 0) {\r\n this._needSheetPr = true\r\n }\r\n result.push(cellsArray)\r\n }\r\n return result\r\n },\r\n _calculateWidth: function(pixelsWidth) {\r\n pixelsWidth = parseInt(pixelsWidth, 10);\r\n if (!pixelsWidth || pixelsWidth < 5) {\r\n pixelsWidth = 100\r\n }\r\n return Math.min(255, Math.floor((pixelsWidth - 5) / MAX_DIGIT_WIDTH_IN_PIXELS * 100 + .5) / 100)\r\n },\r\n _prepareStyleData: function() {\r\n var that = this;\r\n var styles = that._dataProvider.getStyles();\r\n that._dataProvider.getColumns().forEach((function(column) {\r\n that._colsArray.push(that._calculateWidth(column.width))\r\n }));\r\n var fonts = [{\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: false\r\n }, {\r\n size: 11,\r\n color: {\r\n theme: 1\r\n },\r\n name: \"Calibri\",\r\n family: 2,\r\n scheme: \"minor\",\r\n bold: true\r\n }];\r\n this._excelFile.registerFont(fonts[0]);\r\n this._excelFile.registerFont(fonts[1]);\r\n styles.forEach((function(style) {\r\n var numberFormat = that._tryConvertToExcelNumberFormat(style.format, style.dataType);\r\n if (!isDefined(numberFormat)) {\r\n numberFormat = 0\r\n }\r\n that._styleArray.push({\r\n font: fonts[Number(!!style.bold)],\r\n numberFormat: numberFormat,\r\n alignment: {\r\n vertical: \"top\",\r\n wrapText: !!style.wrapText,\r\n horizontal: style.alignment || \"left\"\r\n }\r\n })\r\n }));\r\n that._styleArrayIndexToCellStyleIdMap = that._styleArray.map(item => this._excelFile.registerCellFormat(item))\r\n },\r\n _prepareCellData: function() {\r\n this._cellsArray = this._getDataArray()\r\n },\r\n _createXMLRelationships: function(xmlRelationships) {\r\n return this._getXMLTag(\"Relationships\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/package/2006/relationships\"\r\n }], xmlRelationships)\r\n },\r\n _createXMLRelationship: function(id, type, target) {\r\n return this._getXMLTag(\"Relationship\", [{\r\n name: \"Id\",\r\n value: \"rId\" + id\r\n }, {\r\n name: \"Type\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships/\" + type\r\n }, {\r\n name: \"Target\",\r\n value: target\r\n }])\r\n },\r\n _getWorkbookContent: function() {\r\n return XML_TAG + this._getXMLTag(\"workbook\", [{\r\n name: \"xmlns:r\",\r\n value: OPEN_XML_FORMAT_URL + \"/officeDocument/2006/relationships\"\r\n }, {\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], '<bookViews><workbookView xWindow=\"0\" yWindow=\"0\" windowWidth=\"0\" windowHeight=\"0\"/></bookViews><sheets><sheet name=\"Sheet\" sheetId=\"1\" r:id=\"rId1\" /></sheets><definedNames><definedName name=\"_xlnm.Print_Titles\" localSheetId=\"0\">Sheet!$1:$1</definedName><definedName name=\"_xlnm._FilterDatabase\" hidden=\"0\" localSheetId=\"0\">Sheet!$A$1:$F$6332</definedName></definedNames>')\r\n },\r\n _getContentTypesContent: function() {\r\n return XML_TAG + '<Types xmlns=\"' + OPEN_XML_FORMAT_URL + '/package/2006/content-types\"><Default Extension=\"rels\" ContentType=\"application/vnd.openxmlformats-package.relationships+xml\" /><Default Extension=\"xml\" ContentType=\"application/xml\" /><Override PartName=\"/xl/worksheets/sheet1.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\" /><Override PartName=\"/xl/styles.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\" /><Override PartName=\"/xl/sharedStrings.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\" /><Override PartName=\"/xl/workbook.xml\" ContentType=\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\" /></Types>'\r\n },\r\n _generateStylesXML: function() {\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var XML = \"\";\r\n XML += this._excelFile.generateNumberFormatsXml();\r\n XML += this._excelFile.generateFontsXml();\r\n XML += this._excelFile.generateFillsXml();\r\n XML += BASE_STYLE_XML2;\r\n XML += this._excelFile.generateCellFormatsXml();\r\n XML += this._getXMLTag(\"cellStyles\", [{\r\n name: \"count\",\r\n value: 1\r\n }], this._getXMLTag(\"cellStyle\", [{\r\n name: \"name\",\r\n value: \"Normal\"\r\n }, {\r\n name: \"xfId\",\r\n value: 0\r\n }, {\r\n name: \"builtinId\",\r\n value: 0\r\n }]));\r\n XML = XML_TAG + this._getXMLTag(\"styleSheet\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }], XML);\r\n folder.file(STYLE_FILE_NAME, XML);\r\n this._styleArray = []\r\n },\r\n _generateStringsXML: function() {\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var stringIndex;\r\n var stringsLength = this._stringArray.length;\r\n var sharedStringXml = XML_TAG;\r\n for (stringIndex = 0; stringIndex < stringsLength; stringIndex++) {\r\n this._stringArray[stringIndex] = this._getXMLTag(\"si\", [], this._getXMLTag(\"t\", [], this._stringArray[stringIndex]))\r\n }\r\n sharedStringXml += this._getXMLTag(\"sst\", [{\r\n name: \"xmlns\",\r\n value: OPEN_XML_FORMAT_URL + \"/spreadsheetml/2006/main\"\r\n }, {\r\n name: \"count\",\r\n value: this._stringArray.length\r\n }, {\r\n name: \"uniqueCount\",\r\n value: this._stringArray.length\r\n }], this._stringArray.join(\"\"));\r\n folder.file(SHAREDSTRING_FILE_NAME, sharedStringXml);\r\n this._stringArray = []\r\n },\r\n _getPaneXML: function() {\r\n var attributes = [{\r\n name: \"activePane\",\r\n value: \"bottomLeft\"\r\n }, {\r\n name: \"state\",\r\n value: \"frozen\"\r\n }];\r\n var frozenArea = this._dataProvider.getFrozenArea();\r\n if (!(frozenArea.x || frozenArea.y)) {\r\n return \"\"\r\n }\r\n if (frozenArea.x) {\r\n attributes.push({\r\n name: \"xSplit\",\r\n value: frozenArea.x\r\n })\r\n }\r\n if (frozenArea.y) {\r\n attributes.push({\r\n name: \"ySplit\",\r\n value: frozenArea.y\r\n })\r\n }\r\n attributes.push({\r\n name: \"topLeftCell\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(frozenArea.y, frozenArea.x)\r\n });\r\n return this._getXMLTag(\"pane\", attributes)\r\n },\r\n _getAutoFilterXML: function(maxCellIndex) {\r\n if (this._options.autoFilterEnabled) {\r\n return '<autoFilter ref=\"A' + this._dataProvider.getHeaderRowCount() + \":\" + maxCellIndex + '\" />'\r\n }\r\n return \"\"\r\n },\r\n _generateWorksheetXML: function() {\r\n var colIndex;\r\n var rowIndex;\r\n var cellData;\r\n var xmlCells;\r\n var xmlRows = [];\r\n var rowsLength = this._cellsArray.length;\r\n var cellsLength;\r\n var colsLength = this._colsArray.length;\r\n var rSpans = \"1:\" + colsLength;\r\n var headerRowCount = this._dataProvider.getHeaderRowCount ? this._dataProvider.getHeaderRowCount() : 1;\r\n var xmlResult = [WORKSHEET_HEADER_XML];\r\n xmlResult.push(this._needSheetPr ? GROUP_SHEET_PR_XML : SINGLE_SHEET_PR_XML);\r\n xmlResult.push('<dimension ref=\"A1:C1\"/>');\r\n xmlResult.push(\"<sheetViews><sheetView \");\r\n xmlResult.push(this._rtlEnabled ? 'rightToLeft=\"1\" ' : \"\");\r\n xmlResult.push('tabSelected=\"1\" workbookViewId=\"0\">');\r\n xmlResult.push(this._getPaneXML());\r\n xmlResult.push(\"</sheetView></sheetViews>\");\r\n xmlResult.push('<sheetFormatPr defaultRowHeight=\"15\"');\r\n xmlResult.push(' outlineLevelRow=\"' + (this._dataProvider.getRowsCount() > 0 ? this._dataProvider.getGroupLevel(0) : 0) + '\"');\r\n xmlResult.push(' x14ac:dyDescent=\"0.25\"/>');\r\n for (colIndex = 0; colIndex < colsLength; colIndex++) {\r\n this._colsArray[colIndex] = this._getXMLTag(\"col\", [{\r\n name: \"width\",\r\n value: this._colsArray[colIndex]\r\n }, {\r\n name: \"min\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"max\",\r\n value: Number(colIndex) + 1\r\n }, {\r\n name: \"customWidth\",\r\n value: 1\r\n }])\r\n }\r\n xmlResult.push(this._getXMLTag(\"cols\", [], this._colsArray.join(\"\")) + \"<sheetData>\");\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n xmlCells = [];\r\n cellsLength = this._cellsArray[rowIndex].length;\r\n for (colIndex = 0; colIndex < cellsLength; colIndex++) {\r\n rowIndex = Number(rowIndex);\r\n cellData = this._cellsArray[rowIndex][colIndex];\r\n xmlCells.push(this._getXMLTag(\"c\", [{\r\n name: \"r\",\r\n value: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, colIndex)\r\n }, {\r\n name: \"s\",\r\n value: cellData.style\r\n }, {\r\n name: \"t\",\r\n value: cellData.type\r\n }], isDefined(cellData.value) ? this._getXMLTag(\"v\", [], cellData.value) : null))\r\n }\r\n xmlRows.push(this._getXMLTag(\"row\", [{\r\n name: \"r\",\r\n value: Number(rowIndex) + 1\r\n }, {\r\n name: \"spans\",\r\n value: rSpans\r\n }, {\r\n name: \"outlineLevel\",\r\n value: rowIndex >= headerRowCount ? this._dataProvider.getGroupLevel(rowIndex) : 0\r\n }, {\r\n name: \"x14ac:dyDescent\",\r\n value: \"0.25\"\r\n }], xmlCells.join(\"\")));\r\n this._cellsArray[rowIndex] = null;\r\n if (xmlRows.length > 1e4) {\r\n xmlResult.push(xmlRows.join(\"\"));\r\n xmlRows = []\r\n }\r\n }\r\n xmlResult.push(xmlRows.join(\"\"));\r\n var rightBottomCellRef = this._convertToExcelCellRef(this._maxRowIndex, this._maxColumnIndex);\r\n xmlResult.push(\"</sheetData>\" + this._getAutoFilterXML(rightBottomCellRef) + this._generateMergingXML() + \"</worksheet>\");\r\n this._zip.folder(XL_FOLDER_NAME).folder(WORKSHEETS_FOLDER).file(WORKSHEET_FILE_NAME, xmlResult.join(\"\"));\r\n this._colsArray = [];\r\n this._cellsArray = []\r\n },\r\n _generateMergingXML: function() {\r\n var k;\r\n var l;\r\n var cellIndex;\r\n var rowIndex;\r\n var rowsLength = isDefined(this._dataProvider.getHeaderRowCount) ? this._dataProvider.getHeaderRowCount() : this._dataProvider.getRowsCount();\r\n var columnsLength = this._dataProvider.getColumns().length;\r\n var usedArea = [];\r\n var mergeArray = [];\r\n var mergeIndex;\r\n var mergeXML = \"\";\r\n for (rowIndex = 0; rowIndex < rowsLength; rowIndex++) {\r\n for (cellIndex = 0; cellIndex !== columnsLength; cellIndex++) {\r\n if (!isDefined(usedArea[rowIndex]) || !isDefined(usedArea[rowIndex][cellIndex])) {\r\n var cellMerge = this._dataProvider.getCellMerging(rowIndex, cellIndex);\r\n if (cellMerge.colspan || cellMerge.rowspan) {\r\n mergeArray.push({\r\n start: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex, cellIndex),\r\n end: this._convertToExcelCellRefAndTrackMaxIndex(rowIndex + (cellMerge.rowspan || 0), cellIndex + (cellMerge.colspan || 0))\r\n });\r\n for (k = rowIndex; k <= rowIndex + cellMerge.rowspan || 0; k++) {\r\n for (l = cellIndex; l <= cellIndex + cellMerge.colspan || 0; l++) {\r\n if (!isDefined(usedArea[k])) {\r\n usedArea[k] = []\r\n }\r\n usedArea[k][l] = true\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n var mergeArrayLength = mergeArray.length;\r\n for (mergeIndex = 0; mergeIndex < mergeArrayLength; mergeIndex++) {\r\n mergeXML += this._getXMLTag(\"mergeCell\", [{\r\n name: \"ref\",\r\n value: mergeArray[mergeIndex].start + \":\" + mergeArray[mergeIndex].end\r\n }])\r\n }\r\n return mergeXML.length ? this._getXMLTag(\"mergeCells\", [{\r\n name: \"count\",\r\n value: mergeArrayLength\r\n }], mergeXML) : \"\"\r\n },\r\n _generateCommonXML: function() {\r\n var relsFileContent = XML_TAG + this._createXMLRelationships(this._createXMLRelationship(1, \"officeDocument\", \"xl/\" + WORKBOOK_FILE_NAME));\r\n var folder = this._zip.folder(XL_FOLDER_NAME);\r\n var relsXML = XML_TAG;\r\n this._zip.folder(\"_\" + RELATIONSHIP_PART_NAME).file(\".\" + RELATIONSHIP_PART_NAME, relsFileContent);\r\n var xmlRelationships = this._createXMLRelationship(1, \"worksheet\", \"worksheets/\" + WORKSHEET_FILE_NAME) + this._createXMLRelationship(2, \"styles\", STYLE_FILE_NAME) + this._createXMLRelationship(3, \"sharedStrings\", SHAREDSTRING_FILE_NAME);\r\n relsXML += this._createXMLRelationships(xmlRelationships);\r\n folder.folder(\"_\" + RELATIONSHIP_PART_NAME).file(WORKBOOK_FILE_NAME + \".rels\", relsXML);\r\n folder.file(WORKBOOK_FILE_NAME, this._getWorkbookContent());\r\n this._zip.file(CONTENTTYPES_FILE_NAME, this._getContentTypesContent())\r\n },\r\n _generateContent: function() {\r\n this._prepareStyleData();\r\n this._prepareCellData();\r\n this._generateWorkXML();\r\n this._generateCommonXML()\r\n },\r\n _generateWorkXML: function() {\r\n this._generateStylesXML();\r\n this._generateStringsXML();\r\n this._generateWorksheetXML()\r\n },\r\n ctor: function(dataProvider, options) {\r\n this._rtlEnabled = options && !!options.rtlEnabled;\r\n this._options = options;\r\n this._maxRowIndex = 0;\r\n this._maxColumnIndex = 0;\r\n this._stringArray = [];\r\n this._stringHash = {};\r\n this._styleArray = [];\r\n this._colsArray = [];\r\n this._cellsArray = [];\r\n this._needSheetPr = false;\r\n this._dataProvider = dataProvider;\r\n this._excelFile = new ExcelFile;\r\n if (isDefined(ExcelCreator.JSZip)) {\r\n this._zip = new ExcelCreator.JSZip\r\n } else {\r\n this._zip = null\r\n }\r\n },\r\n _checkZipState: function() {\r\n if (!this._zip) {\r\n throw errors.Error(\"E1041\", \"JSZip\")\r\n }\r\n },\r\n ready: function() {\r\n return this._dataProvider.ready()\r\n },\r\n getData: function(isBlob) {\r\n var options = {\r\n type: isBlob ? \"blob\" : \"base64\",\r\n compression: \"DEFLATE\",\r\n mimeType: MIME_TYPES.EXCEL\r\n };\r\n var deferred = new Deferred;\r\n this._checkZipState();\r\n this._generateContent();\r\n if (this._zip.generateAsync) {\r\n this._zip.generateAsync(options).then(deferred.resolve)\r\n } else {\r\n deferred.resolve(this._zip.generate(options))\r\n }\r\n return deferred\r\n }\r\n});\r\nExcelCreator.JSZip = JSZip;\r\nexport function getData(data, options) {\r\n var excelCreator = new ExcelCreator(data, options);\r\n excelCreator._checkZipState();\r\n return excelCreator.ready().then(() => excelCreator.getData(isFunction(getWindow().Blob)))\r\n}\r\n","/**\r\n * DevExtreme (esm/color.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar standardColorNames = {\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 darkgreen: \"006400\",\r\n darkgrey: \"a9a9a9\",\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 feldspar: \"d19275\",\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 green: \"008000\",\r\n greenyellow: \"adff2f\",\r\n grey: \"808080\",\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 lightgreen: \"90ee90\",\r\n lightgrey: \"d3d3d3\",\r\n lightpink: \"ffb6c1\",\r\n lightsalmon: \"ffa07a\",\r\n lightseagreen: \"20b2aa\",\r\n lightskyblue: \"87cefa\",\r\n lightslateblue: \"8470ff\",\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: \"9370d8\",\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: \"d87093\",\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 violetred: \"d02090\",\r\n wheat: \"f5deb3\",\r\n white: \"ffffff\",\r\n whitesmoke: \"f5f5f5\",\r\n yellow: \"ffff00\",\r\n yellowgreen: \"9acd32\"\r\n};\r\nvar standardColorTypes = [{\r\n re: /^rgb\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 10), parseInt(colorString[2], 10), parseInt(colorString[3], 10)]\r\n }\r\n}, {\r\n re: /^rgba\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d*\\.*\\d+)\\)$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 10), parseInt(colorString[2], 10), parseInt(colorString[3], 10), parseFloat(colorString[4])]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1], 16), parseInt(colorString[2], 16), parseInt(colorString[3], 16)]\r\n }\r\n}, {\r\n re: /^#([a-f0-9]{1})([a-f0-9]{1})([a-f0-9]{1})$/,\r\n process: function(colorString) {\r\n return [parseInt(colorString[1] + colorString[1], 16), parseInt(colorString[2] + colorString[2], 16), parseInt(colorString[3] + colorString[3], 16)]\r\n }\r\n}, {\r\n re: /^hsv\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n var h = parseInt(colorString[1], 10);\r\n var s = parseInt(colorString[2], 10);\r\n var v = parseInt(colorString[3], 10);\r\n var rgb = hsvToRgb(h, s, v);\r\n return [rgb[0], rgb[1], rgb[2], 1, [h, s, v]]\r\n }\r\n}, {\r\n re: /^hsl\\((\\d{1,3}),\\s*(\\d{1,3}),\\s*(\\d{1,3})\\)$/,\r\n process: function(colorString) {\r\n var h = parseInt(colorString[1], 10);\r\n var s = parseInt(colorString[2], 10);\r\n var l = parseInt(colorString[3], 10);\r\n var rgb = hslToRgb(h, s, l);\r\n return [rgb[0], rgb[1], rgb[2], 1, null, [h, s, l]]\r\n }\r\n}];\r\nvar _round = Math.round;\r\n\r\nfunction Color(value) {\r\n this.baseColor = value;\r\n var color;\r\n if (value) {\r\n color = String(value).toLowerCase().replace(/ /g, \"\");\r\n color = standardColorNames[color] ? \"#\" + standardColorNames[color] : color;\r\n color = parseColor(color)\r\n }\r\n if (!color) {\r\n this.colorIsInvalid = true\r\n }\r\n color = color || {};\r\n this.r = normalize(color[0]);\r\n this.g = normalize(color[1]);\r\n this.b = normalize(color[2]);\r\n this.a = normalize(color[3], 1, 1);\r\n if (color[4]) {\r\n this.hsv = {\r\n h: color[4][0],\r\n s: color[4][1],\r\n v: color[4][2]\r\n }\r\n } else {\r\n this.hsv = toHsvFromRgb(this.r, this.g, this.b)\r\n }\r\n if (color[5]) {\r\n this.hsl = {\r\n h: color[5][0],\r\n s: color[5][1],\r\n l: color[5][2]\r\n }\r\n } else {\r\n this.hsl = toHslFromRgb(this.r, this.g, this.b)\r\n }\r\n}\r\n\r\nfunction parseColor(color) {\r\n if (\"transparent\" === color) {\r\n return [0, 0, 0, 0]\r\n }\r\n var i = 0;\r\n var ii = standardColorTypes.length;\r\n var str;\r\n for (; i < ii; ++i) {\r\n str = standardColorTypes[i].re.exec(color);\r\n if (str) {\r\n return standardColorTypes[i].process(str)\r\n }\r\n }\r\n return null\r\n}\r\n\r\nfunction normalize(colorComponent, def, max) {\r\n def = def || 0;\r\n max = max || 255;\r\n return colorComponent < 0 || isNaN(colorComponent) ? def : colorComponent > max ? max : colorComponent\r\n}\r\n\r\nfunction toHexFromRgb(r, g, b) {\r\n return \"#\" + (16777216 | r << 16 | g << 8 | b).toString(16).slice(1)\r\n}\r\n\r\nfunction toHsvFromRgb(r, g, b) {\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var delta = max - min;\r\n var H;\r\n var S;\r\n var V = max;\r\n S = 0 === max ? 0 : 1 - min / max;\r\n if (max === min) {\r\n H = 0\r\n } else {\r\n switch (max) {\r\n case r:\r\n H = (g - b) / delta * 60;\r\n if (g < b) {\r\n H += 360\r\n }\r\n break;\r\n case g:\r\n H = (b - r) / delta * 60 + 120;\r\n break;\r\n case b:\r\n H = (r - g) / delta * 60 + 240\r\n }\r\n }\r\n S *= 100;\r\n V *= 100 / 255;\r\n return {\r\n h: Math.round(H),\r\n s: Math.round(S),\r\n v: Math.round(V)\r\n }\r\n}\r\n\r\nfunction hsvToRgb(h, s, v) {\r\n var index = Math.floor(h % 360 / 60);\r\n var vMin = (100 - s) * v / 100;\r\n var a = h % 60 / 60 * (v - vMin);\r\n var vInc = vMin + a;\r\n var vDec = v - a;\r\n var r;\r\n var g;\r\n var b;\r\n switch (index) {\r\n case 0:\r\n r = v;\r\n g = vInc;\r\n b = vMin;\r\n break;\r\n case 1:\r\n r = vDec;\r\n g = v;\r\n b = vMin;\r\n break;\r\n case 2:\r\n r = vMin;\r\n g = v;\r\n b = vInc;\r\n break;\r\n case 3:\r\n r = vMin;\r\n g = vDec;\r\n b = v;\r\n break;\r\n case 4:\r\n r = vInc;\r\n g = vMin;\r\n b = v;\r\n break;\r\n case 5:\r\n r = v;\r\n g = vMin;\r\n b = vDec\r\n }\r\n return [Math.round(2.55 * r), Math.round(2.55 * g), Math.round(2.55 * b)]\r\n}\r\n\r\nfunction calculateHue(r, g, b, delta) {\r\n var max = Math.max(r, g, b);\r\n switch (max) {\r\n case r:\r\n return (g - b) / delta + (g < b ? 6 : 0);\r\n case g:\r\n return (b - r) / delta + 2;\r\n case b:\r\n return (r - g) / delta + 4\r\n }\r\n}\r\n\r\nfunction toHslFromRgb(r, g, b) {\r\n r = convertTo01Bounds(r, 255);\r\n g = convertTo01Bounds(g, 255);\r\n b = convertTo01Bounds(b, 255);\r\n var max = Math.max(r, g, b);\r\n var min = Math.min(r, g, b);\r\n var maxMinSum = max + min;\r\n var h;\r\n var s;\r\n var l = maxMinSum / 2;\r\n if (max === min) {\r\n h = s = 0\r\n } else {\r\n var delta = max - min;\r\n if (l > .5) {\r\n s = delta / (2 - maxMinSum)\r\n } else {\r\n s = delta / maxMinSum\r\n }\r\n h = calculateHue(r, g, b, delta);\r\n h /= 6\r\n }\r\n return {\r\n h: _round(360 * h),\r\n s: _round(100 * s),\r\n l: _round(100 * l)\r\n }\r\n}\r\n\r\nfunction makeColorTint(colorPart, h) {\r\n var colorTint = h;\r\n if (\"r\" === colorPart) {\r\n colorTint = h + 1 / 3\r\n }\r\n if (\"b\" === colorPart) {\r\n colorTint = h - 1 / 3\r\n }\r\n return colorTint\r\n}\r\n\r\nfunction modifyColorTint(colorTint) {\r\n if (colorTint < 0) {\r\n colorTint += 1\r\n }\r\n if (colorTint > 1) {\r\n colorTint -= 1\r\n }\r\n return colorTint\r\n}\r\n\r\nfunction hueToRgb(p, q, colorTint) {\r\n colorTint = modifyColorTint(colorTint);\r\n if (colorTint < 1 / 6) {\r\n return p + 6 * (q - p) * colorTint\r\n }\r\n if (colorTint < .5) {\r\n return q\r\n }\r\n if (colorTint < 2 / 3) {\r\n return p + (q - p) * (2 / 3 - colorTint) * 6\r\n }\r\n return p\r\n}\r\n\r\nfunction hslToRgb(h, s, l) {\r\n var r;\r\n var g;\r\n var b;\r\n h = convertTo01Bounds(h, 360);\r\n s = convertTo01Bounds(s, 100);\r\n l = convertTo01Bounds(l, 100);\r\n if (0 === s) {\r\n r = g = b = l\r\n } else {\r\n var q = l < .5 ? l * (1 + s) : l + s - l * s;\r\n var p = 2 * l - q;\r\n r = hueToRgb(p, q, makeColorTint(\"r\", h));\r\n g = hueToRgb(p, q, makeColorTint(\"g\", h));\r\n b = hueToRgb(p, q, makeColorTint(\"b\", h))\r\n }\r\n return [_round(255 * r), _round(255 * g), _round(255 * b)]\r\n}\r\n\r\nfunction convertTo01Bounds(n, max) {\r\n n = Math.min(max, Math.max(0, parseFloat(n)));\r\n if (Math.abs(n - max) < 1e-6) {\r\n return 1\r\n }\r\n return n % max / parseFloat(max)\r\n}\r\n\r\nfunction isIntegerBetweenMinAndMax(number, min, max) {\r\n min = min || 0;\r\n max = max || 255;\r\n if (number % 1 !== 0 || number < min || number > max || \"number\" !== typeof number || isNaN(number)) {\r\n return false\r\n }\r\n return true\r\n}\r\nColor.prototype = {\r\n constructor: Color,\r\n highlight: function(step) {\r\n step = step || 10;\r\n return this.alter(step).toHex()\r\n },\r\n darken: function(step) {\r\n step = step || 10;\r\n return this.alter(-step).toHex()\r\n },\r\n alter: function(step) {\r\n var result = new Color;\r\n result.r = normalize(this.r + step);\r\n result.g = normalize(this.g + step);\r\n result.b = normalize(this.b + step);\r\n return result\r\n },\r\n blend: function(blendColor, opacity) {\r\n var other = blendColor instanceof Color ? blendColor : new Color(blendColor);\r\n var result = new Color;\r\n result.r = normalize(_round(this.r * (1 - opacity) + other.r * opacity));\r\n result.g = normalize(_round(this.g * (1 - opacity) + other.g * opacity));\r\n result.b = normalize(_round(this.b * (1 - opacity) + other.b * opacity));\r\n return result\r\n },\r\n toHex: function() {\r\n return toHexFromRgb(this.r, this.g, this.b)\r\n },\r\n getPureColor: function() {\r\n var rgb = hsvToRgb(this.hsv.h, 100, 100);\r\n return new Color(\"rgb(\" + rgb.join(\",\") + \")\")\r\n },\r\n isValidHex: function(hex) {\r\n return /(^#[0-9A-F]{6}$)|(^#[0-9A-F]{3}$)/i.test(hex)\r\n },\r\n isValidRGB: function(r, g, b) {\r\n if (!isIntegerBetweenMinAndMax(r) || !isIntegerBetweenMinAndMax(g) || !isIntegerBetweenMinAndMax(b)) {\r\n return false\r\n }\r\n return true\r\n },\r\n isValidAlpha: function(a) {\r\n if (isNaN(a) || a < 0 || a > 1 || \"number\" !== typeof a) {\r\n return false\r\n }\r\n return true\r\n },\r\n colorIsInvalid: false,\r\n fromHSL: function(hsl) {\r\n var color = new Color;\r\n var rgb = hslToRgb(hsl.h, hsl.s, hsl.l);\r\n color.r = rgb[0];\r\n color.g = rgb[1];\r\n color.b = rgb[2];\r\n return color\r\n }\r\n};\r\nexport default Color;\r\n","/**\r\n * DevExtreme (esm/core/utils/svg.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"./window\";\r\nimport $ from \"../../core/renderer\";\r\nvar window = getWindow();\r\n\r\nfunction getMarkup(element, backgroundColor) {\r\n var temp = domAdapter.createElement(\"div\");\r\n var clone = element.cloneNode(true);\r\n if (backgroundColor) {\r\n $(clone).css(\"backgroundColor\", backgroundColor)\r\n }\r\n temp.appendChild(clone);\r\n return temp.innerHTML\r\n}\r\n\r\nfunction fixNamespaces(markup) {\r\n var first = true;\r\n if (-1 === markup.indexOf(\"xmlns:xlink\")) {\r\n markup = markup.replace(\"<svg\", '<svg xmlns:xlink=\"http://www.w3.org/1999/xlink\"')\r\n }\r\n markup = markup.replace(/xmlns=\"[\\s\\S]*?\"/gi, (function(match) {\r\n if (!first) {\r\n return \"\"\r\n }\r\n first = false;\r\n return match\r\n }));\r\n return markup.replace(/xmlns:NS1=\"[\\s\\S]*?\"/gi, \"\").replace(/NS1:xmlns:xlink=\"([\\s\\S]*?)\"/gi, 'xmlns:xlink=\"$1\"')\r\n}\r\n\r\nfunction decodeHtmlEntities(markup) {\r\n return markup.replace(/"/gi, \""\").replace(/&/gi, \"&\").replace(/'/gi, \"'\").replace(/</gi, \"<\").replace(/>/gi, \">\").replace(/ /gi, \" \").replace(/­/gi, \"­\")\r\n}\r\nexport var HIDDEN_FOR_EXPORT = \"hidden-for-export\";\r\nexport function getSvgMarkup(element, backgroundColor) {\r\n return fixNamespaces(decodeHtmlEntities(getMarkup(element, backgroundColor)))\r\n}\r\nexport function getSvgElement(markup) {\r\n return domAdapter.isNode(markup) ? markup : (new window.DOMParser).parseFromString(markup, \"image/svg+xml\").childNodes[0]\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/image_creator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Color from \"../color\";\r\nimport {\r\n isFunction,\r\n isPromise,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n getSvgElement,\r\n HIDDEN_FOR_EXPORT\r\n} from \"../core/utils/svg\";\r\nimport {\r\n each as _each,\r\n map as _map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n contains\r\n} from \"../core/utils/dom\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n camelize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nvar _math = Math;\r\nvar PI = _math.PI;\r\nvar _min = _math.min;\r\nvar _abs = _math.abs;\r\nvar _sqrt = _math.sqrt;\r\nvar _pow = _math.pow;\r\nvar _atan2 = _math.atan2;\r\nvar _cos = _math.cos;\r\nvar _sin = _math.sin;\r\nvar _number = Number;\r\nvar IMAGE_QUALITY = 1;\r\nvar TEXT_DECORATION_LINE_WIDTH_COEFF = .05;\r\nvar DEFAULT_FONT_SIZE = \"10px\";\r\nvar DEFAULT_FONT_FAMILY = \"sans-serif\";\r\nvar DEFAULT_TEXT_COLOR = \"#000\";\r\nvar parseAttributes;\r\n\r\nfunction getStringFromCanvas(canvas, mimeType) {\r\n var dataURL = canvas.toDataURL(mimeType, IMAGE_QUALITY);\r\n var imageData = window.atob(dataURL.substring((\"data:\" + mimeType + \";base64,\").length));\r\n return imageData\r\n}\r\n\r\nfunction arcTo(x1, y1, x2, y2, radius, largeArcFlag, clockwise, context) {\r\n var cBx = (x1 + x2) / 2;\r\n var cBy = (y1 + y2) / 2;\r\n var aB = _atan2(y1 - y2, x1 - x2);\r\n var k = largeArcFlag ? 1 : -1;\r\n aB += PI / 180 * 90 * (clockwise ? 1 : -1);\r\n var opSide = _sqrt(_pow(x2 - x1, 2) + _pow(y2 - y1, 2)) / 2;\r\n var adjSide = _sqrt(_abs(_pow(radius, 2) - _pow(opSide, 2)));\r\n var centerX = cBx + k * (adjSide * _cos(aB));\r\n var centerY = cBy + k * (adjSide * _sin(aB));\r\n var startAngle = _atan2(y1 - centerY, x1 - centerX);\r\n var endAngle = _atan2(y2 - centerY, x2 - centerX);\r\n context.arc(centerX, centerY, radius, startAngle, endAngle, !clockwise)\r\n}\r\n\r\nfunction getElementOptions(element, rootAppended) {\r\n var attr = parseAttributes(element.attributes || {});\r\n var options = extend({}, attr, {\r\n text: element.textContent.replace(/\\s+/g, \" \"),\r\n textAlign: \"middle\" === attr[\"text-anchor\"] ? \"center\" : attr[\"text-anchor\"]\r\n });\r\n var transform = attr.transform;\r\n var coords;\r\n if (transform) {\r\n coords = transform.match(/translate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.translateX = _number(coords[0]);\r\n options.translateY = coords[1] ? _number(coords[1]) : 0\r\n }\r\n coords = transform.match(/rotate\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.rotationAngle = _number(coords[0]);\r\n options.rotationX = coords[1] && _number(coords[1]);\r\n options.rotationY = coords[2] && _number(coords[2])\r\n }\r\n coords = transform.match(/scale\\(-*\\d+([.]\\d+)*(,*\\s*-*\\d+([.]\\d+)*)*/);\r\n if (coords) {\r\n coords = coords[0].match(/-*\\d+([.]\\d+)*/g);\r\n options.scaleX = _number(coords[0]);\r\n if (coords.length > 1) {\r\n options.scaleY = _number(coords[1])\r\n } else {\r\n options.scaleY = options.scaleX\r\n }\r\n }\r\n }\r\n parseStyles(element, options, rootAppended);\r\n return options\r\n}\r\n\r\nfunction drawRect(context, options) {\r\n var x = options.x;\r\n var y = options.y;\r\n var width = options.width;\r\n var height = options.height;\r\n var cornerRadius = options.rx;\r\n if (!cornerRadius) {\r\n context.rect(x, y, width, height)\r\n } else {\r\n cornerRadius = _min(cornerRadius, width / 2, height / 2);\r\n context.save();\r\n context.translate(x, y);\r\n context.moveTo(width / 2, 0);\r\n context.arcTo(width, 0, width, height, cornerRadius);\r\n context.arcTo(width, height, 0, height, cornerRadius);\r\n context.arcTo(0, height, 0, 0, cornerRadius);\r\n context.arcTo(0, 0, cornerRadius, 0, cornerRadius);\r\n context.lineTo(width / 2, 0);\r\n context.restore()\r\n }\r\n}\r\n\r\nfunction drawImage(context, options, shared) {\r\n var d = new Deferred;\r\n var image = new window.Image;\r\n image.onload = function() {\r\n context.save();\r\n context.globalAlpha = options.globalAlpha;\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n context.drawImage(image, options.x || 0, options.y || 0, options.width, options.height);\r\n context.restore();\r\n d.resolve()\r\n };\r\n image.onerror = function() {\r\n d.resolve()\r\n };\r\n image.setAttribute(\"crossOrigin\", \"anonymous\");\r\n image.src = options.href || options[\"xlink:href\"];\r\n return d\r\n}\r\n\r\nfunction drawPath(context, dAttr) {\r\n var dArray = dAttr.replace(/,/g, \" \").split(/([A-Z])/i).filter(item => \"\" !== item.trim());\r\n var i = 0;\r\n var params;\r\n var prevParams;\r\n var prevParamsLen;\r\n do {\r\n params = (dArray[i + 1] || \"\").trim().split(\" \");\r\n switch (dArray[i]) {\r\n case \"M\":\r\n context.moveTo(_number(params[0]), _number(params[1]));\r\n i += 2;\r\n break;\r\n case \"L\":\r\n for (var j = 0; j < params.length / 2; j++) {\r\n context.lineTo(_number(params[2 * j]), _number(params[2 * j + 1]))\r\n }\r\n i += 2;\r\n break;\r\n case \"C\":\r\n context.bezierCurveTo(_number(params[0]), _number(params[1]), _number(params[2]), _number(params[3]), _number(params[4]), _number(params[5]));\r\n i += 2;\r\n break;\r\n case \"a\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(prevParams[prevParamsLen - 1]) + _number(params[5]), _number(prevParams[prevParamsLen]) + _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"A\":\r\n prevParams = dArray[i - 1].trim().split(\" \");\r\n prevParamsLen = prevParams.length - 1;\r\n arcTo(_number(prevParams[prevParamsLen - 1]), _number(prevParams[prevParamsLen]), _number(params[5]), _number(params[6]), _number(params[0]), _number(params[3]), _number(params[4]), context);\r\n i += 2;\r\n break;\r\n case \"Z\":\r\n context.closePath();\r\n i += 1;\r\n break;\r\n default:\r\n i++\r\n }\r\n } while (i < dArray.length)\r\n}\r\n\r\nfunction parseStyles(element, options, rootAppended) {\r\n var style = element.style || {};\r\n var field;\r\n for (field in style) {\r\n if (\"\" !== style[field]) {\r\n options[camelize(field)] = style[field]\r\n }\r\n }\r\n if (rootAppended && domAdapter.isElementNode(element)) {\r\n style = window.getComputedStyle(element);\r\n [\"fill\", \"stroke\", \"stroke-width\", \"font-family\", \"font-size\", \"font-style\", \"font-weight\"].forEach((function(prop) {\r\n if (prop in style && \"\" !== style[prop]) {\r\n options[camelize(prop)] = style[prop]\r\n }\r\n }));\r\n [\"opacity\", \"fill-opacity\", \"stroke-opacity\"].forEach((function(prop) {\r\n if (prop in style && \"\" !== style[prop] && \"1\" !== style[prop]) {\r\n options[prop] = _number(style[prop])\r\n }\r\n }))\r\n }\r\n options.textDecoration = options.textDecoration || options.textDecorationLine;\r\n options.globalAlpha = isDefined(options.opacity) ? options.opacity : options.globalAlpha\r\n}\r\n\r\nfunction parseUrl(urlString) {\r\n var matches = urlString && urlString.match(/url\\(.*#(.*?)[\"']?\\)/i);\r\n return matches && matches[1]\r\n}\r\n\r\nfunction setFontStyle(context, options) {\r\n var fontParams = [];\r\n options.fontSize = options.fontSize || DEFAULT_FONT_SIZE;\r\n options.fontFamily = options.fontFamily || DEFAULT_FONT_FAMILY;\r\n options.fill = options.fill || DEFAULT_TEXT_COLOR;\r\n options.fontStyle && fontParams.push(options.fontStyle);\r\n options.fontWeight && fontParams.push(options.fontWeight);\r\n fontParams.push(options.fontSize);\r\n fontParams.push(options.fontFamily);\r\n context.font = fontParams.join(\" \");\r\n context.textAlign = options.textAlign;\r\n context.fillStyle = options.fill;\r\n context.globalAlpha = options.globalAlpha\r\n}\r\n\r\nfunction drawText(context, options, shared) {\r\n setFontStyle(context, options);\r\n applyFilter(context, options, shared);\r\n options.text && context.fillText(options.text, options.x || 0, options.y || 0);\r\n strokeElement(context, options, true);\r\n drawTextDecoration(context, options, shared)\r\n}\r\n\r\nfunction drawTextDecoration(context, options, shared) {\r\n if (!options.textDecoration || \"none\" === options.textDecoration) {\r\n return\r\n }\r\n var x = options.x;\r\n var textWidth = context.measureText(options.text).width;\r\n var textHeight = parseInt(options.fontSize, 10);\r\n var lineHeight = textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF < 1 ? 1 : textHeight * TEXT_DECORATION_LINE_WIDTH_COEFF;\r\n var y = options.y;\r\n switch (options.textDecoration) {\r\n case \"line-through\":\r\n y -= textHeight / 3 + lineHeight / 2;\r\n break;\r\n case \"overline\":\r\n y -= textHeight - lineHeight;\r\n break;\r\n case \"underline\":\r\n y += lineHeight\r\n }\r\n context.rect(x, y, textWidth, lineHeight);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n}\r\n\r\nfunction aggregateOpacity(options) {\r\n options.strokeOpacity = void 0 !== options[\"stroke-opacity\"] ? options[\"stroke-opacity\"] : 1;\r\n options.fillOpacity = void 0 !== options[\"fill-opacity\"] ? options[\"fill-opacity\"] : 1;\r\n if (void 0 !== options.opacity) {\r\n options.strokeOpacity *= options.opacity;\r\n options.fillOpacity *= options.opacity\r\n }\r\n}\r\n\r\nfunction hasTspan(element) {\r\n var nodes = element.childNodes;\r\n for (var i = 0; i < nodes.length; i++) {\r\n if (\"tspan\" === nodes[i].tagName) {\r\n return true\r\n }\r\n }\r\n return false\r\n}\r\n\r\nfunction drawTextElement(childNodes, context, options, shared) {\r\n var lines = [];\r\n var line;\r\n var offset = 0;\r\n for (var i = 0; i < childNodes.length; i++) {\r\n var element = childNodes[i];\r\n if (void 0 === element.tagName) {\r\n drawElement(element, context, options, shared)\r\n } else if (\"tspan\" === element.tagName || \"text\" === element.tagName) {\r\n var elementOptions = getElementOptions(element, shared.rootAppended);\r\n var mergedOptions = extend({}, options, elementOptions);\r\n if (\"tspan\" === element.tagName && hasTspan(element)) {\r\n drawTextElement(element.childNodes, context, mergedOptions, shared);\r\n continue\r\n }\r\n mergedOptions.textAlign = \"start\";\r\n if (!line || void 0 !== elementOptions.x) {\r\n line = {\r\n elements: [],\r\n options: [],\r\n widths: [],\r\n offsets: []\r\n };\r\n lines.push(line)\r\n }\r\n if (void 0 !== elementOptions.y) {\r\n offset = 0\r\n }\r\n if (void 0 !== elementOptions.dy) {\r\n offset += parseFloat(elementOptions.dy)\r\n }\r\n line.elements.push(element);\r\n line.options.push(mergedOptions);\r\n line.offsets.push(offset);\r\n setFontStyle(context, mergedOptions);\r\n line.widths.push(context.measureText(mergedOptions.text).width)\r\n }\r\n }\r\n lines.forEach((function(line) {\r\n var commonWidth = line.widths.reduce((function(commonWidth, width) {\r\n return commonWidth + width\r\n }), 0);\r\n var xDiff = 0;\r\n var currentOffset = 0;\r\n if (\"center\" === options.textAlign) {\r\n xDiff = commonWidth / 2\r\n }\r\n if (\"end\" === options.textAlign) {\r\n xDiff = commonWidth\r\n }\r\n line.options.forEach((function(o, index) {\r\n var width = line.widths[index];\r\n o.x = o.x - xDiff + currentOffset;\r\n o.y += line.offsets[index];\r\n currentOffset += width\r\n }));\r\n line.elements.forEach((function(element, index) {\r\n drawTextElement(element.childNodes, context, line.options[index], shared)\r\n }))\r\n }))\r\n}\r\n\r\nfunction drawElement(element, context, parentOptions, shared) {\r\n var tagName = element.tagName;\r\n var isText = \"text\" === tagName || \"tspan\" === tagName || void 0 === tagName;\r\n var isImage = \"image\" === tagName;\r\n var options = extend({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n if (\"hidden\" === options.visibility || options[HIDDEN_FOR_EXPORT]) {\r\n return\r\n }\r\n context.save();\r\n !isImage && transformElement(context, options);\r\n clipElement(context, options, shared);\r\n aggregateOpacity(options);\r\n var promise;\r\n context.beginPath();\r\n switch (element.tagName) {\r\n case void 0:\r\n drawText(context, options, shared);\r\n break;\r\n case \"text\":\r\n case \"tspan\":\r\n drawTextElement(element.childNodes, context, options, shared);\r\n break;\r\n case \"image\":\r\n promise = drawImage(context, options, shared);\r\n break;\r\n case \"path\":\r\n drawPath(context, options.d);\r\n break;\r\n case \"rect\":\r\n drawRect(context, options);\r\n context.closePath();\r\n break;\r\n case \"circle\":\r\n context.arc(options.cx, options.cy, options.r, 0, 2 * PI, 1)\r\n }\r\n if (!isText) {\r\n applyFilter(context, options, shared);\r\n fillElement(context, options, shared);\r\n strokeElement(context, options)\r\n }\r\n applyGradient(context, options, shared, element);\r\n context.restore();\r\n return promise\r\n}\r\n\r\nfunction applyGradient(context, options, _ref, element) {\r\n var {\r\n gradients: gradients\r\n } = _ref;\r\n if (0 === gradients.length) {\r\n return\r\n }\r\n var id = parseUrl(options.fill);\r\n if (id && gradients[id]) {\r\n var box = element.getBBox();\r\n var gradient = context.createLinearGradient(box.x, 0, box.x + box.width, 0);\r\n gradients[id].forEach(opt => {\r\n var offset = parseInt(opt.offset.replace(/%/, \"\"));\r\n gradient.addColorStop(offset / 100, opt.stopColor)\r\n });\r\n context.globalAlpha = options.opacity;\r\n context.fillStyle = gradient;\r\n context.fill()\r\n }\r\n}\r\n\r\nfunction applyFilter(context, options, shared) {\r\n var filterOptions;\r\n var id = parseUrl(options.filter);\r\n if (id) {\r\n filterOptions = shared.filters[id];\r\n if (!filterOptions) {\r\n filterOptions = {\r\n offsetX: 0,\r\n offsetY: 0,\r\n blur: 0,\r\n color: \"#000\"\r\n }\r\n }\r\n context.shadowOffsetX = filterOptions.offsetX;\r\n context.shadowOffsetY = filterOptions.offsetY;\r\n context.shadowColor = filterOptions.color;\r\n context.shadowBlur = filterOptions.blur\r\n }\r\n}\r\n\r\nfunction transformElement(context, options) {\r\n context.translate(options.translateX || 0, options.translateY || 0);\r\n options.translateX = void 0;\r\n options.translateY = void 0;\r\n if (options.rotationAngle) {\r\n context.translate(options.rotationX || 0, options.rotationY || 0);\r\n context.rotate(options.rotationAngle * PI / 180);\r\n context.translate(-(options.rotationX || 0), -(options.rotationY || 0));\r\n options.rotationAngle = void 0;\r\n options.rotationX = void 0;\r\n options.rotationY = void 0\r\n }\r\n if (isFinite(options.scaleX)) {\r\n context.scale(options.scaleX, options.scaleY);\r\n options.scaleX = void 0;\r\n options.scaleY = void 0\r\n }\r\n}\r\n\r\nfunction clipElement(context, options, shared) {\r\n if (options[\"clip-path\"]) {\r\n drawElement(shared.clipPaths[parseUrl(options[\"clip-path\"])], context, {}, shared);\r\n context.clip();\r\n options[\"clip-path\"] = void 0\r\n }\r\n}\r\n\r\nfunction hex2rgba(hexColor, alpha) {\r\n var color = new Color(hexColor);\r\n return \"rgba(\" + color.r + \",\" + color.g + \",\" + color.b + \",\" + alpha + \")\"\r\n}\r\n\r\nfunction createGradient(element) {\r\n var options = [];\r\n _each(element.childNodes, (_, _ref2) => {\r\n var {\r\n attributes: attributes\r\n } = _ref2;\r\n options.push({\r\n offset: attributes.offset.value,\r\n stopColor: attributes[\"stop-color\"].value\r\n })\r\n });\r\n return options\r\n}\r\n\r\nfunction createFilter(element) {\r\n var color;\r\n var opacity;\r\n var filterOptions = {};\r\n _each(element.childNodes, (function(_, node) {\r\n var attr = node.attributes;\r\n if (!attr.result) {\r\n return\r\n }\r\n switch (attr.result.value) {\r\n case \"gaussianBlurResult\":\r\n filterOptions.blur = _number(attr.stdDeviation.value);\r\n break;\r\n case \"offsetResult\":\r\n filterOptions.offsetX = _number(attr.dx.value);\r\n filterOptions.offsetY = _number(attr.dy.value);\r\n break;\r\n case \"floodResult\":\r\n color = attr[\"flood-color\"] ? attr[\"flood-color\"].value : \"#000\";\r\n opacity = attr[\"flood-opacity\"] ? attr[\"flood-opacity\"].value : 1;\r\n filterOptions.color = hex2rgba(color, opacity)\r\n }\r\n }));\r\n return filterOptions\r\n}\r\n\r\nfunction asyncEach(array, callback) {\r\n var d = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : new Deferred;\r\n var i = 0;\r\n for (; i < array.length; i++) {\r\n var result = callback(array[i]);\r\n if (isPromise(result)) {\r\n result.then(() => {\r\n asyncEach(Array.prototype.slice.call(array, i + 1), callback, d)\r\n });\r\n break\r\n }\r\n }\r\n if (i === array.length) {\r\n d.resolve()\r\n }\r\n return d\r\n}\r\n\r\nfunction drawCanvasElements(elements, context, parentOptions, shared) {\r\n return asyncEach(elements, (function(element) {\r\n switch (element.tagName && element.tagName.toLowerCase()) {\r\n case \"g\":\r\n case \"svg\":\r\n var options = extend({}, parentOptions, getElementOptions(element, shared.rootAppended));\r\n context.save();\r\n transformElement(context, options);\r\n clipElement(context, options, shared);\r\n var onDone = () => {\r\n context.restore()\r\n };\r\n var d = drawCanvasElements(element.childNodes, context, options, shared);\r\n if (isPromise(d)) {\r\n d.then(onDone)\r\n } else {\r\n onDone()\r\n }\r\n return d;\r\n case \"defs\":\r\n return drawCanvasElements(element.childNodes, context, {}, shared);\r\n case \"clippath\":\r\n shared.clipPaths[element.attributes.id.textContent] = element.childNodes[0];\r\n break;\r\n case \"pattern\":\r\n shared.patterns[element.attributes.id.textContent] = element;\r\n break;\r\n case \"filter\":\r\n shared.filters[element.id] = createFilter(element);\r\n break;\r\n case \"lineargradient\":\r\n shared.gradients[element.attributes.id.textContent] = createGradient(element);\r\n break;\r\n default:\r\n return drawElement(element, context, parentOptions, shared)\r\n }\r\n }))\r\n}\r\n\r\nfunction setLineDash(context, options) {\r\n var matches = options[\"stroke-dasharray\"] && options[\"stroke-dasharray\"].match(/(\\d+)/g);\r\n if (matches && matches.length) {\r\n matches = _map(matches, (function(item) {\r\n return _number(item)\r\n }));\r\n context.setLineDash(matches)\r\n }\r\n}\r\n\r\nfunction strokeElement(context, options, isText) {\r\n var stroke = options.stroke;\r\n if (stroke && \"none\" !== stroke && 0 !== options[\"stroke-width\"]) {\r\n setLineDash(context, options);\r\n context.lineJoin = options[\"stroke-linejoin\"];\r\n context.lineWidth = options[\"stroke-width\"];\r\n context.globalAlpha = options.strokeOpacity;\r\n context.strokeStyle = stroke;\r\n isText ? context.strokeText(options.text, options.x, options.y) : context.stroke();\r\n context.globalAlpha = 1\r\n }\r\n}\r\n\r\nfunction getPattern(context, pattern, shared) {\r\n var options = getElementOptions(pattern, shared.rootAppended);\r\n var patternCanvas = imageCreator._createCanvas(options.width, options.height, 0);\r\n var patternContext = patternCanvas.getContext(\"2d\");\r\n drawCanvasElements(pattern.childNodes, patternContext, options, shared);\r\n return context.createPattern(patternCanvas, \"repeat\")\r\n}\r\n\r\nfunction fillElement(context, options, shared) {\r\n var fill = options.fill;\r\n if (fill && \"none\" !== fill) {\r\n if (-1 === fill.search(/url/)) {\r\n context.fillStyle = fill\r\n } else {\r\n var pattern = shared.patterns[parseUrl(fill)];\r\n if (!pattern) {\r\n return\r\n }\r\n context.fillStyle = getPattern(context, pattern, shared)\r\n }\r\n context.globalAlpha = options.fillOpacity;\r\n context.fill();\r\n context.globalAlpha = 1\r\n }\r\n}\r\nparseAttributes = function(attributes) {\r\n var newAttributes = {};\r\n var attr;\r\n _each(attributes, (function(index, item) {\r\n attr = item.textContent;\r\n if (isFinite(attr)) {\r\n attr = _number(attr)\r\n }\r\n newAttributes[item.name.toLowerCase()] = attr\r\n }));\r\n return newAttributes\r\n};\r\n\r\nfunction drawBackground(context, width, height, backgroundColor, margin) {\r\n context.fillStyle = backgroundColor || \"#ffffff\";\r\n context.fillRect(-margin, -margin, width + 2 * margin, height + 2 * margin)\r\n}\r\n\r\nfunction createInvisibleDiv() {\r\n var invisibleDiv = domAdapter.createElement(\"div\");\r\n invisibleDiv.style.left = \"-9999px\";\r\n invisibleDiv.style.position = \"absolute\";\r\n return invisibleDiv\r\n}\r\n\r\nfunction convertSvgToCanvas(svg, canvas, rootAppended) {\r\n return drawCanvasElements(svg.childNodes, canvas.getContext(\"2d\"), {}, {\r\n clipPaths: {},\r\n patterns: {},\r\n filters: {},\r\n gradients: {},\r\n rootAppended: rootAppended\r\n })\r\n}\r\n\r\nfunction getCanvasFromSvg(markup, _ref3) {\r\n var {\r\n width: width,\r\n height: height,\r\n backgroundColor: backgroundColor,\r\n margin: margin,\r\n svgToCanvas: svgToCanvas = convertSvgToCanvas\r\n } = _ref3;\r\n var scaledScreenInfo = calcScaledInfo(width, height);\r\n var canvas = imageCreator._createCanvas(scaledScreenInfo.width, scaledScreenInfo.height, margin);\r\n var context = canvas.getContext(\"2d\");\r\n context.setTransform(scaledScreenInfo.pixelRatio, 0, 0, scaledScreenInfo.pixelRatio, 0, 0);\r\n var svgElem = getSvgElement(markup);\r\n var invisibleDiv;\r\n var markupIsDomElement = domAdapter.isElementNode(markup);\r\n context.translate(margin, margin);\r\n domAdapter.getBody().appendChild(canvas);\r\n if (!markupIsDomElement) {\r\n invisibleDiv = createInvisibleDiv();\r\n invisibleDiv.appendChild(svgElem);\r\n domAdapter.getBody().appendChild(invisibleDiv)\r\n }\r\n if (svgElem.attributes.direction) {\r\n canvas.dir = svgElem.attributes.direction.textContent\r\n }\r\n drawBackground(context, width, height, backgroundColor, margin);\r\n return fromPromise(svgToCanvas(svgElem, canvas, markupIsDomElement && contains(domAdapter.getBody(), markup))).then(() => canvas).always(() => {\r\n invisibleDiv && domAdapter.getBody().removeChild(invisibleDiv);\r\n domAdapter.getBody().removeChild(canvas)\r\n })\r\n}\r\nexport var imageCreator = {\r\n getImageData: function(markup, options) {\r\n var mimeType = \"image/\" + options.format;\r\n if (isFunction(options.__parseAttributesFn)) {\r\n parseAttributes = options.__parseAttributesFn\r\n }\r\n return getCanvasFromSvg(markup, options).then(canvas => getStringFromCanvas(canvas, mimeType))\r\n },\r\n getData: function(markup, options) {\r\n var that = this;\r\n return imageCreator.getImageData(markup, options).then(binaryData => {\r\n var mimeType = \"image/\" + options.format;\r\n var data = isFunction(window.Blob) ? that._getBlob(binaryData, mimeType) : that._getBase64(binaryData);\r\n return data\r\n })\r\n },\r\n _getBlob: function(binaryData, mimeType) {\r\n var i;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (i = 0; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: mimeType\r\n })\r\n },\r\n _getBase64: function(binaryData) {\r\n return window.btoa(binaryData)\r\n },\r\n _createCanvas(width, height, margin) {\r\n var canvas = $(\"<canvas>\")[0];\r\n canvas.width = width + 2 * margin;\r\n canvas.height = height + 2 * margin;\r\n canvas.hidden = true;\r\n return canvas\r\n }\r\n};\r\nexport function getData(data, options) {\r\n return imageCreator.getData(data, options)\r\n}\r\nexport function testFormats(formats) {\r\n var canvas = imageCreator._createCanvas(100, 100, 0);\r\n return formats.reduce((function(r, f) {\r\n var mimeType = (\"image/\" + f).toLowerCase();\r\n if (-1 !== canvas.toDataURL(mimeType).indexOf(mimeType)) {\r\n r.supported.push(f)\r\n } else {\r\n r.unsupported.push(f)\r\n }\r\n return r\r\n }), {\r\n supported: [],\r\n unsupported: []\r\n })\r\n}\r\nexport function calcScaledInfo(width, height) {\r\n var pixelRatio = window.devicePixelRatio || 1;\r\n return {\r\n pixelRatio: pixelRatio,\r\n width: width * pixelRatio,\r\n height: height * pixelRatio\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/svg_creator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport ajax from \"../core/utils/ajax\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n getSvgElement,\r\n getSvgMarkup,\r\n HIDDEN_FOR_EXPORT\r\n} from \"../core/utils/svg\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nexport var svgCreator = {\r\n _markup: \"\",\r\n _imageArray: {},\r\n _imageDeferreds: [],\r\n _getBinaryFile: function(src, callback) {\r\n ajax.sendRequest({\r\n url: src,\r\n method: \"GET\",\r\n responseType: \"arraybuffer\"\r\n }).done(callback).fail((function() {\r\n callback(false)\r\n }))\r\n },\r\n _loadImages: function() {\r\n var that = this;\r\n each(that._imageArray, (function(src) {\r\n var deferred = new Deferred;\r\n that._imageDeferreds.push(deferred);\r\n that._getBinaryFile(src, (function(response) {\r\n if (!response) {\r\n delete that._imageArray[src];\r\n deferred.resolve();\r\n return\r\n }\r\n var i;\r\n var binary = \"\";\r\n var bytes = new Uint8Array(response);\r\n var length = bytes.byteLength;\r\n for (i = 0; i < length; i++) {\r\n binary += String.fromCharCode(bytes[i])\r\n }\r\n that._imageArray[src] = \"data:image/png;base64,\" + window.btoa(binary);\r\n deferred.resolve()\r\n }))\r\n }))\r\n },\r\n _parseImages: function(element) {\r\n var href;\r\n var that = this;\r\n if (\"image\" === element.tagName) {\r\n href = $(element).attr(\"href\") || $(element).attr(\"xlink:href\");\r\n if (!that._imageArray[href]) {\r\n that._imageArray[href] = \"\"\r\n }\r\n }\r\n each(element.childNodes, (function(_, element) {\r\n that._parseImages(element)\r\n }))\r\n },\r\n _prepareImages: function(svgElem) {\r\n this._parseImages(svgElem);\r\n this._loadImages();\r\n return when.apply($, this._imageDeferreds)\r\n },\r\n getData: function(data, options) {\r\n var markup;\r\n var that = this;\r\n var svgElem = getSvgElement(data);\r\n var $svgObject = $(svgElem);\r\n $svgObject.find(\"[\".concat(HIDDEN_FOR_EXPORT, \"]\")).remove();\r\n markup = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\" ?>' + getSvgMarkup($svgObject.get(0), options.backgroundColor);\r\n return that._prepareImages(svgElem).then(() => {\r\n each(that._imageArray, (function(href, dataURI) {\r\n var regexpString = \"href=['|\\\"]\".concat(href, \"['|\\\"]\");\r\n markup = markup.replace(new RegExp(regexpString, \"gi\"), 'href=\"'.concat(dataURI, '\"'))\r\n }));\r\n return isFunction(window.Blob) ? that._getBlob(markup) : that._getBase64(markup)\r\n })\r\n },\r\n _getBlob: function(markup) {\r\n return new window.Blob([markup], {\r\n type: \"image/svg+xml\"\r\n })\r\n },\r\n _getBase64: function(markup) {\r\n return window.btoa(markup)\r\n }\r\n};\r\nexport function getData(data, options) {\r\n return svgCreator.getData(data, options)\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter/pdf_creator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n version\r\n} from \"../core/version\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n imageCreator,\r\n calcScaledInfo\r\n} from \"./image_creator\";\r\nimport {\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nvar mainPageTemplate = \"%PDF-1.3\\r\\n2 0 obj\\r\\n<</ProcSet[/PDF/ImageB/ImageC/ImageI]/XObject<</I0 5 0 R>>>>\\r\\nendobj\\r\\n4 0 obj\\r\\n<</Type/Pages/Kids[1 0 R]/Count 1>>\\r\\nendobj\\r\\n7 0 obj\\r\\n<</OpenAction[1 0 R /FitH null]/Type/Catalog/Pages 4 0 R/PageLayout/OneColumn>>\\r\\nendobj\\r\\n1 0 obj\\r\\n<</Type/Page/Resources 2 0 R/MediaBox[0 0 _width_ _height_]/Contents 3 0 R/Parent 4 0 R>>\\r\\nendobj\\r\\n\";\r\nvar contentTemplate = \"3 0 obj\\r\\n<</Length 52>>stream\\r\\n0.20 w\\n0 G\\nq _width_ 0 0 _height_ 0.00 0.00 cm /I0 Do Q\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar infoTemplate = \"6 0 obj\\r\\n<</CreationDate _date_/Producer(DevExtreme _version_)>>\\r\\nendobj\\r\\n\";\r\nvar imageStartTemplate = \"5 0 obj\\r\\n<</Type/XObject/Subtype/Image/Width _width_/Height _height_/ColorSpace/DeviceRGB/BitsPerComponent 8/Filter/DCTDecode/Length _length_>>stream\\r\\n\";\r\nvar imageEndTemplate = \"\\r\\nendstream\\r\\nendobj\\r\\n\";\r\nvar trailerTemplate = \"trailer\\r\\n<<\\r\\n/Size 8\\r\\n/Root 7 0 R\\r\\n/Info 6 0 R\\r\\n>>\\r\\nstartxref\\r\\n_length_\\r\\n%%EOF\";\r\nvar xrefTemplate = \"xref\\r\\n0 8\\r\\n0000000000 65535 f\\r\\n0000000241 00000 n\\r\\n0000000010 00000 n\\r\\n_main_ 00000 n\\r\\n0000000089 00000 n\\r\\n_image_ 00000 n\\r\\n_info_ 00000 n\\r\\n0000000143 00000 n\\r\\n\";\r\nvar pad = function pad(str, len) {\r\n return str.length < len ? pad(\"0\" + str, len) : str\r\n};\r\nvar composePdfString = function(imageString, options, curDate) {\r\n var margin = 2 * (options.margin || 0);\r\n var {\r\n width: width,\r\n height: height\r\n } = calcScaledInfo(options.width, options.height);\r\n width += margin;\r\n height += margin;\r\n var widthPt = (.75 * width).toFixed(2);\r\n var heightPt = (.75 * height).toFixed(2);\r\n var mainPage = mainPageTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var content = contentTemplate.replace(\"_width_\", widthPt).replace(\"_height_\", heightPt);\r\n var info = infoTemplate.replace(\"_date_\", curDate).replace(\"_version_\", version);\r\n var image = imageStartTemplate.replace(\"_width_\", width).replace(\"_height_\", height).replace(\"_length_\", imageString.length) + imageString + imageEndTemplate;\r\n var xref = getXref(mainPage.length, content.length, info.length);\r\n var mainContent = mainPage + content + info + image;\r\n var trailer = trailerTemplate.replace(\"_length_\", mainContent.length);\r\n return mainContent + xref + trailer\r\n};\r\n\r\nfunction getXref(mainPageLength, contentLength, infoLength) {\r\n return xrefTemplate.replace(\"_main_\", pad(mainPageLength + \"\", 10)).replace(\"_info_\", pad(mainPageLength + contentLength + \"\", 10)).replace(\"_image_\", pad(mainPageLength + contentLength + infoLength + \"\", 10))\r\n}\r\nvar getCurDate = function() {\r\n return new Date\r\n};\r\nvar getBlob = function(binaryData) {\r\n var i = 0;\r\n var dataArray = new Uint8Array(binaryData.length);\r\n for (; i < binaryData.length; i++) {\r\n dataArray[i] = binaryData.charCodeAt(i)\r\n }\r\n return new window.Blob([dataArray.buffer], {\r\n type: \"application/pdf\"\r\n })\r\n};\r\nvar getBase64 = function(binaryData) {\r\n return window.btoa(binaryData)\r\n};\r\nexport function getData(data, options) {\r\n return imageCreator.getImageData(data, extend({}, options, {\r\n format: \"JPEG\"\r\n })).then(imageString => {\r\n var binaryData = composePdfString(imageString, options, getCurDate());\r\n var pdfData = isFunction(window.Blob) ? getBlob(binaryData) : getBase64(binaryData);\r\n return pdfData\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/exporter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fileSaver\r\n} from \"./exporter/file_saver\";\r\nimport {\r\n ExcelCreator,\r\n getData as getExcelData\r\n} from \"./exporter/excel_creator\";\r\nimport {\r\n imageCreator,\r\n testFormats,\r\n getData as getImageData\r\n} from \"./exporter/image_creator\";\r\nimport {\r\n svgCreator,\r\n getData as getSvgData\r\n} from \"./exporter/svg_creator\";\r\nimport {\r\n isFunction as _isFunction,\r\n isBoolean\r\n} from \"./core/utils/type\";\r\nimport {\r\n Deferred\r\n} from \"./core/utils/deferred\";\r\nimport formatConverter from \"./exporter/excel_format_converter\";\r\nimport {\r\n getData\r\n} from \"./exporter/pdf_creator\";\r\n\r\nfunction _export(data, options, getData) {\r\n if (!data) {\r\n return (new Deferred).resolve()\r\n }\r\n var exportingAction = options.exportingAction;\r\n var exportedAction = options.exportedAction;\r\n var fileSavingAction = options.fileSavingAction;\r\n var eventArgs = {\r\n fileName: options.fileName,\r\n format: options.format,\r\n cancel: false\r\n };\r\n if (isBoolean(options.selectedRowsOnly)) {\r\n eventArgs.selectedRowsOnly = options.selectedRowsOnly\r\n }\r\n _isFunction(exportingAction) && exportingAction(eventArgs);\r\n if (!eventArgs.cancel) {\r\n return getData(data, options).then(blob => {\r\n _isFunction(exportedAction) && exportedAction();\r\n if (_isFunction(fileSavingAction)) {\r\n eventArgs.data = blob;\r\n fileSavingAction(eventArgs)\r\n }\r\n if (!eventArgs.cancel) {\r\n var format = \"xlsx\" === options.format ? \"EXCEL\" : options.format;\r\n fileSaver.saveAs(eventArgs.fileName, format, blob)\r\n }\r\n })\r\n }\r\n return (new Deferred).resolve()\r\n}\r\nexport {\r\n _export as\r\n export, fileSaver\r\n};\r\nexport var excel = {\r\n creator: ExcelCreator,\r\n getData: getExcelData,\r\n formatConverter: formatConverter\r\n};\r\nexport var image = {\r\n creator: imageCreator,\r\n getData: getImageData,\r\n testFormats: testFormats\r\n};\r\nexport var pdf = {\r\n getData: getData\r\n};\r\nexport var svg = {\r\n creator: svgCreator,\r\n getData: getSvgData\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/button_group.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport Button from \"./button\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../core/utils/type\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar BUTTON_GROUP_WRAPPER_CLASS = BUTTON_GROUP_CLASS + \"-wrapper\";\r\nvar BUTTON_GROUP_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-item\";\r\nvar BUTTON_GROUP_FIRST_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-first-item\";\r\nvar BUTTON_GROUP_LAST_ITEM_CLASS = BUTTON_GROUP_CLASS + \"-last-item\";\r\nvar BUTTON_GROUP_ITEM_HAS_WIDTH = BUTTON_GROUP_ITEM_CLASS + \"-has-width\";\r\nvar SHAPE_STANDARD_CLASS = \"dx-shape-standard\";\r\nvar ButtonCollection = CollectionWidget.inherit({\r\n _initTemplates() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(($container, data, model) => {\r\n this._prepareItemStyles($container);\r\n var template = this.option(\"buttonTemplate\");\r\n this._createComponent($container, Button, extend({}, model, data, this._getBasicButtonOptions(), {\r\n _templateData: this._hasCustomTemplate(template) ? model : {},\r\n template: model.template || template\r\n }))\r\n }, [\"text\", \"type\", \"icon\", \"disabled\", \"visible\", \"hint\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _getBasicButtonOptions() {\r\n return {\r\n focusStateEnabled: false,\r\n onClick: null,\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n itemTemplateProperty: null\r\n })\r\n },\r\n _hasCustomTemplate(template) {\r\n return isFunction(template) || this.option(\"integrationOptions.templates\")[template]\r\n },\r\n _prepareItemStyles($item) {\r\n var itemIndex = $item.data(\"dxItemIndex\");\r\n 0 === itemIndex && $item.addClass(BUTTON_GROUP_FIRST_ITEM_CLASS);\r\n var items = this.option(\"items\");\r\n items && itemIndex === items.length - 1 && $item.addClass(BUTTON_GROUP_LAST_ITEM_CLASS);\r\n $item.addClass(SHAPE_STANDARD_CLASS)\r\n },\r\n _renderItemContent(args) {\r\n args.container = $(args.container).parent();\r\n return this.callBase(args)\r\n },\r\n _renderItemContentByNode: function(args, $node) {\r\n args.container = $(args.container.children().first());\r\n return this.callBase(args, $node)\r\n },\r\n _focusTarget() {\r\n return this.$element().parent()\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._focusTarget()\r\n },\r\n _refreshContent() {\r\n this._prepareContent();\r\n this._renderContent()\r\n },\r\n _itemClass: () => BUTTON_GROUP_ITEM_CLASS,\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n }\r\n});\r\nvar ButtonGroup = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n selectedItems: [],\r\n selectedItemKeys: [],\r\n stylingMode: \"contained\",\r\n keyExpr: \"text\",\r\n items: [],\r\n buttonTemplate: \"content\",\r\n onSelectionChanged: null,\r\n onItemClick: null\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._createItemClickAction()\r\n },\r\n _createItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initMarkup() {\r\n this.setAria(\"role\", \"group\");\r\n this.$element().addClass(BUTTON_GROUP_CLASS);\r\n this._renderButtons();\r\n this._syncSelectionOptions();\r\n this.callBase()\r\n },\r\n _fireSelectionChangeEvent: function(addedItems, removedItems) {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })({\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n _renderButtons() {\r\n var $buttons = $(\"<div>\").addClass(BUTTON_GROUP_WRAPPER_CLASS).appendTo(this.$element());\r\n var selectedItems = this.option(\"selectedItems\");\r\n var options = {\r\n selectionMode: this.option(\"selectionMode\"),\r\n items: this.option(\"items\"),\r\n keyExpr: this.option(\"keyExpr\"),\r\n buttonTemplate: this.option(\"buttonTemplate\"),\r\n scrollingEnabled: false,\r\n selectedItemKeys: this.option(\"selectedItemKeys\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n stylingMode: this.option(\"stylingMode\"),\r\n accessKey: this.option(\"accessKey\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n noDataText: \"\",\r\n selectionRequired: false,\r\n onItemRendered: e => {\r\n var width = this.option(\"width\");\r\n isDefined(width) && $(e.itemElement).addClass(BUTTON_GROUP_ITEM_HAS_WIDTH)\r\n },\r\n onSelectionChanged: e => {\r\n this._syncSelectionOptions();\r\n this._fireSelectionChangeEvent(e.addedItems, e.removedItems)\r\n },\r\n onItemClick: e => {\r\n this._itemClickAction(e)\r\n }\r\n };\r\n if (isDefined(selectedItems) && selectedItems.length) {\r\n options.selectedItems = selectedItems\r\n }\r\n this._buttonsCollection = this._createComponent($buttons, ButtonCollection, options)\r\n },\r\n _syncSelectionOptions() {\r\n this._setOptionWithoutOptionChange(\"selectedItems\", this._buttonsCollection.option(\"selectedItems\"));\r\n this._setOptionWithoutOptionChange(\"selectedItemKeys\", this._buttonsCollection.option(\"selectedItemKeys\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"stylingMode\":\r\n case \"selectionMode\":\r\n case \"keyExpr\":\r\n case \"buttonTemplate\":\r\n case \"items\":\r\n case \"activeStateEnabled\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n case \"tabIndex\":\r\n this._invalidate();\r\n break;\r\n case \"selectedItemKeys\":\r\n case \"selectedItems\":\r\n this._buttonsCollection.option(args.name, args.value);\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._buttonsCollection.itemElements().toggleClass(BUTTON_GROUP_ITEM_HAS_WIDTH, !!args.value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxButtonGroup\", ButtonGroup);\r\nexport default ButtonGroup;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_button.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Widget from \"./widget/ui.widget\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../core/templates/function_template\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport ButtonGroup from \"./button_group\";\r\nimport Popup from \"./popup/ui.popup\";\r\nimport List from \"./list_light\";\r\nimport {\r\n compileGetter\r\n} from \"../core/utils/data\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport DataHelperMixin from \"../data_helper\";\r\nimport {\r\n DataSource\r\n} from \"../data/data_source/data_source\";\r\nimport ArrayStore from \"../data/array_store\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../core/utils/common\";\r\nimport Guid from \"../core/guid\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"./drop_down_editor/utils\";\r\nimport messageLocalization from \"../localization/message\";\r\nvar DROP_DOWN_BUTTON_CLASS = \"dx-dropdownbutton\";\r\nvar DROP_DOWN_BUTTON_CONTENT = \"dx-dropdownbutton-content\";\r\nvar DROP_DOWN_BUTTON_ACTION_CLASS = \"dx-dropdownbutton-action\";\r\nvar DROP_DOWN_BUTTON_TOGGLE_CLASS = \"dx-dropdownbutton-toggle\";\r\nvar DROP_DOWN_BUTTON_HAS_ARROW_CLASS = \"dx-dropdownbutton-has-arrow\";\r\nvar DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS = \"dx-dropdownbutton-popup-wrapper\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar DX_BUTTON_TEXT_CLASS = \"dx-button-text\";\r\nvar DX_ICON_RIGHT_CLASS = \"dx-icon-right\";\r\nvar DropDownButton = Widget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n itemTemplate: \"item\",\r\n keyExpr: \"this\",\r\n displayExpr: void 0,\r\n selectedItem: null,\r\n selectedItemKey: null,\r\n stylingMode: \"outlined\",\r\n deferRendering: true,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n useSelectMode: false,\r\n splitButton: false,\r\n showArrowIcon: true,\r\n text: \"\",\r\n icon: void 0,\r\n onButtonClick: null,\r\n onSelectionChanged: null,\r\n onItemClick: null,\r\n opened: false,\r\n items: null,\r\n dataSource: null,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n dropDownOptions: {},\r\n dropDownContentTemplate: \"content\",\r\n wrapItemText: false,\r\n useItemTextAsTitle: true,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n buttonGroupOptions: {}\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n selectedItem: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._createItemClickAction();\r\n this._createActionClickAction();\r\n this._createSelectionChangedAction();\r\n this._initDataSource();\r\n this._compileKeyGetter();\r\n this._compileDisplayGetter();\r\n this._itemsToDataSource(this.option(\"items\"));\r\n this._options.cache(\"buttonGroupOptions\", this.option(\"buttonGroupOptions\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new FunctionTemplate(options => {\r\n var $popupContent = $(options.container);\r\n var $listContainer = $(\"<div>\").appendTo($popupContent);\r\n this._list = this._createComponent($listContainer, List, this._listOptions());\r\n this._list.registerKeyHandler(\"escape\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"tab\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"leftArrow\", this._escHandler.bind(this));\r\n this._list.registerKeyHandler(\"rightArrow\", this._escHandler.bind(this))\r\n })\r\n });\r\n this.callBase()\r\n },\r\n _itemsToDataSource: function(value) {\r\n if (!this._dataSource) {\r\n this._dataSource = new DataSource({\r\n store: new ArrayStore({\r\n key: this._getKey(),\r\n data: value\r\n }),\r\n pageSize: 0\r\n })\r\n }\r\n },\r\n _getKey: function() {\r\n var _this$_dataSource;\r\n var keyExpr = this.option(\"keyExpr\");\r\n var storeKey = null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : _this$_dataSource.key();\r\n return isDefined(storeKey) && (!isDefined(keyExpr) || \"this\" === keyExpr) ? storeKey : keyExpr\r\n },\r\n _compileKeyGetter() {\r\n this._keyGetter = compileGetter(this._getKey())\r\n },\r\n _compileDisplayGetter() {\r\n this._displayGetter = compileGetter(this.option(\"displayExpr\"))\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_BUTTON_CLASS);\r\n this._renderButtonGroup();\r\n this._updateArrowClass();\r\n if (isDefined(this.option(\"selectedItemKey\"))) {\r\n this._loadSelectedItem().done(this._updateActionButton.bind(this))\r\n }\r\n },\r\n _renderFocusTarget: noop,\r\n _render() {\r\n if (!this.option(\"deferRendering\") || this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n this.callBase()\r\n },\r\n _renderContentImpl() {\r\n if (this._popup) {\r\n this._renderPopupContent()\r\n }\r\n return this.callBase()\r\n },\r\n _loadSelectedItem() {\r\n var _this$_loadSingleDefe;\r\n null === (_this$_loadSingleDefe = this._loadSingleDeferred) || void 0 === _this$_loadSingleDefe ? void 0 : _this$_loadSingleDefe.reject();\r\n var d = new Deferred;\r\n if (this._list && void 0 !== this._lastSelectedItemData) {\r\n var cachedResult = this.option(\"useSelectMode\") ? this._list.option(\"selectedItem\") : this._lastSelectedItemData;\r\n return d.resolve(cachedResult)\r\n }\r\n this._lastSelectedItemData = void 0;\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._loadSingle(this._getKey(), selectedItemKey).done(d.resolve).fail(() => {\r\n d.resolve(null)\r\n });\r\n this._loadSingleDeferred = d;\r\n return d.promise()\r\n },\r\n _createActionClickAction() {\r\n this._actionClickAction = this._createActionByOption(\"onButtonClick\")\r\n },\r\n _createSelectionChangedAction() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\")\r\n },\r\n _createItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _fireSelectionChangedAction(_ref) {\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = _ref;\r\n this._selectionChangedAction({\r\n item: value,\r\n previousItem: previousValue\r\n })\r\n },\r\n _fireItemClickAction(_ref2) {\r\n var {\r\n event: event,\r\n itemElement: itemElement,\r\n itemData: itemData\r\n } = _ref2;\r\n return this._itemClickAction({\r\n event: event,\r\n itemElement: itemElement,\r\n itemData: this._actionItem || itemData\r\n })\r\n },\r\n _actionButtonConfig() {\r\n return {\r\n text: this.option(\"text\"),\r\n icon: this.option(\"icon\"),\r\n elementAttr: {\r\n class: DROP_DOWN_BUTTON_ACTION_CLASS\r\n }\r\n }\r\n },\r\n _getButtonGroupItems() {\r\n var items = [];\r\n items.push(this._actionButtonConfig());\r\n if (this.option(\"splitButton\")) {\r\n items.push({\r\n icon: \"spindown\",\r\n elementAttr: {\r\n class: DROP_DOWN_BUTTON_TOGGLE_CLASS\r\n }\r\n })\r\n }\r\n return items\r\n },\r\n _buttonGroupItemClick(_ref3) {\r\n var {\r\n event: event,\r\n itemData: itemData\r\n } = _ref3;\r\n var isActionButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_ACTION_CLASS;\r\n var isToggleButton = itemData.elementAttr.class === DROP_DOWN_BUTTON_TOGGLE_CLASS;\r\n if (isToggleButton) {\r\n this.toggle()\r\n } else if (isActionButton) {\r\n this._actionClickAction({\r\n event: event,\r\n selectedItem: this.option(\"selectedItem\")\r\n });\r\n if (!this.option(\"splitButton\")) {\r\n this.toggle()\r\n }\r\n }\r\n },\r\n _buttonGroupOptions() {\r\n var {\r\n splitButton: splitButton,\r\n showArrowIcon: showArrowIcon,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n stylingMode: stylingMode,\r\n accessKey: accessKey,\r\n tabIndex: tabIndex\r\n } = this.option();\r\n var buttonTemplate = splitButton || !showArrowIcon ? \"content\" : (_ref4, buttonContent) => {\r\n var {\r\n text: text,\r\n icon: icon\r\n } = _ref4;\r\n var $firstIcon = getImageContainer(icon);\r\n var $textContainer = text ? $(\"<span>\").text(text).addClass(DX_BUTTON_TEXT_CLASS) : void 0;\r\n var $secondIcon = getImageContainer(\"spindown\").addClass(DX_ICON_RIGHT_CLASS);\r\n $(buttonContent).append($firstIcon, $textContainer, $secondIcon)\r\n };\r\n return extend({\r\n items: this._getButtonGroupItems(),\r\n onItemClick: this._buttonGroupItemClick.bind(this),\r\n width: \"100%\",\r\n height: \"100%\",\r\n selectionMode: \"none\",\r\n onKeyboardHandled: e => this._keyboardHandler(e),\r\n buttonTemplate: buttonTemplate,\r\n focusStateEnabled: focusStateEnabled,\r\n hoverStateEnabled: hoverStateEnabled,\r\n stylingMode: stylingMode,\r\n accessKey: accessKey,\r\n tabIndex: tabIndex\r\n }, this._options.cache(\"buttonGroupOptions\"))\r\n },\r\n _renderPopupContent() {\r\n var $content = this._popup.$content();\r\n var template = this._getTemplateByOption(\"dropDownContentTemplate\");\r\n $content.empty();\r\n this._popupContentId = \"dx-\" + new Guid;\r\n this.setAria(\"id\", this._popupContentId, $content);\r\n return template.render({\r\n container: getPublicElement($content),\r\n model: this.option(\"items\") || this._dataSource\r\n })\r\n },\r\n _popupOptions() {\r\n var horizontalAlignment = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n return extend({\r\n dragEnabled: false,\r\n focusStateEnabled: false,\r\n deferRendering: this.option(\"deferRendering\"),\r\n hideOnOutsideClick: e => {\r\n var $element = this.$element();\r\n var $buttonClicked = $(e.target).closest(\".\".concat(DROP_DOWN_BUTTON_CLASS));\r\n return !$buttonClicked.is($element)\r\n },\r\n showTitle: false,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: \"auto\",\r\n shading: false,\r\n position: {\r\n of: this.$element(),\r\n collision: \"flipfit\",\r\n my: horizontalAlignment + \" top\",\r\n at: horizontalAlignment + \" bottom\"\r\n },\r\n _wrapperClassExternal: DROP_DOWN_EDITOR_OVERLAY_CLASS\r\n }, this._options.cache(\"dropDownOptions\"), {\r\n visible: this.option(\"opened\")\r\n })\r\n },\r\n _listOptions() {\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n var useSelectMode = this.option(\"useSelectMode\");\r\n return {\r\n selectionMode: useSelectMode ? \"single\" : \"none\",\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n useItemTextAsTitle: this.option(\"useItemTextAsTitle\"),\r\n onContentReady: () => this._fireContentReadyAction(),\r\n selectedItemKeys: isDefined(selectedItemKey) && useSelectMode ? [selectedItemKey] : [],\r\n grouped: this.option(\"grouped\"),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n keyExpr: this._getKey(),\r\n noDataText: this.option(\"noDataText\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n items: this.option(\"items\"),\r\n dataSource: this._dataSource,\r\n onItemClick: e => {\r\n if (!this.option(\"useSelectMode\")) {\r\n this._lastSelectedItemData = e.itemData\r\n }\r\n this.option(\"selectedItemKey\", this._keyGetter(e.itemData));\r\n var actionResult = this._fireItemClickAction(e);\r\n if (false !== actionResult) {\r\n this.toggle(false);\r\n this._buttonGroup.focus()\r\n }\r\n }\r\n }\r\n },\r\n _upDownKeyHandler() {\r\n if (this._popup && this._popup.option(\"visible\") && this._list) {\r\n this._list.focus()\r\n } else {\r\n this.open()\r\n }\r\n return true\r\n },\r\n _escHandler() {\r\n this.close();\r\n this._buttonGroup.focus();\r\n return true\r\n },\r\n _tabHandler() {\r\n this.close();\r\n return true\r\n },\r\n _renderPopup() {\r\n var $popup = $(\"<div>\");\r\n this.$element().append($popup);\r\n this._popup = this._createComponent($popup, Popup, this._popupOptions());\r\n this._popup.$content().addClass(DROP_DOWN_BUTTON_CONTENT);\r\n this._popup.$wrapper().addClass(DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS);\r\n this._popup.on(\"hiding\", this._popupHidingHandler.bind(this));\r\n this._popup.on(\"showing\", this._popupShowingHandler.bind(this));\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _popupHidingHandler() {\r\n this.option(\"opened\", false);\r\n this._setAriaExpanded(false)\r\n },\r\n _popupOptionChanged: function(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (-1 !== optionsKeys.indexOf(\"width\") || -1 !== optionsKeys.indexOf(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n var popupWidth = getSizeValue(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", () => getElementWidth(this.$element()))\r\n }\r\n },\r\n _setPopupOption: function(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _popupShowingHandler() {\r\n this.option(\"opened\", true);\r\n this._setAriaExpanded(true)\r\n },\r\n _setAriaExpanded(value) {\r\n this._ariaExpandedElements.forEach(ariaElement => {\r\n this.setAria({\r\n expanded: value,\r\n owns: value ? this._popupContentId : void 0\r\n }, $(ariaElement))\r\n })\r\n },\r\n _renderButtonGroup() {\r\n var $buttonGroup = this._buttonGroup && this._buttonGroup.$element() || $(\"<div>\");\r\n if (!this._buttonGroup) {\r\n this.$element().append($buttonGroup)\r\n }\r\n this._buttonGroup = this._createComponent($buttonGroup, ButtonGroup, this._buttonGroupOptions());\r\n var buttonElements = this._buttonGroup.$element().find(\".dx-button\").toArray();\r\n this._ariaExpandedElements = [...buttonElements, this.$element()];\r\n this._buttonGroup.registerKeyHandler(\"downArrow\", this._upDownKeyHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"tab\", this._tabHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"upArrow\", this._upDownKeyHandler.bind(this));\r\n this._buttonGroup.registerKeyHandler(\"escape\", this._escHandler.bind(this));\r\n this._bindInnerWidgetOptions(this._buttonGroup, \"buttonGroupOptions\");\r\n this._setAriaExpanded(this.option(\"opened\"))\r\n },\r\n _updateArrowClass() {\r\n var hasArrow = this.option(\"splitButton\") || this.option(\"showArrowIcon\");\r\n this.$element().toggleClass(DROP_DOWN_BUTTON_HAS_ARROW_CLASS, hasArrow)\r\n },\r\n toggle(visible) {\r\n if (!this._popup) {\r\n this._renderPopup();\r\n this._renderContent()\r\n }\r\n return this._popup.toggle(visible)\r\n },\r\n open() {\r\n return this.toggle(true)\r\n },\r\n close() {\r\n return this.toggle(false)\r\n },\r\n _setListOption(name, value) {\r\n this._list && this._list.option(name, value)\r\n },\r\n _getDisplayValue(item) {\r\n var isPrimitiveItem = !isPlainObject(item);\r\n var displayValue = isPrimitiveItem ? item : this._displayGetter(item);\r\n return !isPlainObject(displayValue) ? String(ensureDefined(displayValue, \"\")) : \"\"\r\n },\r\n _updateActionButton(selectedItem) {\r\n if (this.option(\"useSelectMode\")) {\r\n this.option({\r\n text: this._getDisplayValue(selectedItem),\r\n icon: isPlainObject(selectedItem) ? selectedItem.icon : void 0\r\n })\r\n }\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem);\r\n this._setOptionWithoutOptionChange(\"selectedItemKey\", this._keyGetter(selectedItem))\r\n },\r\n _clean() {\r\n this._list && this._list.$element().remove();\r\n this._popup && this._popup.$element().remove()\r\n },\r\n _selectedItemKeyChanged(value) {\r\n this._setListOption(\"selectedItemKeys\", this.option(\"useSelectMode\") && isDefined(value) ? [value] : []);\r\n var previousItem = this.option(\"selectedItem\");\r\n this._loadSelectedItem().done(selectedItem => {\r\n this._updateActionButton(selectedItem);\r\n if (this._displayGetter(previousItem) !== this._displayGetter(selectedItem)) {\r\n this._fireSelectionChangedAction({\r\n previousValue: previousItem,\r\n value: selectedItem\r\n })\r\n }\r\n })\r\n },\r\n _actionButtonOptionChanged(_ref5) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref5;\r\n var newConfig = {};\r\n newConfig[name] = value;\r\n this._buttonGroup.option(\"items[0]\", extend({}, this._actionButtonConfig(), newConfig));\r\n this._popup && this._popup.repaint()\r\n },\r\n _selectModeChanged(value) {\r\n if (value) {\r\n this._setListOption(\"selectionMode\", \"single\");\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._setListOption(\"selectedItemKeys\", isDefined(selectedItemKey) ? [selectedItemKey] : []);\r\n this._selectedItemKeyChanged(this.option(\"selectedItemKey\"))\r\n } else {\r\n this._setListOption(\"selectionMode\", \"none\");\r\n this.option({\r\n selectedItemKey: void 0,\r\n selectedItem: void 0\r\n });\r\n this._actionButtonOptionChanged({\r\n text: this.option(\"text\")\r\n })\r\n }\r\n },\r\n _updateItemCollection(optionName) {\r\n var selectedItemKey = this.option(\"selectedItemKey\");\r\n this._setListOption(\"selectedItem\", null);\r\n this._setWidgetOption(\"_list\", [optionName]);\r\n if (isDefined(selectedItemKey)) {\r\n this._loadSelectedItem().done(selectedItem => {\r\n this._setListOption(\"selectedItemKeys\", [selectedItemKey]);\r\n this._setListOption(\"selectedItem\", selectedItem)\r\n }).fail(error => {\r\n this._setListOption(\"selectedItemKeys\", [])\r\n }).always(this._updateActionButton.bind(this))\r\n }\r\n },\r\n _updateDataSource: function() {\r\n var items = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._dataSource.items();\r\n this._dataSource = void 0;\r\n this._itemsToDataSource(items);\r\n this._updateKeyExpr()\r\n },\r\n _updateKeyExpr: function() {\r\n this._compileKeyGetter();\r\n this._setListOption(\"keyExpr\", this._getKey())\r\n },\r\n focus: function() {\r\n this._buttonGroup.focus()\r\n },\r\n _optionChanged(args) {\r\n var _this$_popup;\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"useSelectMode\":\r\n this._selectModeChanged(value);\r\n break;\r\n case \"splitButton\":\r\n this._updateArrowClass();\r\n this._renderButtonGroup();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._setListOption(name, value);\r\n this._updateActionButton(this.option(\"selectedItem\"));\r\n break;\r\n case \"keyExpr\":\r\n this._updateDataSource();\r\n break;\r\n case \"buttonGroupOptions\":\r\n this._innerWidgetOptionChanged(this._buttonGroup, args);\r\n break;\r\n case \"dropDownOptions\":\r\n if (\"dropDownOptions.visible\" === args.fullName) {\r\n break\r\n }\r\n if (void 0 !== args.value.visible) {\r\n delete args.value.visible\r\n }\r\n this._popupOptionChanged(args);\r\n this._innerWidgetOptionChanged(this._popup, args);\r\n break;\r\n case \"opened\":\r\n this.toggle(value);\r\n break;\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setListOption(name, value);\r\n this._buttonGroup.option(name, value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._updateDataSource(this.option(\"items\"));\r\n this._updateItemCollection(name);\r\n break;\r\n case \"dataSource\":\r\n if (Array.isArray(value)) {\r\n this._updateDataSource(this.option(\"dataSource\"))\r\n } else {\r\n this._initDataSource();\r\n this._updateKeyExpr()\r\n }\r\n this._updateItemCollection(name);\r\n break;\r\n case \"icon\":\r\n case \"text\":\r\n this._actionButtonOptionChanged(args);\r\n break;\r\n case \"showArrowIcon\":\r\n this._updateArrowClass();\r\n this._renderButtonGroup();\r\n this._popup && this._popup.repaint();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.repaint();\r\n break;\r\n case \"stylingMode\":\r\n this._buttonGroup.option(name, value);\r\n break;\r\n case \"itemTemplate\":\r\n case \"grouped\":\r\n case \"noDataText\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"useItemTextAsTitle\":\r\n this._setListOption(name, value);\r\n break;\r\n case \"dropDownContentTemplate\":\r\n this._renderContent();\r\n break;\r\n case \"selectedItemKey\":\r\n this._selectedItemKeyChanged(value);\r\n break;\r\n case \"selectedItem\":\r\n break;\r\n case \"onItemClick\":\r\n this._createItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._createActionClickAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._createSelectionChangedAction();\r\n break;\r\n case \"deferRendering\":\r\n this.toggle(this.option(\"opened\"));\r\n break;\r\n case \"tabIndex\":\r\n this._buttonGroup.option(name, value);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataHelperMixin);\r\nregisterComponent(\"dxDropDownButton\", DropDownButton);\r\nexport default DropDownButton;\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.export.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport dataGridCore from \"./ui.data_grid.core\";\r\nimport {\r\n prepareItems\r\n} from \"../grid_core/ui.grid_core.export\";\r\nimport {\r\n export as clientExport,\r\n excel\r\n} from \"../../exporter\";\r\nimport {\r\n format\r\n} from \"../../core/utils/string\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport \"../button\";\r\nimport \"../drop_down_button\";\r\nimport List from \"../list_light\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DATAGRID_EXPORT_MENU_CLASS = \"dx-datagrid-export-menu\";\r\nvar DATAGRID_EXPORT_BUTTON_CLASS = \"dx-datagrid-export-button\";\r\nvar DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME = \"exportButton\";\r\nvar DATAGRID_EXPORT_ICON = \"export\";\r\nvar DATAGRID_EXPORT_EXCEL_ICON = \"xlsxfile\";\r\nvar DATAGRID_EXPORT_SELECTED_ICON = \"exportselected\";\r\nvar DATAGRID_PDF_EXPORT_ICON = \"pdffile\";\r\nexport var DataProvider = Class.inherit({\r\n ctor: function(exportController, initialColumnWidthsByColumnIndex, selectedRowsOnly) {\r\n this._exportController = exportController;\r\n this._initialColumnWidthsByColumnIndex = initialColumnWidthsByColumnIndex;\r\n this._selectedRowsOnly = selectedRowsOnly\r\n },\r\n _getGroupValue: function(item) {\r\n var {\r\n key: key,\r\n data: data,\r\n rowType: rowType,\r\n groupIndex: groupIndex,\r\n summaryCells: summaryCells\r\n } = item;\r\n var groupColumn = this._options.groupColumns[groupIndex];\r\n var value = dataGridCore.getDisplayValue(groupColumn, groupColumn.deserializeValue ? groupColumn.deserializeValue(key[groupIndex]) : key[groupIndex], data, rowType);\r\n var result = groupColumn.caption + \": \" + dataGridCore.formatValue(value, groupColumn);\r\n if (summaryCells && summaryCells[0] && summaryCells[0].length) {\r\n result += \" \" + dataGridCore.getGroupRowSummaryText(summaryCells[0], this._options.summaryTexts)\r\n }\r\n return result\r\n },\r\n _correctCellIndex: function(cellIndex) {\r\n return cellIndex\r\n },\r\n _initOptions: function() {\r\n var exportController = this._exportController;\r\n var groupColumns = exportController._columnsController.getGroupColumns();\r\n var excelWrapTextEnabled = exportController.option(\"export.excelWrapTextEnabled\");\r\n this._options = {\r\n columns: exportController._getColumns(this._initialColumnWidthsByColumnIndex),\r\n groupColumns: groupColumns,\r\n items: this._selectedRowsOnly || exportController._selectionOnly ? exportController._getSelectedItems() : exportController._getAllItems(),\r\n getVisibleIndex: exportController._columnsController.getVisibleIndex.bind(exportController._columnsController),\r\n isHeadersVisible: exportController.option(\"showColumnHeaders\"),\r\n summaryTexts: exportController.option(\"summary.texts\"),\r\n customizeExportData: exportController.option(\"customizeExportData\"),\r\n rtlEnabled: exportController.option(\"rtlEnabled\"),\r\n wrapTextEnabled: isDefined(excelWrapTextEnabled) ? excelWrapTextEnabled : !!exportController.option(\"wordWrapEnabled\"),\r\n customizeExcelCell: exportController.option(\"export.customizeExcelCell\")\r\n }\r\n },\r\n hasCustomizeExcelCell: function() {\r\n return isDefined(this._options.customizeExcelCell)\r\n },\r\n customizeExcelCell: function(e, cellSourceData) {\r\n if (this._options.customizeExcelCell) {\r\n e.gridCell = cellSourceData;\r\n if (isDefined(this._exportController) && isDefined(this._exportController.component)) {\r\n e.component = this._exportController.component\r\n }\r\n this._options.customizeExcelCell(e)\r\n }\r\n },\r\n getHeaderStyles: () => [{\r\n bold: true,\r\n alignment: \"center\",\r\n wrapText: true\r\n }, {\r\n bold: true,\r\n alignment: \"left\",\r\n wrapText: true\r\n }, {\r\n bold: true,\r\n alignment: \"right\",\r\n wrapText: true\r\n }],\r\n getGroupRowStyle() {\r\n return {\r\n bold: true,\r\n wrapText: false,\r\n alignment: getDefaultAlignment(this._options.rtlEnabled)\r\n }\r\n },\r\n getColumnStyles() {\r\n var wrapTextEnabled = this._options.wrapTextEnabled;\r\n var columnStyles = [];\r\n this.getColumns().forEach(column => {\r\n columnStyles.push({\r\n alignment: column.alignment || \"left\",\r\n format: column.format,\r\n wrapText: wrapTextEnabled,\r\n dataType: column.dataType\r\n })\r\n });\r\n return columnStyles\r\n },\r\n getStyles: function() {\r\n return [...this.getHeaderStyles(), ...this.getColumnStyles(), this.getGroupRowStyle()]\r\n },\r\n _getTotalCellStyleId: function(cellIndex) {\r\n var _this$getColumns$cell;\r\n var alignment = (null === (_this$getColumns$cell = this.getColumns()[cellIndex]) || void 0 === _this$getColumns$cell ? void 0 : _this$getColumns$cell.alignment) || \"right\";\r\n return this.getHeaderStyles().map(style => style.alignment).indexOf(alignment)\r\n },\r\n getStyleId: function(rowIndex, cellIndex) {\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n return 0\r\n } else if (this.isTotalCell(rowIndex - this.getHeaderRowCount(), cellIndex)) {\r\n return this._getTotalCellStyleId(cellIndex)\r\n } else if (this.isGroupRow(rowIndex - this.getHeaderRowCount())) {\r\n return this.getHeaderStyles().length + this.getColumns().length\r\n } else {\r\n return cellIndex + this.getHeaderStyles().length\r\n }\r\n },\r\n getColumns: function(getColumnsByAllRows) {\r\n var {\r\n columns: columns\r\n } = this._options;\r\n return getColumnsByAllRows ? columns : columns[columns.length - 1]\r\n },\r\n getColumnsWidths: function() {\r\n var columns = this.getColumns();\r\n return isDefined(columns) ? columns.map(c => c.width) : void 0\r\n },\r\n getRowsCount: function() {\r\n return this._options.items.length + this.getHeaderRowCount()\r\n },\r\n getHeaderRowCount: function() {\r\n if (this.isHeadersVisible()) {\r\n return this._options.columns.length - 1\r\n }\r\n return 0\r\n },\r\n isGroupRow: function(rowIndex) {\r\n return rowIndex < this._options.items.length && \"group\" === this._options.items[rowIndex].rowType\r\n },\r\n getGroupLevel: function(rowIndex) {\r\n var item = this._options.items[rowIndex - this.getHeaderRowCount()];\r\n var groupIndex = item && item.groupIndex;\r\n if (item && \"totalFooter\" === item.rowType) {\r\n return 0\r\n }\r\n return isDefined(groupIndex) ? groupIndex : this._options.groupColumns.length\r\n },\r\n getCellType: function(rowIndex, cellIndex) {\r\n var columns = this.getColumns();\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n return \"string\"\r\n } else {\r\n rowIndex -= this.getHeaderRowCount()\r\n }\r\n if (cellIndex < columns.length) {\r\n var item = this._options.items.length && this._options.items[rowIndex];\r\n var column = columns[cellIndex];\r\n if (item && \"data\" === item.rowType) {\r\n if (isFinite(item.values[this._correctCellIndex(cellIndex)]) && !isDefined(column.customizeText)) {\r\n return isDefined(column.lookup) ? column.lookup.dataType : column.dataType\r\n }\r\n }\r\n return \"string\"\r\n }\r\n },\r\n ready: function() {\r\n var that = this;\r\n that._initOptions();\r\n var options = that._options;\r\n return when(options.items).done((function(items) {\r\n options.customizeExportData && options.customizeExportData(that.getColumns(that.getHeaderRowCount() > 1), items);\r\n options.items = items\r\n })).fail((function() {\r\n options.items = []\r\n }))\r\n },\r\n _convertFromGridGroupSummaryItems: function(gridGroupSummaryItems) {\r\n if (isDefined(gridGroupSummaryItems) && gridGroupSummaryItems.length > 0) {\r\n return gridGroupSummaryItems.map((function(item) {\r\n return {\r\n value: item.value,\r\n name: item.name\r\n }\r\n }))\r\n }\r\n },\r\n getCellData: function(rowIndex, cellIndex, isExcelJS) {\r\n var value;\r\n var column;\r\n var result = {\r\n cellSourceData: {},\r\n value: value\r\n };\r\n var columns = this.getColumns();\r\n var correctedCellIndex = this._correctCellIndex(cellIndex);\r\n if (rowIndex < this.getHeaderRowCount()) {\r\n var columnsRow = this.getColumns(true)[rowIndex];\r\n column = columnsRow[cellIndex];\r\n result.cellSourceData.rowType = \"header\";\r\n result.cellSourceData.column = column && column.gridColumn;\r\n result.value = column && column.caption\r\n } else {\r\n rowIndex -= this.getHeaderRowCount();\r\n var item = this._options.items.length && this._options.items[rowIndex];\r\n if (item) {\r\n var itemValues = item.values;\r\n result.cellSourceData.rowType = item.rowType;\r\n result.cellSourceData.column = columns[cellIndex] && columns[cellIndex].gridColumn;\r\n switch (item.rowType) {\r\n case \"groupFooter\":\r\n case \"totalFooter\":\r\n if (correctedCellIndex < itemValues.length) {\r\n value = itemValues[correctedCellIndex];\r\n if (isDefined(value)) {\r\n result.cellSourceData.value = value.value;\r\n result.cellSourceData.totalSummaryItemName = value.name;\r\n result.value = dataGridCore.getSummaryText(value, this._options.summaryTexts)\r\n } else {\r\n result.cellSourceData.value = void 0\r\n }\r\n }\r\n break;\r\n case \"group\":\r\n result.cellSourceData.groupIndex = item.groupIndex;\r\n if (cellIndex < 1) {\r\n result.cellSourceData.column = this._options.groupColumns[item.groupIndex];\r\n result.cellSourceData.value = item.key[item.groupIndex];\r\n result.cellSourceData.groupSummaryItems = this._convertFromGridGroupSummaryItems(item.summaryCells[0]);\r\n result.value = this._getGroupValue(item)\r\n } else {\r\n var summaryItems = item.values[correctedCellIndex];\r\n if (Array.isArray(summaryItems)) {\r\n result.cellSourceData.groupSummaryItems = this._convertFromGridGroupSummaryItems(summaryItems);\r\n value = \"\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n value += (i > 0 ? isExcelJS ? \"\\n\" : \" \\n \" : \"\") + dataGridCore.getSummaryText(summaryItems[i], this._options.summaryTexts)\r\n }\r\n result.value = value\r\n } else {\r\n result.cellSourceData.value = void 0\r\n }\r\n }\r\n break;\r\n default:\r\n column = columns[cellIndex];\r\n if (column) {\r\n var _value = itemValues[correctedCellIndex];\r\n var displayValue = dataGridCore.getDisplayValue(column, _value, item.data, item.rowType);\r\n if (!isFinite(displayValue) || isDefined(column.customizeText)) {\r\n if (isExcelJS && isDefined(column.customizeText) && column.customizeText === this._exportController._columnsController.getCustomizeTextByDataType(\"boolean\")) {\r\n result.value = displayValue\r\n } else {\r\n result.value = dataGridCore.formatValue(displayValue, column)\r\n }\r\n } else {\r\n result.value = displayValue\r\n }\r\n result.cellSourceData.value = _value\r\n }\r\n result.cellSourceData.data = item.data\r\n }\r\n }\r\n }\r\n return result\r\n },\r\n isHeadersVisible: function() {\r\n return this._options.isHeadersVisible\r\n },\r\n isTotalCell: function(rowIndex, cellIndex) {\r\n var items = this._options.items;\r\n var item = items[rowIndex];\r\n var correctCellIndex = this._correctCellIndex(cellIndex);\r\n var isSummaryAlignByColumn = item.summaryCells && item.summaryCells[correctCellIndex] && item.summaryCells[correctCellIndex].length > 0 && item.summaryCells[correctCellIndex][0].alignByColumn;\r\n return item && \"groupFooter\" === item.rowType || \"totalFooter\" === item.rowType || isSummaryAlignByColumn\r\n },\r\n getCellMerging: function(rowIndex, cellIndex) {\r\n var columns = this._options.columns;\r\n var column = columns[rowIndex] && columns[rowIndex][cellIndex];\r\n return column ? {\r\n colspan: (column.exportColspan || 1) - 1,\r\n rowspan: (column.rowspan || 1) - 1\r\n } : {\r\n colspan: 0,\r\n rowspan: 0\r\n }\r\n },\r\n getFrozenArea: function() {\r\n return {\r\n x: 0,\r\n y: this.getHeaderRowCount()\r\n }\r\n }\r\n});\r\nexport var ExportController = dataGridCore.ViewController.inherit({}).inherit({\r\n _getEmptyCell: function() {\r\n return {\r\n caption: \"\",\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n },\r\n _updateColumnWidth: function(column, width) {\r\n column.width = width\r\n },\r\n _getColumns: function(initialColumnWidthsByColumnIndex) {\r\n var result = [];\r\n var i;\r\n var columns;\r\n var columnsController = this._columnsController;\r\n var rowCount = columnsController.getRowCount();\r\n for (i = 0; i <= rowCount; i++) {\r\n var currentHeaderRow = [];\r\n columns = columnsController.getVisibleColumns(i, true);\r\n var columnWidthsByColumnIndex = void 0;\r\n if (i === rowCount) {\r\n if (this._updateLockCount) {\r\n columnWidthsByColumnIndex = initialColumnWidthsByColumnIndex\r\n } else {\r\n var columnWidths = this._getColumnWidths(this._headersView, this._rowsView);\r\n if (columnWidths && columnWidths.length) {\r\n columnWidthsByColumnIndex = {};\r\n for (var _i = 0; _i < columns.length; _i++) {\r\n columnWidthsByColumnIndex[columns[_i].index] = columnWidths[_i]\r\n }\r\n }\r\n }\r\n }\r\n for (var j = 0; j < columns.length; j++) {\r\n var column = extend({}, columns[j], {\r\n dataType: \"datetime\" === columns[j].dataType ? \"date\" : columns[j].dataType,\r\n gridColumn: columns[j]\r\n });\r\n if (this._needColumnExporting(column)) {\r\n var currentColspan = this._calculateExportColspan(column);\r\n if (isDefined(currentColspan)) {\r\n column.exportColspan = currentColspan\r\n }\r\n if (columnWidthsByColumnIndex) {\r\n this._updateColumnWidth(column, columnWidthsByColumnIndex[column.index])\r\n }\r\n currentHeaderRow.push(column)\r\n }\r\n }\r\n result.push(currentHeaderRow)\r\n }\r\n columns = result[rowCount];\r\n result = prepareItems(result.slice(0, -1), this._getEmptyCell());\r\n result.push(columns);\r\n return result\r\n },\r\n _calculateExportColspan: function(column) {\r\n if (!column.isBand) {\r\n return\r\n }\r\n var childColumns = this._columnsController.getChildrenByBandColumn(column.index, true);\r\n if (!isDefined(childColumns)) {\r\n return\r\n }\r\n return childColumns.reduce((result, childColumn) => {\r\n if (this._needColumnExporting(childColumn)) {\r\n return result + (this._calculateExportColspan(childColumn) || 1)\r\n } else {\r\n return result\r\n }\r\n }, 0)\r\n },\r\n _needColumnExporting: function(column) {\r\n return !column.command && (column.allowExporting || void 0 === column.allowExporting)\r\n },\r\n _getFooterSummaryItems: function(summaryCells, isTotal) {\r\n var result = [];\r\n var estimatedItemsCount = 1;\r\n var i = 0;\r\n do {\r\n var values = [];\r\n for (var j = 0; j < summaryCells.length; j++) {\r\n var summaryCell = summaryCells[j];\r\n var itemsLength = summaryCell.length;\r\n if (estimatedItemsCount < itemsLength) {\r\n estimatedItemsCount = itemsLength\r\n }\r\n values.push(summaryCell[i])\r\n }\r\n result.push({\r\n values: values,\r\n rowType: isTotal ? \"totalFooter\" : \"groupFooter\"\r\n })\r\n } while (i++ < estimatedItemsCount - 1);\r\n return result\r\n },\r\n _hasSummaryGroupFooters: function() {\r\n var groupItems = this.option(\"summary.groupItems\");\r\n if (isDefined(groupItems)) {\r\n for (var i = 0; i < groupItems.length; i++) {\r\n if (groupItems[i].showInGroupFooter) {\r\n return true\r\n }\r\n }\r\n }\r\n return false\r\n },\r\n _getItemsWithSummaryGroupFooters: function(sourceItems) {\r\n var result = [];\r\n var beforeGroupFooterItems = [];\r\n var groupFooterItems = [];\r\n for (var i = 0; i < sourceItems.length; i++) {\r\n var item = sourceItems[i];\r\n if (\"groupFooter\" === item.rowType) {\r\n groupFooterItems = this._getFooterSummaryItems(item.summaryCells);\r\n result = result.concat(beforeGroupFooterItems, groupFooterItems);\r\n beforeGroupFooterItems = []\r\n } else {\r\n beforeGroupFooterItems.push(item)\r\n }\r\n }\r\n return result.length ? result : beforeGroupFooterItems\r\n },\r\n _updateGroupValuesWithSummaryByColumn: function(sourceItems) {\r\n var summaryValues = [];\r\n for (var i = 0; i < sourceItems.length; i++) {\r\n var item = sourceItems[i];\r\n var summaryCells = item.summaryCells;\r\n if (\"group\" === item.rowType && summaryCells && summaryCells.length > 1) {\r\n var groupColumnCount = item.values.length;\r\n for (var j = 1; j < summaryCells.length; j++) {\r\n for (var k = 0; k < summaryCells[j].length; k++) {\r\n var summaryItem = summaryCells[j][k];\r\n if (summaryItem && summaryItem.alignByColumn) {\r\n if (!Array.isArray(summaryValues[j - groupColumnCount])) {\r\n summaryValues[j - groupColumnCount] = []\r\n }\r\n summaryValues[j - groupColumnCount].push(summaryItem)\r\n }\r\n }\r\n }\r\n if (summaryValues.length > 0) {\r\n item.values.push(...summaryValues);\r\n summaryValues = []\r\n }\r\n }\r\n }\r\n },\r\n _processUnExportedItems: function(items) {\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var groupColumns = this._columnsController.getGroupColumns();\r\n var values;\r\n var summaryCells;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var isDetailExpandColumn = false;\r\n values = [];\r\n summaryCells = [];\r\n for (var j = 0; j < columns.length; j++) {\r\n var column = columns[j];\r\n isDetailExpandColumn = isDetailExpandColumn || \"detailExpand\" === column.type;\r\n if (this._needColumnExporting(column)) {\r\n if (item.values) {\r\n if (\"group\" === item.rowType && !values.length) {\r\n values.push(item.key[item.groupIndex])\r\n } else {\r\n values.push(item.values[j])\r\n }\r\n }\r\n if (item.summaryCells) {\r\n if (\"group\" === item.rowType && !summaryCells.length) {\r\n var index = j - groupColumns.length + item.groupIndex;\r\n summaryCells.push(item.summaryCells[isDetailExpandColumn ? index : index + 1])\r\n } else {\r\n summaryCells.push(item.summaryCells[j])\r\n }\r\n }\r\n }\r\n }\r\n if (values.length) {\r\n item.values = values\r\n }\r\n if (summaryCells.length) {\r\n item.summaryCells = summaryCells\r\n }\r\n }\r\n },\r\n _getAllItems: function(data) {\r\n var that = this;\r\n var d = new Deferred;\r\n var dataController = this.getController(\"data\");\r\n var footerItems = dataController.footerItems();\r\n var totalItem = footerItems.length && footerItems[0];\r\n var summaryTotalItems = that.option(\"summary.totalItems\");\r\n var summaryCells;\r\n when(data).done((function(data) {\r\n dataController.loadAll(data).done((function(sourceItems, totalAggregates) {\r\n that._updateGroupValuesWithSummaryByColumn(sourceItems);\r\n if (that._hasSummaryGroupFooters()) {\r\n sourceItems = that._getItemsWithSummaryGroupFooters(sourceItems)\r\n }\r\n summaryCells = totalItem && totalItem.summaryCells;\r\n if (isDefined(totalAggregates) && summaryTotalItems) {\r\n summaryCells = that._getSummaryCells(summaryTotalItems, totalAggregates)\r\n }\r\n var summaryItems = totalItem && that._getFooterSummaryItems(summaryCells, true);\r\n if (summaryItems) {\r\n sourceItems = sourceItems.concat(summaryItems)\r\n }\r\n that._processUnExportedItems(sourceItems);\r\n d.resolve(sourceItems)\r\n })).fail(d.reject)\r\n })).fail(d.reject);\r\n return d\r\n },\r\n _getSummaryCells: function(summaryTotalItems, totalAggregates) {\r\n var dataController = this.getController(\"data\");\r\n var columnsController = dataController._columnsController;\r\n return dataController._calculateSummaryCells(summaryTotalItems, totalAggregates, columnsController.getVisibleColumns(null, true), (function(summaryItem, column) {\r\n return dataController._isDataColumn(column) ? column.index : -1\r\n }))\r\n },\r\n _getSelectedItems: function() {\r\n var selectionController = this.getController(\"selection\");\r\n var selectedRowData = selectionController.getSelectedRowsData();\r\n return this._getAllItems(selectedRowData)\r\n },\r\n _getColumnWidths: function(headersView, rowsView) {\r\n return headersView && headersView.isVisible() ? headersView.getColumnWidths() : rowsView.getColumnWidths()\r\n },\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._headersView = this.getView(\"columnHeadersView\");\r\n this.createAction(\"onExporting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onExported\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFileSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n callbackNames: function() {\r\n return [\"selectionOnlyChanged\"]\r\n },\r\n getDataProvider: function(selectedRowsOnly) {\r\n var columnWidths = this._getColumnWidths(this._headersView, this._rowsView);\r\n var initialColumnWidthsByColumnIndex;\r\n if (columnWidths && columnWidths.length) {\r\n initialColumnWidthsByColumnIndex = {};\r\n var columnsLastRowVisibleColumns = this._columnsController.getVisibleColumns(this._columnsController.getRowCount(), true);\r\n for (var i = 0; i < columnsLastRowVisibleColumns.length; i++) {\r\n initialColumnWidthsByColumnIndex[columnsLastRowVisibleColumns[i].index] = columnWidths[i]\r\n }\r\n }\r\n return new DataProvider(this, initialColumnWidthsByColumnIndex, selectedRowsOnly)\r\n },\r\n exportToExcel: function(selectedRowsOnly) {\r\n this._selectionOnly = selectedRowsOnly;\r\n clientExport(this.component.getDataProvider(), {\r\n fileName: this.option(\"export.fileName\"),\r\n format: \"xlsx\",\r\n selectedRowsOnly: !!selectedRowsOnly,\r\n autoFilterEnabled: !!this.option(\"export.excelFilterEnabled\"),\r\n rtlEnabled: this.option(\"rtlEnabled\"),\r\n exportingAction: this.getAction(\"onExporting\"),\r\n exportedAction: this.getAction(\"onExported\"),\r\n fileSavingAction: this.getAction(\"onFileSaving\")\r\n }, excel.getData)\r\n },\r\n exportTo: function(selectedRowsOnly, format) {\r\n this._selectionOnly = selectedRowsOnly;\r\n var onExporting = this.getAction(\"onExporting\");\r\n var eventArgs = {\r\n selectedRowsOnly: !!selectedRowsOnly,\r\n format: format,\r\n fileName: this.option(\"export.fileName\"),\r\n cancel: false\r\n };\r\n isFunction(onExporting) && onExporting(eventArgs)\r\n },\r\n publicMethods: function() {\r\n return [\"getDataProvider\", \"exportToExcel\"]\r\n },\r\n selectionOnly: function(value) {\r\n if (isDefined(value)) {\r\n this._isSelectedRows = value;\r\n this.selectionOnlyChanged.fire()\r\n } else {\r\n return this._isSelectedRows\r\n }\r\n }\r\n});\r\ndataGridCore.registerModule(\"export\", {\r\n defaultOptions: function() {\r\n return {\r\n export: {\r\n enabled: false,\r\n fileName: \"DataGrid\",\r\n excelFilterEnabled: false,\r\n formats: [\"xlsx\"],\r\n excelWrapTextEnabled: void 0,\r\n allowExportSelectedData: false,\r\n texts: {\r\n exportTo: messageLocalization.format(\"dxDataGrid-exportTo\"),\r\n exportAll: messageLocalization.format(\"dxDataGrid-exportAll\"),\r\n exportSelectedRows: messageLocalization.format(\"dxDataGrid-exportSelectedRows\")\r\n }\r\n }\r\n }\r\n },\r\n controllers: {\r\n export: ExportController\r\n },\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n callbackNames: function() {\r\n var callbackList = this.callBase();\r\n return isDefined(callbackList) ? callbackList.push(\"editingChanged\") : [\"editingChanged\"]\r\n },\r\n _updateEditButtons: function() {\r\n this.callBase();\r\n this.editingChanged.fire(this.hasChanges())\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n var exportButton = this._getExportToolbarButton();\r\n if (exportButton) {\r\n items.push(exportButton);\r\n this._correctItemsPosition(items)\r\n }\r\n return items\r\n },\r\n _getExportToolbarButton: function() {\r\n var items = this._getExportToolbarItems();\r\n if (0 === items.length) {\r\n return null\r\n }\r\n var toolbarButtonOptions = {\r\n name: DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME,\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 30,\r\n options: {\r\n items: items\r\n }\r\n };\r\n if (1 === items.length) {\r\n var widgetOptions = _extends({}, items[0], {\r\n hint: items[0].text,\r\n elementAttr: {\r\n class: DATAGRID_EXPORT_BUTTON_CLASS\r\n }\r\n });\r\n toolbarButtonOptions.widget = \"dxButton\";\r\n toolbarButtonOptions.showText = \"inMenu\";\r\n toolbarButtonOptions.options = widgetOptions\r\n } else {\r\n var _widgetOptions = {\r\n icon: DATAGRID_EXPORT_ICON,\r\n displayExpr: \"text\",\r\n items: items,\r\n hint: this.option(\"export.texts.exportTo\"),\r\n elementAttr: {\r\n class: DATAGRID_EXPORT_BUTTON_CLASS\r\n },\r\n dropDownOptions: {\r\n width: \"auto\",\r\n _wrapperClassExternal: DATAGRID_EXPORT_MENU_CLASS\r\n }\r\n };\r\n toolbarButtonOptions.options = _widgetOptions;\r\n toolbarButtonOptions.widget = \"dxDropDownButton\";\r\n toolbarButtonOptions.menuItemTemplate = (_data, _index, container) => {\r\n this._createComponent($(container), List, {\r\n items: items\r\n })\r\n }\r\n }\r\n return toolbarButtonOptions\r\n },\r\n _getExportToolbarItems: function() {\r\n var _this$option;\r\n var exportOptions = this.option(\"export\");\r\n var texts = this.option(\"export.texts\");\r\n var formats = null !== (_this$option = this.option(\"export.formats\")) && void 0 !== _this$option ? _this$option : [];\r\n if (!exportOptions.enabled) {\r\n return []\r\n }\r\n var items = [];\r\n formats.forEach(formatType => {\r\n var exportMethod = \"exportTo\";\r\n var formatName = formatType.toUpperCase();\r\n var exportAllIcon = DATAGRID_EXPORT_ICON;\r\n var exportSelectedIcon = DATAGRID_EXPORT_SELECTED_ICON;\r\n if (\"xlsx\" === formatType) {\r\n exportMethod = \"exportToExcel\";\r\n formatName = \"Excel\";\r\n exportAllIcon = DATAGRID_EXPORT_EXCEL_ICON\r\n }\r\n if (\"pdf\" === formatType) {\r\n exportAllIcon = DATAGRID_PDF_EXPORT_ICON\r\n }\r\n items.push({\r\n text: format(texts.exportAll, formatName),\r\n icon: exportAllIcon,\r\n onClick: () => {\r\n this._exportController[exportMethod](false, formatType)\r\n }\r\n });\r\n if (exportOptions.allowExportSelectedData) {\r\n items.push({\r\n text: format(texts.exportSelectedRows, formatName),\r\n icon: exportSelectedIcon,\r\n onClick: () => {\r\n this._exportController[exportMethod](true, formatType)\r\n }\r\n })\r\n }\r\n });\r\n return items\r\n },\r\n _correctItemsPosition: function(items) {\r\n items.sort((function(itemA, itemB) {\r\n return itemA.sortIndex - itemB.sortIndex\r\n }))\r\n },\r\n _isExportButtonVisible: function() {\r\n return this.option(\"export.enabled\")\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n if (\"export\" === args.name) {\r\n args.handled = true;\r\n this._invalidate()\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this._exportController = this.getController(\"export\");\r\n this._editingController = this.getController(\"editing\");\r\n this._editingController.editingChanged.add((function(hasChanges) {\r\n that.setToolbarItemDisabled(\"exportButton\", hasChanges)\r\n }))\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isExportButtonVisible()\r\n }\r\n }\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.focus.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n focusModule\r\n} from \"../grid_core/ui.grid_core.focus\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n createGroupFilter\r\n} from \"./ui.data_grid.utils\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\ngridCore.registerModule(\"focus\", extend(true, {}, focusModule, {\r\n extenders: {\r\n controllers: {\r\n data: {\r\n changeRowExpand: function(path, isRowClick) {\r\n if (this.option(\"focusedRowEnabled\") && Array.isArray(path) && this.isRowExpanded(path)) {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n if ((!isRowClick || !keyboardNavigation.isKeyboardEnabled()) && this._isFocusedRowInsideGroup(path)) {\r\n this.option(\"focusedRowKey\", path)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isFocusedRowInsideGroup: function(path) {\r\n var columnsController = this.getController(\"columns\");\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this.getRowIndexByKey(focusedRowKey);\r\n var focusedRow = rowIndex >= 0 && this.getVisibleRows()[rowIndex];\r\n var groups = columnsController.getGroupDataSourceParameters(true);\r\n if (focusedRow) {\r\n for (var i = 0; i < path.length; ++i) {\r\n var getter = compileGetter(groups[i] && groups[i].selector);\r\n if (getter(focusedRow.data) !== path[i]) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n },\r\n _getGroupPath: function(groupItem, groupCount) {\r\n var groupPath = [];\r\n var items = [groupItem];\r\n while (items && items[0] && groupCount) {\r\n var item = items[0];\r\n if (void 0 !== item.key) {\r\n groupPath.push(item.key)\r\n }\r\n items = item.items;\r\n groupCount--\r\n }\r\n return groupPath\r\n },\r\n _expandGroupByPath: function(that, groupPath, level) {\r\n var d = new Deferred;\r\n level++;\r\n that.expandRow(groupPath.slice(0, level)).done((function() {\r\n if (level === groupPath.length) {\r\n d.resolve()\r\n } else {\r\n that._expandGroupByPath(that, groupPath, level).done(d.resolve).fail(d.reject)\r\n }\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n _calculateGlobalRowIndexByGroupedData: function(key) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key);\r\n var deferred = new Deferred;\r\n var isGroupKey = Array.isArray(key);\r\n var group = dataSource.group();\r\n if (isGroupKey) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n if (!dataSource._grouping._updatePagingOptions) {\r\n that._calculateGlobalRowIndexByFlatData(key, null, true).done(deferred.resolve).fail(deferred.reject);\r\n return deferred\r\n }\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n group: group\r\n }).done((function(data) {\r\n if (!data || 0 === data.length || !isDefined(data[0].key) || -1 === data[0].key) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n var groupPath = that._getGroupPath(data[0], group.length);\r\n that._expandGroupByPath(that, groupPath, 0).done((function() {\r\n that._calculateExpandedRowGlobalIndex(deferred, key, groupPath, group)\r\n })).fail(deferred.reject)\r\n })).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _calculateExpandedRowGlobalIndex: function(deferred, key, groupPath, group) {\r\n var groupFilter = createGroupFilter(groupPath, {\r\n group: group\r\n });\r\n var dataSource = this._dataSource;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrolling = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var pageSize = dataSource.pageSize();\r\n var groupOffset;\r\n dataSource._grouping._updatePagingOptions({\r\n skip: 0,\r\n take: MAX_SAFE_INTEGER\r\n }, (function(groupInfo, totalOffset) {\r\n if (equalByValue(groupInfo.path, groupPath)) {\r\n groupOffset = totalOffset\r\n }\r\n }));\r\n this._calculateGlobalRowIndexByFlatData(key, groupFilter).done((function(dataOffset) {\r\n var count;\r\n var groupContinuationCount;\r\n if (dataOffset < 0) {\r\n deferred.resolve(-1);\r\n return\r\n }\r\n var currentPageOffset = groupOffset % pageSize || pageSize;\r\n count = currentPageOffset + dataOffset - groupPath.length;\r\n if (isVirtualScrolling) {\r\n groupContinuationCount = 0\r\n } else {\r\n groupContinuationCount = Math.floor(count / (pageSize - groupPath.length)) * groupPath.length\r\n }\r\n count = groupOffset + dataOffset + groupContinuationCount;\r\n deferred.resolve(count)\r\n })).fail(deferred.reject)\r\n }\r\n }\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.row_dragging.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport gridCore from \"./ui.data_grid.core\";\r\nimport {\r\n rowDraggingModule\r\n} from \"../grid_core/ui.grid_core.row_dragging\";\r\ngridCore.registerModule(\"rowDragging\", rowDraggingModule);\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataGrid from \"./ui.data_grid.base\";\r\nexport default DataGrid;\r\nimport \"./ui.data_grid.state_storing\";\r\nimport \"./ui.data_grid.selection\";\r\nimport \"./ui.data_grid.column_chooser\";\r\nimport \"./ui.data_grid.grouping\";\r\nimport \"./ui.data_grid.master_detail\";\r\nimport \"./ui.data_grid.editing\";\r\nimport \"./ui.data_grid.editing_row_based\";\r\nimport \"./ui.data_grid.editing_form_based\";\r\nimport \"./ui.data_grid.editing_cell_based\";\r\nimport \"./ui.data_grid.validating\";\r\nimport \"./ui.data_grid.virtual_scrolling\";\r\nimport \"./ui.data_grid.filter_row\";\r\nimport \"./ui.data_grid.header_filter\";\r\nimport \"./ui.data_grid.filter_sync\";\r\nimport \"./ui.data_grid.filter_builder\";\r\nimport \"./ui.data_grid.filter_panel\";\r\nimport \"./ui.data_grid.search\";\r\nimport \"./ui.data_grid.pager\";\r\nimport \"./ui.data_grid.columns_resizing_reordering\";\r\nimport \"./ui.data_grid.keyboard_navigation\";\r\nimport \"./ui.data_grid.summary\";\r\nimport \"./ui.data_grid.column_fixing\";\r\nimport \"./ui.data_grid.adaptivity\";\r\nimport \"./ui.data_grid.virtual_columns\";\r\nimport \"./ui.data_grid.export\";\r\nimport \"./ui.data_grid.focus\";\r\nimport \"./ui.data_grid.row_dragging\";\r\n","/**\r\n * DevExtreme (esm/ui/data_grid.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DataGrid from \"./data_grid/ui.data_grid\";\r\nexport default DataGrid;\r\n","/**\r\n * DevExtreme (esm/ui/data_grid/ui.data_grid.core.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport modules from \"../grid_core/ui.grid_core.modules\";\r\nexport default _extends({}, modules, gridCoreUtils, {\r\n modules: []\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.parts.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getPatternSetters\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar monthGetter = date => date.getMonth() + 1;\r\nvar monthSetter = (date, value) => {\r\n var day = date.getDate();\r\n var monthLimits = getLimits(\"M\", date);\r\n var newValue = fitIntoRange(parseInt(value), monthLimits.min, monthLimits.max);\r\n date.setMonth(newValue - 1, 1);\r\n var {\r\n min: min,\r\n max: max\r\n } = getLimits(\"dM\", date);\r\n var newDay = fitIntoRange(day, min, max);\r\n date.setDate(newDay)\r\n};\r\nvar PATTERN_GETTERS = {\r\n a: date => date.getHours() < 12 ? 0 : 1,\r\n E: \"getDay\",\r\n y: \"getFullYear\",\r\n M: monthGetter,\r\n L: monthGetter,\r\n d: \"getDate\",\r\n H: \"getHours\",\r\n h: \"getHours\",\r\n m: \"getMinutes\",\r\n s: \"getSeconds\",\r\n S: \"getMilliseconds\"\r\n};\r\nvar PATTERN_SETTERS = extend({}, getPatternSetters(), {\r\n a: (date, value) => {\r\n var hours = date.getHours();\r\n var current = hours >= 12;\r\n if (current === !!parseInt(value)) {\r\n return\r\n }\r\n date.setHours((hours + 12) % 24)\r\n },\r\n d: (date, value) => {\r\n var lastDayInMonth = getLimits(\"dM\", date).max;\r\n if (value > lastDayInMonth) {\r\n date.setMonth(date.getMonth() + 1)\r\n }\r\n date.setDate(value)\r\n },\r\n h: (date, value) => {\r\n var isPM = date.getHours() >= 12;\r\n date.setHours(+value % 12 + (isPM ? 12 : 0))\r\n },\r\n M: monthSetter,\r\n L: monthSetter,\r\n E: (date, value) => {\r\n if (value < 0) {\r\n return\r\n }\r\n date.setDate(date.getDate() - date.getDay() + parseInt(value))\r\n },\r\n y: (date, value) => {\r\n var currentYear = date.getFullYear();\r\n var valueLength = String(value).length;\r\n var maxLimitLength = String(getLimits(\"y\", date).max).length;\r\n var newValue = parseInt(String(currentYear).substr(0, maxLimitLength - valueLength) + value);\r\n date.setFullYear(newValue)\r\n }\r\n});\r\nvar getPatternGetter = patternChar => PATTERN_GETTERS[patternChar] || (() => patternChar);\r\nexport var renderDateParts = (text, regExpInfo) => {\r\n var result = regExpInfo.regexp.exec(text);\r\n var start = 0;\r\n var end = 0;\r\n var sections = [];\r\n var _loop = function(i) {\r\n start = end;\r\n end = start + result[i].length;\r\n var pattern = regExpInfo.patterns[i - 1].replace(/^'|'$/g, \"\");\r\n var getter = getPatternGetter(pattern[0]);\r\n sections.push({\r\n index: i - 1,\r\n isStub: pattern === result[i],\r\n caret: {\r\n start: start,\r\n end: end\r\n },\r\n pattern: pattern,\r\n text: result[i],\r\n limits: function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n return getLimits(pattern[0], ...args)\r\n },\r\n setter: PATTERN_SETTERS[pattern[0]] || noop,\r\n getter: getter\r\n })\r\n };\r\n for (var i = 1; i < result.length; i++) {\r\n _loop(i)\r\n }\r\n return sections\r\n};\r\nvar getLimits = (pattern, date, forcedPattern) => {\r\n var limits = {\r\n y: {\r\n min: 0,\r\n max: 9999\r\n },\r\n M: {\r\n min: 1,\r\n max: 12\r\n },\r\n L: {\r\n min: 1,\r\n max: 12\r\n },\r\n d: {\r\n min: 1,\r\n max: 31\r\n },\r\n dM: {\r\n min: 1,\r\n max: new Date(date.getFullYear(), date.getMonth() + 1, 0).getDate()\r\n },\r\n E: {\r\n min: 0,\r\n max: 6\r\n },\r\n H: {\r\n min: 0,\r\n max: 23\r\n },\r\n h: {\r\n min: 0,\r\n max: 23\r\n },\r\n m: {\r\n min: 0,\r\n max: 59\r\n },\r\n s: {\r\n min: 0,\r\n max: 59\r\n },\r\n S: {\r\n min: 0,\r\n max: 999\r\n },\r\n a: {\r\n min: 0,\r\n max: 1\r\n }\r\n };\r\n return limits[forcedPattern || pattern] || limits.getAmPm\r\n};\r\nexport var getDatePartIndexByPosition = (dateParts, position) => {\r\n for (var i = 0; i < dateParts.length; i++) {\r\n var caretInGroup = dateParts[i].caret.end >= position;\r\n if (!dateParts[i].isStub && caretInGroup) {\r\n return i\r\n }\r\n }\r\n return null\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATE_COMPONENTS = [\"year\", \"day\", \"month\", \"day\"];\r\nvar TIME_COMPONENTS = [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"];\r\nvar ONE_MINUTE = 6e4;\r\nvar ONE_DAY = 60 * ONE_MINUTE * 24;\r\nvar ONE_YEAR = 365 * ONE_DAY;\r\nvar getStringFormat = function(format) {\r\n var formatType = typeof format;\r\n if (\"string\" === formatType) {\r\n return \"format\"\r\n }\r\n if (\"object\" === formatType && void 0 !== format.type) {\r\n return format.type\r\n }\r\n return null\r\n};\r\nvar dateUtils = {\r\n SUPPORTED_FORMATS: [\"date\", \"time\", \"datetime\"],\r\n ONE_MINUTE: ONE_MINUTE,\r\n ONE_DAY: ONE_DAY,\r\n ONE_YEAR: ONE_YEAR,\r\n MIN_DATEVIEW_DEFAULT_DATE: new Date(1900, 0, 1),\r\n MAX_DATEVIEW_DEFAULT_DATE: function() {\r\n var newDate = new Date;\r\n return new Date(newDate.getFullYear() + 50, newDate.getMonth(), newDate.getDate(), 23, 59, 59)\r\n }(),\r\n FORMATS_INFO: {\r\n date: {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-dd\"\r\n },\r\n components: DATE_COMPONENTS\r\n },\r\n time: {\r\n getStandardPattern: function() {\r\n return \"HH:mm\"\r\n },\r\n components: TIME_COMPONENTS\r\n },\r\n datetime: {\r\n getStandardPattern: function() {\r\n var standardPattern;\r\n ! function() {\r\n var $input = $(\"<input>\").attr(\"type\", \"datetime\");\r\n $input.val(\"2000-01-01T01:01Z\");\r\n if ($input.val()) {\r\n standardPattern = \"yyyy-MM-ddTHH:mmZ\"\r\n }\r\n }();\r\n if (!standardPattern) {\r\n standardPattern = \"yyyy-MM-ddTHH:mm:ssZ\"\r\n }\r\n dateUtils.FORMATS_INFO.datetime.getStandardPattern = function() {\r\n return standardPattern\r\n };\r\n return standardPattern\r\n },\r\n components: [...DATE_COMPONENTS, ...TIME_COMPONENTS]\r\n },\r\n \"datetime-local\": {\r\n getStandardPattern: function() {\r\n return \"yyyy-MM-ddTHH:mm:ss\"\r\n },\r\n components: [...DATE_COMPONENTS, \"hours\", \"minutes\", \"seconds\"]\r\n }\r\n },\r\n FORMATS_MAP: {\r\n date: \"shortdate\",\r\n time: \"shorttime\",\r\n datetime: \"shortdateshorttime\"\r\n },\r\n SUBMIT_FORMATS_MAP: {\r\n date: \"date\",\r\n time: \"time\",\r\n datetime: \"datetime-local\"\r\n },\r\n toStandardDateFormat: function(date, type) {\r\n var pattern = dateUtils.FORMATS_INFO[type].getStandardPattern();\r\n return dateSerialization.serializeDate(date, pattern)\r\n },\r\n fromStandardDateFormat: function(text) {\r\n var date = dateSerialization.dateParser(text);\r\n return isDate(date) ? date : void 0\r\n },\r\n getMaxMonthDay: function(year, month) {\r\n return new Date(year, month + 1, 0).getDate()\r\n },\r\n mergeDates: function(oldValue, newValue, format) {\r\n if (!newValue) {\r\n return newValue || null\r\n }\r\n if (!oldValue || isNaN(oldValue.getTime())) {\r\n var now = new Date(null);\r\n oldValue = new Date(now.getFullYear(), now.getMonth(), now.getDate())\r\n }\r\n var result = new Date(oldValue.valueOf());\r\n var formatInfo = dateUtils.FORMATS_INFO[format];\r\n each(formatInfo.components, (function() {\r\n var componentInfo = dateUtils.DATE_COMPONENTS_INFO[this];\r\n result[componentInfo.setter](newValue[componentInfo.getter]())\r\n }));\r\n return result\r\n },\r\n getLongestCaptionIndex: function(captionArray) {\r\n var longestIndex = 0;\r\n var longestCaptionLength = 0;\r\n var i;\r\n for (i = 0; i < captionArray.length; ++i) {\r\n if (captionArray[i].length > longestCaptionLength) {\r\n longestIndex = i;\r\n longestCaptionLength = captionArray[i].length\r\n }\r\n }\r\n return longestIndex\r\n },\r\n formatUsesMonthName: function(format) {\r\n return dateLocalization.formatUsesMonthName(format)\r\n },\r\n formatUsesDayName: function(format) {\r\n return dateLocalization.formatUsesDayName(format)\r\n },\r\n getLongestDate: function(format, monthNames, dayNames) {\r\n var stringFormat = getStringFormat(format);\r\n var month = 9;\r\n if (!stringFormat || dateUtils.formatUsesMonthName(stringFormat)) {\r\n month = dateUtils.getLongestCaptionIndex(monthNames)\r\n }\r\n var longestDate = new Date(1888, month, 21, 23, 59, 59, 999);\r\n if (!stringFormat || dateUtils.formatUsesDayName(stringFormat)) {\r\n var date = longestDate.getDate() - longestDate.getDay() + dateUtils.getLongestCaptionIndex(dayNames);\r\n longestDate.setDate(date)\r\n }\r\n return longestDate\r\n },\r\n normalizeTime: function(date) {\r\n date.setSeconds(0);\r\n date.setMilliseconds(0)\r\n }\r\n};\r\ndateUtils.DATE_COMPONENTS_INFO = {\r\n year: {\r\n getter: \"getFullYear\",\r\n setter: \"setFullYear\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setFullYear(value);\r\n return dateLocalization.format(formatDate, \"yyyy\")\r\n },\r\n startValue: void 0,\r\n endValue: void 0\r\n },\r\n day: {\r\n getter: \"getDate\",\r\n setter: \"setDate\",\r\n formatter: function(value, date) {\r\n var formatDate = new Date(date.getTime());\r\n formatDate.setDate(value);\r\n return dateLocalization.format(formatDate, \"d\")\r\n },\r\n startValue: 1,\r\n endValue: void 0\r\n },\r\n month: {\r\n getter: \"getMonth\",\r\n setter: \"setMonth\",\r\n formatter: function(value) {\r\n return dateLocalization.getMonthNames()[value]\r\n },\r\n startValue: 0,\r\n endValue: 11\r\n },\r\n hours: {\r\n getter: \"getHours\",\r\n setter: \"setHours\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, value), \"hour\")\r\n },\r\n startValue: 0,\r\n endValue: 23\r\n },\r\n minutes: {\r\n getter: \"getMinutes\",\r\n setter: \"setMinutes\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, value), \"minute\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n seconds: {\r\n getter: \"getSeconds\",\r\n setter: \"setSeconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, value), \"second\")\r\n },\r\n startValue: 0,\r\n endValue: 59\r\n },\r\n milliseconds: {\r\n getter: \"getMilliseconds\",\r\n setter: \"setMilliseconds\",\r\n formatter: function(value) {\r\n return dateLocalization.format(new Date(0, 0, 0, 0, 0, 0, value), \"millisecond\")\r\n },\r\n startValue: 0,\r\n endValue: 999\r\n }\r\n};\r\nexport default dateUtils;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.navigator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Button from \"../button\";\r\nvar CALENDAR_NAVIGATOR_CLASS = \"dx-calendar-navigator\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS = \"dx-calendar-navigator-previous-month\";\r\nvar CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS = \"dx-calendar-navigator-next-month\";\r\nvar CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS = \"dx-calendar-navigator-previous-view\";\r\nvar CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS = \"dx-calendar-navigator-next-view\";\r\nvar CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS = \"dx-calendar-disabled-navigator-link\";\r\nvar CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS = \"dx-calendar-caption-button\";\r\nvar Navigator = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n onClick: null,\r\n onCaptionClick: null,\r\n text: \"\"\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions()\r\n },\r\n _initActions: function() {\r\n this._clickAction = this._createActionByOption(\"onClick\");\r\n this._captionClickAction = this._createActionByOption(\"onCaptionClick\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(CALENDAR_NAVIGATOR_CLASS);\r\n this._renderButtons();\r\n this._renderCaption()\r\n },\r\n _renderButtons: function() {\r\n var that = this;\r\n var direction = this.option(\"rtlEnabled\") ? -1 : 1;\r\n this._prevButton = this._createComponent($(\"<a>\"), Button, {\r\n focusStateEnabled: false,\r\n icon: \"chevronleft\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: -direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $prevButton = this._prevButton.$element().addClass(CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS);\r\n this._nextButton = this._createComponent($(\"<a>\"), Button, {\r\n focusStateEnabled: false,\r\n icon: \"chevronright\",\r\n onClick: function(e) {\r\n that._clickAction({\r\n direction: direction,\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $nextButton = this._nextButton.$element().addClass(CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS).addClass(CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS);\r\n this._caption = this._createComponent($(\"<a>\").addClass(CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n onClick: function(e) {\r\n that._captionClickAction({\r\n event: e\r\n })\r\n },\r\n integrationOptions: {}\r\n });\r\n var $caption = this._caption.$element();\r\n this.$element().append($prevButton, $caption, $nextButton)\r\n },\r\n _renderCaption: function() {\r\n this._caption.option(\"text\", this.option(\"text\"))\r\n },\r\n toggleButton: function(buttonPrefix, value) {\r\n var buttonName = \"_\" + buttonPrefix + \"Button\";\r\n var button = this[buttonName];\r\n if (button) {\r\n button.option(\"disabled\", value);\r\n button.$element().toggleClass(CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS, value)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"text\":\r\n this._renderCaption();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default Navigator;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.base_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport coreDateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nvar {\r\n abstract: abstract\r\n} = Widget;\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_WEEK_NUMBER_CELL_CLASS = \"dx-calendar-week-number-cell\";\r\nvar CALENDAR_EMPTY_CELL_CLASS = \"dx-calendar-empty-cell\";\r\nvar CALENDAR_TODAY_CLASS = \"dx-calendar-today\";\r\nvar CALENDAR_SELECTED_DATE_CLASS = \"dx-calendar-selected-date\";\r\nvar CALENDAR_CONTOURED_DATE_CLASS = \"dx-calendar-contoured-date\";\r\nvar CALENDAR_DXCLICK_EVENT_NAME = addNamespace(clickEventName, \"dxCalendar\");\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar BaseView = Widget.inherit({\r\n _getViewName: function() {\r\n return \"base\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n date: new Date,\r\n focusStateEnabled: false,\r\n cellTemplate: null,\r\n disabledDates: null,\r\n onCellClick: null,\r\n rowCount: 3,\r\n colCount: 4,\r\n allowValueSelection: true,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderImpl()\r\n },\r\n _renderImpl: function() {\r\n this.$element().append(this._createTable());\r\n this._createDisabledDatesHandler();\r\n this._renderBody();\r\n this._renderContouredDate();\r\n this._renderValue();\r\n this._renderEvents()\r\n },\r\n _createTable: function() {\r\n this._$table = $(\"<table>\");\r\n this.setAria({\r\n label: messageLocalization.format(\"dxCalendar-ariaWidgetName\"),\r\n role: \"grid\"\r\n }, this._$table);\r\n return this._$table\r\n },\r\n _renderBody: function() {\r\n this.$body = $(\"<tbody>\").appendTo(this._$table);\r\n var rowData = {\r\n cellDate: this._getFirstCellData(),\r\n prevCellDate: null\r\n };\r\n for (var rowIndex = 0, rowCount = this.option(\"rowCount\"); rowIndex < rowCount; rowIndex++) {\r\n rowData.row = this._createRow();\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderCell(rowData, colIndex)\r\n }\r\n this._renderWeekNumberCell(rowData)\r\n }\r\n },\r\n _createRow: function() {\r\n var row = domAdapter.createElement(\"tr\");\r\n this.setAria(\"role\", \"row\", $(row));\r\n this.$body.get(0).appendChild(row);\r\n return row\r\n },\r\n _appendCell: function(row, cell) {\r\n if (!this._appendMethodName) {\r\n this._cacheAppendMethodName()\r\n }\r\n $(row)[this._appendMethodName](cell)\r\n },\r\n _cacheAppendMethodName: function(rtlEnabled) {\r\n this._appendMethodName = (null !== rtlEnabled && void 0 !== rtlEnabled ? rtlEnabled : this.option(\"rtlEnabled\")) ? \"prepend\" : \"append\"\r\n },\r\n _createCell: function(cellDate) {\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = this._getClassNameByDate(cellDate);\r\n cell.setAttribute(\"data-value\", dateSerialization.serializeDate(cellDate, coreDateUtils.getShortDateFormat()));\r\n elementData(cell, CALENDAR_DATE_VALUE_KEY, cellDate);\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: this.getCellAriaLabel(cellDate)\r\n }, $cell);\r\n return {\r\n cell: cell,\r\n $cell: $cell\r\n }\r\n },\r\n _renderCell: function(params, cellIndex) {\r\n var {\r\n cellDate: cellDate,\r\n prevCellDate: prevCellDate,\r\n row: row\r\n } = params;\r\n if (prevCellDate) {\r\n coreDateUtils.fixTimezoneGap(prevCellDate, cellDate)\r\n }\r\n params.prevCellDate = cellDate;\r\n var {\r\n cell: cell,\r\n $cell: $cell\r\n } = this._createCell(cellDate);\r\n var cellTemplate = this.option(\"cellTemplate\");\r\n this._appendCell(row, cell);\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(cellDate, cellIndex, $cell))\r\n } else {\r\n cell.innerHTML = this._getCellText(cellDate)\r\n }\r\n params.cellDate = this._getNextCellData(cellDate)\r\n },\r\n _getClassNameByDate: function(cellDate) {\r\n var className = CALENDAR_CELL_CLASS;\r\n if (this._isTodayCell(cellDate)) {\r\n className += \" \".concat(CALENDAR_TODAY_CLASS)\r\n }\r\n if (this._isDateOutOfRange(cellDate) || this.isDateDisabled(cellDate)) {\r\n className += \" \".concat(CALENDAR_EMPTY_CELL_CLASS)\r\n }\r\n if (this._isOtherView(cellDate)) {\r\n className += \" \".concat(CALENDAR_OTHER_VIEW_CLASS)\r\n }\r\n return className\r\n },\r\n _prepareCellTemplateData: function(cellDate, cellIndex, $cell) {\r\n var isDateCell = cellDate instanceof Date;\r\n var text = isDateCell ? this._getCellText(cellDate) : cellDate;\r\n var date = isDateCell ? cellDate : void 0;\r\n var view = this._getViewName();\r\n return {\r\n model: {\r\n text: text,\r\n date: date,\r\n view: view\r\n },\r\n container: getPublicElement($cell),\r\n index: cellIndex\r\n }\r\n },\r\n _renderEvents: function() {\r\n this._createCellClickAction();\r\n eventsEngine.off(this._$table, CALENDAR_DXCLICK_EVENT_NAME);\r\n eventsEngine.on(this._$table, CALENDAR_DXCLICK_EVENT_NAME, \"td:not(.\".concat(CALENDAR_WEEK_NUMBER_CELL_CLASS, \")\"), e => {\r\n if (!$(e.currentTarget).hasClass(CALENDAR_EMPTY_CELL_CLASS)) {\r\n this._cellClickAction({\r\n event: e,\r\n value: $(e.currentTarget).data(CALENDAR_DATE_VALUE_KEY)\r\n })\r\n }\r\n })\r\n },\r\n _createCellClickAction: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\")\r\n },\r\n _createDisabledDatesHandler: function() {\r\n var disabledDates = this.option(\"disabledDates\");\r\n this._disabledDatesHandler = Array.isArray(disabledDates) ? this._getDefaultDisabledDatesHandler(disabledDates) : disabledDates || noop\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return noop\r\n },\r\n _isTodayCell: abstract,\r\n _isDateOutOfRange: abstract,\r\n isDateDisabled: function(cellDate) {\r\n var dateParts = {\r\n date: cellDate,\r\n view: this._getViewName()\r\n };\r\n return this._disabledDatesHandler(dateParts)\r\n },\r\n _isOtherView: abstract,\r\n _getCellText: abstract,\r\n _getFirstCellData: abstract,\r\n _getNextCellData: abstract,\r\n _renderContouredDate: function(contouredDate) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n contouredDate = contouredDate || this.option(\"contouredDate\");\r\n var $oldContouredCell = this._getContouredCell();\r\n var $newContouredCell = this._getCellByDate(contouredDate);\r\n $oldContouredCell.removeClass(CALENDAR_CONTOURED_DATE_CLASS);\r\n $newContouredCell.addClass(CALENDAR_CONTOURED_DATE_CLASS)\r\n },\r\n _getContouredCell: function() {\r\n return this._$table.find(\".\".concat(CALENDAR_CONTOURED_DATE_CLASS))\r\n },\r\n _changeValue: function(cellDate) {\r\n if (cellDate) {\r\n var value = this.option(\"value\");\r\n var newValue = value ? new Date(value) : new Date;\r\n newValue.setDate(cellDate.getDate());\r\n newValue.setMonth(cellDate.getMonth());\r\n newValue.setFullYear(cellDate.getFullYear());\r\n newValue.setDate(cellDate.getDate());\r\n this.option(\"value\", newValue)\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (!this.option(\"allowValueSelection\")) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n var selectedCell = this._getCellByDate(value);\r\n if (this._selectedCell) {\r\n this._selectedCell.removeClass(CALENDAR_SELECTED_DATE_CLASS)\r\n }\r\n selectedCell.addClass(CALENDAR_SELECTED_DATE_CLASS);\r\n this._selectedCell = selectedCell\r\n },\r\n getCellAriaLabel: function(date) {\r\n return this._getCellText(date)\r\n },\r\n _getFirstAvailableDate: function() {\r\n var date = this.option(\"date\");\r\n var min = this.option(\"min\");\r\n date = coreDateUtils.getFirstDateView(this._getViewName(), date);\r\n return new Date(min && date < min ? min : date)\r\n },\r\n _getCellByDate: abstract,\r\n isBoundary: abstract,\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"value\":\r\n this._renderValue();\r\n break;\r\n case \"contouredDate\":\r\n this._renderContouredDate(value);\r\n break;\r\n case \"onCellClick\":\r\n this._createCellClickAction();\r\n break;\r\n case \"disabledDates\":\r\n case \"cellTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"rtlEnabled\":\r\n this._cacheAppendMethodName(value);\r\n this.callBase(args);\r\n break;\r\n case \"_todayDate\":\r\n this._renderBody();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default BaseView;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.views.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport BaseView from \"./ui.calendar.base_view\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nvar CALENDAR_OTHER_MONTH_CLASS = \"dx-calendar-other-month\";\r\nvar CALENDAR_OTHER_VIEW_CLASS = \"dx-calendar-other-view\";\r\nvar CALENDAR_WEEK_NUMBER_CELL_CLASS = \"dx-calendar-week-number-cell\";\r\nvar Views = {\r\n month: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"month\"\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n firstDayOfWeek: 0,\r\n rowCount: 6,\r\n colCount: 7\r\n })\r\n },\r\n _renderImpl: function() {\r\n this.callBase();\r\n this._renderHeader()\r\n },\r\n _renderBody: function() {\r\n this.callBase();\r\n this._$table.find(\".\".concat(CALENDAR_OTHER_VIEW_CLASS)).addClass(CALENDAR_OTHER_MONTH_CLASS)\r\n },\r\n _renderFocusTarget: noop,\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"longdate\")\r\n },\r\n _renderHeader: function() {\r\n var $headerRow = $(\"<tr>\");\r\n var $header = $(\"<thead>\").append($headerRow);\r\n this._$table.prepend($header);\r\n for (var colIndex = 0, colCount = this.option(\"colCount\"); colIndex < colCount; colIndex++) {\r\n this._renderHeaderCell(colIndex, $headerRow)\r\n }\r\n if (this.option(\"showWeekNumbers\")) {\r\n this._renderWeekHeaderCell($headerRow)\r\n }\r\n },\r\n _renderHeaderCell: function(cellIndex, $headerRow) {\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n var {\r\n full: fullCaption,\r\n abbreviated: abbrCaption\r\n } = this._getDayCaption(firstDayOfWeek + cellIndex);\r\n var $cell = $(\"<th>\").attr({\r\n scope: \"col\",\r\n abbr: fullCaption\r\n }).text(abbrCaption);\r\n this._appendCell($headerRow, $cell)\r\n },\r\n _renderWeekHeaderCell: function($headerRow) {\r\n var $weekNumberHeaderCell = $(\"<th>\").attr({\r\n scope: \"col\",\r\n abbr: \"WeekNumber\",\r\n class: \"dx-week-number-header\"\r\n }).text(\"#\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n $headerRow.append($weekNumberHeaderCell)\r\n } else {\r\n $headerRow.prepend($weekNumberHeaderCell)\r\n }\r\n },\r\n _renderWeekNumberCell: function(rowData) {\r\n var {\r\n showWeekNumbers: showWeekNumbers,\r\n rtlEnabled: rtlEnabled,\r\n cellTemplate: cellTemplate\r\n } = this.option();\r\n if (!showWeekNumbers) {\r\n return\r\n }\r\n var weekNumber = this._getWeekNumber(rowData.prevCellDate);\r\n var cell = domAdapter.createElement(\"td\");\r\n var $cell = $(cell);\r\n cell.className = CALENDAR_WEEK_NUMBER_CELL_CLASS;\r\n if (cellTemplate) {\r\n cellTemplate.render(this._prepareCellTemplateData(weekNumber, -1, $cell))\r\n } else {\r\n cell.innerHTML = weekNumber\r\n }\r\n if (rtlEnabled) {\r\n rowData.row.append(cell)\r\n } else {\r\n rowData.row.prepend(cell)\r\n }\r\n this.setAria({\r\n role: \"gridcell\",\r\n label: \"Week \".concat(weekNumber)\r\n }, $cell)\r\n },\r\n _getWeekNumber: function(date) {\r\n var {\r\n weekNumberRule: weekNumberRule,\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n if (\"auto\" === weekNumberRule) {\r\n return dateUtils.getWeekNumber(date, firstDayOfWeek, 1 === firstDayOfWeek ? \"firstFourDays\" : \"firstDay\")\r\n }\r\n return dateUtils.getWeekNumber(date, firstDayOfWeek, weekNumberRule)\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"monthandyear\")\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDate(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var minDate = this.option(\"min\");\r\n var maxDate = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate, minDate, maxDate, \"date\")\r\n },\r\n _isOtherView: function(cellDate) {\r\n return cellDate.getMonth() !== this.option(\"date\").getMonth()\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"d\")\r\n },\r\n _getDayCaption: function(day) {\r\n var daysInWeek = this.option(\"colCount\");\r\n var dayIndex = day % daysInWeek;\r\n return {\r\n full: dateLocalization.getDayNames()[dayIndex],\r\n abbreviated: dateLocalization.getDayNames(\"abbreviated\")[dayIndex]\r\n }\r\n },\r\n _getFirstCellData: function() {\r\n var {\r\n firstDayOfWeek: firstDayOfWeek\r\n } = this.option();\r\n var firstDay = dateUtils.getFirstMonthDate(this.option(\"date\"));\r\n var firstMonthDayOffset = firstDayOfWeek - firstDay.getDay();\r\n var daysInWeek = this.option(\"colCount\");\r\n if (firstMonthDayOffset >= 0) {\r\n firstMonthDayOffset -= daysInWeek\r\n }\r\n firstDay.setDate(firstDay.getDate() + firstMonthDayOffset);\r\n return firstDay\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setDate(date.getDate() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(date, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameMonthAndYear(date, this.option(\"min\")) || dateUtils.sameMonthAndYear(date, this.option(\"max\"))\r\n },\r\n _getDefaultDisabledDatesHandler: function(disabledDates) {\r\n return function(args) {\r\n var isDisabledDate = disabledDates.some((function(item) {\r\n return dateUtils.sameDate(item, args.date)\r\n }));\r\n if (isDisabledDate) {\r\n return true\r\n }\r\n }\r\n }\r\n }),\r\n year: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"year\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameMonthAndYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n return !dateUtils.dateInRange(cellDate, dateUtils.getFirstMonthDate(this.option(\"min\")), dateUtils.getLastMonthDate(this.option(\"max\")))\r\n },\r\n _isOtherView: function() {\r\n return false\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.getMonthNames(\"abbreviated\")[cellDate.getMonth()]\r\n },\r\n _getFirstCellData: function() {\r\n var currentDate = this.option(\"date\");\r\n var data = new Date(currentDate);\r\n data.setDate(1);\r\n data.setMonth(0);\r\n return data\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setMonth(date.getMonth() + 1);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getCellAriaLabel: function(date) {\r\n return dateLocalization.format(date, \"monthandyear\")\r\n },\r\n getNavigatorCaption: function() {\r\n return dateLocalization.format(this.option(\"date\"), \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameYear(date, this.option(\"min\")) || dateUtils.sameYear(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n }),\r\n decade: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"decade\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameYear(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n return !dateUtils.dateInRange(cellDate.getFullYear(), min && min.getFullYear(), max && max.getFullYear())\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameDecade(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n return dateLocalization.format(cellDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var year = dateUtils.getFirstYearInDecade(this.option(\"date\")) - 1;\r\n return dateUtils.createDateWithFullYear(year, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 1);\r\n return date\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstYearInDecade = dateUtils.getFirstYearInDecade(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstYearInDecade);\r\n endDate.setFullYear(firstYearInDecade + 9);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _isValueOnCurrentView: function(currentDate, value) {\r\n return dateUtils.sameDecade(currentDate, value)\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameDecade(date, this.option(\"min\")) || dateUtils.sameDecade(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n }),\r\n century: BaseView.inherit({\r\n _getViewName: function() {\r\n return \"century\"\r\n },\r\n _isTodayCell: function(cellDate) {\r\n var today = this.option(\"_todayDate\")();\r\n return dateUtils.sameDecade(cellDate, today)\r\n },\r\n _isDateOutOfRange: function(cellDate) {\r\n var decade = dateUtils.getFirstYearInDecade(cellDate);\r\n var minDecade = dateUtils.getFirstYearInDecade(this.option(\"min\"));\r\n var maxDecade = dateUtils.getFirstYearInDecade(this.option(\"max\"));\r\n return !dateUtils.dateInRange(decade, minDecade, maxDecade)\r\n },\r\n _isOtherView: function(cellDate) {\r\n var date = new Date(cellDate);\r\n date.setMonth(1);\r\n return !dateUtils.sameCentury(date, this.option(\"date\"))\r\n },\r\n _getCellText: function(cellDate) {\r\n var startDate = dateLocalization.format(cellDate, \"yyyy\");\r\n var endDate = new Date(cellDate);\r\n endDate.setFullYear(endDate.getFullYear() + 9);\r\n return startDate + \" - \" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n _getFirstCellData: function() {\r\n var decade = dateUtils.getFirstDecadeInCentury(this.option(\"date\")) - 10;\r\n return dateUtils.createDateWithFullYear(decade, 0, 1)\r\n },\r\n _getNextCellData: function(date) {\r\n date = new Date(date);\r\n date.setFullYear(date.getFullYear() + 10);\r\n return date\r\n },\r\n _getCellByDate: function(date) {\r\n var foundDate = new Date(date);\r\n foundDate.setDate(1);\r\n foundDate.setMonth(0);\r\n foundDate.setFullYear(dateUtils.getFirstYearInDecade(foundDate));\r\n return this._$table.find(\"td[data-value='\".concat(dateSerialization.serializeDate(foundDate, dateUtils.getShortDateFormat()), \"']\"))\r\n },\r\n getNavigatorCaption: function() {\r\n var currentDate = this.option(\"date\");\r\n var firstDecadeInCentury = dateUtils.getFirstDecadeInCentury(currentDate);\r\n var startDate = new Date(currentDate);\r\n var endDate = new Date(currentDate);\r\n startDate.setFullYear(firstDecadeInCentury);\r\n endDate.setFullYear(firstDecadeInCentury + 99);\r\n return dateLocalization.format(startDate, \"yyyy\") + \"-\" + dateLocalization.format(endDate, \"yyyy\")\r\n },\r\n isBoundary: function(date) {\r\n return dateUtils.sameCentury(date, this.option(\"min\")) || dateUtils.sameCentury(date, this.option(\"max\"))\r\n },\r\n _renderWeekNumberCell: noop\r\n })\r\n};\r\nexport default Views;\r\n","/**\r\n * DevExtreme (esm/ui/calendar/ui.calendar.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isNumeric,\r\n isString,\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Button from \"../button\";\r\nimport Editor from \"../editor/editor\";\r\nimport Swipeable from \"../../events/gesture/swipeable\";\r\nimport Navigator from \"./ui.calendar.navigator\";\r\nimport Views from \"./ui.calendar.views\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport {\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nvar CALENDAR_CLASS = \"dx-calendar\";\r\nvar CALENDAR_BODY_CLASS = \"dx-calendar-body\";\r\nvar CALENDAR_CELL_CLASS = \"dx-calendar-cell\";\r\nvar CALENDAR_FOOTER_CLASS = \"dx-calendar-footer\";\r\nvar CALENDAR_TODAY_BUTTON_CLASS = \"dx-calendar-today-button\";\r\nvar CALENDAR_HAS_FOOTER_CLASS = \"dx-calendar-with-footer\";\r\nvar CALENDAR_VIEWS_WRAPPER_CLASS = \"dx-calendar-views-wrapper\";\r\nvar CALENDAR_VIEW_CLASS = \"dx-calendar-view\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ANIMATION_DURATION_SHOW_VIEW = 250;\r\nvar POP_ANIMATION_FROM = .6;\r\nvar POP_ANIMATION_TO = 1;\r\nvar CALENDAR_INPUT_STANDARD_PATTERN = \"yyyy-MM-dd\";\r\nvar CALENDAR_DATE_VALUE_KEY = \"dxDateValueKey\";\r\nvar LEVEL_COMPARE_MAP = {\r\n month: 3,\r\n year: 2,\r\n decade: 1,\r\n century: 0\r\n};\r\nvar ZOOM_LEVEL = {\r\n MONTH: \"month\",\r\n YEAR: \"year\",\r\n DECADE: \"decade\",\r\n CENTURY: \"century\"\r\n};\r\n\r\nfunction elementHasFocus(element) {\r\n return element.hasClass(FOCUSED_STATE_CLASS)\r\n}\r\nvar Calendar = Editor.inherit({\r\n _activeStateUnit: \".\" + CALENDAR_CELL_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n currentDate: new Date,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: new Date(1e3, 0),\r\n max: new Date(3e3, 0),\r\n firstDayOfWeek: void 0,\r\n zoomLevel: ZOOM_LEVEL.MONTH,\r\n maxZoomLevel: ZOOM_LEVEL.MONTH,\r\n minZoomLevel: ZOOM_LEVEL.CENTURY,\r\n showTodayButton: false,\r\n showWeekNumbers: false,\r\n weekNumberRule: \"auto\",\r\n cellTemplate: \"cell\",\r\n disabledDates: null,\r\n onCellClick: null,\r\n onContouredChanged: null,\r\n skipFocusCheck: false,\r\n _todayDate: () => new Date\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n rightArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(1)\r\n } else {\r\n this._moveCurrentDateByOffset(1 * this._getRtlCorrection())\r\n }\r\n },\r\n leftArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._waitRenderView(-1)\r\n } else {\r\n this._moveCurrentDateByOffset(-1 * this._getRtlCorrection())\r\n }\r\n },\r\n upArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateUp()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(-1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n downArrow: function(e) {\r\n e.preventDefault();\r\n if (isCommandKeyPressed(e)) {\r\n this._navigateDown()\r\n } else {\r\n if (fx.isAnimating(this._view.$element())) {\r\n return\r\n }\r\n this._moveCurrentDateByOffset(1 * this._view.option(\"colCount\"))\r\n }\r\n },\r\n home: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var min = this._dateOption(\"min\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, min) ? min : dateUtils.getViewFirstCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n end: function(e) {\r\n e.preventDefault();\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var currentDate = this.option(\"currentDate\");\r\n var max = this._dateOption(\"max\");\r\n if (this._view.isDateDisabled(currentDate)) {\r\n return\r\n }\r\n var date = dateUtils.sameView(zoomLevel, currentDate, max) ? max : dateUtils.getViewLastCellDate(zoomLevel, currentDate);\r\n this._moveToClosestAvailableDate(date)\r\n },\r\n pageUp: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(-1 * this._getRtlCorrection())\r\n },\r\n pageDown: function(e) {\r\n e.preventDefault();\r\n this._waitRenderView(1 * this._getRtlCorrection())\r\n },\r\n tab: noop,\r\n enter: function(e) {\r\n if (!this._isMaxZoomLevel()) {\r\n this._navigateDown()\r\n } else if (!this._view.isDateDisabled(this.option(\"currentDate\"))) {\r\n var value = this._updateTimeComponent(this.option(\"currentDate\"));\r\n this._dateValue(value, e)\r\n }\r\n }\r\n })\r\n },\r\n _getSerializationFormat: function(optionName) {\r\n var value = this.option(optionName || \"value\");\r\n if (this.option(\"dateSerializationFormat\")) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _convertToDate: function(value, optionName) {\r\n return dateSerialization.deserializeDate(value)\r\n },\r\n _dateValue: function(value, event) {\r\n if (event) {\r\n if (\"keydown\" === event.type) {\r\n var cellElement = this._view._getContouredCell().get(0);\r\n event.target = cellElement\r\n }\r\n this._saveValueChangeEvent(event)\r\n }\r\n this._dateOption(\"value\", value)\r\n },\r\n _dateOption: function(optionName, optionValue) {\r\n if (1 === arguments.length) {\r\n return this._convertToDate(this.option(optionName), optionName)\r\n }\r\n var serializationFormat = this._getSerializationFormat(optionName);\r\n this.option(optionName, dateSerialization.serializeDate(optionValue, serializationFormat))\r\n },\r\n _shiftDate: function(zoomLevel, date, offset, reverse) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n date.setDate(date.getDate() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.YEAR:\r\n date.setMonth(date.getMonth() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n date.setFullYear(date.getFullYear() + offset * reverse);\r\n break;\r\n case ZOOM_LEVEL.CENTURY:\r\n date.setFullYear(date.getFullYear() + 10 * offset * reverse)\r\n }\r\n },\r\n _moveCurrentDateByOffset: function(offset) {\r\n var baseDate = this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n this._shiftDate(zoomLevel, currentDate, offset, 1);\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n var isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, currentDate, baseDate);\r\n var isDateForwardInRange = inRange(currentDate, minDate, maxDate) && isDateForwardInNeighborView;\r\n var dateForward = new Date(currentDate);\r\n while (isDateForwardInRange) {\r\n if (!this._view.isDateDisabled(dateForward)) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, offset, 1);\r\n isDateForwardInNeighborView = this._areDatesInNeighborView(zoomLevel, dateForward, baseDate);\r\n isDateForwardInRange = inRange(dateForward, minDate, maxDate) && isDateForwardInNeighborView\r\n }\r\n if (this._view.isDateDisabled(baseDate) || this._view.isDateDisabled(currentDate)) {\r\n this._waitRenderView(offset > 0 ? 1 : -1)\r\n } else {\r\n this.option(\"currentDate\", currentDate)\r\n }\r\n },\r\n _areDatesInSameView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return date1.getMonth() === date2.getMonth();\r\n case ZOOM_LEVEL.YEAR:\r\n return date1.getYear() === date2.getYear();\r\n case ZOOM_LEVEL.DECADE:\r\n return parseInt(date1.getYear() / 10) === parseInt(date2.getYear() / 10);\r\n case ZOOM_LEVEL.CENTURY:\r\n return parseInt(date1.getYear() / 100) === parseInt(date2.getYear() / 100)\r\n }\r\n },\r\n _areDatesInNeighborView(zoomLevel, date1, date2) {\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.MONTH:\r\n return (a = date1.getMonth(), b = date2.getMonth(), abs = Math.abs(a - b), Math.min(abs, 12 - abs)) <= 1;\r\n case ZOOM_LEVEL.YEAR:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 1;\r\n case ZOOM_LEVEL.DECADE:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 10;\r\n case ZOOM_LEVEL.CENTURY:\r\n return Math.abs(date1.getYear() - date2.getYear()) <= 100\r\n }\r\n var a, b, abs\r\n },\r\n _moveToClosestAvailableDate: function() {\r\n var baseDate = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.option(\"currentDate\");\r\n var currentDate = new Date(baseDate);\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var isCurrentDateAvailable = !this._isDateNotAvailable(currentDate);\r\n var isDateForwardAvailable = isCurrentDateAvailable;\r\n var isDateBackwardAvailable = isCurrentDateAvailable;\r\n var isDateForwardInStartView;\r\n var isDateBackwardInStartView;\r\n var dateForward = new Date(currentDate);\r\n var dateBackward = new Date(currentDate);\r\n do {\r\n if (isDateForwardAvailable) {\r\n currentDate = dateForward;\r\n break\r\n }\r\n if (isDateBackwardAvailable) {\r\n currentDate = dateBackward;\r\n break\r\n }\r\n this._shiftDate(zoomLevel, dateForward, 1, 1);\r\n this._shiftDate(zoomLevel, dateBackward, 1, -1);\r\n isDateForwardInStartView = this._areDatesInSameView(zoomLevel, dateForward, baseDate);\r\n isDateBackwardInStartView = this._areDatesInSameView(zoomLevel, dateBackward, baseDate);\r\n isDateForwardAvailable = isDateForwardInStartView && !this._isDateNotAvailable(dateForward);\r\n isDateBackwardAvailable = isDateBackwardInStartView && !this._isDateNotAvailable(dateBackward)\r\n } while (isDateForwardInStartView || isDateBackwardInStartView);\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _isDateNotAvailable: function(date) {\r\n var maxDate = this._getMaxDate();\r\n var minDate = this._getMinDate();\r\n return !inRange(date, minDate, maxDate) || this._view.isDateDisabled(date)\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._correctZoomLevel();\r\n this._initCurrentDate();\r\n this._initActions()\r\n },\r\n _correctZoomLevel: function() {\r\n var minZoomLevel = this.option(\"minZoomLevel\");\r\n var maxZoomLevel = this.option(\"maxZoomLevel\");\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (LEVEL_COMPARE_MAP[maxZoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n return\r\n }\r\n if (LEVEL_COMPARE_MAP[zoomLevel] > LEVEL_COMPARE_MAP[maxZoomLevel]) {\r\n this.option(\"zoomLevel\", maxZoomLevel)\r\n } else if (LEVEL_COMPARE_MAP[zoomLevel] < LEVEL_COMPARE_MAP[minZoomLevel]) {\r\n this.option(\"zoomLevel\", minZoomLevel)\r\n }\r\n },\r\n _initCurrentDate: function() {\r\n var currentDate = this._getNormalizedDate(this._dateOption(\"value\")) || this._getNormalizedDate(this.option(\"currentDate\"));\r\n this.option(\"currentDate\", currentDate)\r\n },\r\n _getNormalizedDate: function(date) {\r\n date = dateUtils.normalizeDate(date, this._getMinDate(), this._getMaxDate());\r\n return isDefined(date) ? this._getDate(date) : date\r\n },\r\n _initActions: function() {\r\n this._cellClickAction = this._createActionByOption(\"onCellClick\");\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n cell: new FunctionTemplate((function(options) {\r\n var data = options.model;\r\n $(options.container).append($(\"<span>\").text(data && data.text || String(data)))\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _updateCurrentDate: function(date) {\r\n if (fx.isAnimating(this._$viewsWrapper)) {\r\n fx.stop(this._$viewsWrapper, true)\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n if (min > max) {\r\n this.option(\"currentDate\", new Date);\r\n return\r\n }\r\n var normalizedDate = this._getNormalizedDate(date);\r\n if (date.getTime() !== normalizedDate.getTime()) {\r\n this.option(\"currentDate\", new Date(normalizedDate));\r\n return\r\n }\r\n var offset = this._getViewsOffset(this._view.option(\"date\"), normalizedDate);\r\n if (0 !== offset && !this._isMaxZoomLevel() && this._isOtherViewCellClicked) {\r\n offset = 0\r\n }\r\n if (this._view && 0 !== offset && !this._suppressNavigation) {\r\n this._navigate(offset, normalizedDate)\r\n } else {\r\n this._renderNavigator();\r\n this._setViewContoured(normalizedDate);\r\n this._updateAriaId(normalizedDate)\r\n }\r\n },\r\n _setViewContoured: function(date) {\r\n if (this.option(\"skipFocusCheck\") || elementHasFocus(this._focusTarget())) {\r\n this._view.option(\"contouredDate\", date)\r\n }\r\n },\r\n _getMinDate: function() {\r\n if (this.min) {\r\n return this.min\r\n }\r\n this.min = this._dateOption(\"min\") || new Date(1e3, 0);\r\n return this.min\r\n },\r\n _getMaxDate: function() {\r\n if (this.max) {\r\n return this.max\r\n }\r\n this.max = this._dateOption(\"max\") || new Date(3e3, 0);\r\n return this.max\r\n },\r\n _getViewsOffset: function(startDate, endDate) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (zoomLevel === ZOOM_LEVEL.MONTH) {\r\n return this._getMonthsOffset(startDate, endDate)\r\n }\r\n var zoomCorrection;\r\n switch (zoomLevel) {\r\n case ZOOM_LEVEL.CENTURY:\r\n zoomCorrection = 100;\r\n break;\r\n case ZOOM_LEVEL.DECADE:\r\n zoomCorrection = 10;\r\n break;\r\n default:\r\n zoomCorrection = 1\r\n }\r\n return parseInt(endDate.getFullYear() / zoomCorrection) - parseInt(startDate.getFullYear() / zoomCorrection)\r\n },\r\n _getMonthsOffset: function(startDate, endDate) {\r\n var yearOffset = endDate.getFullYear() - startDate.getFullYear();\r\n var monthOffset = endDate.getMonth() - startDate.getMonth();\r\n return 12 * yearOffset + monthOffset\r\n },\r\n _waitRenderView: function(offset) {\r\n if (this._alreadyViewRender) {\r\n return\r\n }\r\n this._alreadyViewRender = true;\r\n var date = this._getDateByOffset(offset * this._getRtlCorrection());\r\n this._moveToClosestAvailableDate(date);\r\n this._waitRenderViewTimeout = setTimeout(() => {\r\n this._alreadyViewRender = false\r\n })\r\n },\r\n _getRtlCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _getDateByOffset: function(offset, date) {\r\n var _date;\r\n date = this._getDate(null !== (_date = date) && void 0 !== _date ? _date : this.option(\"currentDate\"));\r\n var currentDay = date.getDate();\r\n var difference = dateUtils.getDifferenceInMonth(this.option(\"zoomLevel\")) * offset;\r\n date.setDate(1);\r\n date.setMonth(date.getMonth() + difference);\r\n var lastDay = dateUtils.getLastMonthDate(date).getDate();\r\n date.setDate(currentDay > lastDay ? lastDay : currentDay);\r\n return date\r\n },\r\n _focusTarget: function() {\r\n return this.$element()\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n var $element = this.$element();\r\n $element.addClass(CALENDAR_CLASS);\r\n this._renderBody();\r\n $element.append(this.$body);\r\n this._renderViews();\r\n this._renderNavigator();\r\n $element.append(this._navigator.$element());\r\n this._renderSwipeable();\r\n this._renderFooter();\r\n this._updateAriaSelected();\r\n this._updateAriaId();\r\n this._moveToClosestAvailableDate()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._setViewContoured(this.option(\"currentDate\"))\r\n },\r\n _renderBody: function() {\r\n if (!this._$viewsWrapper) {\r\n this.$body = $(\"<div>\").addClass(CALENDAR_BODY_CLASS);\r\n this._$viewsWrapper = $(\"<div>\").addClass(CALENDAR_VIEWS_WRAPPER_CLASS);\r\n this.$body.append(this._$viewsWrapper)\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._view])\r\n },\r\n _renderViews: function() {\r\n this.$element().addClass(CALENDAR_VIEW_CLASS + \"-\" + this.option(\"zoomLevel\"));\r\n var currentDate = this.option(\"currentDate\");\r\n this._view = this._renderSpecificView(currentDate);\r\n if (hasWindow()) {\r\n var beforeDate = this._getDateByOffset(-1, currentDate);\r\n this._beforeView = this._isViewAvailable(beforeDate) ? this._renderSpecificView(beforeDate) : null;\r\n var afterDate = this._getDateByOffset(1, currentDate);\r\n afterDate.setDate(1);\r\n this._afterView = this._isViewAvailable(afterDate) ? this._renderSpecificView(afterDate) : null\r\n }\r\n this._translateViews()\r\n },\r\n _renderSpecificView: function(date) {\r\n var specificView = Views[this.option(\"zoomLevel\")];\r\n var $view = $(\"<div>\").appendTo(this._$viewsWrapper);\r\n var config = this._viewConfig(date);\r\n return this._createComponent($view, specificView, config)\r\n },\r\n _viewConfig: function(date) {\r\n var _this$option;\r\n var disabledDates = this.option(\"disabledDates\");\r\n disabledDates = isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this)) : disabledDates;\r\n return {\r\n date: date,\r\n min: this._getMinDate(),\r\n max: this._getMaxDate(),\r\n firstDayOfWeek: null !== (_this$option = this.option(\"firstDayOfWeek\")) && void 0 !== _this$option ? _this$option : dateLocalization.firstDayOfWeekIndex(),\r\n showWeekNumbers: this.option(\"showWeekNumbers\"),\r\n weekNumberRule: this.option(\"weekNumberRule\"),\r\n zoomLevel: this.option(\"zoomLevel\"),\r\n value: this._dateOption(\"value\"),\r\n tabIndex: void 0,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n disabledDates: disabledDates,\r\n onCellClick: this._cellClickHandler.bind(this),\r\n cellTemplate: this._getTemplateByOption(\"cellTemplate\"),\r\n allowValueSelection: this._isMaxZoomLevel(),\r\n _todayDate: this.option(\"_todayDate\")\r\n }\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that\r\n });\r\n return func(params)\r\n }\r\n },\r\n _isViewAvailable: function(date) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var min = dateUtils.getViewMinBoundaryDate(zoomLevel, this._getMinDate());\r\n var max = dateUtils.getViewMaxBoundaryDate(zoomLevel, this._getMaxDate());\r\n return dateUtils.dateInRange(date, min, max)\r\n },\r\n _translateViews: function() {\r\n move(this._view.$element(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._beforeView && move(this._beforeView.$element(), {\r\n left: this._getViewPosition(-1),\r\n top: 0\r\n });\r\n this._afterView && move(this._afterView.$element(), {\r\n left: this._getViewPosition(1),\r\n top: 0\r\n })\r\n },\r\n _getViewPosition: function(coefficient) {\r\n var rtlCorrection = this.option(\"rtlEnabled\") ? -1 : 1;\r\n return 100 * coefficient * rtlCorrection + \"%\"\r\n },\r\n _cellClickHandler: function(e) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n var isMaxZoomLevel = this._isMaxZoomLevel();\r\n if (nextView && !isMaxZoomLevel) {\r\n this._navigateDown(e.event.currentTarget)\r\n } else {\r\n var newValue = this._updateTimeComponent(e.value);\r\n this._dateValue(newValue, e.event);\r\n this._cellClickAction(e)\r\n }\r\n },\r\n _updateTimeComponent: function(date) {\r\n var result = new Date(date);\r\n var currentValue = this._dateOption(\"value\");\r\n if (currentValue) {\r\n result.setHours(currentValue.getHours());\r\n result.setMinutes(currentValue.getMinutes());\r\n result.setSeconds(currentValue.getSeconds());\r\n result.setMilliseconds(currentValue.getMilliseconds())\r\n }\r\n return result\r\n },\r\n _isMaxZoomLevel: function() {\r\n return this.option(\"zoomLevel\") === this.option(\"maxZoomLevel\")\r\n },\r\n _navigateDown: function(cell) {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n if (this._isMaxZoomLevel()) {\r\n return\r\n }\r\n var nextView = dateUtils.getViewDown(zoomLevel);\r\n if (!nextView) {\r\n return\r\n }\r\n var newCurrentDate = this._view.option(\"contouredDate\") || this._view.option(\"date\");\r\n if (cell) {\r\n newCurrentDate = $(cell).data(CALENDAR_DATE_VALUE_KEY)\r\n }\r\n this._isOtherViewCellClicked = true;\r\n this.option(\"currentDate\", newCurrentDate);\r\n this.option(\"zoomLevel\", nextView);\r\n this._isOtherViewCellClicked = false;\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _renderNavigator: function() {\r\n if (!this._navigator) {\r\n this._navigator = new Navigator($(\"<div>\"), this._navigatorConfig())\r\n }\r\n this._navigator.option(\"text\", this._view.getNavigatorCaption());\r\n this._updateButtonsVisibility()\r\n },\r\n _navigatorConfig: function() {\r\n return {\r\n text: this._view.getNavigatorCaption(),\r\n onClick: this._navigatorClickHandler.bind(this),\r\n onCaptionClick: this._navigateUp.bind(this),\r\n rtlEnabled: this.option(\"rtlEnabled\")\r\n }\r\n },\r\n _navigatorClickHandler: function(e) {\r\n var currentDate = this._getDateByOffset(e.direction, this.option(\"currentDate\"));\r\n this._moveToClosestAvailableDate(currentDate)\r\n },\r\n _navigateUp: function() {\r\n var zoomLevel = this.option(\"zoomLevel\");\r\n var nextView = dateUtils.getViewUp(zoomLevel);\r\n if (!nextView || this._isMinZoomLevel(zoomLevel)) {\r\n return\r\n }\r\n this.option(\"zoomLevel\", nextView);\r\n this._renderNavigator();\r\n this._animateShowView();\r\n this._moveToClosestAvailableDate();\r\n this._setViewContoured(this._getNormalizedDate(this.option(\"currentDate\")))\r\n },\r\n _isMinZoomLevel: function(zoomLevel) {\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n return dateUtils.sameView(zoomLevel, min, max) || this.option(\"minZoomLevel\") === zoomLevel\r\n },\r\n _updateButtonsVisibility: function() {\r\n this._navigator.toggleButton(\"next\", !isDefined(this._getRequiredView(\"next\")));\r\n this._navigator.toggleButton(\"prev\", !isDefined(this._getRequiredView(\"prev\")))\r\n },\r\n _renderSwipeable: function() {\r\n if (!this._swipeable) {\r\n this._swipeable = this._createComponent(this.$element(), Swipeable, {\r\n onStart: this._swipeStartHandler.bind(this),\r\n onUpdated: this._swipeUpdateHandler.bind(this),\r\n onEnd: this._swipeEndHandler.bind(this),\r\n itemSizeFunc: this._viewWidth.bind(this)\r\n })\r\n }\r\n },\r\n _swipeStartHandler: function(e) {\r\n fx.stop(this._$viewsWrapper, true);\r\n e.event.maxLeftOffset = this._getRequiredView(\"next\") ? 1 : 0;\r\n e.event.maxRightOffset = this._getRequiredView(\"prev\") ? 1 : 0\r\n },\r\n _getRequiredView: function(name) {\r\n var view;\r\n var isRtl = this.option(\"rtlEnabled\");\r\n if (\"next\" === name) {\r\n view = isRtl ? this._beforeView : this._afterView\r\n } else if (\"prev\" === name) {\r\n view = isRtl ? this._afterView : this._beforeView\r\n }\r\n return view\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.event.offset;\r\n move(this._$viewsWrapper, {\r\n left: offset * this._viewWidth(),\r\n top: 0\r\n });\r\n this._updateNavigatorCaption(offset)\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.event.targetOffset;\r\n var moveOffset = !targetOffset ? 0 : targetOffset / Math.abs(targetOffset);\r\n if (0 === moveOffset) {\r\n this._animateWrapper(0, ANIMATION_DURATION_SHOW_VIEW);\r\n return\r\n }\r\n var date = this._getDateByOffset(-moveOffset * this._getRtlCorrection());\r\n if (this._isDateInInvalidRange(date)) {\r\n if (moveOffset >= 0) {\r\n date = new Date(this._getMinDate())\r\n } else {\r\n date = new Date(this._getMaxDate())\r\n }\r\n }\r\n this.option(\"currentDate\", date)\r\n },\r\n _viewWidth: function() {\r\n if (!this._viewWidthValue) {\r\n this._viewWidthValue = getWidth(this.$element())\r\n }\r\n return this._viewWidthValue\r\n },\r\n _updateNavigatorCaption: function(offset) {\r\n offset *= this._getRtlCorrection();\r\n var view = this._view;\r\n if (offset > .5 && this._beforeView) {\r\n view = this._beforeView\r\n } else if (offset < -.5 && this._afterView) {\r\n view = this._afterView\r\n }\r\n this._navigator.option(\"text\", view.getNavigatorCaption())\r\n },\r\n _isDateInInvalidRange: function(date) {\r\n if (this._view.isBoundary(date)) {\r\n return\r\n }\r\n var min = this._getMinDate();\r\n var max = this._getMaxDate();\r\n var normalizedDate = dateUtils.normalizeDate(date, min, max);\r\n return normalizedDate === min || normalizedDate === max\r\n },\r\n _renderFooter: function() {\r\n var showTodayButton = this.option(\"showTodayButton\");\r\n if (showTodayButton) {\r\n var $todayButton = this._createComponent($(\"<a>\"), Button, {\r\n focusStateEnabled: false,\r\n text: messageLocalization.format(\"dxCalendar-todayButtonText\"),\r\n onClick: function(args) {\r\n this._toTodayView(args)\r\n }.bind(this),\r\n integrationOptions: {}\r\n }).$element().addClass(CALENDAR_TODAY_BUTTON_CLASS);\r\n this._$footer = $(\"<div>\").addClass(CALENDAR_FOOTER_CLASS).append($todayButton);\r\n this.$element().append(this._$footer)\r\n }\r\n this.$element().toggleClass(CALENDAR_HAS_FOOTER_CLASS, showTodayButton)\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n var dateValue = this._convertToDate(value);\r\n this._getSubmitElement().val(dateSerialization.serializeDate(dateValue, CALENDAR_INPUT_STANDARD_PATTERN))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _animateShowView: function() {\r\n fx.stop(this._view.$element(), true);\r\n return this._popAnimationView(this._view, POP_ANIMATION_FROM, POP_ANIMATION_TO, ANIMATION_DURATION_SHOW_VIEW).promise()\r\n },\r\n _popAnimationView: function(view, from, to, duration) {\r\n return fx.animate(view.$element(), {\r\n type: \"pop\",\r\n from: {\r\n scale: from,\r\n opacity: from\r\n },\r\n to: {\r\n scale: to,\r\n opacity: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _navigate: function(offset, value) {\r\n if (0 !== offset && 1 !== Math.abs(offset) && this._isViewAvailable(value)) {\r\n var newView = this._renderSpecificView(value);\r\n if (offset > 0) {\r\n this._afterView && this._afterView.$element().remove();\r\n this._afterView = newView\r\n } else {\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._beforeView = newView\r\n }\r\n this._translateViews()\r\n }\r\n var rtlCorrection = this._getRtlCorrection();\r\n var offsetSign = offset > 0 ? 1 : offset < 0 ? -1 : 0;\r\n var endPosition = -rtlCorrection * offsetSign * this._viewWidth();\r\n var viewsWrapperPosition = this._$viewsWrapper.position().left;\r\n if (viewsWrapperPosition !== endPosition) {\r\n if (this._preventViewChangeAnimation) {\r\n this._wrapperAnimationEndHandler(offset, value)\r\n } else {\r\n this._animateWrapper(endPosition, ANIMATION_DURATION_SHOW_VIEW).done(this._wrapperAnimationEndHandler.bind(this, offset, value))\r\n }\r\n }\r\n },\r\n _animateWrapper: function(to, duration) {\r\n return fx.animate(this._$viewsWrapper, {\r\n type: \"slide\",\r\n from: {\r\n left: this._$viewsWrapper.position().left\r\n },\r\n to: {\r\n left: to\r\n },\r\n duration: duration\r\n })\r\n },\r\n _getDate: value => new Date(value),\r\n _toTodayView: function(args) {\r\n this._saveValueChangeEvent(args.event);\r\n var today = new Date;\r\n if (this._isMaxZoomLevel()) {\r\n this._dateOption(\"value\", today);\r\n return\r\n }\r\n this._preventViewChangeAnimation = true;\r\n this.option(\"zoomLevel\", this.option(\"maxZoomLevel\"));\r\n this._dateOption(\"value\", today);\r\n this._animateShowView();\r\n this._preventViewChangeAnimation = false\r\n },\r\n _wrapperAnimationEndHandler: function(offset, newDate) {\r\n this._rearrangeViews(offset);\r\n this._translateViews();\r\n this._resetLocation();\r\n this._renderNavigator();\r\n this._setViewContoured(newDate);\r\n this._updateAriaId(newDate)\r\n },\r\n _rearrangeViews: function(offset) {\r\n if (0 === offset) {\r\n return\r\n }\r\n var viewOffset;\r\n var viewToCreateKey;\r\n var viewToRemoveKey;\r\n if (offset < 0) {\r\n viewOffset = 1;\r\n viewToCreateKey = \"_beforeView\";\r\n viewToRemoveKey = \"_afterView\"\r\n } else {\r\n viewOffset = -1;\r\n viewToCreateKey = \"_afterView\";\r\n viewToRemoveKey = \"_beforeView\"\r\n }\r\n if (!this[viewToCreateKey]) {\r\n return\r\n }\r\n var destinationDate = this[viewToCreateKey].option(\"date\");\r\n if (this[viewToRemoveKey]) {\r\n this[viewToRemoveKey].$element().remove()\r\n }\r\n if (offset === viewOffset) {\r\n this[viewToRemoveKey] = this._view\r\n } else {\r\n this[viewToRemoveKey] = this._renderSpecificView(this._getDateByOffset(viewOffset, destinationDate));\r\n this._view.$element().remove()\r\n }\r\n this._view = this[viewToCreateKey];\r\n var dateByOffset = this._getDateByOffset(-viewOffset, destinationDate);\r\n this[viewToCreateKey] = this._isViewAvailable(dateByOffset) ? this._renderSpecificView(dateByOffset) : null\r\n },\r\n _resetLocation: function() {\r\n move(this._$viewsWrapper, {\r\n left: 0,\r\n top: 0\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._clearViewWidthCache();\r\n delete this._$viewsWrapper;\r\n delete this._navigator;\r\n delete this._$footer\r\n },\r\n _clearViewWidthCache: function() {\r\n delete this._viewWidthValue\r\n },\r\n _disposeViews: function() {\r\n this._view.$element().remove();\r\n this._beforeView && this._beforeView.$element().remove();\r\n this._afterView && this._afterView.$element().remove();\r\n delete this._view;\r\n delete this._beforeView;\r\n delete this._afterView\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._waitRenderViewTimeout);\r\n this.callBase()\r\n },\r\n _refreshViews: function() {\r\n this._disposeViews();\r\n this._renderViews()\r\n },\r\n _visibilityChanged: function() {\r\n this._translateViews()\r\n },\r\n _focusInHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", this.option(\"currentDate\"))\r\n },\r\n _focusOutHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n this._view.option(\"contouredDate\", null)\r\n },\r\n _updateViewsValue: function(value) {\r\n var newValue = value ? new Date(value) : null;\r\n this._view.option(\"value\", newValue);\r\n this._beforeView && this._beforeView.option(\"value\", newValue);\r\n this._afterView && this._afterView.option(\"value\", newValue)\r\n },\r\n _updateAriaSelected: function(value, previousValue) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._dateOption(\"value\");\r\n var $prevSelectedCell = this._view._getCellByDate(previousValue);\r\n var $selectedCell = this._view._getCellByDate(value);\r\n this.setAria(\"selected\", void 0, $prevSelectedCell);\r\n this.setAria(\"selected\", true, $selectedCell);\r\n if (value && this.option(\"currentDate\").getTime() === value.getTime()) {\r\n this._updateAriaId(value)\r\n }\r\n },\r\n _updateAriaId: function(value) {\r\n var _value2;\r\n value = null !== (_value2 = value) && void 0 !== _value2 ? _value2 : this.option(\"currentDate\");\r\n var ariaId = \"dx-\" + new Guid;\r\n var $newCell = this._view._getCellByDate(value);\r\n this.setAria(\"id\", ariaId, $newCell);\r\n this.setAria(\"activedescendant\", ariaId);\r\n this._onContouredChanged(ariaId)\r\n },\r\n _suppressingNavigation: function(callback, args) {\r\n this._suppressNavigation = true;\r\n callback.apply(this, args);\r\n delete this._suppressNavigation\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n var previousValue = args.previousValue;\r\n switch (args.name) {\r\n case \"width\":\r\n this.callBase(args);\r\n this._clearViewWidthCache();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this.min = void 0;\r\n this.max = void 0;\r\n this._suppressingNavigation(this._updateCurrentDate, [this.option(\"currentDate\")]);\r\n this._refreshViews();\r\n this._renderNavigator();\r\n break;\r\n case \"firstDayOfWeek\":\r\n this._refreshViews();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"currentDate\":\r\n this.setAria(\"id\", void 0, this._view._getCellByDate(previousValue));\r\n this._updateCurrentDate(value);\r\n break;\r\n case \"zoomLevel\":\r\n this.$element().removeClass(CALENDAR_VIEW_CLASS + \"-\" + previousValue);\r\n this._correctZoomLevel();\r\n this._refreshViews();\r\n this._renderNavigator();\r\n this._updateAriaId();\r\n break;\r\n case \"minZoomLevel\":\r\n case \"maxZoomLevel\":\r\n this._correctZoomLevel();\r\n this._updateButtonsVisibility();\r\n break;\r\n case \"value\":\r\n value = this._convertToDate(value);\r\n previousValue = this._convertToDate(previousValue);\r\n this._updateAriaSelected(value, previousValue);\r\n this.option(\"currentDate\", isDefined(value) ? new Date(value) : new Date);\r\n this._updateViewsValue(value);\r\n this._setSubmitValue(value);\r\n this.callBase(args);\r\n break;\r\n case \"onCellClick\":\r\n this._view.option(\"onCellClick\", value);\r\n break;\r\n case \"onContouredChanged\":\r\n this._onContouredChanged = this._createActionByOption(\"onContouredChanged\");\r\n break;\r\n case \"disabledDates\":\r\n case \"dateSerializationFormat\":\r\n case \"cellTemplate\":\r\n case \"showTodayButton\":\r\n this._invalidate();\r\n break;\r\n case \"skipFocusCheck\":\r\n break;\r\n case \"_todayDate\":\r\n case \"showWeekNumbers\":\r\n case \"weekNumberRule\":\r\n this._refreshViews();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getContouredDate: function() {\r\n return this._view.option(\"contouredDate\")\r\n }\r\n});\r\nregisterComponent(\"dxCalendar\", Calendar);\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/calendar.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"./calendar/ui.calendar\";\r\nexport default Calendar;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar abstract = Class.abstract;\r\nvar DateBoxStrategy = Class.inherit({\r\n ctor: function(dateBox) {\r\n this.dateBox = dateBox\r\n },\r\n widgetOption: function() {\r\n return this._widget && this._widget.option.apply(this._widget, arguments)\r\n },\r\n _renderWidget: function(element) {\r\n element = element || $(\"<div>\");\r\n this._widget = this._createWidget(element);\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _createWidget: function(element) {\r\n var widgetName = this._getWidgetName();\r\n var widgetOptions = this._getWidgetOptions();\r\n return this.dateBox._createComponent(element, widgetName, widgetOptions)\r\n },\r\n _getWidgetOptions: abstract,\r\n _getWidgetName: abstract,\r\n getDefaultOptions: function() {\r\n return {\r\n mode: \"text\"\r\n }\r\n },\r\n getDisplayFormat: abstract,\r\n supportedKeys: noop,\r\n getKeyboardListener: noop,\r\n customizeButtons: noop,\r\n getParsedText: function(text, format) {\r\n var value = dateLocalization.parse(text, format);\r\n return value ? value : dateLocalization.parse(text)\r\n },\r\n renderInputMinMax: noop,\r\n renderOpenedState: function() {\r\n this._updateValue()\r\n },\r\n popupConfig: abstract,\r\n _dimensionChanged: function() {\r\n var _this$_getPopup;\r\n null === (_this$_getPopup = this._getPopup()) || void 0 === _this$_getPopup ? void 0 : _this$_getPopup.repaint()\r\n },\r\n renderPopupContent: function() {\r\n var popup = this._getPopup();\r\n this._renderWidget();\r\n var $popupContent = popup.$content().parent();\r\n eventsEngine.off($popupContent, \"mousedown\");\r\n eventsEngine.on($popupContent, \"mousedown\", this._preventFocusOnPopup.bind(this))\r\n },\r\n getFirstPopupElement: noop,\r\n getLastPopupElement: noop,\r\n _preventFocusOnPopup: function(e) {\r\n e.preventDefault()\r\n },\r\n _getWidgetContainer: function() {\r\n return this._getPopup().$content()\r\n },\r\n _getPopup: function() {\r\n return this.dateBox._popup\r\n },\r\n popupShowingHandler: noop,\r\n popupHiddenHandler: noop,\r\n _updateValue: function() {\r\n this._widget && this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n useCurrentDateByDefault: noop,\r\n getDefaultDate: function() {\r\n return new Date\r\n },\r\n textChangedHandler: noop,\r\n renderValue: function() {\r\n if (this.dateBox.option(\"opened\")) {\r\n this._updateValue()\r\n }\r\n },\r\n getValue: function() {\r\n return this._widget.option(\"value\")\r\n },\r\n isAdaptivityChanged: function() {\r\n return false\r\n },\r\n dispose: function() {\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$content().empty()\r\n }\r\n },\r\n dateBoxValue: function() {\r\n if (arguments.length) {\r\n return this.dateBox.dateValue.apply(this.dateBox, arguments)\r\n } else {\r\n return this.dateBox.dateOption.apply(this.dateBox, [\"value\"])\r\n }\r\n }\r\n});\r\nexport default DateBoxStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Calendar from \"../calendar\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar CalendarStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Calendar\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n todayButtonText: messageLocalization.format(\"dxCalendar-todayButtonText\")\r\n })\r\n },\r\n supportedKeys: function() {\r\n var homeEndHandler = function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n return true\r\n }\r\n return false\r\n };\r\n return {\r\n rightArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n if (this.option(\"opened\")) {\r\n return true\r\n }\r\n },\r\n enter: function(e) {\r\n if (this.dateBox.option(\"opened\")) {\r\n e.preventDefault();\r\n if (this._widget.option(\"zoomLevel\") === this._widget.option(\"maxZoomLevel\")) {\r\n var viewValue = this._getContouredValue();\r\n var lastActionElement = this._lastActionElement;\r\n var shouldCloseDropDown = this._closeDropDownByEnter();\r\n if (shouldCloseDropDown && viewValue && \"calendar\" === lastActionElement) {\r\n this.dateBoxValue(viewValue, e)\r\n }\r\n shouldCloseDropDown && this.dateBox.close();\r\n this.dateBox._valueChangeEventHandler(e);\r\n return !shouldCloseDropDown\r\n } else {\r\n return true\r\n }\r\n } else {\r\n this.dateBox._valueChangeEventHandler(e)\r\n }\r\n }.bind(this),\r\n home: homeEndHandler,\r\n end: homeEndHandler\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdate\"\r\n },\r\n _closeDropDownByEnter: () => true,\r\n _getWidgetName: function() {\r\n return Calendar\r\n },\r\n _getContouredValue: function() {\r\n return this._widget._view.option(\"contouredDate\")\r\n },\r\n getKeyboardListener() {\r\n return this._widget\r\n },\r\n _getWidgetOptions: function() {\r\n var disabledDates = this.dateBox.option(\"disabledDates\");\r\n return extend(this.dateBox.option(\"calendarOptions\"), {\r\n value: this.dateBoxValue() || null,\r\n dateSerializationFormat: null,\r\n min: this.dateBox.dateOption(\"min\"),\r\n max: this.dateBox.dateOption(\"max\"),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n onCellClick: this._cellClickHandler.bind(this),\r\n tabIndex: null,\r\n disabledDates: isFunction(disabledDates) ? this._injectComponent(disabledDates.bind(this.dateBox)) : disabledDates,\r\n onContouredChanged: this._refreshActiveDescendant.bind(this),\r\n skipFocusCheck: true\r\n })\r\n },\r\n _injectComponent: function(func) {\r\n var that = this;\r\n return function(params) {\r\n extend(params, {\r\n component: that.dateBox\r\n });\r\n return func(params)\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this._lastActionElement = \"calendar\";\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _getTodayButtonConfig() {\r\n var buttonsLocation = this.dateBox.option(\"buttonsLocation\");\r\n var isButtonsLocationDefault = \"default\" === buttonsLocation;\r\n var position = isButtonsLocationDefault ? [\"bottom\", \"center\"] : splitPair(buttonsLocation);\r\n return {\r\n widget: \"dxButton\",\r\n toolbar: position[0],\r\n location: \"after\" === position[1] ? \"before\" : position[1],\r\n options: {\r\n onInitialized: function(e) {\r\n e.component.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n }.bind(this),\r\n onClick: args => {\r\n this._widget._toTodayView(args)\r\n },\r\n text: this.dateBox.option(\"todayButtonText\"),\r\n type: \"today\"\r\n }\r\n }\r\n },\r\n _isCalendarVisible: function() {\r\n var {\r\n calendarOptions: calendarOptions\r\n } = this.dateBox.option();\r\n return isEmptyObject(calendarOptions) || false !== calendarOptions.visible\r\n },\r\n _getPopupToolbarItems(toolbarItems) {\r\n var useButtons = \"useButtons\" === this.dateBox.option(\"applyValueMode\");\r\n var shouldRenderTodayButton = useButtons && this._isCalendarVisible();\r\n if (shouldRenderTodayButton) {\r\n var todayButton = this._getTodayButtonConfig();\r\n return [todayButton, ...toolbarItems]\r\n }\r\n return toolbarItems\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return extend(true, _popupConfig, {\r\n position: {\r\n collision: \"flipfit flip\"\r\n },\r\n width: \"auto\"\r\n })\r\n },\r\n _escapeHandler: function() {\r\n this.dateBox.close();\r\n this.dateBox.focus()\r\n },\r\n _valueChangedHandler: function(e) {\r\n var value = e.value;\r\n var prevValue = e.previousValue;\r\n if (dateUtils.sameDate(value, prevValue) && dateUtils.sameHoursAndMinutes(value, prevValue)) {\r\n return\r\n }\r\n if (\"instantly\" === this.dateBox.option(\"applyValueMode\")) {\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"value\", this.dateBoxValue())\r\n },\r\n textChangedHandler: function() {\r\n this._lastActionElement = \"input\";\r\n if (this.dateBox.option(\"opened\") && this._widget) {\r\n this._updateValue(true)\r\n }\r\n },\r\n _cellClickHandler: function(e) {\r\n var dateBox = this.dateBox;\r\n if (\"instantly\" === dateBox.option(\"applyValueMode\")) {\r\n dateBox.option(\"opened\", false);\r\n this.dateBoxValue(this.getValue(), e.event)\r\n }\r\n }\r\n});\r\nexport default CalendarStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/convert_location.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../../../core/utils/type\";\r\nimport {\r\n ensureDefined\r\n} from \"../../../../core/utils/common\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function convertToLocation(location, direction) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? left : void 0,\r\n top: isDefined(top) ? top : void 0\r\n }\r\n }\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n return {\r\n left: isHorizontal && isDefined(location) ? location : void 0,\r\n top: isVertical && isDefined(location) ? location : void 0\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view_roller.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable.old\";\r\nimport devices from \"../../core/devices\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n resetPosition\r\n} from \"../../animation/translator\";\r\nimport {\r\n convertToLocation\r\n} from \"../../renovation/ui/scroll_view/utils/convert_location\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar DATEVIEW_ROLLER_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DATEVIEW_ROLLER_CURRENT_CLASS = \"dx-dateviewroller-current\";\r\nvar DATEVIEW_ROLLER_ITEM_CLASS = \"dx-dateview-item\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_CLASS = \"dx-dateview-item-selected\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS = \"dx-dateview-item-selected-frame\";\r\nvar DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS = \"dx-dateview-item-selected-border\";\r\nclass DateViewRoller extends Scrollable {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n showScrollbar: \"never\",\r\n useNative: false,\r\n selectedIndex: 0,\r\n bounceEnabled: false,\r\n items: [],\r\n showOnClick: false,\r\n onClick: null,\r\n onSelectedIndexChanged: null,\r\n scrollByContent: true\r\n })\r\n }\r\n _init() {\r\n super._init();\r\n this.option(\"onVisibilityChange\", this._visibilityChangedHandler.bind(this));\r\n this.option(\"onEnd\", this._endActionHandler.bind(this))\r\n }\r\n _render() {\r\n super._render();\r\n this._renderSelectedItemFrame();\r\n this.$element().addClass(DATEVIEW_ROLLER_CLASS);\r\n this._renderContainerClick();\r\n this._renderItems();\r\n this._renderSelectedValue();\r\n this._renderItemsClick();\r\n this._renderWheelEvent();\r\n this._renderSelectedIndexChanged()\r\n }\r\n _renderSelectedIndexChanged() {\r\n this._selectedIndexChanged = this._createActionByOption(\"onSelectedIndexChanged\")\r\n }\r\n _renderWheelEvent() {\r\n eventsEngine.on($(this.container()), \"dxmousewheel\", e => {\r\n this._isWheelScrolled = true\r\n })\r\n }\r\n _renderContainerClick() {\r\n if (!this.option(\"showOnClick\")) {\r\n return\r\n }\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var clickAction = this._createActionByOption(\"onClick\");\r\n eventsEngine.off($(this.container()), eventName);\r\n eventsEngine.on($(this.container()), eventName, (function(e) {\r\n clickAction({\r\n event: e\r\n })\r\n }))\r\n }\r\n _renderItems() {\r\n var items = this.option(\"items\") || [];\r\n var $items = $();\r\n $(this.content()).empty();\r\n items.forEach((function(item) {\r\n $items = $items.add($(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_CLASS).append(item))\r\n }));\r\n $(this.content()).append($items);\r\n this._$items = $items;\r\n this.update()\r\n }\r\n _renderSelectedItemFrame() {\r\n $(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS).append($(\"<div>\").addClass(DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS)).appendTo($(this.container()))\r\n }\r\n _renderSelectedValue(selectedIndex) {\r\n var index = this._fitIndex(null !== selectedIndex && void 0 !== selectedIndex ? selectedIndex : this.option(\"selectedIndex\"));\r\n this._moveTo({\r\n top: this._getItemPosition(index)\r\n });\r\n this._renderActiveStateItem()\r\n }\r\n _fitIndex(index) {\r\n var items = this.option(\"items\") || [];\r\n var itemCount = items.length;\r\n if (index >= itemCount) {\r\n return itemCount - 1\r\n }\r\n if (index < 0) {\r\n return 0\r\n }\r\n return index\r\n }\r\n _getItemPosition(index) {\r\n return Math.round(this._itemHeight() * index)\r\n }\r\n _renderItemsClick() {\r\n var itemSelector = this._getItemSelector();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off(this.$element(), eventName, itemSelector);\r\n eventsEngine.on(this.$element(), eventName, itemSelector, this._itemClickHandler.bind(this))\r\n }\r\n _getItemSelector() {\r\n return \".\" + DATEVIEW_ROLLER_ITEM_CLASS\r\n }\r\n _itemClickHandler(e) {\r\n this.option(\"selectedIndex\", this._itemElementIndex(e.currentTarget))\r\n }\r\n _itemElementIndex(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n }\r\n _itemElements() {\r\n return this.$element().find(this._getItemSelector())\r\n }\r\n _renderActiveStateItem() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n each(this._$items, (function(index) {\r\n $(this).toggleClass(DATEVIEW_ROLLER_ITEM_SELECTED_CLASS, selectedIndex === index)\r\n }))\r\n }\r\n _shouldScrollToNeighborItem() {\r\n return \"desktop\" === devices.real().deviceType && this._isWheelScrolled\r\n }\r\n _moveTo(targetLocation) {\r\n var {\r\n top: top,\r\n left: left\r\n } = convertToLocation(targetLocation);\r\n var location = this.scrollOffset();\r\n var delta = {\r\n x: location.left - left,\r\n y: location.top - top\r\n };\r\n if (this._isVisible() && (delta.x || delta.y)) {\r\n this._prepareDirections(true);\r\n if (this._animation && !this._shouldScrollToNeighborItem()) {\r\n var that = this;\r\n fx.stop($(this.content()));\r\n fx.animate($(this.content()), {\r\n duration: 200,\r\n type: \"slide\",\r\n to: {\r\n top: Math.floor(delta.y)\r\n },\r\n complete() {\r\n resetPosition($(that.content()));\r\n that.handleMove({\r\n delta: delta\r\n })\r\n }\r\n });\r\n delete this._animation\r\n } else {\r\n this.handleMove({\r\n delta: delta\r\n })\r\n }\r\n }\r\n }\r\n _validate(e) {\r\n return this._moveIsAllowed(e)\r\n }\r\n _fitSelectedIndexInRange(index) {\r\n var itemsCount = this.option(\"items\").length;\r\n return Math.max(Math.min(index, itemsCount - 1), 0)\r\n }\r\n _isInNullNeighborhood(x) {\r\n return -.1 <= x && x <= .1\r\n }\r\n _getSelectedIndexAfterScroll(currentSelectedIndex) {\r\n var locationTop = this.scrollOffset().top;\r\n var currentSelectedIndexPosition = currentSelectedIndex * this._itemHeight();\r\n var dy = locationTop - currentSelectedIndexPosition;\r\n if (this._isInNullNeighborhood(dy)) {\r\n return currentSelectedIndex\r\n }\r\n var direction = dy > 0 ? 1 : -1;\r\n var newSelectedIndex = this._fitSelectedIndexInRange(currentSelectedIndex + direction);\r\n return newSelectedIndex\r\n }\r\n _getNewSelectedIndex(currentSelectedIndex) {\r\n if (this._shouldScrollToNeighborItem()) {\r\n return this._getSelectedIndexAfterScroll(currentSelectedIndex)\r\n }\r\n this._animation = true;\r\n var ratio = this.scrollOffset().top / this._itemHeight();\r\n return Math.round(ratio)\r\n }\r\n _endActionHandler() {\r\n var currentSelectedIndex = this.option(\"selectedIndex\");\r\n var newSelectedIndex = this._getNewSelectedIndex(currentSelectedIndex);\r\n if (newSelectedIndex === currentSelectedIndex) {\r\n this._renderSelectedValue(newSelectedIndex)\r\n } else {\r\n this.option(\"selectedIndex\", newSelectedIndex)\r\n }\r\n this._isWheelScrolled = false\r\n }\r\n _itemHeight() {\r\n var $item = this._$items.first();\r\n return getHeight($item)\r\n }\r\n _toggleActive(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_ACTIVE_CLASS, state)\r\n }\r\n _isVisible() {\r\n return $(this.container()).is(\":visible\")\r\n }\r\n _fireSelectedIndexChanged(value, previousValue) {\r\n this._selectedIndexChanged({\r\n value: value,\r\n previousValue: previousValue,\r\n event: void 0\r\n })\r\n }\r\n _visibilityChanged(visible) {\r\n super._visibilityChanged(visible);\r\n this._visibilityChangedHandler(visible)\r\n }\r\n _visibilityChangedHandler(visible) {\r\n if (visible) {\r\n this._visibilityTimer = setTimeout(() => {\r\n this._renderSelectedValue(this.option(\"selectedIndex\"))\r\n })\r\n }\r\n this.toggleActiveState(false)\r\n }\r\n toggleActiveState(state) {\r\n this.$element().toggleClass(DATEVIEW_ROLLER_CURRENT_CLASS, state)\r\n }\r\n _refreshSelectedIndex() {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var fitIndex = this._fitIndex(selectedIndex);\r\n if (fitIndex === selectedIndex) {\r\n this._renderActiveStateItem()\r\n } else {\r\n this.option(\"selectedIndex\", fitIndex)\r\n }\r\n }\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectedIndex\":\r\n this._fireSelectedIndexChanged(args.value, args.previousValue);\r\n this._renderSelectedValue(args.value);\r\n break;\r\n case \"items\":\r\n this._renderItems();\r\n this._refreshSelectedIndex();\r\n break;\r\n case \"onClick\":\r\n case \"showOnClick\":\r\n this._renderContainerClick();\r\n break;\r\n case \"onSelectedIndexChanged\":\r\n this._renderSelectedIndexChanged();\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _dispose() {\r\n clearTimeout(this._visibilityTimer);\r\n super._dispose()\r\n }\r\n}\r\nregisterComponent(\"dxDateViewRoller\", DateViewRoller);\r\nexport default DateViewRoller;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Editor from \"../editor/editor\";\r\nimport DateViewRoller from \"./ui.date_view_roller\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nvar DATEVIEW_CLASS = \"dx-dateview\";\r\nvar DATEVIEW_COMPACT_CLASS = \"dx-dateview-compact\";\r\nvar DATEVIEW_WRAPPER_CLASS = \"dx-dateview-wrapper\";\r\nvar DATEVIEW_ROLLER_CONTAINER_CLASS = \"dx-dateview-rollers\";\r\nvar DATEVIEW_ROLLER_CLASS = \"dx-dateviewroller\";\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar ROLLER_TYPE = {\r\n year: \"year\",\r\n month: \"month\",\r\n day: \"day\",\r\n hours: \"hours\"\r\n};\r\nvar DateView = Editor.inherit({\r\n _valueOption: function() {\r\n var value = this.option(\"value\");\r\n var date = new Date(value);\r\n return !value || isNaN(date) ? this._getDefaultDate() : date\r\n },\r\n _getDefaultDate: function() {\r\n var date = new Date;\r\n if (this.option(\"type\") === TYPE.date) {\r\n return new Date(date.getFullYear(), date.getMonth(), date.getDate())\r\n }\r\n return date\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n minDate: uiDateUtils.MIN_DATEVIEW_DEFAULT_DATE,\r\n maxDate: uiDateUtils.MAX_DATEVIEW_DEFAULT_DATE,\r\n type: TYPE.date,\r\n value: new Date,\r\n applyCompactClass: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n return \"desktop\" !== _device.deviceType\r\n },\r\n options: {\r\n applyCompactClass: true\r\n }\r\n }])\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(DATEVIEW_CLASS);\r\n this._toggleFormatClasses(this.option(\"type\"));\r\n this._toggleCompactClass()\r\n },\r\n _toggleFormatClasses: function(currentFormat, previousFormat) {\r\n this.$element().addClass(DATEVIEW_CLASS + \"-\" + currentFormat);\r\n previousFormat && this.$element().removeClass(DATEVIEW_CLASS + \"-\" + previousFormat)\r\n },\r\n _toggleCompactClass: function() {\r\n this.$element().toggleClass(DATEVIEW_COMPACT_CLASS, this.option(\"applyCompactClass\"))\r\n },\r\n _wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _renderContentImpl: function() {\r\n this._$wrapper = $(\"<div>\").addClass(DATEVIEW_WRAPPER_CLASS);\r\n this._renderRollers();\r\n this._$wrapper.appendTo(this.$element())\r\n },\r\n _renderRollers: function() {\r\n if (!this._$rollersContainer) {\r\n this._$rollersContainer = $(\"<div>\").addClass(DATEVIEW_ROLLER_CONTAINER_CLASS)\r\n }\r\n this._$rollersContainer.empty();\r\n this._createRollerConfigs();\r\n this._rollers = {};\r\n var that = this;\r\n each(that._rollerConfigs, (function(name) {\r\n var $roller = $(\"<div>\").appendTo(that._$rollersContainer).addClass(DATEVIEW_ROLLER_CLASS + \"-\" + that._rollerConfigs[name].type);\r\n that._rollers[that._rollerConfigs[name].type] = that._createComponent($roller, DateViewRoller, {\r\n items: that._rollerConfigs[name].displayItems,\r\n selectedIndex: that._rollerConfigs[name].selectedIndex,\r\n showScrollbar: \"never\",\r\n scrollByContent: true,\r\n onStart: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n },\r\n onEnd: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(false)\r\n },\r\n onClick: function(e) {\r\n var roller = e.component;\r\n roller._toggleActive(true);\r\n that._setActiveRoller(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"));\r\n roller._toggleActive(false)\r\n },\r\n onSelectedIndexChanged: function(e) {\r\n var roller = e.component;\r\n that._setRollerState(that._rollerConfigs[name], roller.option(\"selectedIndex\"))\r\n }\r\n })\r\n }));\r\n that._$rollersContainer.appendTo(that._wrapper())\r\n },\r\n _createRollerConfigs: function(type) {\r\n var that = this;\r\n type = type || that.option(\"type\");\r\n that._rollerConfigs = {};\r\n dateLocalization.getFormatParts(uiDateUtils.FORMATS_MAP[type]).forEach((function(partName) {\r\n that._createRollerConfig(partName)\r\n }))\r\n },\r\n _createRollerConfig: function(componentName) {\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var valueRange = this._calculateRollerConfigValueRange(componentName);\r\n var startValue = valueRange.startValue;\r\n var endValue = valueRange.endValue;\r\n var formatter = componentInfo.formatter;\r\n var curDate = this._getCurrentDate();\r\n var config = {\r\n type: componentName,\r\n setValue: componentInfo.setter,\r\n valueItems: [],\r\n displayItems: [],\r\n getIndex: function(value) {\r\n return value[componentInfo.getter]() - startValue\r\n }\r\n };\r\n for (var i = startValue; i <= endValue; i++) {\r\n config.valueItems.push(i);\r\n config.displayItems.push(formatter(i, curDate))\r\n }\r\n config.selectedIndex = config.getIndex(curDate);\r\n this._rollerConfigs[componentName] = config\r\n },\r\n _setActiveRoller: function(currentRoller) {\r\n var activeRoller = currentRoller && this._rollers[currentRoller.type];\r\n each(this._rollers, (function() {\r\n this.toggleActiveState(this === activeRoller)\r\n }))\r\n },\r\n _updateRollersPosition: function() {\r\n var that = this;\r\n each(this._rollers, (function(type) {\r\n var correctIndex = that._rollerConfigs[type].getIndex(that._getCurrentDate());\r\n this.option(\"selectedIndex\", correctIndex)\r\n }))\r\n },\r\n _setRollerState: function(roller, selectedIndex) {\r\n if (selectedIndex !== roller.selectedIndex) {\r\n var rollerValue = roller.valueItems[selectedIndex];\r\n var setValue = roller.setValue;\r\n var currentValue = new Date(this._getCurrentDate());\r\n var currentDate = currentValue.getDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n if (roller.type === ROLLER_TYPE.month) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(currentValue.getFullYear(), rollerValue))\r\n } else if (roller.type === ROLLER_TYPE.year) {\r\n currentDate = Math.min(currentDate, uiDateUtils.getMaxMonthDay(rollerValue, currentValue.getMonth()))\r\n }\r\n currentValue.setDate(currentDate);\r\n currentValue[setValue](rollerValue);\r\n var normalizedDate = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n currentValue = uiDateUtils.mergeDates(normalizedDate, currentValue, \"time\");\r\n currentValue = dateUtils.normalizeDate(currentValue, minDate, maxDate);\r\n this.option(\"value\", currentValue);\r\n roller.selectedIndex = selectedIndex\r\n }\r\n if (roller.type === ROLLER_TYPE.year) {\r\n this._refreshRollers()\r\n }\r\n if (roller.type === ROLLER_TYPE.month) {\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n }\r\n },\r\n _refreshRoller: function(rollerType) {\r\n var roller = this._rollers[rollerType];\r\n if (roller) {\r\n this._createRollerConfig(rollerType);\r\n var rollerConfig = this._rollerConfigs[rollerType];\r\n if (rollerType === ROLLER_TYPE.day || rollerConfig.displayItems.toString() !== roller.option(\"items\").toString()) {\r\n roller.option({\r\n items: rollerConfig.displayItems,\r\n selectedIndex: rollerConfig.selectedIndex\r\n })\r\n }\r\n }\r\n },\r\n _getCurrentDate: function() {\r\n var curDate = this._valueOption();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n return dateUtils.normalizeDate(curDate, minDate, maxDate)\r\n },\r\n _calculateRollerConfigValueRange: function(componentName) {\r\n var curDate = this._getCurrentDate();\r\n var minDate = this.option(\"minDate\");\r\n var maxDate = this.option(\"maxDate\");\r\n var minYear = dateUtils.sameYear(curDate, minDate);\r\n var minMonth = minYear && curDate.getMonth() === minDate.getMonth();\r\n var maxYear = dateUtils.sameYear(curDate, maxDate);\r\n var maxMonth = maxYear && curDate.getMonth() === maxDate.getMonth();\r\n var minHour = minMonth && curDate.getDate() === minDate.getDate();\r\n var maxHour = maxMonth && curDate.getDate() === maxDate.getDate();\r\n var componentInfo = uiDateUtils.DATE_COMPONENTS_INFO[componentName];\r\n var startValue = componentInfo.startValue;\r\n var endValue = componentInfo.endValue;\r\n if (componentName === ROLLER_TYPE.year) {\r\n startValue = minDate.getFullYear();\r\n endValue = maxDate.getFullYear()\r\n }\r\n if (componentName === ROLLER_TYPE.month) {\r\n if (minYear) {\r\n startValue = minDate.getMonth()\r\n }\r\n if (maxYear) {\r\n endValue = maxDate.getMonth()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.day) {\r\n endValue = uiDateUtils.getMaxMonthDay(curDate.getFullYear(), curDate.getMonth());\r\n if (minYear && minMonth) {\r\n startValue = minDate.getDate()\r\n }\r\n if (maxYear && maxMonth) {\r\n endValue = maxDate.getDate()\r\n }\r\n }\r\n if (componentName === ROLLER_TYPE.hours) {\r\n startValue = minHour ? minDate.getHours() : startValue;\r\n endValue = maxHour ? maxDate.getHours() : endValue\r\n }\r\n return {\r\n startValue: startValue,\r\n endValue: endValue\r\n }\r\n },\r\n _refreshRollers: function() {\r\n this._refreshRoller(ROLLER_TYPE.month);\r\n this._refreshRoller(ROLLER_TYPE.day);\r\n this._refreshRoller(ROLLER_TYPE.hours)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"minDate\":\r\n case \"maxDate\":\r\n case \"type\":\r\n this._renderRollers();\r\n this._toggleFormatClasses(args.value, args.previousValue);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (args.value) {\r\n this._renderRollers()\r\n }\r\n break;\r\n case \"value\":\r\n this.option(\"value\", this._valueOption());\r\n this._refreshRollers();\r\n this._updateRollersPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n delete this._$rollersContainer\r\n }\r\n});\r\nregisterComponent(\"dxDateView\", DateView);\r\nexport default DateView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.date_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport DateView from \"./ui.date_view\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar DateViewStrategy = DateBoxStrategy.inherit({\r\n NAME: \"DateView\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n openOnFieldClick: true,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n \"dropDownOptions.showTitle\": true\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || dateUtils.FORMATS_MAP[this.dateBox.option(\"type\")]\r\n },\r\n popupConfig: function(config) {\r\n return {\r\n toolbarItems: this.dateBox._popupToolbarItemsConfig(),\r\n onInitialized: config.onInitialized,\r\n defaultOptionsRules: [{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n width: 333,\r\n height: 331\r\n }\r\n }, {\r\n device: function(_device) {\r\n var platform = _device.platform;\r\n return \"generic\" === platform || \"ios\" === platform\r\n },\r\n options: {\r\n width: \"auto\",\r\n height: \"auto\"\r\n }\r\n }, {\r\n device: function(_device2) {\r\n var platform = _device2.platform;\r\n var phone = _device2.phone;\r\n return \"generic\" === platform && phone\r\n },\r\n options: {\r\n width: 333,\r\n maxWidth: \"100%\",\r\n maxHeight: \"100%\",\r\n height: \"auto\",\r\n position: {\r\n collision: \"flipfit flip\"\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"ios\",\r\n phone: true\r\n },\r\n options: {\r\n width: \"100%\",\r\n position: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }]\r\n }\r\n },\r\n _renderWidget: function() {\r\n if (inputType(this.dateBox.option(\"mode\")) && this.dateBox._isNativeType() || this.dateBox.option(\"readOnly\")) {\r\n if (this._widget) {\r\n this._widget.$element().remove();\r\n this._widget = null\r\n }\r\n return\r\n }\r\n var popup = this._getPopup();\r\n if (this._widget) {\r\n this._widget.option(this._getWidgetOptions())\r\n } else {\r\n var element = $(\"<div>\").appendTo(popup.$content());\r\n this._widget = this._createWidget(element)\r\n }\r\n this._widget.$element().appendTo(this._getWidgetContainer())\r\n },\r\n _getWidgetName: function() {\r\n return DateView\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n if (this._widget) {\r\n this._widget.option(\"value\", this._widget._getCurrentDate())\r\n }\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n value: this.dateBoxValue() || new Date,\r\n type: this.dateBox.option(\"type\"),\r\n minDate: this.dateBox.dateOption(\"min\") || new Date(1900, 0, 1),\r\n maxDate: this.dateBox.dateOption(\"max\") || new Date(Date.now() + 50 * dateUtils.ONE_YEAR),\r\n onDisposing: function() {\r\n this._widget = null\r\n }.bind(this)\r\n }\r\n }\r\n});\r\nexport default DateViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.native.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nvar NativeStrategy = DateBoxStrategy.inherit({\r\n NAME: \"Native\",\r\n popupConfig: function(_popupConfig) {\r\n return extend({}, _popupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n getParsedText: function(text) {\r\n if (!text) {\r\n return null\r\n }\r\n if (\"datetime\" === this.dateBox.option(\"type\")) {\r\n return new Date(text.replace(/-/g, \"/\").replace(\"T\", \" \").split(\".\")[0])\r\n }\r\n return dateUtils.fromStandardDateFormat(text)\r\n },\r\n renderPopupContent: noop,\r\n _getWidgetName: noop,\r\n _getWidgetOptions: noop,\r\n _getDateBoxType: function() {\r\n var type = this.dateBox.option(\"type\");\r\n if (!dateUtils.SUPPORTED_FORMATS.includes(type)) {\r\n type = \"date\"\r\n } else if (\"datetime\" === type && !inputType(type)) {\r\n type = \"datetime-local\"\r\n }\r\n return type\r\n },\r\n customizeButtons: function() {\r\n var dropDownButton = this.dateBox.getButton(\"dropDown\");\r\n if (devices.real().android && dropDownButton) {\r\n dropDownButton.on(\"click\", function() {\r\n this.dateBox._input().get(0).click()\r\n }.bind(this))\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return {\r\n mode: this._getDateBoxType()\r\n }\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n var type = this._getDateBoxType();\r\n return displayFormat || dateUtils.FORMATS_MAP[type]\r\n },\r\n renderInputMinMax: function($input) {\r\n $input.attr({\r\n min: dateSerialization.serializeDate(this.dateBox.dateOption(\"min\"), \"yyyy-MM-dd\"),\r\n max: dateSerialization.serializeDate(this.dateBox.dateOption(\"max\"), \"yyyy-MM-dd\")\r\n })\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.time_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Editor from \"../editor/editor\";\r\nimport NumberBox from \"../number_box\";\r\nimport SelectBox from \"../select_box\";\r\nimport Box from \"../box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nvar TIMEVIEW_CLASS = \"dx-timeview\";\r\nvar TIMEVIEW_CLOCK_CLASS = \"dx-timeview-clock\";\r\nvar TIMEVIEW_FIELD_CLASS = \"dx-timeview-field\";\r\nvar TIMEVIEW_HOURARROW_CLASS = \"dx-timeview-hourarrow\";\r\nvar TIMEVIEW_TIME_SEPARATOR_CLASS = \"dx-timeview-time-separator\";\r\nvar TIMEVIEW_FORMAT12_CLASS = \"dx-timeview-format12\";\r\nvar TIMEVIEW_FORMAT12_AM = -1;\r\nvar TIMEVIEW_FORMAT12_PM = 1;\r\nvar TIMEVIEW_MINUTEARROW_CLASS = \"dx-timeview-minutearrow\";\r\nvar rotateArrow = function($arrow, angle, offset) {\r\n cssRotate($arrow, angle, offset)\r\n};\r\nvar cssRotate = function($arrow, angle, offset) {\r\n $arrow.css(\"transform\", \"rotate(\" + angle + \"deg) translate(0,\" + offset + \"px)\")\r\n};\r\nvar TimeView = Editor.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: new Date(Date.now()),\r\n use24HourFormat: true,\r\n _showClock: true,\r\n _arrowOffset: 5,\r\n stylingMode: void 0\r\n })\r\n },\r\n _getValue: function() {\r\n return this.option(\"value\") || new Date\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TIMEVIEW_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderBox();\r\n this._updateTime()\r\n },\r\n _renderBox: function() {\r\n var $box = $(\"<div>\").appendTo(this.$element());\r\n var items = [];\r\n if (this.option(\"_showClock\")) {\r\n items.push({\r\n ratio: 1,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderClock.bind(this)\r\n })\r\n }\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: this._renderField.bind(this)\r\n });\r\n this._createComponent($box, Box, {\r\n height: \"100%\",\r\n width: \"100%\",\r\n direction: \"col\",\r\n items: items\r\n })\r\n },\r\n _renderClock: function(_, __, container) {\r\n this._$hourArrow = $(\"<div>\").addClass(TIMEVIEW_HOURARROW_CLASS);\r\n this._$minuteArrow = $(\"<div>\").addClass(TIMEVIEW_MINUTEARROW_CLASS);\r\n var $container = $(container);\r\n $container.addClass(TIMEVIEW_CLOCK_CLASS).append(this._$hourArrow).append(this._$minuteArrow);\r\n this.setAria(\"role\", \"presentation\", $container)\r\n },\r\n _updateClock: function() {\r\n var time = this._getValue();\r\n var hourArrowAngle = time.getHours() / 12 * 360 + time.getMinutes() / 60 * 30;\r\n var minuteArrowAngle = time.getMinutes() / 60 * 360;\r\n rotateArrow(this._$hourArrow, hourArrowAngle, this.option(\"_arrowOffset\"));\r\n rotateArrow(this._$minuteArrow, minuteArrowAngle, this.option(\"_arrowOffset\"))\r\n },\r\n _getBoxItems: function(is12HourFormat) {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._hourBox.$element()\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: $(\"<div>\").addClass(TIMEVIEW_TIME_SEPARATOR_CLASS).text(dateLocalization.getTimeSeparator())\r\n }, {\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._minuteBox.$element()\r\n }];\r\n if (is12HourFormat) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n template: () => this._format12.$element()\r\n })\r\n }\r\n return items\r\n },\r\n _renderField: function() {\r\n var is12HourFormat = !this.option(\"use24HourFormat\");\r\n this._createHourBox(is12HourFormat);\r\n this._createMinuteBox();\r\n if (is12HourFormat) {\r\n this._createFormat12Box()\r\n }\r\n return this._createComponent($(\"<div>\").addClass(TIMEVIEW_FIELD_CLASS), Box, {\r\n direction: \"row\",\r\n align: \"center\",\r\n crossAlign: \"center\",\r\n items: this._getBoxItems(is12HourFormat)\r\n }).$element()\r\n },\r\n _createHourBox: function(is12HourFormat) {\r\n var editor = this._hourBox = this._createComponent($(\"<div>\"), NumberBox, extend({\r\n min: -1,\r\n max: is12HourFormat ? 13 : 24,\r\n value: this._getValue().getHours(),\r\n onValueChanged: this._onHourBoxValueChanged.bind(this),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts)\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"hours\")\r\n },\r\n _isPM: function() {\r\n return !this.option(\"use24HourFormat\") && 1 === this._format12.option(\"value\")\r\n },\r\n _onHourBoxValueChanged: function(_ref) {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref;\r\n var currentValue = this._getValue();\r\n var newValue = new Date(currentValue);\r\n var newHours = this._convertMaxHourToMin(value);\r\n component.option(\"value\", newHours);\r\n if (this._isPM()) {\r\n newHours += 12\r\n }\r\n newValue.setHours(newHours);\r\n dateUtils.normalizeTime(newValue);\r\n this.option(\"value\", newValue)\r\n },\r\n _convertMaxHourToMin: function(hours) {\r\n var maxHoursValue = this.option(\"use24HourFormat\") ? 24 : 12;\r\n return (maxHoursValue + hours) % maxHoursValue\r\n },\r\n _createMinuteBox: function() {\r\n var editor = this._minuteBox = this._createComponent($(\"<div>\"), NumberBox, extend({\r\n min: -1,\r\n max: 60,\r\n value: this._getValue().getMinutes(),\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref2 => {\r\n var {\r\n value: value,\r\n component: component\r\n } = _ref2;\r\n var newMinutes = (60 + value) % 60;\r\n component.option(\"value\", newMinutes);\r\n var time = new Date(this._getValue());\r\n time.setMinutes(newMinutes);\r\n dateUtils.normalizeTime(time);\r\n this.option(\"value\", time)\r\n }\r\n }, this._getNumberBoxConfig()));\r\n editor.setAria(\"label\", \"minutes\")\r\n },\r\n _createFormat12Box: function() {\r\n var periodNames = dateLocalization.getPeriodNames();\r\n var editor = this._format12 = this._createComponent($(\"<div>\").addClass(TIMEVIEW_FORMAT12_CLASS), SelectBox, {\r\n items: [{\r\n value: TIMEVIEW_FORMAT12_AM,\r\n text: periodNames[0]\r\n }, {\r\n value: TIMEVIEW_FORMAT12_PM,\r\n text: periodNames[1]\r\n }],\r\n valueExpr: \"value\",\r\n displayExpr: \"text\",\r\n onKeyboardHandled: opts => this._keyboardHandler(opts),\r\n onValueChanged: _ref3 => {\r\n var {\r\n value: value\r\n } = _ref3;\r\n var hours = this._getValue().getHours();\r\n var time = new Date(this._getValue());\r\n var newHours = (hours + 12 * value) % 24;\r\n time.setHours(newHours);\r\n this.option(\"value\", time)\r\n },\r\n value: this._getValue().getHours() >= 12 ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM,\r\n stylingMode: this.option(\"stylingMode\")\r\n });\r\n editor.setAria(\"label\", \"type\")\r\n },\r\n _refreshFormat12: function() {\r\n if (this.option(\"use24HourFormat\")) {\r\n return\r\n }\r\n var value = this._getValue();\r\n var hours = value.getHours();\r\n var isPM = hours >= 12;\r\n var newValue = isPM ? TIMEVIEW_FORMAT12_PM : TIMEVIEW_FORMAT12_AM;\r\n this._silentEditorValueUpdate(this._format12, newValue)\r\n },\r\n _silentEditorValueUpdate: function(editor, value) {\r\n if (editor) {\r\n editor._suppressValueChangeAction();\r\n editor.option(\"value\", value);\r\n editor._resumeValueChangeAction()\r\n }\r\n },\r\n _getNumberBoxConfig: function() {\r\n return {\r\n showSpinButtons: true,\r\n displayValueFormatter: function(value) {\r\n return (value < 10 ? \"0\" : \"\") + value\r\n },\r\n stylingMode: this.option(\"stylingMode\")\r\n }\r\n },\r\n _normalizeHours: function(hours) {\r\n return this.option(\"use24HourFormat\") ? hours : hours % 12 || 12\r\n },\r\n _updateField: function() {\r\n var hours = this._normalizeHours(this._getValue().getHours());\r\n this._silentEditorValueUpdate(this._hourBox, hours);\r\n this._silentEditorValueUpdate(this._minuteBox, this._getValue().getMinutes());\r\n this._refreshFormat12()\r\n },\r\n _updateTime: function() {\r\n if (this.option(\"_showClock\")) {\r\n this._updateClock()\r\n }\r\n this._updateField()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateTime()\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._updateTime();\r\n this.callBase(args);\r\n break;\r\n case \"_arrowOffset\":\r\n break;\r\n case \"use24HourFormat\":\r\n case \"_showClock\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTimeView\", TimeView);\r\nexport default TimeView;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.calendar_with_time.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport CalendarStrategy from \"./ui.date_box.strategy.calendar\";\r\nimport TimeView from \"./ui.time_view\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport Box from \"../box\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nvar SHRINK_VIEW_SCREEN_WIDTH = 573;\r\nvar DATEBOX_ADAPTIVITY_MODE_CLASS = \"dx-datebox-adaptivity-mode\";\r\nvar DATEBOX_TIMEVIEW_SIDE_CLASS = \"dx-datebox-datetime-time-side\";\r\nvar CalendarWithTimeStrategy = CalendarStrategy.inherit({\r\n NAME: \"CalendarWithTime\",\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"useButtons\",\r\n buttonsLocation: \"bottom after\",\r\n \"dropDownOptions.showTitle\": false\r\n })\r\n },\r\n _closeDropDownByEnter: function() {\r\n return dateUtils.sameDate(this._getContouredValue(), this.widgetOption(\"value\"))\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shortdateshorttime\"\r\n },\r\n _is24HourFormat: function() {\r\n return dateLocalization.is24HourFormat(this.getDisplayFormat(this.dateBox.option(\"displayFormat\")))\r\n },\r\n _getContouredValue: function() {\r\n var viewDate = this.callBase();\r\n return this._updateDateTime(viewDate)\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._timeView = this.dateBox._createComponent($(\"<div>\"), TimeView, {\r\n value: this.dateBoxValue(),\r\n _showClock: !this._isShrinkView(),\r\n use24HourFormat: this._is24HourFormat(),\r\n onValueChanged: this._valueChangedHandler.bind(this),\r\n stylingMode: this.dateBox.option(\"stylingMode\")\r\n });\r\n this._timeView.registerKeyHandler(\"escape\", this._escapeHandler.bind(this))\r\n },\r\n renderOpenedState: function() {\r\n this.callBase();\r\n var popup = this._getPopup();\r\n if (popup) {\r\n popup.$wrapper().toggleClass(DATEBOX_ADAPTIVITY_MODE_CLASS, this._isSmallScreen())\r\n }\r\n clearTimeout(this._repaintTimer);\r\n this._repaintTimer = setTimeout(function() {\r\n this._getPopup() && this._getPopup().repaint()\r\n }.bind(this), 0)\r\n },\r\n isAdaptivityChanged: function() {\r\n var isAdaptiveMode = this._isShrinkView();\r\n var currentAdaptiveMode = this._currentAdaptiveMode;\r\n if (isAdaptiveMode !== currentAdaptiveMode) {\r\n this._currentAdaptiveMode = isAdaptiveMode;\r\n return void 0 !== currentAdaptiveMode\r\n }\r\n return this.callBase()\r\n },\r\n _updateValue: function(preventDefaultValue) {\r\n var date = this.dateBoxValue();\r\n if (!date && !preventDefaultValue) {\r\n date = new Date;\r\n uiDateUtils.normalizeTime(date)\r\n }\r\n this.callBase();\r\n if (this._timeView) {\r\n date && this._timeView.option(\"value\", date);\r\n this._timeView.option(\"use24HourFormat\", this._is24HourFormat())\r\n }\r\n },\r\n _isSmallScreen: function() {\r\n return getWidth(window) <= SHRINK_VIEW_SCREEN_WIDTH\r\n },\r\n _isShrinkView: function() {\r\n return !this.dateBox.option(\"showAnalogClock\") || this.dateBox.option(\"adaptivityEnabled\") && this._isSmallScreen()\r\n },\r\n _getBoxItems: function() {\r\n var items = [{\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"calendar\"\r\n }];\r\n if (!this._isShrinkView()) {\r\n items.push({\r\n ratio: 0,\r\n shrink: 0,\r\n baseSize: \"auto\",\r\n name: \"time\"\r\n })\r\n }\r\n return items\r\n },\r\n renderPopupContent: function() {\r\n this.callBase();\r\n this._currentAdaptiveMode = this._isShrinkView();\r\n var $popupContent = this._getPopup().$content();\r\n this._box = this.dateBox._createComponent($(\"<div>\").appendTo($popupContent), Box, {\r\n direction: \"row\",\r\n crossAlign: \"stretch\",\r\n items: this._getBoxItems(),\r\n itemTemplate: function(data, i, element) {\r\n var $container = $(\"<div>\");\r\n switch (data.name) {\r\n case \"calendar\":\r\n $container.append(this._widget.$element());\r\n if (this._isShrinkView()) {\r\n this._timeView.$element().addClass(DATEBOX_TIMEVIEW_SIDE_CLASS);\r\n $container.append(this._timeView.$element())\r\n }\r\n break;\r\n case \"time\":\r\n $container.append(this._timeView.$element());\r\n $(element).addClass(DATEBOX_TIMEVIEW_SIDE_CLASS)\r\n }\r\n return $container\r\n }.bind(this)\r\n });\r\n this._attachTabHandler()\r\n },\r\n popupConfig: function(_popupConfig) {\r\n var calendarPopupConfig = this.callBase(_popupConfig);\r\n return extend(calendarPopupConfig, {\r\n width: \"auto\"\r\n })\r\n },\r\n getFirstPopupElement: function() {\r\n return this._timeView._hourBox.$element().find(\"input\")\r\n },\r\n _attachTabHandler: function() {\r\n var dateBox = this.dateBox;\r\n this._timeView._hourBox.registerKeyHandler(\"tab\", (function(e) {\r\n if (e.shiftKey) {\r\n e.preventDefault();\r\n dateBox.focus()\r\n }\r\n }))\r\n },\r\n _preventFocusOnPopup: function(e) {\r\n if (!$(e.target).hasClass(\"dx-texteditor-input\")) {\r\n this.callBase.apply(this, arguments);\r\n if (!this.dateBox._hasFocusClass()) {\r\n this.dateBox.focus()\r\n }\r\n }\r\n },\r\n _updateDateTime: function(date) {\r\n var time = this._timeView.option(\"value\");\r\n date.setHours(time.getHours(), time.getMinutes(), time.getSeconds(), time.getMilliseconds());\r\n return date\r\n },\r\n getValue: function() {\r\n var _this$_widget$option;\r\n var date = null !== (_this$_widget$option = this._widget.option(\"value\")) && void 0 !== _this$_widget$option ? _this$_widget$option : this._widget.getContouredDate();\r\n date = date ? new Date(date) : new Date;\r\n return this._updateDateTime(date)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._removeMinWidthTimer);\r\n clearTimeout(this._repaintTimer);\r\n this.callBase()\r\n }\r\n});\r\nexport default CalendarWithTimeStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.strategy.list.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport List from \"../list_light\";\r\nimport \"../list/modules/selection\";\r\nimport DateBoxStrategy from \"./ui.date_box.strategy\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDate\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport dateUtils from \"./ui.date_utils\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport {\r\n getSizeValue\r\n} from \"../drop_down_editor/utils\";\r\nvar DATE_FORMAT = \"date\";\r\nvar BOUNDARY_VALUES = {\r\n min: new Date(0, 0, 0, 0, 0),\r\n max: new Date(0, 0, 0, 23, 59)\r\n};\r\nvar ListStrategy = DateBoxStrategy.inherit({\r\n NAME: \"List\",\r\n supportedKeys: function() {\r\n return {\r\n tab: function() {\r\n var {\r\n opened: opened,\r\n applyValueMode: applyValueMode\r\n } = this.option();\r\n if (opened && \"instantly\" === applyValueMode) {\r\n this.close()\r\n }\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n }\r\n },\r\n getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n applyValueMode: \"instantly\"\r\n })\r\n },\r\n getDisplayFormat: function(displayFormat) {\r\n return displayFormat || \"shorttime\"\r\n },\r\n popupConfig: function(_popupConfig) {\r\n return _popupConfig\r\n },\r\n getValue: function() {\r\n var selectedIndex = this._widget.option(\"selectedIndex\");\r\n if (-1 === selectedIndex) {\r\n return this.dateBox.option(\"value\")\r\n }\r\n var itemData = this._widgetItems[selectedIndex];\r\n return this._getDateByItemData(itemData)\r\n },\r\n useCurrentDateByDefault: function() {\r\n return true\r\n },\r\n getDefaultDate: function() {\r\n return new Date(null)\r\n },\r\n popupShowingHandler: function() {\r\n this.dateBox._dimensionChanged()\r\n },\r\n _renderWidget: function() {\r\n this.callBase();\r\n this._refreshItems()\r\n },\r\n _getWidgetName: function() {\r\n return List\r\n },\r\n _getWidgetOptions: function() {\r\n return {\r\n itemTemplate: this._timeListItemTemplate.bind(this),\r\n onItemClick: this._listItemClickHandler.bind(this),\r\n tabIndex: -1,\r\n onFocusedItemChanged: this._refreshActiveDescendant.bind(this),\r\n selectionMode: \"single\"\r\n }\r\n },\r\n _refreshActiveDescendant: function(e) {\r\n this.dateBox.setAria(\"activedescendant\", \"\");\r\n this.dateBox.setAria(\"activedescendant\", e.actionValue)\r\n },\r\n _refreshItems: function() {\r\n this._widgetItems = this._getTimeListItems();\r\n this._widget.option(\"items\", this._widgetItems)\r\n },\r\n renderOpenedState: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._widget.option(\"focusedElement\", null);\r\n this._setSelectedItemsByValue();\r\n if (this._widget.option(\"templatesRenderAsynchronously\")) {\r\n this._asyncScrollTimeout = setTimeout(this._scrollToSelectedItem.bind(this))\r\n } else {\r\n this._scrollToSelectedItem()\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._asyncScrollTimeout)\r\n },\r\n _updateValue: function() {\r\n if (!this._widget) {\r\n return\r\n }\r\n this._refreshItems();\r\n this._setSelectedItemsByValue();\r\n this._scrollToSelectedItem()\r\n },\r\n _setSelectedItemsByValue: function() {\r\n var value = this.dateBoxValue();\r\n var dateIndex = this._getDateIndex(value);\r\n if (-1 === dateIndex) {\r\n this._widget.option(\"selectedItems\", [])\r\n } else {\r\n this._widget.option(\"selectedIndex\", dateIndex)\r\n }\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._widget.scrollToItem(this._widget.option(\"selectedIndex\"))\r\n },\r\n _getDateIndex: function(date) {\r\n var result = -1;\r\n for (var i = 0, n = this._widgetItems.length; i < n; i++) {\r\n if (this._areDatesEqual(date, this._widgetItems[i])) {\r\n result = i;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _areDatesEqual: function(first, second) {\r\n return isDate(first) && isDate(second) && first.getHours() === second.getHours() && first.getMinutes() === second.getMinutes()\r\n },\r\n _getTimeListItems: function() {\r\n var min = this.dateBox.dateOption(\"min\") || this._getBoundaryDate(\"min\");\r\n var max = this.dateBox.dateOption(\"max\") || this._getBoundaryDate(\"max\");\r\n var value = this.dateBox.dateOption(\"value\") || null;\r\n var delta = max - min;\r\n var minutes = min.getMinutes() % this.dateBox.option(\"interval\");\r\n if (delta < 0) {\r\n return []\r\n }\r\n if (delta > dateUtils.ONE_DAY) {\r\n delta = dateUtils.ONE_DAY\r\n }\r\n if (value - min < dateUtils.ONE_DAY) {\r\n return this._getRangeItems(min, new Date(min), delta)\r\n }\r\n min = this._getBoundaryDate(\"min\");\r\n min.setMinutes(minutes);\r\n if (value && Math.abs(value - max) < dateUtils.ONE_DAY) {\r\n delta = (60 * max.getHours() + Math.abs(max.getMinutes() - minutes)) * dateUtils.ONE_MINUTE\r\n }\r\n return this._getRangeItems(min, new Date(min), delta)\r\n },\r\n _getRangeItems: function(startValue, currentValue, rangeDuration) {\r\n var rangeItems = [];\r\n var interval = this.dateBox.option(\"interval\");\r\n while (currentValue - startValue <= rangeDuration) {\r\n rangeItems.push(new Date(currentValue));\r\n currentValue.setMinutes(currentValue.getMinutes() + interval)\r\n }\r\n return rangeItems\r\n },\r\n _getBoundaryDate: function(boundary) {\r\n var boundaryValue = BOUNDARY_VALUES[boundary];\r\n var currentValue = new Date(ensureDefined(this.dateBox.dateOption(\"value\"), 0));\r\n return new Date(currentValue.getFullYear(), currentValue.getMonth(), currentValue.getDate(), boundaryValue.getHours(), boundaryValue.getMinutes())\r\n },\r\n _timeListItemTemplate: function(itemData) {\r\n var displayFormat = this.dateBox.option(\"displayFormat\");\r\n return dateLocalization.format(itemData, this.getDisplayFormat(displayFormat))\r\n },\r\n _listItemClickHandler: function(e) {\r\n if (\"useButtons\" === this.dateBox.option(\"applyValueMode\")) {\r\n return\r\n }\r\n var date = this._getDateByItemData(e.itemData);\r\n this.dateBox.option(\"opened\", false);\r\n this.dateBoxValue(date, e.event)\r\n },\r\n _getDateByItemData: function(itemData) {\r\n var date = this.dateBox.option(\"value\");\r\n var hours = itemData.getHours();\r\n var minutes = itemData.getMinutes();\r\n var seconds = itemData.getSeconds();\r\n var year = itemData.getFullYear();\r\n var month = itemData.getMonth();\r\n var day = itemData.getDate();\r\n if (date) {\r\n if (this.dateBox.option(\"dateSerializationFormat\")) {\r\n date = dateSerialization.deserializeDate(date)\r\n } else {\r\n date = new Date(date)\r\n }\r\n date.setHours(hours);\r\n date.setMinutes(minutes);\r\n date.setSeconds(seconds);\r\n date.setFullYear(year);\r\n date.setMonth(month);\r\n date.setDate(day)\r\n } else {\r\n date = new Date(year, month, day, hours, minutes, 0, 0)\r\n }\r\n return date\r\n },\r\n getKeyboardListener: function() {\r\n return this._widget\r\n },\r\n _updatePopupHeight: function() {\r\n var dropDownOptionsHeight = getSizeValue(this.dateBox.option(\"dropDownOptions.height\"));\r\n if (void 0 === dropDownOptionsHeight || \"auto\" === dropDownOptionsHeight) {\r\n this.dateBox._setPopupOption(\"height\", \"auto\");\r\n var popupHeight = getOuterHeight(this._widget.$element());\r\n var maxHeight = .45 * getHeight(window);\r\n this.dateBox._setPopupOption(\"height\", Math.min(popupHeight, maxHeight))\r\n }\r\n this.dateBox._timeList && this.dateBox._timeList.updateDimensions()\r\n },\r\n getParsedText: function(text, format) {\r\n var value = this.callBase(text, format);\r\n if (value) {\r\n value = dateUtils.mergeDates(value, new Date(null), DATE_FORMAT)\r\n }\r\n return value\r\n }\r\n});\r\nexport default ListStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n isDate as isDateType,\r\n isString,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n createTextElementHiddenCopy\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n inputType\r\n} from \"../../core/utils/support\";\r\nimport devices from \"../../core/devices\";\r\nimport config from \"../../core/config\";\r\nimport dateUtils from \"../../core/utils/date\";\r\nimport uiDateUtils from \"./ui.date_utils\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport DropDownEditor from \"../drop_down_editor/ui.drop_down_editor\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Calendar from \"./ui.date_box.strategy.calendar\";\r\nimport DateView from \"./ui.date_box.strategy.date_view\";\r\nimport Native from \"./ui.date_box.strategy.native\";\r\nimport CalendarWithTime from \"./ui.date_box.strategy.calendar_with_time\";\r\nimport List from \"./ui.date_box.strategy.list\";\r\nvar DATEBOX_CLASS = \"dx-datebox\";\r\nvar DX_AUTO_WIDTH_CLASS = \"dx-auto-width\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar DX_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar DATEBOX_WRAPPER_CLASS = \"dx-datebox-wrapper\";\r\nvar DROPDOWNEDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar PICKER_TYPE = {\r\n calendar: \"calendar\",\r\n rollers: \"rollers\",\r\n list: \"list\",\r\n native: \"native\"\r\n};\r\nvar TYPE = {\r\n date: \"date\",\r\n datetime: \"datetime\",\r\n time: \"time\"\r\n};\r\nvar STRATEGY_NAME = {\r\n calendar: \"Calendar\",\r\n dateView: \"DateView\",\r\n native: \"Native\",\r\n calendarWithTime: \"CalendarWithTime\",\r\n list: \"List\"\r\n};\r\nvar STRATEGY_CLASSES = {\r\n Calendar: Calendar,\r\n DateView: DateView,\r\n Native: Native,\r\n CalendarWithTime: CalendarWithTime,\r\n List: List\r\n};\r\nvar DateBox = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), this._strategy.supportedKeys())\r\n },\r\n _renderButtonContainers: function() {\r\n this.callBase.apply(this, arguments);\r\n this._strategy.customizeButtons()\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n type: \"date\",\r\n showAnalogClock: true,\r\n value: null,\r\n dateSerializationFormat: void 0,\r\n min: void 0,\r\n max: void 0,\r\n displayFormat: null,\r\n interval: 30,\r\n disabledDates: null,\r\n pickerType: PICKER_TYPE.calendar,\r\n invalidDateMessage: messageLocalization.format(\"dxDateBox-validation-datetime\"),\r\n dateOutOfRangeMessage: messageLocalization.format(\"validation-range\"),\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n adaptivityEnabled: false,\r\n calendarOptions: {},\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n \"dropDownOptions.showTitle\": true\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }, {\r\n device: function() {\r\n var realDevice = devices.real();\r\n var platform = realDevice.platform;\r\n return \"ios\" === platform || \"android\" === platform\r\n },\r\n options: {\r\n pickerType: PICKER_TYPE.native\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\",\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom after\"\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this._userOptions = extend({}, options);\r\n this.callBase(options);\r\n this._updatePickerOptions()\r\n },\r\n _updatePickerOptions: function() {\r\n var pickerType = this.option(\"pickerType\");\r\n var type = this.option(\"type\");\r\n if (pickerType === PICKER_TYPE.list && (type === TYPE.datetime || type === TYPE.date)) {\r\n pickerType = PICKER_TYPE.calendar\r\n }\r\n if (type === TYPE.time && pickerType === PICKER_TYPE.calendar) {\r\n pickerType = PICKER_TYPE.list\r\n }\r\n this.option(\"showDropDownButton\", \"generic\" !== devices.real().platform || pickerType !== PICKER_TYPE.native);\r\n this._pickerType = pickerType\r\n },\r\n _init: function() {\r\n this._initStrategy();\r\n this.option(extend({}, this._strategy.getDefaultOptions(), this._userOptions));\r\n delete this._userOptions;\r\n this.callBase()\r\n },\r\n _toLowerCaseFirstLetter: function(string) {\r\n return string.charAt(0).toLowerCase() + string.substr(1)\r\n },\r\n _initStrategy: function() {\r\n var strategyName = this._getStrategyName(this._getFormatType());\r\n var strategy = STRATEGY_CLASSES[strategyName];\r\n if (!(this._strategy && this._strategy.NAME === strategyName)) {\r\n this._strategy = new strategy(this)\r\n }\r\n },\r\n _getFormatType: function() {\r\n var currentType = this.option(\"type\");\r\n var isTime = /h|m|s/g.test(currentType);\r\n var isDate = /d|M|Y/g.test(currentType);\r\n var type = \"\";\r\n if (isDate) {\r\n type += TYPE.date\r\n }\r\n if (isTime) {\r\n type += TYPE.time\r\n }\r\n return type\r\n },\r\n _getStrategyName: function(type) {\r\n var pickerType = this._pickerType;\r\n if (pickerType === PICKER_TYPE.rollers) {\r\n return STRATEGY_NAME.dateView\r\n } else if (pickerType === PICKER_TYPE.native) {\r\n return STRATEGY_NAME.native\r\n }\r\n if (type === TYPE.date) {\r\n return STRATEGY_NAME.calendar\r\n }\r\n if (type === TYPE.datetime) {\r\n return STRATEGY_NAME.calendarWithTime\r\n }\r\n return STRATEGY_NAME.list\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(DATEBOX_CLASS);\r\n this.callBase();\r\n this._refreshFormatClass();\r\n this._refreshPickerTypeClass();\r\n this._strategy.renderInputMinMax(this._input())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._formatValidationIcon()\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this.$element().toggleClass(DX_AUTO_WIDTH_CLASS, !this.option(\"width\"));\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase(arguments);\r\n if (this._popup) {\r\n var _this$_strategy$_upda, _this$_strategy;\r\n null === (_this$_strategy$_upda = (_this$_strategy = this._strategy)._updatePopupHeight) || void 0 === _this$_strategy$_upda ? void 0 : _this$_strategy$_upda.call(_this$_strategy)\r\n }\r\n },\r\n _refreshFormatClass: function() {\r\n var $element = this.$element();\r\n each(TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this.option(\"type\"))\r\n },\r\n _refreshPickerTypeClass: function() {\r\n var $element = this.$element();\r\n each(PICKER_TYPE, (function(_, item) {\r\n $element.removeClass(DATEBOX_CLASS + \"-\" + item)\r\n }));\r\n $element.addClass(DATEBOX_CLASS + \"-\" + this._pickerType)\r\n },\r\n _formatValidationIcon: function() {\r\n if (!hasWindow()) {\r\n return\r\n }\r\n var inputElement = this._input().get(0);\r\n var isRtlEnabled = this.option(\"rtlEnabled\");\r\n var clearButtonWidth = this._getClearButtonWidth();\r\n var longestElementDimensions = this._getLongestElementDimensions();\r\n var curWidth = parseFloat(window.getComputedStyle(inputElement).width) - clearButtonWidth;\r\n var shouldHideValidationIcon = longestElementDimensions.width > curWidth;\r\n var style = inputElement.style;\r\n this.$element().toggleClass(DX_INVALID_BADGE_CLASS, !shouldHideValidationIcon);\r\n if (shouldHideValidationIcon) {\r\n if (void 0 === this._storedPadding) {\r\n this._storedPadding = isRtlEnabled ? longestElementDimensions.leftPadding : longestElementDimensions.rightPadding\r\n }\r\n isRtlEnabled ? style.paddingLeft = 0 : style.paddingRight = 0\r\n } else {\r\n isRtlEnabled ? style.paddingLeft = this._storedPadding + \"px\" : style.paddingRight = this._storedPadding + \"px\"\r\n }\r\n },\r\n _getClearButtonWidth: function() {\r\n var clearButtonWidth = 0;\r\n if (this._isClearButtonVisible() && \"\" === this._input().val()) {\r\n var clearButtonElement = this.$element().find(\".\" + DX_CLEAR_BUTTON_CLASS).get(0);\r\n clearButtonWidth = parseFloat(window.getComputedStyle(clearButtonElement).width)\r\n }\r\n return clearButtonWidth\r\n },\r\n _getLongestElementDimensions: function() {\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var longestValue = dateLocalization.format(uiDateUtils.getLongestDate(format, dateLocalization.getMonthNames(), dateLocalization.getDayNames()), format);\r\n var $input = this._input();\r\n var inputElement = $input.get(0);\r\n var $longestValueElement = createTextElementHiddenCopy($input, longestValue);\r\n var isPaddingStored = void 0 !== this._storedPadding;\r\n var storedPadding = !isPaddingStored ? 0 : this._storedPadding;\r\n $longestValueElement.appendTo(this.$element());\r\n var elementWidth = parseFloat(window.getComputedStyle($longestValueElement.get(0)).width);\r\n var rightPadding = parseFloat(window.getComputedStyle(inputElement).paddingRight);\r\n var leftPadding = parseFloat(window.getComputedStyle(inputElement).paddingLeft);\r\n var necessaryWidth = elementWidth + leftPadding + rightPadding + storedPadding;\r\n $longestValueElement.remove();\r\n return {\r\n width: necessaryWidth,\r\n leftPadding: leftPadding,\r\n rightPadding: rightPadding\r\n }\r\n },\r\n _getKeyboardListeners() {\r\n return this.callBase().concat([this._strategy && this._strategy.getKeyboardListener()])\r\n },\r\n _renderPopup: function() {\r\n this.callBase();\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS);\r\n this._renderPopupWrapper()\r\n },\r\n _getPopupToolbarItems() {\r\n var _this$_strategy$_getP, _this$_strategy$_getP2, _this$_strategy2;\r\n var defaultItems = this.callBase();\r\n return null !== (_this$_strategy$_getP = null === (_this$_strategy$_getP2 = (_this$_strategy2 = this._strategy)._getPopupToolbarItems) || void 0 === _this$_strategy$_getP2 ? void 0 : _this$_strategy$_getP2.call(_this$_strategy2, defaultItems)) && void 0 !== _this$_strategy$_getP ? _this$_strategy$_getP : defaultItems\r\n },\r\n _popupConfig: function() {\r\n var popupConfig = this.callBase();\r\n return extend(this._strategy.popupConfig(popupConfig), {\r\n title: this._getPopupTitle(),\r\n dragEnabled: false\r\n })\r\n },\r\n _renderPopupWrapper: function() {\r\n if (!this._popup) {\r\n return\r\n }\r\n var $element = this.$element();\r\n var classPostfixes = extend({}, TYPE, PICKER_TYPE);\r\n each(classPostfixes, function(_, item) {\r\n $element.removeClass(DATEBOX_WRAPPER_CLASS + \"-\" + item)\r\n }.bind(this));\r\n this._popup.$wrapper().addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this.option(\"type\")).addClass(DATEBOX_WRAPPER_CLASS + \"-\" + this._pickerType).addClass(DROPDOWNEDITOR_OVERLAY_CLASS)\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._strategy.renderPopupContent()\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._strategy.getFirstPopupElement() || this.callBase()\r\n },\r\n _getLastPopupElement: function() {\r\n return this._strategy.getLastPopupElement() || this.callBase()\r\n },\r\n _popupShowingHandler: function() {\r\n this.callBase();\r\n this._strategy.popupShowingHandler()\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n this._strategy.renderOpenedState();\r\n this._strategy.popupHiddenHandler()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._formatValidationIcon()\r\n }\r\n },\r\n _clearValueHandler: function(e) {\r\n this.option(\"text\", \"\");\r\n this.callBase(e)\r\n },\r\n _readOnlyPropValue: function() {\r\n if (this._pickerType === PICKER_TYPE.rollers) {\r\n return true\r\n }\r\n var platform = devices.real().platform;\r\n var isCustomValueDisabled = this._isNativeType() && (\"ios\" === platform || \"android\" === platform);\r\n if (isCustomValueDisabled) {\r\n return this.option(\"readOnly\")\r\n }\r\n return this.callBase()\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.callBase() && !this._isNativeType()\r\n },\r\n _renderValue: function() {\r\n var value = this.dateOption(\"value\");\r\n this.option(\"text\", this._getDisplayedText(value));\r\n this._strategy.renderValue();\r\n return this.callBase()\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.dateOption(\"value\");\r\n var dateSerializationFormat = this.option(\"dateSerializationFormat\");\r\n var submitFormat = uiDateUtils.SUBMIT_FORMATS_MAP[this.option(\"type\")];\r\n var submitValue = dateSerializationFormat ? dateSerialization.serializeDate(value, dateSerializationFormat) : uiDateUtils.toStandardDateFormat(value, submitFormat);\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _getDisplayedText: function(value) {\r\n var mode = this.option(\"mode\");\r\n var displayedText;\r\n if (\"text\" === mode) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n displayedText = dateLocalization.format(value, displayFormat)\r\n } else {\r\n var format = this._getFormatByMode(mode);\r\n if (format) {\r\n displayedText = dateLocalization.format(value, format)\r\n } else {\r\n displayedText = uiDateUtils.toStandardDateFormat(value, mode)\r\n }\r\n }\r\n return displayedText\r\n },\r\n _getFormatByMode: function(mode) {\r\n return inputType(mode) ? null : uiDateUtils.FORMATS_MAP[mode]\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var {\r\n text: text,\r\n type: type,\r\n validationError: validationError\r\n } = this.option();\r\n var currentValue = this.dateOption(\"value\");\r\n if (text === this._getDisplayedText(currentValue)) {\r\n if (!validationError || validationError.editorSpecific) {\r\n this._applyInternalValidation(currentValue);\r\n this._applyCustomValidation(currentValue)\r\n }\r\n return\r\n }\r\n var parsedDate = this._getParsedDate(text);\r\n var value = null !== currentValue && void 0 !== currentValue ? currentValue : this._getDateByDefault();\r\n var newValue = uiDateUtils.mergeDates(value, parsedDate, type);\r\n var date = parsedDate && \"time\" === type ? newValue : parsedDate;\r\n if (this._applyInternalValidation(date).isValid) {\r\n var displayedText = this._getDisplayedText(newValue);\r\n if (value && newValue && value.getTime() === newValue.getTime() && displayedText !== text) {\r\n this._renderValue()\r\n } else {\r\n this.dateValue(newValue, e)\r\n }\r\n }\r\n },\r\n _getDateByDefault: function() {\r\n return this._strategy.useCurrentDateByDefault() && this._strategy.getDefaultDate()\r\n },\r\n _getParsedDate: function(text) {\r\n var displayFormat = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var parsedText = this._strategy.getParsedText(text, displayFormat);\r\n return null !== parsedText && void 0 !== parsedText ? parsedText : void 0\r\n },\r\n _applyInternalValidation(value) {\r\n var text = this.option(\"text\");\r\n var hasText = !!text && null !== value;\r\n var isDate = !!value && isDateType(value) && !isNaN(value.getTime());\r\n var isDateInRange = isDate && dateUtils.dateInRange(value, this.dateOption(\"min\"), this.dateOption(\"max\"), this.option(\"type\"));\r\n var isValid = !hasText && !value || isDateInRange;\r\n var validationMessage = \"\";\r\n if (!isDate) {\r\n validationMessage = this.option(\"invalidDateMessage\")\r\n } else if (!isDateInRange) {\r\n validationMessage = this.option(\"dateOutOfRangeMessage\")\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: validationMessage\r\n }\r\n });\r\n return {\r\n isValid: isValid,\r\n isDate: isDate\r\n }\r\n },\r\n _applyCustomValidation: function(value) {\r\n this.validationRequest.fire({\r\n editor: this,\r\n value: this._serializeDate(value)\r\n })\r\n },\r\n _isValueChanged: function(newValue) {\r\n var oldValue = this.dateOption(\"value\");\r\n var oldTime = oldValue && oldValue.getTime();\r\n var newTime = newValue && newValue.getTime();\r\n return oldTime !== newTime\r\n },\r\n _isTextChanged: function(newValue) {\r\n var oldText = this.option(\"text\");\r\n var newText = newValue && this._getDisplayedText(newValue) || \"\";\r\n return oldText !== newText\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._input().attr(\"autocomplete\", \"off\")\r\n },\r\n _renderOpenedState: function() {\r\n if (!this._isNativeType()) {\r\n this.callBase()\r\n }\r\n if (this._strategy.isAdaptivityChanged()) {\r\n this._refreshStrategy()\r\n }\r\n },\r\n _getPopupTitle: function() {\r\n var placeholder = this.option(\"placeholder\");\r\n if (placeholder) {\r\n return placeholder\r\n }\r\n var type = this.option(\"type\");\r\n if (type === TYPE.time) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleTime\")\r\n }\r\n if (type === TYPE.date || type === TYPE.datetime) {\r\n return messageLocalization.format(\"dxDateBox-simulatedDataPickerTitleDate\")\r\n }\r\n return \"\"\r\n },\r\n _refreshStrategy: function() {\r\n this._strategy.dispose();\r\n this._initStrategy();\r\n this.option(this._strategy.getDefaultOptions());\r\n this._refresh()\r\n },\r\n _applyButtonHandler: function(e) {\r\n var value = this._strategy.getValue();\r\n this.dateValue(value, e.event);\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n var _this$_strategy3;\r\n this.callBase();\r\n null === (_this$_strategy3 = this._strategy) || void 0 === _this$_strategy3 ? void 0 : _this$_strategy3.dispose()\r\n },\r\n _isNativeType: function() {\r\n return this._pickerType === PICKER_TYPE.native\r\n },\r\n _updatePopupTitle: function() {\r\n var _this$_popup;\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.option(\"title\", this._getPopupTitle())\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showClearButton\":\r\n case \"buttons\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"pickerType\":\r\n this._updatePickerOptions({\r\n pickerType: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshPickerTypeClass();\r\n this._invalidate();\r\n break;\r\n case \"type\":\r\n this._updatePickerOptions({\r\n format: args.value\r\n });\r\n this._refreshStrategy();\r\n this._refreshFormatClass();\r\n this._renderPopupWrapper();\r\n this._formatValidationIcon();\r\n this._updateValue();\r\n break;\r\n case \"placeholder\":\r\n this.callBase.apply(this, arguments);\r\n this._updatePopupTitle();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n var isValid = this.option(\"isValid\");\r\n this._applyInternalValidation(this.dateOption(\"value\"));\r\n if (!isValid) {\r\n this._applyCustomValidation(this.dateOption(\"value\"))\r\n }\r\n this._invalidate();\r\n break;\r\n case \"dateSerializationFormat\":\r\n case \"interval\":\r\n case \"disabledDates\":\r\n case \"calendarOptions\":\r\n this._invalidate();\r\n break;\r\n case \"displayFormat\":\r\n this.option(\"text\", this._getDisplayedText(this.dateOption(\"value\")));\r\n this._renderInputValue();\r\n break;\r\n case \"text\":\r\n this._strategy.textChangedHandler(args.value);\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"isValid\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"showDropDownButton\":\r\n this._formatValidationIcon();\r\n this.callBase.apply(this, arguments);\r\n break;\r\n case \"readOnly\":\r\n this.callBase.apply(this, arguments);\r\n this._formatValidationIcon();\r\n break;\r\n case \"todayButtonText\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"invalidDateMessage\":\r\n case \"dateOutOfRangeMessage\":\r\n case \"adaptivityEnabled\":\r\n case \"showAnalogClock\":\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getSerializationFormat: function() {\r\n var value = this.option(\"value\");\r\n if (this.option(\"dateSerializationFormat\") && config().forceIsoDateParsing) {\r\n return this.option(\"dateSerializationFormat\")\r\n }\r\n if (isNumeric(value)) {\r\n return \"number\"\r\n }\r\n if (!isString(value)) {\r\n return\r\n }\r\n return dateSerialization.getDateSerializationFormat(value)\r\n },\r\n _updateValue: function(value) {\r\n this.callBase();\r\n this._applyInternalValidation(null !== value && void 0 !== value ? value : this.dateOption(\"value\"))\r\n },\r\n dateValue: function(value, dxEvent) {\r\n var isValueChanged = this._isValueChanged(value);\r\n if (isValueChanged && dxEvent) {\r\n this._saveValueChangeEvent(dxEvent)\r\n }\r\n if (!isValueChanged) {\r\n if (this._isTextChanged(value)) {\r\n this._updateValue(value)\r\n } else if (\"\" === this.option(\"text\")) {\r\n this._applyCustomValidation(value)\r\n }\r\n }\r\n return this.dateOption(\"value\", value)\r\n },\r\n dateOption: function(optionName, value) {\r\n if (1 === arguments.length) {\r\n return dateSerialization.deserializeDate(this.option(optionName))\r\n }\r\n this.option(optionName, this._serializeDate(value))\r\n },\r\n _serializeDate: function(date) {\r\n var serializationFormat = this._getSerializationFormat();\r\n return dateSerialization.serializeDate(date, serializationFormat)\r\n },\r\n _clearValue: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyCustomValidation(null)\r\n }\r\n },\r\n reset: function() {\r\n var value = this.option(\"value\");\r\n this.callBase();\r\n if (null === value) {\r\n this._applyInternalValidation(null)\r\n }\r\n }\r\n});\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.mask.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n addNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n isFunction,\r\n isString,\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n clipboardText\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n fitIntoRange,\r\n inRange,\r\n sign\r\n} from \"../../core/utils/math\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getDatePartIndexByPosition,\r\n renderDateParts\r\n} from \"./ui.date_box.mask.parts\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n getRegExpInfo\r\n} from \"../../localization/ldml/date.parser\";\r\nimport {\r\n getFormat\r\n} from \"../../localization/ldml/date.format\";\r\nimport DateBoxBase from \"./ui.date_box.base\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar MASK_EVENT_NAMESPACE = \"dateBoxMask\";\r\nvar FORWARD = 1;\r\nvar BACKWARD = -1;\r\nvar DateBoxMask = DateBoxBase.inherit({\r\n _supportedKeys(e) {\r\n var originalHandlers = this.callBase(e);\r\n var callOriginalHandler = e => {\r\n var originalHandler = originalHandlers[normalizeKeyName(e)];\r\n return originalHandler && originalHandler.apply(this, [e])\r\n };\r\n var applyHandler = (e, maskHandler) => {\r\n if (this._shouldUseOriginalHandler(e)) {\r\n return callOriginalHandler.apply(this, [e])\r\n } else {\r\n return maskHandler.apply(this, [e])\r\n }\r\n };\r\n return extend({}, originalHandlers, {\r\n del: e => applyHandler(e, event => {\r\n this._revertPart(FORWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n backspace: e => applyHandler(e, event => {\r\n this._revertPart(BACKWARD);\r\n this._isAllSelected() || event.preventDefault()\r\n }),\r\n home: e => applyHandler(e, event => {\r\n this._selectFirstPart();\r\n event.preventDefault()\r\n }),\r\n end: e => applyHandler(e, event => {\r\n this._selectLastPart();\r\n event.preventDefault()\r\n }),\r\n escape: e => applyHandler(e, event => {\r\n this._revertChanges(event)\r\n }),\r\n enter: e => applyHandler(e, event => {\r\n this._enterHandler(event)\r\n }),\r\n leftArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(BACKWARD);\r\n event.preventDefault()\r\n }),\r\n rightArrow: e => applyHandler(e, event => {\r\n this._selectNextPart(FORWARD);\r\n event.preventDefault()\r\n }),\r\n upArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(FORWARD);\r\n event.preventDefault()\r\n }),\r\n downArrow: e => applyHandler(e, event => {\r\n this._upDownArrowHandler(BACKWARD);\r\n event.preventDefault()\r\n })\r\n })\r\n },\r\n _shouldUseOriginalHandler(e) {\r\n var isNotDeletingInCalendar = this.option(\"opened\") && e && -1 === [\"backspace\", \"del\"].indexOf(normalizeKeyName(e));\r\n return !this._useMaskBehavior() || isNotDeletingInCalendar || e && e.altKey\r\n },\r\n _upDownArrowHandler(step) {\r\n this._setNewDateIfEmpty();\r\n var originalValue = this._getActivePartValue(this._initialMaskValue);\r\n var currentValue = this._getActivePartValue();\r\n var delta = currentValue - originalValue;\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(delta + step, true)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: false,\r\n emptyDateValue: new Date(2e3, 0, 1, 0, 0, 0)\r\n })\r\n },\r\n _isSingleCharKey(_ref) {\r\n var {\r\n originalEvent: originalEvent,\r\n alt: alt\r\n } = _ref;\r\n var key = originalEvent.data || originalEvent.key;\r\n return \"string\" === typeof key && 1 === key.length && !alt && !isCommandKeyPressed(originalEvent)\r\n },\r\n _isSingleDigitKey(e) {\r\n var _e$originalEvent;\r\n var data = null === (_e$originalEvent = e.originalEvent) || void 0 === _e$originalEvent ? void 0 : _e$originalEvent.data;\r\n return 1 === (null === data || void 0 === data ? void 0 : data.length) && parseInt(data, 10)\r\n },\r\n _useBeforeInputEvent: function() {\r\n return devices.real().android\r\n },\r\n _keyInputHandler(e, key) {\r\n var oldInputValue = this._input().val();\r\n this._processInputKey(key);\r\n e.preventDefault();\r\n var isValueChanged = oldInputValue !== this._input().val();\r\n isValueChanged && eventsEngine.trigger(this._input(), \"input\")\r\n },\r\n _keyboardHandler(e) {\r\n var key = e.originalEvent.key;\r\n var result = this.callBase(e);\r\n if (!this._useMaskBehavior() || this._useBeforeInputEvent()) {\r\n return result\r\n }\r\n if (browser.chrome && \"Process\" === e.key && 0 === e.code.indexOf(\"Digit\")) {\r\n key = e.code.replace(\"Digit\", \"\");\r\n this._processInputKey(key);\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n } else if (this._isSingleCharKey(e)) {\r\n this._keyInputHandler(e.originalEvent, key)\r\n }\r\n return result\r\n },\r\n _maskBeforeInputHandler(e) {\r\n this._maskInputHandler = null;\r\n var {\r\n inputType: inputType\r\n } = e.originalEvent;\r\n if (\"insertCompositionText\" === inputType) {\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n }\r\n var isBackwardDeletion = \"deleteContentBackward\" === inputType;\r\n var isForwardDeletion = \"deleteContentForward\" === inputType;\r\n if (isBackwardDeletion || isForwardDeletion) {\r\n var direction = isBackwardDeletion ? BACKWARD : FORWARD;\r\n this._maskInputHandler = () => {\r\n this._revertPart();\r\n this._selectNextPart(direction)\r\n }\r\n }\r\n if (!this._useMaskBehavior() || !this._isSingleCharKey(e)) {\r\n return\r\n }\r\n var key = e.originalEvent.data;\r\n this._keyInputHandler(e, key);\r\n return true\r\n },\r\n _keyPressHandler(e) {\r\n var {\r\n originalEvent: event\r\n } = e;\r\n if (\"insertCompositionText\" === (null === event || void 0 === event ? void 0 : event.inputType) && this._isSingleDigitKey(e)) {\r\n this._processInputKey(event.data);\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n }\r\n this.callBase(e);\r\n if (this._maskInputHandler) {\r\n this._maskInputHandler();\r\n this._maskInputHandler = null\r\n }\r\n },\r\n _processInputKey(key) {\r\n if (this._isAllSelected()) {\r\n this._activePartIndex = 0\r\n }\r\n this._setNewDateIfEmpty();\r\n if (isNaN(parseInt(key))) {\r\n this._searchString(key)\r\n } else {\r\n this._searchNumber(key)\r\n }\r\n },\r\n _isAllSelected() {\r\n var caret = this._caret();\r\n return caret.end - caret.start === this.option(\"text\").length\r\n },\r\n _getFormatPattern() {\r\n if (this._formatPattern) {\r\n return this._formatPattern\r\n }\r\n var format = this._strategy.getDisplayFormat(this.option(\"displayFormat\"));\r\n var isLDMLPattern = isString(format) && !dateLocalization._getPatternByFormat(format);\r\n if (isLDMLPattern) {\r\n this._formatPattern = format\r\n } else {\r\n this._formatPattern = getFormat((function(value) {\r\n return dateLocalization.format(value, format)\r\n }))\r\n }\r\n return this._formatPattern\r\n },\r\n _setNewDateIfEmpty() {\r\n if (!this._maskValue) {\r\n var value = \"time\" === this.option(\"type\") ? new Date(null) : new Date;\r\n this._maskValue = value;\r\n this._initialMaskValue = value;\r\n this._renderDateParts()\r\n }\r\n },\r\n _partLimitsReached(max) {\r\n var maxLimitLength = String(max).length;\r\n var formatLength = this._getActivePartProp(\"pattern\").length;\r\n var isShortFormat = 1 === formatLength;\r\n var maxSearchLength = isShortFormat ? maxLimitLength : Math.min(formatLength, maxLimitLength);\r\n var isLengthExceeded = this._searchValue.length === maxSearchLength;\r\n var isValueOverflowed = parseInt(this._searchValue + \"0\") > max;\r\n return isLengthExceeded || isValueOverflowed\r\n },\r\n _searchNumber(char) {\r\n var {\r\n max: max\r\n } = this._getActivePartLimits();\r\n var maxLimitLength = String(max).length;\r\n this._searchValue = (this._searchValue + char).substr(-maxLimitLength);\r\n if (isNaN(this._searchValue)) {\r\n this._searchValue = char\r\n }\r\n this._setActivePartValue(this._searchValue);\r\n if (this._partLimitsReached(max)) {\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _searchString(char) {\r\n if (!isNaN(parseInt(this._getActivePartProp(\"text\")))) {\r\n return\r\n }\r\n var limits = this._getActivePartProp(\"limits\")(this._maskValue);\r\n var startString = this._searchValue + char.toLowerCase();\r\n var endLimit = limits.max - limits.min;\r\n for (var i = 0; i <= endLimit; i++) {\r\n this._loadMaskValue(this._initialMaskValue);\r\n this._partIncrease(i + 1);\r\n if (0 === this._getActivePartProp(\"text\").toLowerCase().indexOf(startString)) {\r\n this._searchValue = startString;\r\n return\r\n }\r\n }\r\n this._setNewDateIfEmpty();\r\n if (this._searchValue) {\r\n this._clearSearchValue();\r\n this._searchString(char)\r\n }\r\n },\r\n _clearSearchValue() {\r\n this._searchValue = \"\"\r\n },\r\n _revertPart: function(direction) {\r\n if (!this._isAllSelected()) {\r\n var actual = this._getActivePartValue(this.option(\"emptyDateValue\"));\r\n this._setActivePartValue(actual);\r\n this._selectNextPart(direction)\r\n }\r\n this._clearSearchValue()\r\n },\r\n _useMaskBehavior() {\r\n return this.option(\"useMaskBehavior\") && \"text\" === this.option(\"mode\")\r\n },\r\n _prepareRegExpInfo() {\r\n this._regExpInfo = getRegExpInfo(this._getFormatPattern(), dateLocalization);\r\n var regexp = this._regExpInfo.regexp;\r\n var source = regexp.source;\r\n var flags = regexp.flags;\r\n var quantifierRegexp = new RegExp(/(\\{[0-9]+,?[0-9]*\\})/);\r\n var convertedSource = source.split(quantifierRegexp).map(sourcePart => quantifierRegexp.test(sourcePart) ? sourcePart : numberLocalization.convertDigits(sourcePart, false)).join(\"\");\r\n this._regExpInfo.regexp = new RegExp(convertedSource, flags)\r\n },\r\n _initMaskState() {\r\n this._activePartIndex = 0;\r\n this._formatPattern = null;\r\n this._prepareRegExpInfo();\r\n this._loadMaskValue()\r\n },\r\n _renderMask() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState();\r\n if (this._useMaskBehavior()) {\r\n this._attachMaskEvents();\r\n this._initMaskState();\r\n this._renderDateParts()\r\n }\r\n },\r\n _renderDateParts() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this.option(\"text\") || this._getDisplayedText(this._maskValue);\r\n if (text) {\r\n this._dateParts = renderDateParts(text, this._regExpInfo);\r\n if (!this._input().is(\":hidden\")) {\r\n this._selectNextPart()\r\n }\r\n }\r\n },\r\n _detachMaskEvents() {\r\n eventsEngine.off(this._input(), \".\" + MASK_EVENT_NAMESPACE)\r\n },\r\n _attachMaskEvents() {\r\n eventsEngine.on(this._input(), addNamespace(\"dxclick\", MASK_EVENT_NAMESPACE), this._maskClickHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"paste\", MASK_EVENT_NAMESPACE), this._maskPasteHandler.bind(this));\r\n eventsEngine.on(this._input(), addNamespace(\"drop\", MASK_EVENT_NAMESPACE), () => {\r\n this._renderSelectedPart()\r\n });\r\n eventsEngine.on(this._input(), addNamespace(\"compositionend\", MASK_EVENT_NAMESPACE), this._maskCompositionEndHandler.bind(this));\r\n if (this._useBeforeInputEvent()) {\r\n eventsEngine.on(this._input(), addNamespace(\"beforeinput\", MASK_EVENT_NAMESPACE), this._maskBeforeInputHandler.bind(this))\r\n }\r\n },\r\n _renderSelectedPart() {\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart()\r\n },\r\n _selectLastPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = this._dateParts.length;\r\n this._selectNextPart(BACKWARD)\r\n }\r\n },\r\n _selectFirstPart() {\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = -1;\r\n this._selectNextPart(FORWARD)\r\n }\r\n },\r\n _onMouseWheel(e) {\r\n if (this._useMaskBehavior()) {\r\n this._partIncrease(e.delta > 0 ? FORWARD : BACKWARD, e)\r\n }\r\n },\r\n _selectNextPart() {\r\n var step = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 0;\r\n if (!this.option(\"text\") || this._disposed) {\r\n return\r\n }\r\n if (step) {\r\n this._initialMaskValue = new Date(this._maskValue)\r\n }\r\n var index = fitIntoRange(this._activePartIndex + step, 0, this._dateParts.length - 1);\r\n if (this._dateParts[index].isStub) {\r\n var isBoundaryIndex = 0 === index && step < 0 || index === this._dateParts.length - 1 && step > 0;\r\n if (!isBoundaryIndex) {\r\n this._selectNextPart(step >= 0 ? step + 1 : step - 1);\r\n return\r\n } else {\r\n index = this._activePartIndex\r\n }\r\n }\r\n if (this._activePartIndex !== index) {\r\n this._clearSearchValue()\r\n }\r\n this._activePartIndex = index;\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n },\r\n _getRealLimitsPattern() {\r\n if (\"d\" === this._getActivePartProp(\"pattern\")[0]) {\r\n return \"dM\"\r\n }\r\n },\r\n _getActivePartLimits(lockOtherParts) {\r\n var limitFunction = this._getActivePartProp(\"limits\");\r\n return limitFunction(this._maskValue, lockOtherParts && this._getRealLimitsPattern())\r\n },\r\n _getActivePartValue(dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var getter = this._getActivePartProp(\"getter\");\r\n return isFunction(getter) ? getter(dateValue) : dateValue[getter]()\r\n },\r\n _addLeadingZeroes(value) {\r\n var zeroes = this._searchValue.match(/^0+/);\r\n var limits = this._getActivePartLimits();\r\n var maxLimitLength = String(limits.max).length;\r\n return ((zeroes && zeroes[0] || \"\") + String(value)).substr(-maxLimitLength)\r\n },\r\n _setActivePartValue(value, dateValue) {\r\n dateValue = dateValue || this._maskValue;\r\n var setter = this._getActivePartProp(\"setter\");\r\n var limits = this._getActivePartLimits();\r\n value = inRange(value, limits.min, limits.max) ? value : value % 10;\r\n value = this._addLeadingZeroes(fitIntoRange(value, limits.min, limits.max));\r\n isFunction(setter) ? setter(dateValue, value) : dateValue[setter](value);\r\n this._renderDisplayText(this._getDisplayedText(dateValue));\r\n this._renderDateParts()\r\n },\r\n _getActivePartProp(property) {\r\n if (!this._dateParts || !this._dateParts[this._activePartIndex]) {\r\n return\r\n }\r\n return this._dateParts[this._activePartIndex][property]\r\n },\r\n _loadMaskValue() {\r\n var value = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.dateOption(\"value\");\r\n this._maskValue = value && new Date(value);\r\n this._initialMaskValue = value && new Date(value)\r\n },\r\n _saveMaskValue() {\r\n var value = this._maskValue && new Date(this._maskValue);\r\n if (value && \"date\" === this.option(\"type\")) {\r\n value.setHours(0, 0, 0, 0)\r\n }\r\n this._initialMaskValue = new Date(value);\r\n this.dateOption(\"value\", value)\r\n },\r\n _revertChanges() {\r\n this._loadMaskValue();\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts()\r\n },\r\n _renderDisplayText(text) {\r\n this.callBase(text);\r\n if (this._useMaskBehavior()) {\r\n this.option(\"text\", text)\r\n }\r\n },\r\n _partIncrease(step, lockOtherParts) {\r\n this._setNewDateIfEmpty();\r\n var {\r\n max: max,\r\n min: min\r\n } = this._getActivePartLimits(lockOtherParts);\r\n var limitDelta = max - min;\r\n if (1 === limitDelta) {\r\n limitDelta++\r\n }\r\n var newValue = step + this._getActivePartValue();\r\n if (newValue > max) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: min,\r\n limitClosest: max,\r\n limitDelta: limitDelta\r\n })\r\n } else if (newValue < min) {\r\n newValue = this._applyLimits(newValue, {\r\n limitBase: max,\r\n limitClosest: min,\r\n limitDelta: limitDelta\r\n })\r\n }\r\n this._setActivePartValue(newValue)\r\n },\r\n _applyLimits(newValue, _ref2) {\r\n var {\r\n limitBase: limitBase,\r\n limitClosest: limitClosest,\r\n limitDelta: limitDelta\r\n } = _ref2;\r\n var delta = (newValue - limitClosest) % limitDelta;\r\n return delta ? limitBase + delta - 1 * sign(delta) : limitClosest\r\n },\r\n _maskClickHandler() {\r\n this._loadMaskValue(this._maskValue);\r\n if (this.option(\"text\")) {\r\n this._activePartIndex = getDatePartIndexByPosition(this._dateParts, this._caret().start);\r\n if (!this._isAllSelected()) {\r\n if (isDefined(this._activePartIndex)) {\r\n this._caret(this._getActivePartProp(\"caret\"))\r\n } else {\r\n this._selectLastPart()\r\n }\r\n }\r\n }\r\n },\r\n _maskCompositionEndHandler(e) {\r\n this._input().val(this._getDisplayedText(this._maskValue));\r\n this._selectNextPart();\r\n this._maskInputHandler = () => {\r\n this._renderSelectedPart()\r\n }\r\n },\r\n _maskPasteHandler(e) {\r\n var newText = this._replaceSelectedText(this.option(\"text\"), this._caret(), clipboardText(e));\r\n var date = dateLocalization.parse(newText, this._getFormatPattern());\r\n if (date && this._isDateValid(date)) {\r\n this._maskValue = date;\r\n this._renderDisplayText(this._getDisplayedText(this._maskValue));\r\n this._renderDateParts();\r\n this._selectNextPart()\r\n }\r\n e.preventDefault()\r\n },\r\n _isDateValid: date => isDate(date) && !isNaN(date),\r\n _isValueDirty() {\r\n var value = this.dateOption(\"value\");\r\n return (this._maskValue && this._maskValue.getTime()) !== (value && value.getTime())\r\n },\r\n _fireChangeEvent() {\r\n this._clearSearchValue();\r\n if (this._isValueDirty()) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n },\r\n _enterHandler(e) {\r\n this._fireChangeEvent();\r\n this._selectNextPart(FORWARD);\r\n e.preventDefault()\r\n },\r\n _focusOutHandler(e) {\r\n var shouldFireChangeEvent = this._useMaskBehavior() && !e.isDefaultPrevented();\r\n if (shouldFireChangeEvent) {\r\n this._fireChangeEvent();\r\n this.callBase(e);\r\n this._selectFirstPart(e)\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _valueChangeEventHandler(e) {\r\n var text = this.option(\"text\");\r\n if (this._useMaskBehavior()) {\r\n this._saveValueChangeEvent(e);\r\n if (!text) {\r\n this._maskValue = null\r\n } else if (null === this._maskValue) {\r\n this._loadMaskValue(text)\r\n }\r\n this._saveMaskValue()\r\n } else {\r\n this.callBase(e)\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"useMaskBehavior\":\r\n this._renderMask();\r\n break;\r\n case \"displayFormat\":\r\n case \"mode\":\r\n this.callBase(args);\r\n this._renderMask();\r\n break;\r\n case \"value\":\r\n this._loadMaskValue();\r\n this.callBase(args);\r\n this._renderDateParts();\r\n break;\r\n case \"emptyDateValue\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearMaskState() {\r\n this._clearSearchValue();\r\n delete this._dateParts;\r\n delete this._activePartIndex;\r\n delete this._maskValue\r\n },\r\n reset() {\r\n this._clearMaskState();\r\n this._activePartIndex = 0;\r\n this.callBase()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._detachMaskEvents();\r\n this._clearMaskState()\r\n }\r\n});\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box/ui.date_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DateBoxMask from \"./ui.date_box.mask\";\r\nregisterComponent(\"dxDateBox\", DateBoxMask);\r\nexport default DateBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/date_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport DateBox from \"./date_box/ui.date_box\";\r\nexport default DateBox;\r\n","/**\r\n * DevExtreme (esm/ui/dialog.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Component\r\n} from \"../core/component\";\r\nimport Action from \"../core/action\";\r\nimport devices from \"../core/devices\";\r\nimport config from \"../core/config\";\r\nimport {\r\n resetActiveElement\r\n} from \"../core/utils/dom\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n value as getViewport\r\n} from \"../core/utils/view_port\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport Popup from \"./popup/ui.popup\";\r\nimport {\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nvar window = getWindow();\r\nvar DEFAULT_BUTTON = {\r\n text: \"OK\",\r\n onClick: function() {\r\n return true\r\n }\r\n};\r\nvar DX_DIALOG_CLASSNAME = \"dx-dialog\";\r\nvar DX_DIALOG_WRAPPER_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-wrapper\");\r\nvar DX_DIALOG_ROOT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-root\");\r\nvar DX_DIALOG_CONTENT_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-content\");\r\nvar DX_DIALOG_MESSAGE_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-message\");\r\nvar DX_DIALOG_BUTTONS_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-buttons\");\r\nvar DX_DIALOG_BUTTON_CLASSNAME = \"\".concat(DX_DIALOG_CLASSNAME, \"-button\");\r\nvar DX_BUTTON_CLASSNAME = \"dx-button\";\r\nexport var FakeDialogComponent = Component.inherit({\r\n ctor: function(element, options) {\r\n this.callBase(options)\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n width: 276\r\n }\r\n }])\r\n }\r\n});\r\nexport var custom = function(options) {\r\n var _options$title;\r\n var deferred = new Deferred;\r\n var defaultOptions = (new FakeDialogComponent).option();\r\n options = extend(defaultOptions, options);\r\n var $element = $(\"<div>\").addClass(DX_DIALOG_CLASSNAME).appendTo(getViewport());\r\n var isMessageDefined = \"message\" in options;\r\n var isMessageHtmlDefined = \"messageHtml\" in options;\r\n if (isMessageDefined) {\r\n errors.log(\"W1013\")\r\n }\r\n var messageHtml = String(isMessageHtmlDefined ? options.messageHtml : options.message);\r\n var $message = $(\"<div>\").addClass(DX_DIALOG_MESSAGE_CLASSNAME).html(messageHtml);\r\n var popupToolbarItems = [];\r\n each(options.buttons || [DEFAULT_BUTTON], (function() {\r\n var action = new Action(this.onClick, {\r\n context: popupInstance\r\n });\r\n popupToolbarItems.push({\r\n toolbar: \"bottom\",\r\n location: devices.current().android ? \"after\" : \"center\",\r\n widget: \"dxButton\",\r\n options: extend({}, this, {\r\n onClick: function() {\r\n var result = action.execute(...arguments);\r\n hide(result)\r\n }\r\n })\r\n })\r\n }));\r\n var popupInstance = new Popup($element, extend({\r\n title: null !== (_options$title = options.title) && void 0 !== _options$title ? _options$title : \"\",\r\n showTitle: ensureDefined(options.showTitle, true),\r\n dragEnabled: ensureDefined(options.dragEnabled, true),\r\n height: \"auto\",\r\n width: options.width,\r\n showCloseButton: options.showCloseButton || false,\r\n ignoreChildEvents: false,\r\n container: $element,\r\n visualContainer: window,\r\n dragAndResizeArea: window,\r\n onContentReady: function(args) {\r\n args.component.$content().addClass(DX_DIALOG_CONTENT_CLASSNAME).append($message)\r\n },\r\n onShowing: function(e) {\r\n e.component.bottomToolbar().addClass(DX_DIALOG_BUTTONS_CLASSNAME).find(\".\".concat(DX_BUTTON_CLASSNAME)).addClass(DX_DIALOG_BUTTON_CLASSNAME);\r\n resetActiveElement()\r\n },\r\n onShown: function(e) {\r\n var $firstButton = e.component.bottomToolbar().find(\".\".concat(DX_BUTTON_CLASSNAME)).first();\r\n eventsEngine.trigger($firstButton, \"focus\")\r\n },\r\n onHiding: function() {\r\n deferred.reject()\r\n },\r\n toolbarItems: popupToolbarItems,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 400\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 400,\r\n to: {\r\n opacity: 0,\r\n scale: 0\r\n },\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n }\r\n }\r\n },\r\n rtlEnabled: config().rtlEnabled,\r\n position: {\r\n boundaryOffset: {\r\n h: 10,\r\n v: 0\r\n }\r\n }\r\n }, options.popupOptions));\r\n popupInstance.$wrapper().addClass(DX_DIALOG_WRAPPER_CLASSNAME);\r\n if (options.position) {\r\n popupInstance.option(\"position\", options.position)\r\n }\r\n popupInstance.$wrapper().addClass(DX_DIALOG_ROOT_CLASSNAME);\r\n\r\n function hide(value) {\r\n deferred.resolve(value);\r\n popupInstance.hide().done((function() {\r\n popupInstance.$element().remove()\r\n }))\r\n }\r\n return {\r\n show: function() {\r\n if (\"android\" === devices.real().platform) {\r\n var isPortrait = getHeight(window) > getWidth(window);\r\n var width = isPortrait ? \"80%\" : \"60%\";\r\n popupInstance.option({\r\n width: width\r\n })\r\n }\r\n popupInstance.show();\r\n return deferred.promise()\r\n },\r\n hide: hide\r\n }\r\n};\r\nexport var alert = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\nexport var confirm = function(messageHtml) {\r\n var title = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : \"\";\r\n var showTitle = arguments.length > 2 ? arguments[2] : void 0;\r\n var options = isPlainObject(messageHtml) ? messageHtml : {\r\n title: title,\r\n messageHtml: messageHtml,\r\n showTitle: showTitle,\r\n buttons: [{\r\n text: messageLocalization.format(\"Yes\"),\r\n onClick: function() {\r\n return true\r\n }\r\n }, {\r\n text: messageLocalization.format(\"No\"),\r\n onClick: function() {\r\n return false\r\n }\r\n }],\r\n dragEnabled: showTitle\r\n };\r\n return custom(options).show()\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_button.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport Button from \"../button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_CLASS = \"dx-dropdowneditor-button\";\r\nvar DROP_DOWN_EDITOR_BUTTON_VISIBLE = \"dx-dropdowneditor-button-visible\";\r\nvar BUTTON_MESSAGE = \"dxDropDownEditor-selectLabel\";\r\nexport default class DropDownButton extends TextEditorButton {\r\n constructor(name, editor, options) {\r\n super(name, editor, options);\r\n this.currentTemplate = null\r\n }\r\n _attachEvents(instance) {\r\n var {\r\n editor: editor\r\n } = this;\r\n instance.option(\"onClick\", e => {\r\n !editor.option(\"openOnFieldClick\") && editor._openHandler(e)\r\n });\r\n eventsEngine.on(instance.$element(), \"mousedown\", e => {\r\n if (editor.$element().is(\".dx-state-focused\")) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"<div>\");\r\n var options = this._getOptions();\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, options, {\r\n elementAttr: {\r\n \"aria-label\": messageLocalization.format(BUTTON_MESSAGE)\r\n }\r\n }));\r\n this._legacyRender(editor.$element(), $element, options.visible);\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var isReadOnly = editor.option(\"readOnly\");\r\n var options = {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n activeStateEnabled: false,\r\n useInkRipple: false,\r\n disabled: isReadOnly,\r\n visible: visible\r\n };\r\n this._addTemplate(options);\r\n return options\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showDropDownButton\")\r\n }\r\n _legacyRender($editor, $element, isVisible) {\r\n $editor.toggleClass(DROP_DOWN_EDITOR_BUTTON_VISIBLE, isVisible);\r\n if ($element) {\r\n $element.removeClass(\"dx-button\").addClass(DROP_DOWN_EDITOR_BUTTON_CLASS)\r\n }\r\n }\r\n _isSameTemplate() {\r\n return this.editor.option(\"dropDownButtonTemplate\") === this.currentTemplate\r\n }\r\n _addTemplate(options) {\r\n if (!this._isSameTemplate()) {\r\n options.template = this.editor._getTemplateByOption(\"dropDownButtonTemplate\");\r\n this.currentTemplate = this.editor.option(\"dropDownButtonTemplate\")\r\n }\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var options = this._getOptions();\r\n null === instance || void 0 === instance ? void 0 : instance.option(options);\r\n this._legacyRender($editor, null === instance || void 0 === instance ? void 0 : instance.$element(), options.visible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_editor.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop,\r\n splitPair\r\n} from \"../../core/utils/common\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport DropDownButton from \"./ui.drop_down_button\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport TextBox from \"../text_box\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n FunctionTemplate\r\n} from \"../../core/templates/function_template\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getElementWidth,\r\n getSizeValue\r\n} from \"./utils\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nvar DROP_DOWN_EDITOR_CLASS = \"dx-dropdowneditor\";\r\nvar DROP_DOWN_EDITOR_INPUT_WRAPPER = \"dx-dropdowneditor-input-wrapper\";\r\nvar DROP_DOWN_EDITOR_BUTTON_ICON = \"dx-dropdowneditor-icon\";\r\nvar DROP_DOWN_EDITOR_OVERLAY = \"dx-dropdowneditor-overlay\";\r\nvar DROP_DOWN_EDITOR_OVERLAY_FLIPPED = \"dx-dropdowneditor-overlay-flipped\";\r\nvar DROP_DOWN_EDITOR_ACTIVE = \"dx-dropdowneditor-active\";\r\nvar DROP_DOWN_EDITOR_FIELD_CLICKABLE = \"dx-dropdowneditor-field-clickable\";\r\nvar DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER = \"dx-dropdowneditor-field-template-wrapper\";\r\nvar isIOs = \"ios\" === devices.current().platform;\r\nvar DropDownEditor = TextBox.inherit({\r\n _supportedKeys: function() {\r\n return extend({}, this.callBase(), {\r\n tab: function(e) {\r\n if (!this.option(\"opened\")) {\r\n return\r\n }\r\n if (\"instantly\" === this.option(\"applyValueMode\")) {\r\n this.close();\r\n return\r\n }\r\n var $focusableElement = e.shiftKey ? this._getLastPopupElement() : this._getFirstPopupElement();\r\n $focusableElement && eventsEngine.trigger($focusableElement, \"focus\");\r\n e.preventDefault()\r\n },\r\n escape: function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault()\r\n }\r\n this.close();\r\n return true\r\n },\r\n upArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this.close();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n downArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n if (e.altKey) {\r\n this._validatedOpening();\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n enter: function(e) {\r\n if (this.option(\"opened\")) {\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e)\r\n }\r\n return true\r\n }\r\n })\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"dropDown\",\r\n Ctor: DropDownButton\r\n }])\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n onOpened: null,\r\n onClosed: null,\r\n opened: false,\r\n acceptCustomValue: true,\r\n applyValueMode: \"instantly\",\r\n deferRendering: true,\r\n activeStateEnabled: true,\r\n dropDownButtonTemplate: \"dropDownButton\",\r\n fieldTemplate: null,\r\n openOnFieldClick: false,\r\n showDropDownButton: true,\r\n buttons: void 0,\r\n dropDownOptions: {\r\n showTitle: false\r\n },\r\n popupPosition: this._getDefaultPopupPosition(),\r\n onPopupInitialized: null,\r\n applyButtonText: messageLocalization.format(\"OK\"),\r\n cancelButtonText: messageLocalization.format(\"Cancel\"),\r\n buttonsLocation: \"default\",\r\n useHiddenSubmitElement: false,\r\n validationMessagePosition: \"auto\"\r\n })\r\n },\r\n _useTemplates: function() {\r\n return true\r\n },\r\n _getDefaultPopupPosition: function(isRtlEnabled) {\r\n var position = getDefaultAlignment(isRtlEnabled);\r\n return {\r\n offset: {\r\n h: 0,\r\n v: -1\r\n },\r\n my: position + \" top\",\r\n at: position + \" bottom\",\r\n collision: \"flip flip\"\r\n }\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function(_device) {\r\n var isGeneric = \"generic\" === _device.platform;\r\n return isGeneric\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: 0\r\n }\r\n }\r\n }\r\n }])\r\n },\r\n _inputWrapper: function() {\r\n return this.$element().find(\".\" + DROP_DOWN_EDITOR_INPUT_WRAPPER).first()\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initVisibilityActions();\r\n this._initPopupInitializedAction();\r\n this._updatePopupPosition(this.option(\"rtlEnabled\"));\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"))\r\n },\r\n _updatePopupPosition: function(isRtlEnabled) {\r\n var {\r\n my: my,\r\n at: at\r\n } = this._getDefaultPopupPosition(isRtlEnabled);\r\n var currentPosition = this.option(\"popupPosition\");\r\n this.option(\"popupPosition\", extend({}, currentPosition, {\r\n my: my,\r\n at: at\r\n }))\r\n },\r\n _initVisibilityActions: function() {\r\n this._openAction = this._createActionByOption(\"onOpened\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._closeAction = this._createActionByOption(\"onClosed\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initPopupInitializedAction: function() {\r\n this._popupInitializedAction = this._createActionByOption(\"onPopupInitialized\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.callBase();\r\n this.$element().addClass(DROP_DOWN_EDITOR_CLASS);\r\n this.setAria(\"role\", \"combobox\")\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderOpenHandler();\r\n this._attachFocusOutHandler();\r\n this._renderOpenedState()\r\n },\r\n _renderContentImpl: function() {\r\n if (!this.option(\"deferRendering\")) {\r\n this._createPopup()\r\n }\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._wrapInput();\r\n this._setDefaultAria()\r\n },\r\n _wrapInput: function() {\r\n this._$container = this.$element().wrapInner($(\"<div>\").addClass(DROP_DOWN_EDITOR_INPUT_WRAPPER)).children().eq(0)\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"true\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _readOnlyPropValue: function() {\r\n return !this._isEditable() || this.callBase()\r\n },\r\n _cleanFocusState: function() {\r\n this.callBase();\r\n if (this.option(\"fieldTemplate\")) {\r\n this._detachFocusEvents()\r\n }\r\n },\r\n _getFieldTemplate: function() {\r\n return this.option(\"fieldTemplate\") && this._getTemplateByOption(\"fieldTemplate\")\r\n },\r\n _renderMask: function() {\r\n if (this.option(\"fieldTemplate\")) {\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _renderField: function() {\r\n var fieldTemplate = this._getFieldTemplate();\r\n fieldTemplate && this._renderTemplatedField(fieldTemplate, this._fieldRenderData())\r\n },\r\n _renderPlaceholder: function() {\r\n var hasFieldTemplate = !!this._getFieldTemplate();\r\n if (!hasFieldTemplate) {\r\n this.callBase()\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._setSubmitValue()\r\n }\r\n var promise = this.callBase();\r\n promise.always(this._renderField.bind(this))\r\n },\r\n _renderTemplatedField: function(fieldTemplate, data) {\r\n var _this$_fieldRenderQue;\r\n this._fieldRenderQueueLength = (null !== (_this$_fieldRenderQue = this._fieldRenderQueueLength) && void 0 !== _this$_fieldRenderQue ? _this$_fieldRenderQue : 0) + 1;\r\n var isFocused = focused(this._input());\r\n var $container = this._$container;\r\n this._detachKeyboardEvents();\r\n this._refreshButtonsContainer();\r\n this._detachWrapperContent();\r\n this._detachFocusEvents();\r\n $container.empty();\r\n var $templateWrapper = $(\"<div>\").addClass(DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER).appendTo($container);\r\n fieldTemplate.render({\r\n model: data,\r\n container: getPublicElement($templateWrapper),\r\n onRendered: () => {\r\n this._fieldRenderQueueLength--;\r\n if (0 !== this._fieldRenderQueueLength) {\r\n return\r\n }\r\n var $input = this._input();\r\n if (!$input.length) {\r\n throw errors.Error(\"E1010\")\r\n }\r\n this._integrateInput();\r\n isFocused && eventsEngine.trigger($input, \"focus\")\r\n }\r\n });\r\n this._attachWrapperContent($container)\r\n },\r\n _detachWrapperContent() {\r\n var _this$_$submitElement, _this$_$beforeButtons, _this$_$afterButtonsC;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n useHiddenSubmitElement && (null === (_this$_$submitElement = this._$submitElement) || void 0 === _this$_$submitElement ? void 0 : _this$_$submitElement.detach());\r\n var beforeButtonsContainerParent = null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons[0].parentNode;\r\n var afterButtonsContainerParent = null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC[0].parentNode;\r\n null === beforeButtonsContainerParent || void 0 === beforeButtonsContainerParent ? void 0 : beforeButtonsContainerParent.removeChild(this._$beforeButtonsContainer[0]);\r\n null === afterButtonsContainerParent || void 0 === afterButtonsContainerParent ? void 0 : afterButtonsContainerParent.removeChild(this._$afterButtonsContainer[0])\r\n },\r\n _attachWrapperContent($container) {\r\n var _this$_$submitElement2;\r\n var useHiddenSubmitElement = this.option(\"useHiddenSubmitElement\");\r\n $container.prepend(this._$beforeButtonsContainer);\r\n useHiddenSubmitElement && (null === (_this$_$submitElement2 = this._$submitElement) || void 0 === _this$_$submitElement2 ? void 0 : _this$_$submitElement2.appendTo($container));\r\n $container.append(this._$afterButtonsContainer)\r\n },\r\n _refreshButtonsContainer() {\r\n this._$buttonsContainer = this.$element().children().eq(0)\r\n },\r\n _integrateInput: function() {\r\n this._renderFocusState();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n this._refreshEmptinessEvent()\r\n },\r\n _refreshEmptinessEvent: function() {\r\n eventsEngine.off(this._input(), \"input blur\", this._toggleEmptinessEventHandler);\r\n this._renderEmptinessEvent()\r\n },\r\n _fieldRenderData: function() {\r\n return this.option(\"value\")\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n dropDownButton: new FunctionTemplate((function(options) {\r\n var $icon = $(\"<div>\").addClass(DROP_DOWN_EDITOR_BUTTON_ICON);\r\n $(options.container).append($icon)\r\n }))\r\n });\r\n this.callBase()\r\n },\r\n _renderOpenHandler: function() {\r\n var $inputWrapper = this._inputWrapper();\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var openOnFieldClick = this.option(\"openOnFieldClick\");\r\n eventsEngine.off($inputWrapper, eventName);\r\n eventsEngine.on($inputWrapper, eventName, this._getInputClickHandler(openOnFieldClick));\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_FIELD_CLICKABLE, openOnFieldClick);\r\n if (openOnFieldClick) {\r\n this._openOnFieldClickAction = this._createAction(this._openHandler.bind(this))\r\n }\r\n },\r\n _attachFocusOutHandler: function() {\r\n if (isIOs) {\r\n this._detachFocusOutEvents();\r\n eventsEngine.on(this._inputWrapper(), addNamespace(\"focusout\", this.NAME), event => {\r\n var newTarget = event.relatedTarget;\r\n var popupWrapper = this.content ? $(this.content()).closest(\".\" + DROP_DOWN_EDITOR_OVERLAY) : this._$popup;\r\n if (newTarget && this.option(\"opened\")) {\r\n var isNewTargetOutside = 0 === $(newTarget).closest(\".\" + DROP_DOWN_EDITOR_OVERLAY, popupWrapper).length;\r\n if (isNewTargetOutside) {\r\n this.close()\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _detachFocusOutEvents: function() {\r\n isIOs && eventsEngine.off(this._inputWrapper(), addNamespace(\"focusout\", this.NAME))\r\n },\r\n _getInputClickHandler: function(openOnFieldClick) {\r\n return openOnFieldClick ? e => {\r\n this._executeOpenAction(e)\r\n } : e => {\r\n this._focusInput()\r\n }\r\n },\r\n _openHandler: function() {\r\n this._toggleOpenState()\r\n },\r\n _executeOpenAction: function(e) {\r\n this._openOnFieldClickAction({\r\n event: e\r\n })\r\n },\r\n _keyboardEventBindingTarget: function() {\r\n return this._input()\r\n },\r\n _focusInput: function() {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"focusStateEnabled\") && !focused(this._input())) {\r\n this._resetCaretPosition();\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n }\r\n return true\r\n },\r\n _resetCaretPosition: function() {\r\n var ignoreEditable = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n var inputElement = this._input().get(0);\r\n if (inputElement) {\r\n var {\r\n value: value\r\n } = inputElement;\r\n var caretPosition = isDefined(value) && (ignoreEditable || this._isEditable()) ? value.length : 0;\r\n this._caret({\r\n start: caretPosition,\r\n end: caretPosition\r\n }, true)\r\n }\r\n },\r\n _isEditable: function() {\r\n return this.option(\"acceptCustomValue\")\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (!this._focusInput()) {\r\n return\r\n }\r\n if (!this.option(\"readOnly\")) {\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n this.option(\"opened\", isVisible)\r\n }\r\n },\r\n _getControlsAria() {\r\n return this._popup && this._popupContentId\r\n },\r\n _renderOpenedState: function() {\r\n var opened = this.option(\"opened\");\r\n if (opened) {\r\n this._createPopup()\r\n }\r\n this.$element().toggleClass(DROP_DOWN_EDITOR_ACTIVE, opened);\r\n this._setPopupOption(\"visible\", opened);\r\n var arias = {\r\n expanded: opened,\r\n controls: this._getControlsAria()\r\n };\r\n this.setAria(arias);\r\n this.setAria(\"owns\", opened ? this._popupContentId : void 0, this.$element())\r\n },\r\n _createPopup: function() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"<div>\").addClass(DROP_DOWN_EDITOR_OVERLAY).appendTo(this.$element());\r\n this._renderPopup();\r\n this._renderPopupContent()\r\n },\r\n _renderPopupContent: noop,\r\n _renderPopup: function() {\r\n var popupConfig = extend(this._popupConfig(), this._options.cache(\"dropDownOptions\"));\r\n this._popup = this._createComponent(this._$popup, Popup, popupConfig);\r\n this._popup.on({\r\n showing: this._popupShowingHandler.bind(this),\r\n shown: this._popupShownHandler.bind(this),\r\n hiding: this._popupHidingHandler.bind(this),\r\n hidden: this._popupHiddenHandler.bind(this),\r\n contentReady: this._contentReadyHandler.bind(this)\r\n });\r\n this._contentReadyHandler();\r\n this._setPopupContentId(this._popup.$content());\r\n this._bindInnerWidgetOptions(this._popup, \"dropDownOptions\")\r\n },\r\n _setPopupContentId($popupContent) {\r\n this._popupContentId = \"dx-\" + new Guid;\r\n this.setAria(\"id\", this._popupContentId, $popupContent)\r\n },\r\n _contentReadyHandler: noop,\r\n _popupConfig: function() {\r\n return {\r\n onInitialized: this._popupInitializedHandler(),\r\n position: extend(this.option(\"popupPosition\"), {\r\n of: this.$element()\r\n }),\r\n showTitle: this.option(\"dropDownOptions.showTitle\"),\r\n _ignoreFunctionValueDeprecation: true,\r\n width: () => getElementWidth(this.$element()),\r\n height: \"auto\",\r\n shading: false,\r\n hideOnParentScroll: true,\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 0,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n deferRendering: false,\r\n focusStateEnabled: false,\r\n showCloseButton: false,\r\n dragEnabled: false,\r\n toolbarItems: this._getPopupToolbarItems(),\r\n onPositioned: this._popupPositionedHandler.bind(this),\r\n fullScreen: false,\r\n contentTemplate: null,\r\n _wrapperClassExternal: DROP_DOWN_EDITOR_OVERLAY\r\n }\r\n },\r\n _popupInitializedHandler: function() {\r\n if (!this.option(\"onPopupInitialized\")) {\r\n return null\r\n }\r\n return e => {\r\n this._popupInitializedAction({\r\n popup: e.component\r\n })\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n var popupWidth = getSizeValue(this.option(\"dropDownOptions.width\"));\r\n if (void 0 === popupWidth) {\r\n this._setPopupOption(\"width\", () => getElementWidth(this.$element()))\r\n }\r\n },\r\n _popupPositionedHandler: function(e) {\r\n var {\r\n labelMode: labelMode,\r\n stylingMode: stylingMode\r\n } = this.option();\r\n var $popupOverlayContent = this._popup.$overlayContent();\r\n var isOverlayFlipped = e.position.v.flip;\r\n var shouldIndentForLabel = \"hidden\" !== labelMode && \"outlined\" === stylingMode;\r\n if (e.position) {\r\n $popupOverlayContent.toggleClass(DROP_DOWN_EDITOR_OVERLAY_FLIPPED, isOverlayFlipped)\r\n }\r\n if (isOverlayFlipped && shouldIndentForLabel && this._label.isVisible()) {\r\n var $label = this._label.$element();\r\n move($popupOverlayContent, {\r\n top: locate($popupOverlayContent).top - parseInt($label.css(\"fontSize\"))\r\n })\r\n }\r\n },\r\n _popupShowingHandler: noop,\r\n _popupHidingHandler: function() {\r\n this.option(\"opened\", false)\r\n },\r\n _popupShownHandler: function() {\r\n var _this$_validationMess;\r\n this._openAction();\r\n null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n },\r\n _popupHiddenHandler: function() {\r\n var _this$_validationMess2;\r\n this._closeAction();\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(\"positionSide\", this._getValidationMessagePositionSide())\r\n },\r\n _getValidationMessagePositionSide: function() {\r\n var validationMessagePosition = this.option(\"validationMessagePosition\");\r\n if (\"auto\" !== validationMessagePosition) {\r\n return validationMessagePosition\r\n }\r\n var positionSide = \"bottom\";\r\n if (this._popup && this._popup.option(\"visible\")) {\r\n var {\r\n top: myTop\r\n } = animationPosition.setup(this.$element());\r\n var {\r\n top: popupTop\r\n } = animationPosition.setup(this._popup.$content());\r\n positionSide = myTop + this.option(\"popupPosition\").offset.v > popupTop ? \"bottom\" : \"top\"\r\n }\r\n return positionSide\r\n },\r\n _closeOutsideDropDownHandler: function(_ref) {\r\n var {\r\n target: target\r\n } = _ref;\r\n var $target = $(target);\r\n var dropDownButton = this.getButton(\"dropDown\");\r\n var $dropDownButton = dropDownButton && dropDownButton.$element();\r\n var isInputClicked = !!$target.closest(this.$element()).length;\r\n var isDropDownButtonClicked = !!$target.closest($dropDownButton).length;\r\n var isOutsideClick = !isInputClicked && !isDropDownButtonClicked;\r\n return isOutsideClick\r\n },\r\n _clean: function() {\r\n delete this._openOnFieldClickAction;\r\n if (this._$popup) {\r\n this._$popup.remove();\r\n delete this._$popup;\r\n delete this._popup\r\n }\r\n this.callBase()\r\n },\r\n _setPopupOption: function(optionName, value) {\r\n this._setWidgetOption(\"_popup\", arguments)\r\n },\r\n _validatedOpening: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this._toggleOpenState(true)\r\n }\r\n },\r\n _getPopupToolbarItems: function() {\r\n return \"useButtons\" === this.option(\"applyValueMode\") ? this._popupToolbarItemsConfig() : []\r\n },\r\n _getFirstPopupElement: function() {\r\n return this._popup.$wrapper().find(\".dx-popup-done.dx-button\")\r\n },\r\n _getLastPopupElement: function() {\r\n return this._popup.$wrapper().find(\".dx-popup-cancel.dx-button\")\r\n },\r\n _popupElementTabHandler: function(e) {\r\n var $element = $(e.currentTarget);\r\n if (e.shiftKey && $element.is(this._getFirstPopupElement()) || !e.shiftKey && $element.is(this._getLastPopupElement())) {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n e.preventDefault()\r\n }\r\n },\r\n _popupElementEscHandler: function() {\r\n eventsEngine.trigger(this._input(), \"focus\");\r\n this.close()\r\n },\r\n _popupButtonInitializedHandler: function(e) {\r\n e.component.registerKeyHandler(\"tab\", this._popupElementTabHandler.bind(this));\r\n e.component.registerKeyHandler(\"escape\", this._popupElementEscHandler.bind(this))\r\n },\r\n _popupToolbarItemsConfig: function() {\r\n var buttonsConfig = [{\r\n shortcut: \"done\",\r\n options: {\r\n onClick: this._applyButtonHandler.bind(this),\r\n text: this.option(\"applyButtonText\"),\r\n onInitialized: this._popupButtonInitializedHandler.bind(this)\r\n }\r\n }, {\r\n shortcut: \"cancel\",\r\n options: {\r\n onClick: this._cancelButtonHandler.bind(this),\r\n text: this.option(\"cancelButtonText\"),\r\n onInitialized: this._popupButtonInitializedHandler.bind(this)\r\n }\r\n }];\r\n return this._applyButtonsLocation(buttonsConfig)\r\n },\r\n _applyButtonsLocation: function(buttonsConfig) {\r\n var buttonsLocation = this.option(\"buttonsLocation\");\r\n var resultConfig = buttonsConfig;\r\n if (\"default\" !== buttonsLocation) {\r\n var position = splitPair(buttonsLocation);\r\n each(resultConfig, (function(_, element) {\r\n extend(element, {\r\n toolbar: position[0],\r\n location: position[1]\r\n })\r\n }))\r\n }\r\n return resultConfig\r\n },\r\n _applyButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _cancelButtonHandler: function() {\r\n this.close();\r\n this.option(\"focusStateEnabled\") && this.focus()\r\n },\r\n _popupOptionChanged: function(args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n this._setPopupOption(options);\r\n var optionsKeys = Object.keys(options);\r\n if (-1 !== optionsKeys.indexOf(\"width\") || -1 !== optionsKeys.indexOf(\"height\")) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _renderSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element())\r\n }\r\n },\r\n _setSubmitValue: function() {\r\n this._getSubmitElement().val(this.option(\"value\"))\r\n },\r\n _getSubmitElement: function() {\r\n if (this.option(\"useHiddenSubmitElement\")) {\r\n return this._$submitElement\r\n } else {\r\n return this.callBase()\r\n }\r\n },\r\n _dispose: function() {\r\n this._detachFocusOutEvents();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_popup;\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup.repaint();\r\n break;\r\n case \"opened\":\r\n this._renderOpenedState();\r\n break;\r\n case \"onOpened\":\r\n case \"onClosed\":\r\n this._initVisibilityActions();\r\n break;\r\n case \"onPopupInitialized\":\r\n this._initPopupInitializedAction();\r\n break;\r\n case \"fieldTemplate\":\r\n if (isDefined(args.value)) {\r\n this._renderField()\r\n } else {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"acceptCustomValue\":\r\n case \"openOnFieldClick\":\r\n this._invalidate();\r\n break;\r\n case \"dropDownButtonTemplate\":\r\n case \"showDropDownButton\":\r\n this._updateButtons([\"dropDown\"]);\r\n break;\r\n case \"dropDownOptions\":\r\n this._popupOptionChanged(args);\r\n this._options.cache(\"dropDownOptions\", this.option(\"dropDownOptions\"));\r\n break;\r\n case \"popupPosition\":\r\n break;\r\n case \"deferRendering\":\r\n if (hasWindow()) {\r\n this._createPopup()\r\n }\r\n break;\r\n case \"applyValueMode\":\r\n case \"applyButtonText\":\r\n case \"cancelButtonText\":\r\n case \"buttonsLocation\":\r\n this._setPopupOption(\"toolbarItems\", this._getPopupToolbarItems());\r\n break;\r\n case \"useHiddenSubmitElement\":\r\n if (this._$submitElement) {\r\n this._$submitElement.remove();\r\n this._$submitElement = void 0\r\n }\r\n this._renderSubmitElement();\r\n break;\r\n case \"rtlEnabled\":\r\n this._updatePopupPosition(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n open: function() {\r\n this.option(\"opened\", true)\r\n },\r\n close: function() {\r\n this.option(\"opened\", false)\r\n },\r\n field: function() {\r\n return getPublicElement(this._input())\r\n },\r\n content: function() {\r\n return this._popup ? this._popup.content() : null\r\n }\r\n});\r\nregisterComponent(\"dxDropDownEditor\", DropDownEditor);\r\nexport default DropDownEditor;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar getElementWidth = function($element) {\r\n if (hasWindow()) {\r\n return getOuterWidth($element)\r\n }\r\n};\r\nvar getSizeValue = function(size) {\r\n if (null === size) {\r\n size = void 0\r\n }\r\n if (\"function\" === typeof size) {\r\n size = size()\r\n }\r\n return size\r\n};\r\nexport {\r\n getElementWidth,\r\n getSizeValue\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/editor/editor.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ValidationEngine from \"../validation_engine\";\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport ValidationMessage from \"../validation_message\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar READONLY_STATE_CLASS = \"dx-state-readonly\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nvar DX_INVALID_BADGE_CLASS = \"dx-show-invalid-badge\";\r\nvar VALIDATION_TARGET = \"dx-validation-target\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar READONLY_NAMESPACE = \"editorReadOnly\";\r\nvar ALLOWED_STYLING_MODES = [\"outlined\", \"filled\", \"underlined\"];\r\nvar VALIDATION_MESSAGE_KEYS_MAP = {\r\n validationMessageMode: \"mode\",\r\n validationMessagePosition: \"positionSide\",\r\n validationMessageOffset: \"offset\",\r\n validationBoundary: \"boundary\"\r\n};\r\nvar Editor = Widget.inherit({\r\n ctor: function() {\r\n this.showValidationMessageTimeout = null;\r\n this.validationRequest = Callbacks();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createElement: function(element) {\r\n this.callBase(element);\r\n var $element = this.$element();\r\n if ($element) {\r\n data($element[0], VALIDATION_TARGET, this)\r\n }\r\n },\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._options.cache(\"validationTooltipOptions\", this.option(\"validationTooltipOptions\"));\r\n var $element = this.$element();\r\n $element.addClass(DX_INVALID_BADGE_CLASS)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: null,\r\n name: \"\",\r\n onValueChanged: null,\r\n readOnly: false,\r\n isValid: true,\r\n validationError: null,\r\n validationErrors: null,\r\n validationStatus: VALIDATION_STATUS_VALID,\r\n validationMessageMode: \"auto\",\r\n validationMessagePosition: \"bottom\",\r\n validationBoundary: void 0,\r\n validationMessageOffset: {\r\n h: 0,\r\n v: 0\r\n },\r\n validationTooltipOptions: {}\r\n })\r\n },\r\n _attachKeyboardEvents: function() {\r\n if (!this.option(\"readOnly\")) {\r\n this.callBase()\r\n }\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationError: true\r\n })\r\n },\r\n _createValueChangeAction: function() {\r\n this._valueChangeAction = this._createActionByOption(\"onValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _suppressValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = true\r\n },\r\n _resumeValueChangeAction: function() {\r\n this._valueChangeActionSuppressed = false\r\n },\r\n _initMarkup: function() {\r\n var _this$option;\r\n this._toggleReadOnlyState();\r\n this._setSubmitElementName(this.option(\"name\"));\r\n this.callBase();\r\n this._renderValidationState();\r\n null === (_this$option = this.option(\"_onMarkupRendered\")) || void 0 === _this$option ? void 0 : _this$option()\r\n },\r\n _raiseValueChangeAction: function(value, previousValue) {\r\n if (!this._valueChangeAction) {\r\n this._createValueChangeAction()\r\n }\r\n this._valueChangeAction(this._valueChangeArgs(value, previousValue))\r\n },\r\n _valueChangeArgs: function(value, previousValue) {\r\n return {\r\n value: value,\r\n previousValue: previousValue,\r\n event: this._valueChangeEventInstance\r\n }\r\n },\r\n _saveValueChangeEvent: function(e) {\r\n this._valueChangeEventInstance = e\r\n },\r\n _focusInHandler: function(e) {\r\n var isValidationMessageShownOnFocus = \"auto\" === this.option(\"validationMessageMode\");\r\n if (this._canValueBeChangedByClick() && isValidationMessageShownOnFocus) {\r\n var _this$_validationMess;\r\n var $validationMessageWrapper = null === (_this$_validationMess = this._validationMessage) || void 0 === _this$_validationMess ? void 0 : _this$_validationMess.$wrapper();\r\n null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.removeClass(INVALID_MESSAGE_AUTO);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this.showValidationMessageTimeout = setTimeout(() => null === $validationMessageWrapper || void 0 === $validationMessageWrapper ? void 0 : $validationMessageWrapper.addClass(INVALID_MESSAGE_AUTO), 150)\r\n }\r\n return this.callBase(e)\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return false\r\n },\r\n _getStylingModePrefix: function() {\r\n return \"dx-editor-\"\r\n },\r\n _renderStylingMode: function() {\r\n var optionValue = this.option(\"stylingMode\");\r\n var prefix = this._getStylingModePrefix();\r\n var allowedStylingClasses = ALLOWED_STYLING_MODES.map(mode => prefix + mode);\r\n allowedStylingClasses.forEach(className => this.$element().removeClass(className));\r\n var stylingModeClass = prefix + optionValue;\r\n if (-1 === allowedStylingClasses.indexOf(stylingModeClass)) {\r\n var defaultOptionValue = this._getDefaultOptions().stylingMode;\r\n var platformOptionValue = this._convertRulesToOptions(this._defaultOptionsRules()).stylingMode;\r\n stylingModeClass = prefix + (platformOptionValue || defaultOptionValue)\r\n }\r\n this.$element().addClass(stylingModeClass)\r\n },\r\n _getValidationErrors: function() {\r\n var validationErrors = this.option(\"validationErrors\");\r\n if (!validationErrors && this.option(\"validationError\")) {\r\n validationErrors = [this.option(\"validationError\")]\r\n }\r\n return validationErrors\r\n },\r\n _disposeValidationMessage: function() {\r\n if (this._$validationMessage) {\r\n this._$validationMessage.remove();\r\n this.setAria(\"describedby\", null);\r\n this._$validationMessage = void 0;\r\n this._validationMessage = void 0\r\n }\r\n },\r\n _toggleValidationClasses: function(isInvalid) {\r\n this.$element().toggleClass(INVALID_CLASS, isInvalid);\r\n this.setAria(VALIDATION_STATUS_INVALID, isInvalid || void 0)\r\n },\r\n _renderValidationState: function() {\r\n var isValid = this.option(\"isValid\") && this.option(\"validationStatus\") !== VALIDATION_STATUS_INVALID;\r\n var validationErrors = this._getValidationErrors();\r\n var $element = this.$element();\r\n this._toggleValidationClasses(!isValid);\r\n if (!hasWindow()) {\r\n return\r\n }\r\n this._disposeValidationMessage();\r\n if (!isValid && validationErrors) {\r\n var {\r\n validationMessageMode: validationMessageMode,\r\n validationMessagePosition: validationMessagePosition,\r\n validationMessageOffset: validationMessageOffset,\r\n validationBoundary: validationBoundary,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n this._$validationMessage = $(\"<div>\").appendTo($element);\r\n var validationMessageContentId = \"dx-\".concat(new Guid);\r\n this.setAria(\"describedby\", validationMessageContentId);\r\n this._validationMessage = new ValidationMessage(this._$validationMessage, extend({\r\n validationErrors: validationErrors,\r\n rtlEnabled: rtlEnabled,\r\n target: this._getValidationMessageTarget(),\r\n visualContainer: $element,\r\n mode: validationMessageMode,\r\n positionSide: validationMessagePosition,\r\n offset: validationMessageOffset,\r\n boundary: validationBoundary,\r\n contentId: validationMessageContentId\r\n }, this._options.cache(\"validationTooltipOptions\")));\r\n this._bindInnerWidgetOptions(this._validationMessage, \"validationTooltipOptions\")\r\n }\r\n },\r\n _getValidationMessageTarget: function() {\r\n return this.$element()\r\n },\r\n _toggleReadOnlyState: function() {\r\n var readOnly = this.option(\"readOnly\");\r\n this._toggleBackspaceHandler(readOnly);\r\n this.$element().toggleClass(READONLY_STATE_CLASS, !!readOnly);\r\n this.setAria(\"readonly\", readOnly || void 0)\r\n },\r\n _toggleBackspaceHandler: function(isReadOnly) {\r\n var $eventTarget = this._keyboardEventBindingTarget();\r\n var eventName = addNamespace(\"keydown\", READONLY_NAMESPACE);\r\n EventsEngine.off($eventTarget, eventName);\r\n if (isReadOnly) {\r\n EventsEngine.on($eventTarget, eventName, e => {\r\n if (\"backspace\" === normalizeKeyName(e)) {\r\n e.preventDefault()\r\n }\r\n })\r\n }\r\n },\r\n _dispose: function() {\r\n var element = this.$element()[0];\r\n data(element, VALIDATION_TARGET, null);\r\n clearTimeout(this.showValidationMessageTimeout);\r\n this._disposeValidationMessage();\r\n this.callBase()\r\n },\r\n _setSubmitElementName: function(name) {\r\n var $submitElement = this._getSubmitElement();\r\n if (!$submitElement) {\r\n return\r\n }\r\n if (name.length > 0) {\r\n $submitElement.attr(\"name\", name)\r\n } else {\r\n $submitElement.removeAttr(\"name\")\r\n }\r\n },\r\n _getSubmitElement: function() {\r\n return null\r\n },\r\n _setValidationMessageOption: function(_ref) {\r\n var _this$_validationMess2;\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n var optionKey = VALIDATION_MESSAGE_KEYS_MAP[name] ? VALIDATION_MESSAGE_KEYS_MAP[name] : name;\r\n null === (_this$_validationMess2 = this._validationMessage) || void 0 === _this$_validationMess2 ? void 0 : _this$_validationMess2.option(optionKey, value)\r\n },\r\n _hasActiveElement: noop,\r\n _optionChanged: function(args) {\r\n var _this$_validationMess3;\r\n switch (args.name) {\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"readOnly\":\r\n this._toggleReadOnlyState();\r\n this._refreshFocusState();\r\n break;\r\n case \"value\":\r\n if (args.value != args.previousValue) {\r\n this.validationRequest.fire({\r\n value: args.value,\r\n editor: this\r\n })\r\n }\r\n if (!this._valueChangeActionSuppressed) {\r\n this._raiseValueChangeAction(args.value, args.previousValue);\r\n this._saveValueChangeEvent(void 0)\r\n }\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n null === (_this$_validationMess3 = this._validationMessage) || void 0 === _this$_validationMess3 ? void 0 : _this$_validationMess3.updateMaxWidth();\r\n break;\r\n case \"name\":\r\n this._setSubmitElementName(args.value);\r\n break;\r\n case \"isValid\":\r\n case \"validationError\":\r\n case \"validationErrors\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n this._renderValidationState();\r\n break;\r\n case \"validationBoundary\":\r\n case \"validationMessageMode\":\r\n case \"validationMessagePosition\":\r\n case \"validationMessageOffset\":\r\n this._setValidationMessageOption(args);\r\n break;\r\n case \"rtlEnabled\":\r\n this._setValidationMessageOption(args);\r\n this.callBase(args);\r\n break;\r\n case \"validationTooltipOptions\":\r\n this._innerWidgetOptionChanged(this._validationMessage, args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n blur: function() {\r\n if (this._hasActiveElement()) {\r\n resetActiveElement()\r\n }\r\n },\r\n reset: function() {\r\n var defaultOptions = this._getDefaultOptions();\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n});\r\nEditor.isEditor = instance => instance instanceof Editor;\r\nexport default Editor;\r\n","/**\r\n * DevExtreme (esm/ui/editor/ui.data_expression.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter,\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject as isObjectType,\r\n isString,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar DataExpressionMixin = extend({}, DataHelperMixin, {\r\n _dataExpressionDefaultOptions: function() {\r\n return {\r\n items: [],\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n value: null,\r\n valueExpr: \"this\",\r\n displayExpr: void 0\r\n }\r\n },\r\n _initDataExpressions: function() {\r\n this._compileValueGetter();\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._initDataSource();\r\n this._itemsToDataSource()\r\n },\r\n _itemsToDataSource: function() {\r\n if (!this.option(\"dataSource\")) {\r\n this._dataSource = new DataSource({\r\n store: new ArrayStore(this.option(\"items\")),\r\n pageSize: 0\r\n });\r\n this._initDataController()\r\n }\r\n },\r\n _compileDisplayGetter: function() {\r\n this._displayGetter = compileGetter(this._displayGetterExpr())\r\n },\r\n _displayGetterExpr: function() {\r\n return this.option(\"displayExpr\")\r\n },\r\n _compileValueGetter: function() {\r\n this._valueGetter = compileGetter(this._valueGetterExpr())\r\n },\r\n _valueGetterExpr: function() {\r\n return this.option(\"valueExpr\") || \"this\"\r\n },\r\n _loadValue: function(value) {\r\n var deferred = new Deferred;\r\n value = this._unwrappedValue(value);\r\n if (!isDefined(value)) {\r\n return deferred.reject().promise()\r\n }\r\n this._loadSingle(this._valueGetterExpr(), value).done(function(item) {\r\n this._isValueEquals(this._valueGetter(item), value) ? deferred.resolve(item) : deferred.reject()\r\n }.bind(this)).fail((function() {\r\n deferred.reject()\r\n }));\r\n this._loadValueDeferred = deferred;\r\n return deferred.promise()\r\n },\r\n _rejectValueLoading: function() {\r\n var _this$_loadValueDefer;\r\n null === (_this$_loadValueDefer = this._loadValueDeferred) || void 0 === _this$_loadValueDefer ? void 0 : _this$_loadValueDefer.reject({\r\n shouldSkipCallback: true\r\n })\r\n },\r\n _getCurrentValue: function() {\r\n return this.option(\"value\")\r\n },\r\n _unwrappedValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this._getCurrentValue();\r\n if (value && this._dataSource && \"this\" === this._valueGetterExpr()) {\r\n value = this._getItemKey(value)\r\n }\r\n return variableWrapper.unwrap(value)\r\n },\r\n _getItemKey: function(value) {\r\n var key = this._dataSource.key();\r\n if (Array.isArray(key)) {\r\n var result = {};\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n result[key[i]] = value[key[i]]\r\n }\r\n return result\r\n }\r\n if (key && \"object\" === typeof value) {\r\n value = value[key]\r\n }\r\n return value\r\n },\r\n _isValueEquals: function(value1, value2) {\r\n var dataSourceKey = this._dataSource && this._dataSource.key();\r\n var result = this._compareValues(value1, value2);\r\n if (!result && dataSourceKey && isDefined(value1) && isDefined(value2)) {\r\n if (Array.isArray(dataSourceKey)) {\r\n result = this._compareByCompositeKey(value1, value2, dataSourceKey)\r\n } else {\r\n result = this._compareByKey(value1, value2, dataSourceKey)\r\n }\r\n }\r\n return result\r\n },\r\n _compareByCompositeKey: function(value1, value2, key) {\r\n var isObject = isObjectType;\r\n if (!isObject(value1) || !isObject(value2)) {\r\n return false\r\n }\r\n for (var i = 0, n = key.length; i < n; i++) {\r\n if (value1[key[i]] !== value2[key[i]]) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _compareByKey: function(value1, value2, key) {\r\n var unwrapObservable = variableWrapper.unwrap;\r\n var valueKey1 = ensureDefined(unwrapObservable(value1[key]), value1);\r\n var valueKey2 = ensureDefined(unwrapObservable(value2[key]), value2);\r\n return this._compareValues(valueKey1, valueKey2)\r\n },\r\n _compareValues: function(value1, value2) {\r\n return toComparable(value1, true) === toComparable(value2, true)\r\n },\r\n _initDynamicTemplates: noop,\r\n _setCollectionWidgetItemTemplate: function() {\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"itemTemplate\", this.option(\"itemTemplate\"))\r\n },\r\n _getCollectionKeyExpr: function() {\r\n var valueExpr = this.option(\"valueExpr\");\r\n var isValueExprField = isString(valueExpr) && \"this\" !== valueExpr || isFunction(valueExpr);\r\n return isValueExprField ? valueExpr : null\r\n },\r\n _dataExpressionOptionChanged: function(args) {\r\n switch (args.name) {\r\n case \"items\":\r\n this._itemsToDataSource();\r\n this._setCollectionWidgetOption(\"items\");\r\n break;\r\n case \"dataSource\":\r\n this._initDataSource();\r\n break;\r\n case \"itemTemplate\":\r\n this._setCollectionWidgetItemTemplate();\r\n break;\r\n case \"valueExpr\":\r\n this._compileValueGetter();\r\n break;\r\n case \"displayExpr\":\r\n this._compileDisplayGetter();\r\n this._initDynamicTemplates();\r\n this._setCollectionWidgetOption(\"displayExpr\")\r\n }\r\n }\r\n});\r\nexport default DataExpressionMixin;\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder/between.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar FILTER_BUILDER_RANGE_CLASS = \"dx-filterbuilder-range\";\r\nvar FILTER_BUILDER_RANGE_START_CLASS = FILTER_BUILDER_RANGE_CLASS + \"-start\";\r\nvar FILTER_BUILDER_RANGE_END_CLASS = FILTER_BUILDER_RANGE_CLASS + \"-end\";\r\nvar FILTER_BUILDER_RANGE_SEPARATOR_CLASS = FILTER_BUILDER_RANGE_CLASS + \"-separator\";\r\nvar SEPARATOR = \"\\u2013\";\r\n\r\nfunction editorTemplate(conditionInfo, container) {\r\n var $editorStart = $(\"<div>\").addClass(FILTER_BUILDER_RANGE_START_CLASS);\r\n var $editorEnd = $(\"<div>\").addClass(FILTER_BUILDER_RANGE_END_CLASS);\r\n var values = conditionInfo.value || [];\r\n var getStartValue = function(values) {\r\n return values && values.length > 0 ? values[0] : null\r\n };\r\n var getEndValue = function(values) {\r\n return values && 2 === values.length ? values[1] : null\r\n };\r\n container.append($editorStart);\r\n container.append($(\"<span>\").addClass(FILTER_BUILDER_RANGE_SEPARATOR_CLASS).text(SEPARATOR));\r\n container.append($editorEnd);\r\n container.addClass(FILTER_BUILDER_RANGE_CLASS);\r\n this._editorFactory.createEditor.call(this, $editorStart, extend({}, conditionInfo.field, conditionInfo, {\r\n value: getStartValue(values),\r\n parentType: \"filterBuilder\",\r\n setValue: function(value) {\r\n values = [value, getEndValue(values)];\r\n conditionInfo.setValue(values)\r\n }\r\n }));\r\n this._editorFactory.createEditor.call(this, $editorEnd, extend({}, conditionInfo.field, conditionInfo, {\r\n value: getEndValue(values),\r\n parentType: \"filterBuilder\",\r\n setValue: function(value) {\r\n values = [getStartValue(values), value];\r\n conditionInfo.setValue(values)\r\n }\r\n }))\r\n}\r\nexport function getConfig(caption, context) {\r\n return {\r\n name: \"between\",\r\n caption: caption,\r\n icon: \"range\",\r\n valueSeparator: SEPARATOR,\r\n dataTypes: [\"number\", \"date\", \"datetime\"],\r\n editorTemplate: editorTemplate.bind(context),\r\n notForLookup: true\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder/ui.filter_operations_dictionary.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nvar OPERATION_ICONS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notequal\",\r\n \"<\": \"less\",\r\n \"<=\": \"lessorequal\",\r\n \">\": \"greater\",\r\n \">=\": \"greaterorequal\",\r\n notcontains: \"doesnotcontain\",\r\n contains: \"contains\",\r\n startswith: \"startswith\",\r\n endswith: \"endswith\",\r\n isblank: \"isblank\",\r\n isnotblank: \"isnotblank\"\r\n};\r\nvar OPERATION_NAME = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n isblank: \"isBlank\",\r\n isnotblank: \"isNotBlank\",\r\n between: \"between\"\r\n};\r\nexport default {\r\n getIconByFilterOperation: function(filterOperation) {\r\n return OPERATION_ICONS[filterOperation]\r\n },\r\n getNameByFilterOperation: function(filterOperation) {\r\n return OPERATION_NAME[filterOperation]\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n errors as dataErrors\r\n} from \"../../data/errors\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport filterUtils from \"../shared/filtering\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n getConfig\r\n} from \"./between\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport filterOperationsDictionary from \"./ui.filter_operations_dictionary\";\r\nvar DEFAULT_DATA_TYPE = \"string\";\r\nvar EMPTY_MENU_ICON = \"icon-none\";\r\nvar AND_GROUP_OPERATION = \"and\";\r\nvar EQUAL_OPERATION = \"=\";\r\nvar NOT_EQUAL_OPERATION = \"<>\";\r\nvar DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\", \"isblank\", \"isnotblank\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"isblank\", \"isnotblank\"],\r\n boolean: [\"=\", \"<>\", \"isblank\", \"isnotblank\"],\r\n object: [\"isblank\", \"isnotblank\"]\r\n};\r\nvar DEFAULT_FORMAT = {\r\n date: \"shortDate\",\r\n datetime: \"shortDateShortTime\"\r\n};\r\nvar LOOKUP_OPERATIONS = [\"=\", \"<>\", \"isblank\", \"isnotblank\"];\r\nvar AVAILABLE_FIELD_PROPERTIES = [\"caption\", \"customizeText\", \"dataField\", \"dataType\", \"editorTemplate\", \"falseText\", \"editorOptions\", \"filterOperations\", \"format\", \"lookup\", \"trueText\", \"calculateFilterExpression\", \"name\"];\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-text\";\r\nvar FILTER_BUILDER_ITEM_TEXT_PART_CLASS = FILTER_BUILDER_ITEM_TEXT_CLASS + \"-part\";\r\nvar FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS = FILTER_BUILDER_ITEM_TEXT_CLASS + \"-separator\";\r\nvar FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS = FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS + \"-empty\";\r\n\r\nfunction getFormattedValueText(field, value) {\r\n var fieldFormat = field.format || DEFAULT_FORMAT[field.dataType];\r\n return formatHelper.format(value, fieldFormat)\r\n}\r\n\r\nfunction isNegationGroup(group) {\r\n return group && group.length > 1 && \"!\" === group[0] && !isCondition(group)\r\n}\r\nexport function getGroupCriteria(group) {\r\n return isNegationGroup(group) ? group[1] : group\r\n}\r\n\r\nfunction setGroupCriteria(group, criteria) {\r\n if (isNegationGroup(group)) {\r\n group[1] = criteria\r\n } else {\r\n group = criteria\r\n }\r\n return group\r\n}\r\n\r\nfunction convertGroupToNewStructure(group, value) {\r\n if (function(value) {\r\n return -1 !== value.indexOf(\"!\")\r\n }(value)) {\r\n if (!isNegationGroup(group)) {\r\n ! function(group) {\r\n var criteria = group.slice(0);\r\n group.length = 0;\r\n group.push(\"!\", criteria)\r\n }(group)\r\n }\r\n } else if (isNegationGroup(group)) {\r\n ! function(group) {\r\n var criteria = getGroupCriteria(group);\r\n group.length = 0;\r\n [].push.apply(group, criteria)\r\n }(group)\r\n }\r\n}\r\nexport function setGroupValue(group, value) {\r\n convertGroupToNewStructure(group, value);\r\n var criteria = getGroupCriteria(group);\r\n var i;\r\n value = function(value) {\r\n return -1 === value.indexOf(\"!\") ? value : value.substring(1)\r\n }(value);\r\n ! function(criteria, value) {\r\n for (i = 0; i < criteria.length; i++) {\r\n if (!Array.isArray(criteria[i])) {\r\n criteria[i] = value\r\n }\r\n }\r\n }(criteria, value);\r\n return group\r\n}\r\nexport function getGroupMenuItem(group, availableGroups) {\r\n var groupValue = getGroupValue(group);\r\n return availableGroups.filter((function(item) {\r\n return item.value === groupValue\r\n }))[0]\r\n}\r\n\r\nfunction getCriteriaOperation(criteria) {\r\n if (isCondition(criteria)) {\r\n return AND_GROUP_OPERATION\r\n }\r\n var value = \"\";\r\n for (var i = 0; i < criteria.length; i++) {\r\n var item = criteria[i];\r\n if (!Array.isArray(item)) {\r\n if (value && value !== item) {\r\n throw new dataErrors.Error(\"E4019\")\r\n }\r\n if (\"!\" !== item) {\r\n value = item\r\n }\r\n }\r\n }\r\n return value\r\n}\r\nexport function getGroupValue(group) {\r\n var criteria = getGroupCriteria(group);\r\n var value = getCriteriaOperation(criteria);\r\n if (!value) {\r\n value = AND_GROUP_OPERATION\r\n }\r\n if (criteria !== group) {\r\n value = \"!\" + value\r\n }\r\n return value\r\n}\r\n\r\nfunction getDefaultFilterOperations(field) {\r\n return field.lookup && LOOKUP_OPERATIONS || DATATYPE_OPERATIONS[field.dataType || DEFAULT_DATA_TYPE]\r\n}\r\n\r\nfunction containItems(entity) {\r\n return Array.isArray(entity) && entity.length\r\n}\r\nexport function getFilterOperations(field) {\r\n var result = containItems(field.filterOperations) ? field.filterOperations : getDefaultFilterOperations(field);\r\n return extend([], result)\r\n}\r\nexport function getCaptionByOperation(operation, filterOperationDescriptions) {\r\n var operationName = filterOperationsDictionary.getNameByFilterOperation(operation);\r\n return filterOperationDescriptions && filterOperationDescriptions[operationName] ? filterOperationDescriptions[operationName] : operationName\r\n}\r\nexport function getOperationFromAvailable(operation, availableOperations) {\r\n for (var i = 0; i < availableOperations.length; i++) {\r\n if (availableOperations[i].value === operation) {\r\n return availableOperations[i]\r\n }\r\n }\r\n throw new errors.Error(\"E1048\", operation)\r\n}\r\nexport function getCustomOperation(customOperations, name) {\r\n var filteredOperations = customOperations.filter((function(item) {\r\n return item.name === name\r\n }));\r\n return filteredOperations.length ? filteredOperations[0] : null\r\n}\r\nexport function getAvailableOperations(field, filterOperationDescriptions, customOperations) {\r\n var filterOperations = getFilterOperations(field);\r\n var isLookupField = !!field.lookup;\r\n customOperations.forEach((function(customOperation) {\r\n if (!field.filterOperations && -1 === filterOperations.indexOf(customOperation.name)) {\r\n var dataTypes = customOperation && customOperation.dataTypes;\r\n var isOperationForbidden = isLookupField ? !!customOperation.notForLookup : false;\r\n if (!isOperationForbidden && dataTypes && dataTypes.indexOf(field.dataType || DEFAULT_DATA_TYPE) >= 0) {\r\n filterOperations.push(customOperation.name)\r\n }\r\n }\r\n }));\r\n return filterOperations.map((function(operation) {\r\n var customOperation = getCustomOperation(customOperations, operation);\r\n if (customOperation) {\r\n return {\r\n icon: customOperation.icon || EMPTY_MENU_ICON,\r\n text: customOperation.caption || captionize(customOperation.name),\r\n value: customOperation.name,\r\n isCustom: true\r\n }\r\n } else {\r\n return {\r\n icon: filterOperationsDictionary.getIconByFilterOperation(operation) || EMPTY_MENU_ICON,\r\n text: getCaptionByOperation(operation, filterOperationDescriptions),\r\n value: operation\r\n }\r\n }\r\n }))\r\n}\r\nexport function getDefaultOperation(field) {\r\n return field.defaultFilterOperation || getFilterOperations(field)[0]\r\n}\r\nexport function createCondition(field, customOperations) {\r\n var condition = [field.dataField, \"\", \"\"];\r\n var filterOperation = getDefaultOperation(field);\r\n updateConditionByOperation(condition, filterOperation, customOperations);\r\n return condition\r\n}\r\nexport function removeItem(group, item) {\r\n var criteria = getGroupCriteria(group);\r\n var index = criteria.indexOf(item);\r\n criteria.splice(index, 1);\r\n if (1 !== criteria.length) {\r\n criteria.splice(index, 1)\r\n }\r\n return group\r\n}\r\nexport function createEmptyGroup(value) {\r\n var isNegation = isNegationGroupOperation(value);\r\n var groupOperation = isNegation ? getGroupOperationFromNegationOperation(value) : value;\r\n return isNegation ? [\"!\", [groupOperation]] : [groupOperation]\r\n}\r\nexport function isEmptyGroup(group) {\r\n var criteria = getGroupCriteria(group);\r\n if (isCondition(criteria)) {\r\n return false\r\n }\r\n var hasConditions = criteria.some((function(item) {\r\n return isCondition(item)\r\n }));\r\n return !hasConditions\r\n}\r\nexport function addItem(item, group) {\r\n var criteria = getGroupCriteria(group);\r\n var groupValue = getGroupValue(criteria);\r\n 1 === criteria.length ? criteria.unshift(item) : criteria.push(item, groupValue);\r\n return group\r\n}\r\nexport function getField(dataField, fields) {\r\n for (var i = 0; i < fields.length; i++) {\r\n if (fields[i].name === dataField) {\r\n return fields[i]\r\n }\r\n if (fields[i].dataField.toLowerCase() === dataField.toLowerCase()) {\r\n return fields[i]\r\n }\r\n }\r\n var extendedFields = getItems(fields, true).filter((function(item) {\r\n return item.dataField.toLowerCase() === dataField.toLowerCase()\r\n }));\r\n if (extendedFields.length > 0) {\r\n return extendedFields[0]\r\n }\r\n throw new errors.Error(\"E1047\", dataField)\r\n}\r\nexport function isGroup(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n return false\r\n }\r\n return criteria.length < 2 || Array.isArray(criteria[0]) || Array.isArray(criteria[1])\r\n}\r\nexport function isCondition(criteria) {\r\n if (!Array.isArray(criteria)) {\r\n return false\r\n }\r\n return criteria.length > 1 && !Array.isArray(criteria[0]) && !Array.isArray(criteria[1])\r\n}\r\n\r\nfunction convertToInnerGroup(group, customOperations, defaultGroupOperation) {\r\n defaultGroupOperation = defaultGroupOperation || AND_GROUP_OPERATION;\r\n var groupOperation = getCriteriaOperation(group).toLowerCase() || defaultGroupOperation;\r\n var innerGroup = [];\r\n for (var i = 0; i < group.length; i++) {\r\n if (isGroup(group[i])) {\r\n innerGroup.push(convertToInnerStructure(group[i], customOperations, defaultGroupOperation));\r\n innerGroup = appendGroupOperationToGroup(innerGroup, groupOperation)\r\n } else if (isCondition(group[i])) {\r\n innerGroup.push(convertToInnerCondition(group[i], customOperations));\r\n innerGroup = appendGroupOperationToGroup(innerGroup, groupOperation)\r\n }\r\n }\r\n if (0 === innerGroup.length) {\r\n innerGroup = appendGroupOperationToGroup(innerGroup, groupOperation)\r\n }\r\n return innerGroup\r\n}\r\n\r\nfunction conditionHasCustomOperation(condition, customOperations) {\r\n var customOperation = getCustomOperation(customOperations, condition[1]);\r\n return customOperation && customOperation.name === condition[1]\r\n}\r\n\r\nfunction convertToInnerCondition(condition, customOperations) {\r\n if (conditionHasCustomOperation(condition, customOperations)) {\r\n return condition\r\n }\r\n if (condition.length < 3) {\r\n condition[2] = condition[1];\r\n condition[1] = EQUAL_OPERATION\r\n }\r\n return condition\r\n}\r\n\r\nfunction isNegationGroupOperation(operation) {\r\n return -1 !== operation.indexOf(\"not\")\r\n}\r\n\r\nfunction getGroupOperationFromNegationOperation(operation) {\r\n return operation.substring(3).toLowerCase()\r\n}\r\n\r\nfunction appendGroupOperationToCriteria(criteria, groupOperation) {\r\n var isNegation = isNegationGroupOperation(groupOperation);\r\n groupOperation = isNegation ? getGroupOperationFromNegationOperation(groupOperation) : groupOperation;\r\n return isNegation ? [\"!\", criteria, groupOperation] : [criteria, groupOperation]\r\n}\r\n\r\nfunction appendGroupOperationToGroup(group, groupOperation) {\r\n var isNegation = isNegationGroupOperation(groupOperation);\r\n groupOperation = isNegation ? getGroupOperationFromNegationOperation(groupOperation) : groupOperation;\r\n group.push(groupOperation);\r\n var result = group;\r\n if (isNegation) {\r\n result = [\"!\", result]\r\n }\r\n return result\r\n}\r\nexport function convertToInnerStructure(value, customOperations, defaultGroupOperation) {\r\n defaultGroupOperation = defaultGroupOperation || AND_GROUP_OPERATION;\r\n if (!value) {\r\n return createEmptyGroup(defaultGroupOperation)\r\n }\r\n value = extend(true, [], value);\r\n if (isCondition(value)) {\r\n return appendGroupOperationToCriteria(convertToInnerCondition(value, customOperations), defaultGroupOperation)\r\n }\r\n if (isNegationGroup(value)) {\r\n return [\"!\", isCondition(value[1]) ? appendGroupOperationToCriteria(convertToInnerCondition(value[1], customOperations), defaultGroupOperation) : isNegationGroup(value[1]) ? appendGroupOperationToCriteria(convertToInnerStructure(value[1], customOperations), defaultGroupOperation) : convertToInnerGroup(value[1], customOperations, defaultGroupOperation)]\r\n }\r\n return convertToInnerGroup(value, customOperations, defaultGroupOperation)\r\n}\r\nexport function getNormalizedFields(fields) {\r\n return fields.reduce((function(result, field) {\r\n if (isDefined(field.dataField)) {\r\n var normalizedField = {};\r\n for (var key in field) {\r\n if (field[key] && AVAILABLE_FIELD_PROPERTIES.indexOf(key) > -1) {\r\n normalizedField[key] = field[key]\r\n }\r\n }\r\n normalizedField.defaultCalculateFilterExpression = filterUtils.defaultCalculateFilterExpression;\r\n if (!isDefined(normalizedField.dataType)) {\r\n normalizedField.dataType = DEFAULT_DATA_TYPE\r\n }\r\n if (!isDefined(normalizedField.trueText)) {\r\n normalizedField.trueText = messageLocalization.format(\"dxDataGrid-trueText\")\r\n }\r\n if (!isDefined(normalizedField.falseText)) {\r\n normalizedField.falseText = messageLocalization.format(\"dxDataGrid-falseText\")\r\n }\r\n result.push(normalizedField)\r\n }\r\n return result\r\n }), [])\r\n}\r\n\r\nfunction getConditionFilterExpression(condition, fields, customOperations, target) {\r\n var field = getField(condition[0], fields);\r\n var filterExpression = convertToInnerCondition(condition, customOperations);\r\n var customOperation = customOperations.length && getCustomOperation(customOperations, filterExpression[1]);\r\n if (customOperation && customOperation.calculateFilterExpression) {\r\n return customOperation.calculateFilterExpression.apply(customOperation, [filterExpression[2], field, fields])\r\n } else if (field.createFilterExpression) {\r\n return field.createFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n } else if (field.calculateFilterExpression) {\r\n return field.calculateFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n } else {\r\n return field.defaultCalculateFilterExpression.apply(field, [filterExpression[2], filterExpression[1], target])\r\n }\r\n}\r\nexport function getFilterExpression(value, fields, customOperations, target) {\r\n if (!isDefined(value)) {\r\n return null\r\n }\r\n if (isNegationGroup(value)) {\r\n var filterExpression = getFilterExpression(value[1], fields, customOperations, target);\r\n return [\"!\", filterExpression]\r\n }\r\n var criteria = getGroupCriteria(value);\r\n if (isCondition(criteria)) {\r\n return getConditionFilterExpression(criteria, fields, customOperations, target) || null\r\n } else {\r\n var result = [];\r\n var _filterExpression;\r\n var groupValue = getGroupValue(criteria);\r\n for (var i = 0; i < criteria.length; i++) {\r\n if (isGroup(criteria[i])) {\r\n _filterExpression = getFilterExpression(criteria[i], fields, customOperations, target);\r\n if (_filterExpression) {\r\n i && result.push(groupValue);\r\n result.push(_filterExpression)\r\n }\r\n } else if (isCondition(criteria[i])) {\r\n _filterExpression = getConditionFilterExpression(criteria[i], fields, customOperations, target);\r\n if (_filterExpression) {\r\n result.length && result.push(groupValue);\r\n result.push(_filterExpression)\r\n }\r\n }\r\n }\r\n if (1 === result.length) {\r\n result = result[0]\r\n }\r\n return result.length ? result : null\r\n }\r\n}\r\nexport function getNormalizedFilter(group) {\r\n var criteria = getGroupCriteria(group);\r\n var i;\r\n if (0 === criteria.length) {\r\n return null\r\n }\r\n var itemsForRemove = [];\r\n for (i = 0; i < criteria.length; i++) {\r\n if (isGroup(criteria[i])) {\r\n var normalizedGroupValue = getNormalizedFilter(criteria[i]);\r\n if (normalizedGroupValue) {\r\n criteria[i] = normalizedGroupValue\r\n } else {\r\n itemsForRemove.push(criteria[i])\r\n }\r\n } else if (isCondition(criteria[i])) {\r\n if (!isValidCondition(criteria[i])) {\r\n itemsForRemove.push(criteria[i])\r\n }\r\n }\r\n }\r\n for (i = 0; i < itemsForRemove.length; i++) {\r\n removeItem(criteria, itemsForRemove[i])\r\n }\r\n if (1 === criteria.length) {\r\n return null\r\n }\r\n criteria.splice(criteria.length - 1, 1);\r\n if (1 === criteria.length) {\r\n group = setGroupCriteria(group, criteria[0])\r\n }\r\n if (0 === group.length) {\r\n return null\r\n }\r\n return group\r\n}\r\nexport function getCurrentLookupValueText(field, value, handler) {\r\n if (\"\" === value) {\r\n handler(\"\");\r\n return\r\n }\r\n var lookup = field.lookup;\r\n if (lookup.items) {\r\n handler(lookup.calculateCellValue(value) || \"\")\r\n } else {\r\n var lookupDataSource = isFunction(lookup.dataSource) ? lookup.dataSource({}) : lookup.dataSource;\r\n var dataSource = new DataSource(lookupDataSource);\r\n dataSource.loadSingle(lookup.valueExpr, value).done((function(result) {\r\n var valueText = \"\";\r\n if (result) {\r\n valueText = lookup.displayExpr ? compileGetter(lookup.displayExpr)(result) : result\r\n }\r\n if (field.customizeText) {\r\n valueText = field.customizeText({\r\n value: value,\r\n valueText: valueText\r\n })\r\n }\r\n handler(valueText)\r\n })).fail((function() {\r\n handler(\"\")\r\n }))\r\n }\r\n}\r\n\r\nfunction getPrimitiveValueText(field, value, customOperation, target, options) {\r\n var valueText;\r\n if (true === value) {\r\n valueText = field.trueText || messageLocalization.format(\"dxDataGrid-trueText\")\r\n } else if (false === value) {\r\n valueText = field.falseText || messageLocalization.format(\"dxDataGrid-falseText\")\r\n } else {\r\n valueText = getFormattedValueText(field, value)\r\n }\r\n if (field.customizeText) {\r\n valueText = field.customizeText.call(field, {\r\n value: value,\r\n valueText: valueText,\r\n target: target\r\n })\r\n }\r\n if (customOperation && customOperation.customizeText) {\r\n valueText = customOperation.customizeText.call(customOperation, {\r\n value: value,\r\n valueText: valueText,\r\n field: field,\r\n target: target\r\n }, options)\r\n }\r\n return valueText\r\n}\r\n\r\nfunction getArrayValueText(field, value, customOperation, target) {\r\n var options = {\r\n values: value\r\n };\r\n return value.map(v => getPrimitiveValueText(field, v, customOperation, target, options))\r\n}\r\n\r\nfunction checkDefaultValue(value) {\r\n return \"\" === value || null === value\r\n}\r\nexport function getCurrentValueText(field, value, customOperation) {\r\n var target = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : \"filterBuilder\";\r\n if (checkDefaultValue(value)) {\r\n return \"\"\r\n }\r\n if (Array.isArray(value)) {\r\n var result = new Deferred;\r\n when.apply(this, getArrayValueText(field, value, customOperation, target)).done((function() {\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n var text = args.some(item => !checkDefaultValue(item)) ? args.map(item => !checkDefaultValue(item) ? item : \"?\") : \"\";\r\n result.resolve(text)\r\n }));\r\n return result\r\n } else {\r\n return getPrimitiveValueText(field, value, customOperation, target)\r\n }\r\n}\r\n\r\nfunction itemExists(plainItems, parentId) {\r\n return plainItems.some((function(item) {\r\n return item.dataField === parentId\r\n }))\r\n}\r\n\r\nfunction pushItemAndCheckParent(originalItems, plainItems, item) {\r\n var dataField = item.dataField;\r\n if (hasParent(dataField)) {\r\n item.parentId = getParentIdFromItemDataField(dataField);\r\n if (!itemExists(plainItems, item.parentId) && !itemExists(originalItems, item.parentId)) {\r\n pushItemAndCheckParent(originalItems, plainItems, {\r\n id: item.parentId,\r\n dataType: \"object\",\r\n dataField: item.parentId,\r\n caption: generateCaptionByDataField(item.parentId, true),\r\n filterOperations: [\"isblank\", \"isnotblank\"]\r\n })\r\n }\r\n }\r\n plainItems.push(item)\r\n}\r\n\r\nfunction generateCaptionByDataField(dataField, allowHierarchicalFields) {\r\n var caption = \"\";\r\n if (allowHierarchicalFields) {\r\n dataField = dataField.substring(dataField.lastIndexOf(\".\") + 1)\r\n } else if (hasParent(dataField)) {\r\n dataField.split(\".\").forEach((function(field, index, arr) {\r\n caption += captionize(field);\r\n if (index !== arr.length - 1) {\r\n caption += \".\"\r\n }\r\n }));\r\n return caption\r\n }\r\n return captionize(dataField)\r\n}\r\nexport function getItems(fields, allowHierarchicalFields) {\r\n var items = [];\r\n for (var i = 0; i < fields.length; i++) {\r\n var item = extend(true, {\r\n caption: generateCaptionByDataField(fields[i].dataField, allowHierarchicalFields)\r\n }, fields[i]);\r\n item.id = item.name || item.dataField;\r\n if (allowHierarchicalFields) {\r\n pushItemAndCheckParent(fields, items, item)\r\n } else {\r\n items.push(item)\r\n }\r\n }\r\n return items\r\n}\r\n\r\nfunction hasParent(dataField) {\r\n return -1 !== dataField.lastIndexOf(\".\")\r\n}\r\n\r\nfunction getParentIdFromItemDataField(dataField) {\r\n return dataField.substring(0, dataField.lastIndexOf(\".\"))\r\n}\r\nexport function getCaptionWithParents(item, plainItems) {\r\n if (hasParent(item.dataField)) {\r\n var parentId = getParentIdFromItemDataField(item.dataField);\r\n for (var i = 0; i < plainItems.length; i++) {\r\n if (plainItems[i].dataField === parentId) {\r\n return getCaptionWithParents(plainItems[i], plainItems) + \".\" + item.caption\r\n }\r\n }\r\n }\r\n return item.caption\r\n}\r\nexport function updateConditionByOperation(condition, operation, customOperations) {\r\n var customOperation = getCustomOperation(customOperations, operation);\r\n if (customOperation) {\r\n if (false === customOperation.hasValue) {\r\n condition[1] = operation;\r\n condition.length = 2\r\n } else {\r\n condition[1] = operation;\r\n condition[2] = \"\"\r\n }\r\n return condition\r\n }\r\n if (\"isblank\" === operation) {\r\n condition[1] = EQUAL_OPERATION;\r\n condition[2] = null\r\n } else if (\"isnotblank\" === operation) {\r\n condition[1] = NOT_EQUAL_OPERATION;\r\n condition[2] = null\r\n } else {\r\n customOperation = getCustomOperation(customOperations, condition[1]);\r\n if (customOperation || 2 === condition.length || null === condition[2]) {\r\n condition[2] = \"\"\r\n }\r\n condition[1] = operation\r\n }\r\n return condition\r\n}\r\nexport function getOperationValue(condition) {\r\n var caption;\r\n if (null === condition[2]) {\r\n if (condition[1] === EQUAL_OPERATION) {\r\n caption = \"isblank\"\r\n } else {\r\n caption = \"isnotblank\"\r\n }\r\n } else {\r\n caption = condition[1]\r\n }\r\n return caption\r\n}\r\nexport function isValidCondition(condition) {\r\n return \"\" !== condition[2]\r\n}\r\nexport function getMergedOperations(customOperations, betweenCaption, context) {\r\n var result = extend(true, [], customOperations);\r\n var betweenIndex = -1;\r\n result.some((function(customOperation, index) {\r\n if (\"between\" === customOperation.name) {\r\n betweenIndex = index;\r\n return true\r\n }\r\n }));\r\n if (-1 !== betweenIndex) {\r\n result[betweenIndex] = extend(getConfig(betweenCaption, context), result[betweenIndex])\r\n } else {\r\n result.unshift(getConfig(betweenCaption, context))\r\n }\r\n return result\r\n}\r\n\r\nfunction isMatchedCondition(filter, addedFilterDataField) {\r\n return filter[0] === addedFilterDataField\r\n}\r\nexport function removeFieldConditionsFromFilter(filter, dataField) {\r\n if (!filter || 0 === filter.length) {\r\n return null\r\n }\r\n if (isCondition(filter)) {\r\n var hasMatchedCondition = isMatchedCondition(filter, dataField);\r\n return !hasMatchedCondition ? filter : null\r\n } else {\r\n return syncConditionIntoGroup(filter, [dataField], false)\r\n }\r\n}\r\n\r\nfunction syncConditionIntoGroup(filter, addedFilter, canPush) {\r\n var result = [];\r\n filter.forEach((function(item) {\r\n if (isCondition(item)) {\r\n if (isMatchedCondition(item, addedFilter[0])) {\r\n if (canPush) {\r\n result.push(addedFilter);\r\n canPush = false\r\n } else {\r\n result.splice(result.length - 1, 1)\r\n }\r\n } else {\r\n result.push(item)\r\n }\r\n } else {\r\n (result.length || isGroup(item)) && result.push(item)\r\n }\r\n }));\r\n if (0 === result.length) {\r\n return null\r\n }\r\n if (canPush) {\r\n result.push(AND_GROUP_OPERATION);\r\n result.push(addedFilter)\r\n }\r\n return 1 === result.length ? result[0] : result\r\n}\r\nexport function syncFilters(filter, addedFilter) {\r\n if (null === filter || 0 === filter.length) {\r\n return addedFilter\r\n }\r\n if (isCondition(filter)) {\r\n if (isMatchedCondition(filter, addedFilter[0])) {\r\n return addedFilter\r\n } else {\r\n return [filter, AND_GROUP_OPERATION, addedFilter]\r\n }\r\n }\r\n var groupValue = getGroupValue(filter);\r\n if (groupValue !== AND_GROUP_OPERATION) {\r\n return [addedFilter, \"and\", filter]\r\n }\r\n return syncConditionIntoGroup(filter, addedFilter, true)\r\n}\r\nexport function getMatchedConditions(filter, dataField) {\r\n if (null === filter || 0 === filter.length) {\r\n return []\r\n }\r\n if (isCondition(filter)) {\r\n if (isMatchedCondition(filter, dataField)) {\r\n return [filter]\r\n } else {\r\n return []\r\n }\r\n }\r\n var groupValue = getGroupValue(filter);\r\n if (groupValue !== AND_GROUP_OPERATION) {\r\n return []\r\n }\r\n var result = filter.filter((function(item) {\r\n return isCondition(item) && isMatchedCondition(item, dataField)\r\n }));\r\n return result\r\n}\r\nexport function filterHasField(filter, dataField) {\r\n if (null === filter || 0 === filter.length) {\r\n return false\r\n }\r\n if (isCondition(filter)) {\r\n return filter[0] === dataField\r\n }\r\n return filter.some((function(item) {\r\n return (isCondition(item) || isGroup(item)) && filterHasField(item, dataField)\r\n }))\r\n}\r\nexport var renderValueText = function($container, value, customOperation) {\r\n if (Array.isArray(value)) {\r\n var lastItemIndex = value.length - 1;\r\n $container.empty();\r\n value.forEach((t, i) => {\r\n $(\"<span>\").addClass(FILTER_BUILDER_ITEM_TEXT_PART_CLASS).text(t).appendTo($container);\r\n if (i !== lastItemIndex) {\r\n $(\"<span>\").addClass(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS).text(customOperation && customOperation.valueSeparator ? customOperation.valueSeparator : \"|\").addClass(FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS).appendTo($container)\r\n }\r\n })\r\n } else if (value) {\r\n $container.text(value)\r\n } else {\r\n $container.text(messageLocalization.format(\"dxFilterBuilder-enterValueText\"))\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.items_runtime_info.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nexport default class FormItemsRunTimeInfo {\r\n constructor() {\r\n this._map = {}\r\n }\r\n _findWidgetInstance(condition) {\r\n var result;\r\n each(this._map, (function(guid, _ref) {\r\n var {\r\n widgetInstance: widgetInstance,\r\n item: item\r\n } = _ref;\r\n if (condition(item)) {\r\n result = widgetInstance;\r\n return false\r\n }\r\n }));\r\n return result\r\n }\r\n _findFieldByCondition(callback, valueExpr) {\r\n var result;\r\n each(this._map, (function(key, value) {\r\n if (callback(value)) {\r\n result = \"guid\" === valueExpr ? key : value[valueExpr];\r\n return false\r\n }\r\n }));\r\n return result\r\n }\r\n clear() {\r\n this._map = {}\r\n }\r\n removeItemsByItems(itemsRunTimeInfo) {\r\n each(itemsRunTimeInfo.getItems(), guid => this.removeItemByKey(guid))\r\n }\r\n removeItemByKey(key) {\r\n delete this._map[key]\r\n }\r\n add(options) {\r\n var key = options.guid || new Guid;\r\n this._map[key] = options;\r\n return key\r\n }\r\n addItemsOrExtendFrom(itemsRunTimeInfo) {\r\n itemsRunTimeInfo.each((key, itemRunTimeInfo) => {\r\n if (this._map[key]) {\r\n if (itemRunTimeInfo.widgetInstance) {\r\n this._map[key].widgetInstance = itemRunTimeInfo.widgetInstance\r\n }\r\n this._map[key].$itemContainer = itemRunTimeInfo.$itemContainer\r\n } else {\r\n this.add({\r\n item: itemRunTimeInfo.item,\r\n widgetInstance: itemRunTimeInfo.widgetInstance,\r\n guid: key,\r\n $itemContainer: itemRunTimeInfo.$itemContainer\r\n })\r\n }\r\n })\r\n }\r\n extendRunTimeItemInfoByKey(key, options) {\r\n if (this._map[key]) {\r\n this._map[key] = extend(this._map[key], options)\r\n }\r\n }\r\n findWidgetInstanceByItem(item) {\r\n return this._findWidgetInstance(storedItem => storedItem === item)\r\n }\r\n findGroupOrTabLayoutManagerByPath(targetPath) {\r\n return this._findFieldByCondition(_ref2 => {\r\n var {\r\n path: path\r\n } = _ref2;\r\n return path === targetPath\r\n }, \"layoutManager\")\r\n }\r\n findKeyByPath(targetPath) {\r\n return this._findFieldByCondition(_ref3 => {\r\n var {\r\n path: path\r\n } = _ref3;\r\n return path === targetPath\r\n }, \"guid\")\r\n }\r\n findWidgetInstanceByName(name) {\r\n return this._findWidgetInstance(item => name === item.name)\r\n }\r\n findWidgetInstanceByDataField(dataField) {\r\n return this._findWidgetInstance(item => dataField === (isString(item) ? item : item.dataField))\r\n }\r\n findItemContainerByItem(item) {\r\n for (var key in this._map) {\r\n if (this._map[key].item === item) {\r\n return this._map[key].$itemContainer\r\n }\r\n }\r\n return null\r\n }\r\n findItemIndexByItem(targetItem) {\r\n return this._findFieldByCondition(_ref4 => {\r\n var {\r\n item: item\r\n } = _ref4;\r\n return item === targetItem\r\n }, \"itemIndex\")\r\n }\r\n findPreparedItemByItem(item) {\r\n return this._findFieldByCondition(_ref5 => {\r\n var {\r\n item: currentItem\r\n } = _ref5;\r\n return currentItem === item\r\n }, \"preparedItem\")\r\n }\r\n getItems() {\r\n return this._map\r\n }\r\n each(handler) {\r\n each(this._map, (function(key, itemRunTimeInfo) {\r\n handler(key, itemRunTimeInfo)\r\n }))\r\n }\r\n removeItemsByPathStartWith(path) {\r\n var keys = Object.keys(this._map);\r\n var filteredKeys = keys.filter(key => {\r\n if (this._map[key].path) {\r\n return this._map[key].path.indexOf(path, 0) > -1\r\n }\r\n return false\r\n });\r\n filteredKeys.forEach(key => this.removeItemByKey(key))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_option_action.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nexport default class ItemOptionAction {\r\n constructor(options) {\r\n this._options = options;\r\n this._itemsRunTimeInfo = this._options.itemsRunTimeInfo\r\n }\r\n findInstance() {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByItem(this._options.item)\r\n }\r\n findItemContainer() {\r\n return this._itemsRunTimeInfo.findItemContainerByItem(this._options.item)\r\n }\r\n findPreparedItem() {\r\n return this._itemsRunTimeInfo.findPreparedItemByItem(this._options.item)\r\n }\r\n tryExecute() {\r\n Class.abstract()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport var createItemPathByIndex = (index, isTabs) => \"\".concat(isTabs ? \"tabs\" : \"items\", \"[\").concat(index, \"]\");\r\nexport var concatPaths = (path1, path2) => {\r\n if (isDefined(path1) && isDefined(path2)) {\r\n return \"\".concat(path1, \".\").concat(path2)\r\n }\r\n return path1 || path2\r\n};\r\nexport var getTextWithoutSpaces = text => text ? text.replace(/\\s/g, \"\") : void 0;\r\nexport var isEqualToDataFieldOrNameOrTitleOrCaption = (item, fieldName) => {\r\n if (item) {\r\n return item.dataField === fieldName || item.name === fieldName || getTextWithoutSpaces(item.title) === fieldName || \"group\" === item.itemType && getTextWithoutSpaces(item.caption) === fieldName\r\n }\r\n return false\r\n};\r\nexport var getFullOptionName = (path, optionName) => \"\".concat(path, \".\").concat(optionName);\r\nexport var getOptionNameFromFullName = fullName => {\r\n var parts = fullName.split(\".\");\r\n return parts[parts.length - 1].replace(/\\[\\d+]/, \"\")\r\n};\r\nexport var tryGetTabPath = fullPath => {\r\n var pathParts = fullPath.split(\".\");\r\n var resultPathParts = [...pathParts];\r\n for (var i = pathParts.length - 1; i >= 0; i--) {\r\n if (isFullPathContainsTabs(pathParts[i])) {\r\n return resultPathParts.join(\".\")\r\n }\r\n resultPathParts.splice(i, 1)\r\n }\r\n return \"\"\r\n};\r\nexport var isFullPathContainsTabs = fullPath => fullPath.indexOf(\"tabs\") > -1;\r\nexport var getItemPath = (items, item, isTabs) => {\r\n var index = items.indexOf(item);\r\n if (index > -1) {\r\n return createItemPathByIndex(index, isTabs)\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var targetItem = items[i];\r\n var tabOrGroupItems = targetItem.tabs || targetItem.items;\r\n if (tabOrGroupItems) {\r\n var itemPath = getItemPath(tabOrGroupItems, item, targetItem.tabs);\r\n if (itemPath) {\r\n return concatPaths(createItemPathByIndex(i, isTabs), itemPath)\r\n }\r\n }\r\n }\r\n};\r\nexport function convertToLayoutManagerOptions(_ref) {\r\n var {\r\n form: form,\r\n $formElement: $formElement,\r\n formOptions: formOptions,\r\n items: items,\r\n validationGroup: validationGroup,\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered\r\n } = _ref;\r\n var baseOptions = {\r\n form: form,\r\n items: items,\r\n $formElement: $formElement,\r\n validationGroup: validationGroup,\r\n onFieldDataChanged: onFieldDataChanged,\r\n onContentReady: onContentReady,\r\n onDisposing: onDisposing,\r\n onFieldItemRendered: onFieldItemRendered,\r\n validationBoundary: formOptions.scrollingEnabled ? $formElement : void 0,\r\n scrollingEnabled: formOptions.scrollingEnabled,\r\n showRequiredMark: formOptions.showRequiredMark,\r\n showOptionalMark: formOptions.showOptionalMark,\r\n requiredMark: formOptions.requiredMark,\r\n optionalMark: formOptions.optionalMark,\r\n requiredMessage: formOptions.requiredMessage,\r\n screenByWidth: formOptions.screenByWidth,\r\n layoutData: formOptions.formData,\r\n labelLocation: formOptions.labelLocation,\r\n customizeItem: formOptions.customizeItem,\r\n minColWidth: formOptions.minColWidth,\r\n showColonAfterLabel: formOptions.showColonAfterLabel,\r\n onEditorEnterKey: formOptions.onEditorEnterKey,\r\n labelMode: formOptions.labelMode\r\n };\r\n var result = extend(baseOptions, {\r\n isRoot: extendedLayoutManagerOptions.isRoot,\r\n colCount: extendedLayoutManagerOptions.colCount,\r\n alignItemLabels: extendedLayoutManagerOptions.alignItemLabels,\r\n cssItemClass: extendedLayoutManagerOptions.cssItemClass,\r\n colCountByScreen: extendedLayoutManagerOptions.colCountByScreen,\r\n onLayoutChanged: extendedLayoutManagerOptions.onLayoutChanged,\r\n width: extendedLayoutManagerOptions.width\r\n });\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.item_options_actions.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ItemOptionAction from \"./ui.form.item_option_action\";\r\nimport {\r\n data\r\n} from \"../../core/element_data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getFullOptionName\r\n} from \"./ui.form.utils\";\r\nclass WidgetOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n value: value\r\n } = this._options;\r\n var instance = this.findInstance();\r\n if (instance) {\r\n instance.option(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n optionName: optionName,\r\n item: item,\r\n value: value\r\n } = this._options;\r\n var itemIndex = this._itemsRunTimeInfo.findItemIndexByItem(item);\r\n if (itemIndex >= 0) {\r\n tabPanel.option(getFullOptionName(\"items[\".concat(itemIndex, \"]\"), optionName), value);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass SimpleItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n return false\r\n }\r\n}\r\nclass GroupItemTemplateChangedAction extends ItemOptionAction {\r\n tryExecute() {\r\n var preparedItem = this.findPreparedItem();\r\n if (null != preparedItem && preparedItem._prepareGroupItemTemplate && preparedItem._renderGroupContentTemplate) {\r\n preparedItem._prepareGroupItemTemplate(this._options.item.template);\r\n preparedItem._renderGroupContentTemplate();\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass TabsOptionItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var tabPanel = this.findInstance();\r\n if (tabPanel) {\r\n var {\r\n value: value\r\n } = this._options;\r\n tabPanel.option(\"dataSource\", value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nclass ValidationRulesItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var {\r\n item: item\r\n } = this._options;\r\n var instance = this.findInstance();\r\n var validator = instance && data(instance.$element()[0], \"dxValidator\");\r\n if (validator && item) {\r\n var filterRequired = item => \"required\" === item.type;\r\n var oldContainsRequired = (validator.option(\"validationRules\") || []).some(filterRequired);\r\n var newContainsRequired = (item.validationRules || []).some(filterRequired);\r\n if (!oldContainsRequired && !newContainsRequired || oldContainsRequired && newContainsRequired) {\r\n validator.option(\"validationRules\", item.validationRules);\r\n return true\r\n }\r\n }\r\n return false\r\n }\r\n}\r\nclass CssClassItemOptionAction extends ItemOptionAction {\r\n tryExecute() {\r\n var $itemContainer = this.findItemContainer();\r\n var {\r\n previousValue: previousValue,\r\n value: value\r\n } = this._options;\r\n if ($itemContainer) {\r\n $itemContainer.removeClass(previousValue).addClass(value);\r\n return true\r\n }\r\n return false\r\n }\r\n}\r\nvar tryCreateItemOptionAction = (optionName, itemActionOptions) => {\r\n switch (optionName) {\r\n case \"editorOptions\":\r\n case \"buttonOptions\":\r\n return new WidgetOptionItemOptionAction(itemActionOptions);\r\n case \"validationRules\":\r\n return new ValidationRulesItemOptionAction(itemActionOptions);\r\n case \"cssClass\":\r\n return new CssClassItemOptionAction(itemActionOptions);\r\n case \"badge\":\r\n case \"disabled\":\r\n case \"icon\":\r\n case \"tabTemplate\":\r\n case \"title\":\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n case \"tabs\":\r\n return new TabsOptionItemOptionAction(itemActionOptions);\r\n case \"template\":\r\n var _itemActionOptions$it, _itemActionOptions$it2, _itemActionOptions$it3;\r\n var itemType = null !== (_itemActionOptions$it = null === itemActionOptions || void 0 === itemActionOptions ? void 0 : null === (_itemActionOptions$it2 = itemActionOptions.item) || void 0 === _itemActionOptions$it2 ? void 0 : _itemActionOptions$it2.itemType) && void 0 !== _itemActionOptions$it ? _itemActionOptions$it : null === (_itemActionOptions$it3 = itemActionOptions.itemsRunTimeInfo.findPreparedItemByItem(null === itemActionOptions || void 0 === itemActionOptions ? void 0 : itemActionOptions.item)) || void 0 === _itemActionOptions$it3 ? void 0 : _itemActionOptions$it3.itemType;\r\n if (\"simple\" === itemType) {\r\n return new SimpleItemTemplateChangedAction(itemActionOptions)\r\n } else if (\"group\" === itemType) {\r\n return new GroupItemTemplateChangedAction(itemActionOptions)\r\n }\r\n return new TabOptionItemOptionAction(extend(itemActionOptions, {\r\n optionName: optionName\r\n }));\r\n default:\r\n return null\r\n }\r\n};\r\nexport default tryCreateItemOptionAction;\r\n","/**\r\n * DevExtreme (esm/ui/responsive_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n grep,\r\n noop\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isEmptyObject\r\n} from \"../core/utils/type\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport {\r\n getWindow,\r\n defaultScreenFactorFunc,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Box from \"./box\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar RESPONSIVE_BOX_CLASS = \"dx-responsivebox\";\r\nvar SCREEN_SIZE_CLASS_PREFIX = RESPONSIVE_BOX_CLASS + \"-screen-\";\r\nvar BOX_ITEM_CLASS = \"dx-box-item\";\r\nvar BOX_ITEM_DATA_KEY = \"dxBoxItemData\";\r\nvar HD_SCREEN_WIDTH = 1920;\r\nvar ResponsiveBox = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n rows: [],\r\n cols: [],\r\n screenByWidth: null,\r\n singleColumnScreen: \"\",\r\n height: \"100%\",\r\n width: \"100%\",\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n onItemStateChanged: void 0,\r\n onLayoutChanged: null,\r\n currentScreenFactor: void 0\r\n })\r\n },\r\n _init: function() {\r\n if (!this.option(\"screenByWidth\")) {\r\n this._options.silent(\"screenByWidth\", defaultScreenFactorFunc)\r\n }\r\n this.callBase();\r\n this._initLayoutChangedAction()\r\n },\r\n _initLayoutChangedAction: function() {\r\n this._layoutChangedAction = this._createActionByOption(\"onLayoutChanged\", {\r\n excludeValidators: [\"disabled\", \"readonly\"]\r\n })\r\n },\r\n _itemClass: function() {\r\n return BOX_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return BOX_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(RESPONSIVE_BOX_CLASS)\r\n },\r\n _renderItems: function() {\r\n this._setScreenSize();\r\n this._screenItems = this._itemsByScreen();\r\n this._prepareGrid();\r\n this._spreadItems();\r\n this._layoutItems();\r\n this._linkNodeToItem()\r\n },\r\n _itemOptionChanged: function(item) {\r\n var $item = this._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n this._refreshItem($item, item);\r\n this._clearItemNodeTemplates();\r\n this._update(true)\r\n },\r\n _setScreenSize: function() {\r\n var currentScreen = this._getCurrentScreen();\r\n this._removeScreenSizeClass();\r\n this.$element().addClass(SCREEN_SIZE_CLASS_PREFIX + currentScreen);\r\n this.option(\"currentScreenFactor\", currentScreen)\r\n },\r\n _removeScreenSizeClass: function() {\r\n var currentScreenFactor = this.option(\"currentScreenFactor\");\r\n currentScreenFactor && this.$element().removeClass(SCREEN_SIZE_CLASS_PREFIX + currentScreenFactor)\r\n },\r\n _prepareGrid: function() {\r\n var grid = this._grid = [];\r\n this._prepareRowsAndCols();\r\n each(this._rows, function() {\r\n var row = [];\r\n grid.push(row);\r\n each(this._cols, function() {\r\n row.push(this._createEmptyCell())\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n getSingleColumnRows: function() {\r\n var rows = this.option(\"rows\");\r\n var screenItemsLength = this._screenItems.length;\r\n if (rows.length) {\r\n var filteredRows = this._filterByScreen(rows);\r\n var result = [];\r\n for (var i = 0; i < screenItemsLength; i++) {\r\n var sizeConfig = this._defaultSizeConfig();\r\n if (i < filteredRows.length && isDefined(filteredRows[i].shrink)) {\r\n sizeConfig.shrink = filteredRows[i].shrink\r\n }\r\n result.push(sizeConfig)\r\n }\r\n return result\r\n } else {\r\n return this._defaultSizeConfig(screenItemsLength)\r\n }\r\n },\r\n _prepareRowsAndCols: function() {\r\n if (this._isSingleColumnScreen()) {\r\n this._prepareSingleColumnScreenItems();\r\n this._rows = this.getSingleColumnRows();\r\n this._cols = this._defaultSizeConfig(1)\r\n } else {\r\n this._rows = this._sizesByScreen(this.option(\"rows\"));\r\n this._cols = this._sizesByScreen(this.option(\"cols\"))\r\n }\r\n },\r\n _isSingleColumnScreen: function() {\r\n return this._screenRegExp().test(this.option(\"singleColumnScreen\")) || !this.option(\"rows\").length || !this.option(\"cols\").length\r\n },\r\n _prepareSingleColumnScreenItems: function() {\r\n this._screenItems.sort((function(item1, item2) {\r\n return item1.location.row - item2.location.row || item1.location.col - item2.location.col\r\n }));\r\n each(this._screenItems, (function(index, item) {\r\n extend(item.location, {\r\n row: index,\r\n col: 0,\r\n rowspan: 1,\r\n colspan: 1\r\n })\r\n }))\r\n },\r\n _sizesByScreen: function(sizeConfigs) {\r\n return map(this._filterByScreen(sizeConfigs), function(sizeConfig) {\r\n return extend(this._defaultSizeConfig(), sizeConfig)\r\n }.bind(this))\r\n },\r\n _createDefaultSizeConfig: function() {\r\n return {\r\n ratio: 1,\r\n baseSize: 0,\r\n minSize: 0,\r\n maxSize: 0\r\n }\r\n },\r\n _defaultSizeConfig: function(size) {\r\n var defaultSizeConfig = this._createDefaultSizeConfig();\r\n if (!arguments.length) {\r\n return defaultSizeConfig\r\n }\r\n var result = [];\r\n for (var i = 0; i < size; i++) {\r\n result.push(defaultSizeConfig)\r\n }\r\n return result\r\n },\r\n _filterByScreen: function(items) {\r\n var screenRegExp = this._screenRegExp();\r\n return grep(items, (function(item) {\r\n return !item.screen || screenRegExp.test(item.screen)\r\n }))\r\n },\r\n _screenRegExp: function() {\r\n var screen = this._getCurrentScreen();\r\n return new RegExp(\"(^|\\\\s)\" + screen + \"($|\\\\s)\", \"i\")\r\n },\r\n _getCurrentScreen: function() {\r\n var width = this._screenWidth();\r\n return this.option(\"screenByWidth\")(width)\r\n },\r\n _screenWidth: function() {\r\n return hasWindow() ? getWidth(getWindow()) : HD_SCREEN_WIDTH\r\n },\r\n _createEmptyCell: function() {\r\n return {\r\n item: {},\r\n location: {\r\n colspan: 1,\r\n rowspan: 1\r\n }\r\n }\r\n },\r\n _spreadItems: function() {\r\n each(this._screenItems, function(_, itemInfo) {\r\n var location = itemInfo.location || {};\r\n var itemCol = location.col;\r\n var itemRow = location.row;\r\n var row = this._grid[itemRow];\r\n var itemCell = row && row[itemCol];\r\n this._occupyCells(itemCell, itemInfo)\r\n }.bind(this))\r\n },\r\n _itemsByScreen: function() {\r\n return this.option(\"items\").reduce((result, item) => {\r\n var locations = item.location || {};\r\n locations = isPlainObject(locations) ? [locations] : locations;\r\n this._filterByScreen(locations).forEach(location => {\r\n result.push({\r\n item: item,\r\n location: extend({\r\n rowspan: 1,\r\n colspan: 1\r\n }, location)\r\n })\r\n });\r\n return result\r\n }, [])\r\n },\r\n _occupyCells: function(itemCell, itemInfo) {\r\n if (!itemCell || this._isItemCellOccupied(itemCell, itemInfo)) {\r\n return\r\n }\r\n extend(itemCell, itemInfo);\r\n this._markSpanningCell(itemCell)\r\n },\r\n _isItemCellOccupied: function(itemCell, itemInfo) {\r\n if (!isEmptyObject(itemCell.item)) {\r\n return true\r\n }\r\n var result = false;\r\n this._loopOverSpanning(itemInfo.location, (function(cell) {\r\n result = result || !isEmptyObject(cell.item)\r\n }));\r\n return result\r\n },\r\n _loopOverSpanning: function(location, callback) {\r\n var rowEnd = location.row + location.rowspan - 1;\r\n var colEnd = location.col + location.colspan - 1;\r\n var boundRowEnd = Math.min(rowEnd, this._rows.length - 1);\r\n var boundColEnd = Math.min(colEnd, this._cols.length - 1);\r\n location.rowspan -= rowEnd - boundRowEnd;\r\n location.colspan -= colEnd - boundColEnd;\r\n for (var rowIndex = location.row; rowIndex <= boundRowEnd; rowIndex++) {\r\n for (var colIndex = location.col; colIndex <= boundColEnd; colIndex++) {\r\n if (rowIndex !== location.row || colIndex !== location.col) {\r\n callback(this._grid[rowIndex][colIndex])\r\n }\r\n }\r\n }\r\n },\r\n _markSpanningCell: function(itemCell) {\r\n this._loopOverSpanning(itemCell.location, (function(cell) {\r\n extend(cell, {\r\n item: itemCell.item,\r\n spanningCell: itemCell\r\n })\r\n }))\r\n },\r\n _linkNodeToItem: function() {\r\n each(this._itemElements(), (function(_, itemNode) {\r\n var $item = $(itemNode);\r\n var item = $item.data(BOX_ITEM_DATA_KEY);\r\n if (!item.box) {\r\n item.node = $item.children()\r\n }\r\n }))\r\n },\r\n _layoutItems: function() {\r\n var rowsCount = this._grid.length;\r\n var colsCount = rowsCount && this._grid[0].length;\r\n if (!rowsCount && !colsCount) {\r\n return\r\n }\r\n var result = this._layoutBlock({\r\n direction: \"col\",\r\n row: {\r\n start: 0,\r\n end: rowsCount - 1\r\n },\r\n col: {\r\n start: 0,\r\n end: colsCount - 1\r\n }\r\n });\r\n var rootBox = this._prepareBoxConfig(result.box || {\r\n direction: \"row\",\r\n items: [extend(result, {\r\n ratio: 1\r\n })]\r\n });\r\n extend(rootBox, this._rootBoxConfig(rootBox.items));\r\n this._$root = $(\"<div>\").appendTo(this._itemContainer());\r\n this._createComponent(this._$root, Box, rootBox)\r\n },\r\n _rootBoxConfig: function(items) {\r\n var rootItems = each(items, function(index, item) {\r\n this._needApplyAutoBaseSize(item) && extend(item, {\r\n baseSize: \"auto\"\r\n })\r\n }.bind(this));\r\n return {\r\n width: \"100%\",\r\n height: \"100%\",\r\n items: rootItems,\r\n itemTemplate: this._getTemplateByOption(\"itemTemplate\"),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onItemHold: this._createActionByOption(\"onItemHold\"),\r\n onItemClick: this._createActionByOption(\"onItemClick\"),\r\n onItemContextMenu: this._createActionByOption(\"onItemContextMenu\"),\r\n onItemRendered: this._createActionByOption(\"onItemRendered\")\r\n }\r\n },\r\n _needApplyAutoBaseSize: function(item) {\r\n return !item.baseSize && (!item.minSize || \"auto\" === item.minSize) && (!item.maxSize || \"auto\" === item.maxSize)\r\n },\r\n _prepareBoxConfig: function(config) {\r\n return extend(config || {}, {\r\n crossAlign: \"stretch\",\r\n onItemStateChanged: this.option(\"onItemStateChanged\")\r\n })\r\n },\r\n _layoutBlock: function(options) {\r\n if (this._isSingleItem(options)) {\r\n return this._itemByCell(options.row.start, options.col.start)\r\n }\r\n return this._layoutDirection(options)\r\n },\r\n _isSingleItem: function(options) {\r\n var firstCellLocation = this._grid[options.row.start][options.col.start].location;\r\n var isItemRowSpanned = options.row.end - options.row.start === firstCellLocation.rowspan - 1;\r\n var isItemColSpanned = options.col.end - options.col.start === firstCellLocation.colspan - 1;\r\n return isItemRowSpanned && isItemColSpanned\r\n },\r\n _itemByCell: function(rowIndex, colIndex) {\r\n var itemCell = this._grid[rowIndex][colIndex];\r\n return itemCell.spanningCell ? null : itemCell.item\r\n },\r\n _layoutDirection: function(options) {\r\n var items = [];\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var block;\r\n while (block = this._nextBlock(options)) {\r\n if (this._isBlockIndivisible(options.prevBlockOptions, block)) {\r\n throw errors.Error(\"E1025\")\r\n }\r\n var item = this._layoutBlock({\r\n direction: crossDirection,\r\n row: block.row,\r\n col: block.col,\r\n prevBlockOptions: options\r\n });\r\n if (item) {\r\n extend(item, this._blockSize(block, crossDirection));\r\n items.push(item)\r\n }\r\n options[crossDirection].start = block[crossDirection].end + 1\r\n }\r\n return {\r\n box: this._prepareBoxConfig({\r\n direction: direction,\r\n items: items\r\n })\r\n }\r\n },\r\n _isBlockIndivisible: function(options, block) {\r\n return options && options.col.start === block.col.start && options.col.end === block.col.end && options.row.start === block.row.start && options.row.end === block.row.end\r\n },\r\n _crossDirection: function(direction) {\r\n return \"col\" === direction ? \"row\" : \"col\"\r\n },\r\n _nextBlock: function(options) {\r\n var direction = options.direction;\r\n var crossDirection = this._crossDirection(direction);\r\n var startIndex = options[direction].start;\r\n var endIndex = options[direction].end;\r\n var crossStartIndex = options[crossDirection].start;\r\n if (crossStartIndex > options[crossDirection].end) {\r\n return null\r\n }\r\n var crossSpan = 1;\r\n for (var crossIndex = crossStartIndex; crossIndex < crossStartIndex + crossSpan; crossIndex++) {\r\n var lineCrossSpan = 1;\r\n for (var index = startIndex; index <= endIndex; index++) {\r\n var cell = this._cellByDirection(direction, index, crossIndex);\r\n lineCrossSpan = Math.max(lineCrossSpan, cell.location[crossDirection + \"span\"])\r\n }\r\n var lineCrossEndIndex = crossIndex + lineCrossSpan;\r\n var crossEndIndex = crossStartIndex + crossSpan;\r\n if (lineCrossEndIndex > crossEndIndex) {\r\n crossSpan += lineCrossEndIndex - crossEndIndex\r\n }\r\n }\r\n var result = {};\r\n result[direction] = {\r\n start: startIndex,\r\n end: endIndex\r\n };\r\n result[crossDirection] = {\r\n start: crossStartIndex,\r\n end: crossStartIndex + crossSpan - 1\r\n };\r\n return result\r\n },\r\n _cellByDirection: function(direction, index, crossIndex) {\r\n return \"col\" === direction ? this._grid[crossIndex][index] : this._grid[index][crossIndex]\r\n },\r\n _blockSize: function(block, direction) {\r\n var defaultMinSize = \"row\" === direction ? \"auto\" : 0;\r\n var sizeConfigs = \"row\" === direction ? this._rows : this._cols;\r\n var result = extend(this._createDefaultSizeConfig(), {\r\n ratio: 0\r\n });\r\n for (var index = block[direction].start; index <= block[direction].end; index++) {\r\n var sizeConfig = sizeConfigs[index];\r\n result.ratio += sizeConfig.ratio;\r\n result.baseSize += sizeConfig.baseSize;\r\n result.minSize += sizeConfig.minSize;\r\n result.maxSize += sizeConfig.maxSize;\r\n if (isDefined(sizeConfig.shrink)) {\r\n result.shrink = sizeConfig.shrink\r\n }\r\n }\r\n result.minSize = result.minSize ? result.minSize : defaultMinSize;\r\n result.maxSize = result.maxSize ? result.maxSize : \"auto\";\r\n this._isSingleColumnScreen() && (result.baseSize = \"auto\");\r\n return result\r\n },\r\n _update: function(forceRemoveRoot) {\r\n var $existingRoot = this._$root;\r\n this._renderItems();\r\n if ($existingRoot) {\r\n if (forceRemoveRoot) {\r\n $existingRoot.remove()\r\n } else {\r\n $existingRoot.detach();\r\n this._saveAssistantRoot($existingRoot)\r\n }\r\n }\r\n this._layoutChangedAction()\r\n },\r\n _saveAssistantRoot: function($root) {\r\n this._assistantRoots = this._assistantRoots || [];\r\n this._assistantRoots.push($root)\r\n },\r\n _dispose: function() {\r\n this._clearItemNodeTemplates();\r\n this._cleanUnusedRoots();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _cleanUnusedRoots: function() {\r\n if (!this._assistantRoots) {\r\n return\r\n }\r\n each(this._assistantRoots, (function(_, item) {\r\n $(item).remove()\r\n }))\r\n },\r\n _clearItemNodeTemplates: function() {\r\n each(this.option(\"items\"), (function() {\r\n delete this.node\r\n }))\r\n },\r\n _attachClickEvent: noop,\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"rows\":\r\n case \"cols\":\r\n case \"screenByWidth\":\r\n case \"singleColumnScreen\":\r\n this._clearItemNodeTemplates();\r\n this._invalidate();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._update();\r\n break;\r\n case \"onLayoutChanged\":\r\n this._initLayoutChangedAction();\r\n break;\r\n case \"itemTemplate\":\r\n this._clearItemNodeTemplates();\r\n this.callBase(args);\r\n break;\r\n case \"currentScreenFactor\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n if (this._getCurrentScreen() !== this.option(\"currentScreenFactor\")) {\r\n this._update()\r\n }\r\n },\r\n repaint: function() {\r\n this._update()\r\n }\r\n});\r\nregisterComponent(\"dxResponsiveBox\", ResponsiveBox);\r\nexport default ResponsiveBox;\r\n","/**\r\n * DevExtreme (esm/ui/form/constants.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var WIDGET_CLASS = \"dx-widget\";\r\nexport var FORM_CLASS = \"dx-form\";\r\nexport var FORM_GROUP_CLASS = \"dx-form-group\";\r\nexport var FORM_GROUP_CAPTION_CLASS = \"dx-form-group-caption\";\r\nexport var FORM_FIELD_ITEM_COL_CLASS = \"dx-col-\";\r\nexport var FIELD_ITEM_CLASS = \"dx-field-item\";\r\nexport var LAYOUT_MANAGER_ONE_COLUMN = \"dx-layout-manager-one-col\";\r\nexport var FIELD_ITEM_LABEL_CONTENT_CLASS = \"dx-field-item-label-content\";\r\nexport var FORM_LAYOUT_MANAGER_CLASS = \"dx-layout-manager\";\r\nexport var FIELD_ITEM_LABEL_CLASS = \"dx-field-item-label\";\r\nexport var FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nexport var SINGLE_COLUMN_ITEM_CONTENT = \"dx-single-column-item-content\";\r\nexport var ROOT_SIMPLE_ITEM_CLASS = \"dx-root-simple-item\";\r\nexport var FORM_GROUP_CONTENT_CLASS = \"dx-form-group-content\";\r\nexport var FIELD_ITEM_CONTENT_HAS_GROUP_CLASS = \"dx-field-item-has-group\";\r\nexport var FIELD_ITEM_CONTENT_HAS_TABS_CLASS = \"dx-field-item-has-tabs\";\r\nexport var FORM_GROUP_WITH_CAPTION_CLASS = \"dx-form-group-with-caption\";\r\nexport var FIELD_ITEM_TAB_CLASS = \"dx-field-item-tab\";\r\nexport var GROUP_COL_COUNT_CLASS = \"dx-group-colcount-\";\r\nexport var GROUP_COL_COUNT_ATTR = \"group-col-count\";\r\nexport var FORM_VALIDATION_SUMMARY = \"dx-form-validation-summary\";\r\nexport var FORM_UNDERLINED_CLASS = \"dx-form-styling-mode-underlined\";\r\nexport var SIMPLE_ITEM_TYPE = \"simple\";\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.layout_manager.utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n SIMPLE_ITEM_TYPE\r\n} from \"./constants\";\r\nvar EDITORS_WITH_ARRAY_VALUE = [\"dxTagBox\", \"dxRangeSlider\"];\r\nexport var EDITORS_WITHOUT_LABELS = [\"dxCalendar\", \"dxCheckBox\", \"dxHtmlEditor\", \"dxRadioGroup\", \"dxRangeSlider\", \"dxSlider\", \"dxSwitch\"];\r\nexport function convertToRenderFieldItemOptions(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n item: item,\r\n template: template,\r\n labelTemplate: labelTemplate,\r\n name: name,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n showColonAfterLabel: showColonAfterLabel,\r\n managerLabelLocation: managerLabelLocation,\r\n itemId: itemId,\r\n managerMarkOptions: managerMarkOptions,\r\n labelMode: labelMode,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref;\r\n var isRequired = isDefined(item.isRequired) ? item.isRequired : !!_hasRequiredRuleInSet(item.validationRules);\r\n var isSimpleItem = item.itemType === SIMPLE_ITEM_TYPE;\r\n var helpID = item.helpText ? \"dx-\" + new Guid : null;\r\n var labelOptions = _convertToLabelOptions({\r\n item: item,\r\n id: itemId,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: managerLabelLocation,\r\n formLabelMode: labelMode,\r\n labelTemplate: labelTemplate,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n });\r\n var needRenderLabel = labelOptions.visible && (labelOptions.text || labelOptions.labelTemplate && isSimpleItem);\r\n var {\r\n location: labelLocation,\r\n labelID: labelID\r\n } = labelOptions;\r\n var labelNeedBaselineAlign = \"top\" !== labelLocation && [\"dxTextArea\", \"dxRadioGroup\", \"dxCalendar\", \"dxHtmlEditor\"].includes(item.editorType);\r\n var editorOptions = _convertToEditorOptions({\r\n editorType: item.editorType,\r\n editorValue: editorValue,\r\n defaultEditorName: item.dataField,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: item.editorOptions,\r\n editorInputId: itemId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: labelMode,\r\n labelText: labelOptions.textWithoutColon,\r\n labelMark: labelOptions.markOptions.showRequiredMark ? String.fromCharCode(160) + labelOptions.markOptions.requiredMark : \"\"\r\n });\r\n var needRenderOptionalMarkAsHelpText = labelOptions.markOptions.showOptionalMark && !labelOptions.visible && \"hidden\" !== editorOptions.labelMode && !isDefined(item.helpText);\r\n var helpText = needRenderOptionalMarkAsHelpText ? labelOptions.markOptions.optionalMark : item.helpText;\r\n return {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n item: item,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n formLabelLocation: formLabelLocation,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup,\r\n editorOptions: editorOptions\r\n }\r\n}\r\nexport function getLabelMarkText(_ref2) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref2;\r\n if (!showRequiredMark && !showOptionalMark) {\r\n return \"\"\r\n }\r\n return String.fromCharCode(160) + (showRequiredMark ? requiredMark : optionalMark)\r\n}\r\nexport function convertToLabelMarkOptions(_ref3, isRequired) {\r\n var {\r\n showRequiredMark: showRequiredMark,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark,\r\n optionalMark: optionalMark\r\n } = _ref3;\r\n return {\r\n showRequiredMark: showRequiredMark && isRequired,\r\n requiredMark: requiredMark,\r\n showOptionalMark: showOptionalMark && !isRequired,\r\n optionalMark: optionalMark\r\n }\r\n}\r\n\r\nfunction _convertToEditorOptions(_ref4) {\r\n var {\r\n editorType: editorType,\r\n defaultEditorName: defaultEditorName,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n externalEditorOptions: externalEditorOptions,\r\n editorInputId: editorInputId,\r\n editorValidationBoundary: editorValidationBoundary,\r\n editorStylingMode: editorStylingMode,\r\n formLabelMode: formLabelMode,\r\n labelText: labelText,\r\n labelMark: labelMark\r\n } = _ref4;\r\n var editorOptionsWithValue = {};\r\n if (void 0 !== editorValue || canAssignUndefinedValueToEditor) {\r\n editorOptionsWithValue.value = editorValue\r\n }\r\n if (-1 !== EDITORS_WITH_ARRAY_VALUE.indexOf(editorType)) {\r\n editorOptionsWithValue.value = editorOptionsWithValue.value || []\r\n }\r\n var labelMode = null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.labelMode;\r\n if (!isDefined(labelMode)) {\r\n labelMode = \"outside\" === formLabelMode ? \"hidden\" : formLabelMode\r\n }\r\n var stylingMode = (null === externalEditorOptions || void 0 === externalEditorOptions ? void 0 : externalEditorOptions.stylingMode) || editorStylingMode;\r\n var result = extend(true, editorOptionsWithValue, externalEditorOptions, {\r\n inputAttr: {\r\n id: editorInputId\r\n },\r\n validationBoundary: editorValidationBoundary,\r\n stylingMode: stylingMode,\r\n label: labelText,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n });\r\n if (externalEditorOptions) {\r\n if (result.dataSource) {\r\n result.dataSource = externalEditorOptions.dataSource\r\n }\r\n if (result.items) {\r\n result.items = externalEditorOptions.items\r\n }\r\n }\r\n if (defaultEditorName && !result.name) {\r\n result.name = defaultEditorName\r\n }\r\n return result\r\n}\r\n\r\nfunction _hasRequiredRuleInSet(rules) {\r\n var hasRequiredRule;\r\n if (rules && rules.length) {\r\n each(rules, (function(index, rule) {\r\n if (\"required\" === rule.type) {\r\n hasRequiredRule = true;\r\n return false\r\n }\r\n }))\r\n }\r\n return hasRequiredRule\r\n}\r\n\r\nfunction _convertToLabelOptions(_ref5) {\r\n var {\r\n item: item,\r\n id: id,\r\n isRequired: isRequired,\r\n managerMarkOptions: managerMarkOptions,\r\n showColonAfterLabel: showColonAfterLabel,\r\n labelLocation: labelLocation,\r\n labelTemplate: labelTemplate,\r\n formLabelMode: formLabelMode,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref5;\r\n var isEditorWithoutLabels = EDITORS_WITHOUT_LABELS.includes(item.editorType);\r\n var labelOptions = extend({\r\n showColon: showColonAfterLabel,\r\n location: labelLocation,\r\n id: id,\r\n visible: \"outside\" === formLabelMode || isEditorWithoutLabels && \"hidden\" !== formLabelMode,\r\n isRequired: isRequired\r\n }, item ? item.label : {}, {\r\n markOptions: convertToLabelMarkOptions(managerMarkOptions, isRequired),\r\n labelTemplate: labelTemplate,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n });\r\n if ([\"dxRadioGroup\", \"dxCheckBox\", \"dxLookup\", \"dxSlider\", \"dxRangeSlider\", \"dxSwitch\", \"dxHtmlEditor\"].includes(item.editorType)) {\r\n labelOptions.labelID = \"dx-label-\".concat(new Guid)\r\n }\r\n if (!labelOptions.text && item.dataField) {\r\n labelOptions.text = captionize(item.dataField)\r\n }\r\n if (labelOptions.text) {\r\n labelOptions.textWithoutColon = labelOptions.text;\r\n labelOptions.text += labelOptions.showColon ? \":\" : \"\"\r\n }\r\n return labelOptions\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/components/label.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n getLabelMarkText\r\n} from \"../ui.form.layout_manager.utils\";\r\nimport {\r\n FIELD_ITEM_LABEL_CONTENT_CLASS,\r\n FIELD_ITEM_LABEL_CLASS\r\n} from \"../constants\";\r\nexport var GET_LABEL_WIDTH_BY_TEXT_CLASS = \"dx-layout-manager-hidden-label\";\r\nexport var FIELD_ITEM_REQUIRED_MARK_CLASS = \"dx-field-item-required-mark\";\r\nexport var FIELD_ITEM_LABEL_LOCATION_CLASS = \"dx-field-item-label-location-\";\r\nexport var FIELD_ITEM_OPTIONAL_MARK_CLASS = \"dx-field-item-optional-mark\";\r\nexport var FIELD_ITEM_LABEL_TEXT_CLASS = \"dx-field-item-label-text\";\r\nexport function renderLabel(_ref) {\r\n var {\r\n text: text,\r\n id: id,\r\n location: location,\r\n alignment: alignment,\r\n labelID: labelID = null,\r\n markOptions: markOptions = {},\r\n labelTemplate: labelTemplate,\r\n labelTemplateData: labelTemplateData,\r\n onLabelTemplateRendered: onLabelTemplateRendered\r\n } = _ref;\r\n if ((!isDefined(text) || text.length <= 0) && !isDefined(labelTemplate)) {\r\n return null\r\n }\r\n var $label = $(\"<label>\").addClass(FIELD_ITEM_LABEL_CLASS + \" \" + FIELD_ITEM_LABEL_LOCATION_CLASS + location).attr(\"for\", id).attr(\"id\", labelID).css(\"textAlign\", alignment);\r\n var $labelContainer = $(\"<span>\").addClass(FIELD_ITEM_LABEL_CONTENT_CLASS);\r\n var $labelContent = $(\"<span>\").addClass(FIELD_ITEM_LABEL_TEXT_CLASS).text(text);\r\n if (labelTemplate) {\r\n $labelContent = $(\"<div>\").addClass(\"dx-field-item-custom-label-content\");\r\n labelTemplateData.text = text;\r\n labelTemplate.render({\r\n container: getPublicElement($labelContent),\r\n model: labelTemplateData,\r\n onRendered() {\r\n null === onLabelTemplateRendered || void 0 === onLabelTemplateRendered ? void 0 : onLabelTemplateRendered()\r\n }\r\n })\r\n }\r\n return $label.append($labelContainer.append($labelContent, _renderLabelMark(markOptions)))\r\n}\r\n\r\nfunction _renderLabelMark(markOptions) {\r\n var markText = getLabelMarkText(markOptions);\r\n if (\"\" === markText) {\r\n return null\r\n }\r\n return $(\"<span>\").addClass(markOptions.showRequiredMark ? FIELD_ITEM_REQUIRED_MARK_CLASS : FIELD_ITEM_OPTIONAL_MARK_CLASS).text(markText)\r\n}\r\nexport function setLabelWidthByMaxLabelWidth($targetContainer, labelsSelector, labelMarkOptions) {\r\n var FIELD_ITEM_LABEL_CONTENT_CLASS_Selector = \"\".concat(labelsSelector, \" > .\").concat(FIELD_ITEM_LABEL_CLASS, \":not(.\").concat(FIELD_ITEM_LABEL_LOCATION_CLASS, \"top) > .\").concat(FIELD_ITEM_LABEL_CONTENT_CLASS);\r\n var $FIELD_ITEM_LABEL_CONTENT_CLASS_Items = $targetContainer.find(FIELD_ITEM_LABEL_CONTENT_CLASS_Selector);\r\n var FIELD_ITEM_LABEL_CONTENT_CLASS_Length = $FIELD_ITEM_LABEL_CONTENT_CLASS_Items.length;\r\n var labelWidth;\r\n var i;\r\n var maxWidth = 0;\r\n for (i = 0; i < FIELD_ITEM_LABEL_CONTENT_CLASS_Length; i++) {\r\n labelWidth = getLabelWidthByHTML($FIELD_ITEM_LABEL_CONTENT_CLASS_Items[i]);\r\n if (labelWidth > maxWidth) {\r\n maxWidth = labelWidth\r\n }\r\n }\r\n for (i = 0; i < FIELD_ITEM_LABEL_CONTENT_CLASS_Length; i++) {\r\n $FIELD_ITEM_LABEL_CONTENT_CLASS_Items[i].style.width = maxWidth + \"px\"\r\n }\r\n}\r\n\r\nfunction getLabelWidthByHTML(labelContent) {\r\n var result = 0;\r\n var itemsCount = labelContent.children.length;\r\n for (var i = 0; i < itemsCount; i++) {\r\n var child = labelContent.children[i];\r\n result += child.offsetWidth\r\n }\r\n return result\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/components/field_item.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nimport {\r\n getPublicElement\r\n} from \"../../../core/element\";\r\nimport {\r\n captionize\r\n} from \"../../../core/utils/inflector\";\r\nimport {\r\n format\r\n} from \"../../../core/utils/string\";\r\nimport {\r\n isMaterial\r\n} from \"../../themes\";\r\nimport errors from \"../../widget/ui.errors\";\r\nimport Validator from \"../../validator\";\r\nimport {\r\n FIELD_ITEM_CONTENT_CLASS\r\n} from \"../constants\";\r\nexport var FLEX_LAYOUT_CLASS = \"dx-flex-layout\";\r\nexport var FIELD_ITEM_OPTIONAL_CLASS = \"dx-field-item-optional\";\r\nexport var FIELD_ITEM_REQUIRED_CLASS = \"dx-field-item-required\";\r\nexport var FIELD_ITEM_CONTENT_WRAPPER_CLASS = \"dx-field-item-content-wrapper\";\r\nexport var FIELD_ITEM_CONTENT_LOCATION_CLASS = \"dx-field-item-content-location-\";\r\nexport var FIELD_ITEM_LABEL_ALIGN_CLASS = \"dx-field-item-label-align\";\r\nexport var FIELD_ITEM_HELP_TEXT_CLASS = \"dx-field-item-help-text\";\r\nexport var LABEL_VERTICAL_ALIGNMENT_CLASS = \"dx-label-v-align\";\r\nexport var LABEL_HORIZONTAL_ALIGNMENT_CLASS = \"dx-label-h-align\";\r\nimport {\r\n renderLabel\r\n} from \"./label\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar VALIDATION_TARGET_CLASS = \"dx-validation-target\";\r\nvar INVALID_CLASS = \"dx-invalid\";\r\nexport function renderFieldItem(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n formOrLayoutManager: formOrLayoutManager,\r\n createComponentCallback: createComponentCallback,\r\n labelOptions: labelOptions,\r\n labelNeedBaselineAlign: labelNeedBaselineAlign,\r\n labelLocation: labelLocation,\r\n needRenderLabel: needRenderLabel,\r\n formLabelLocation: formLabelLocation,\r\n item: item,\r\n editorOptions: editorOptions,\r\n isSimpleItem: isSimpleItem,\r\n isRequired: isRequired,\r\n template: template,\r\n helpID: helpID,\r\n labelID: labelID,\r\n name: name,\r\n helpText: helpText,\r\n requiredMessageTemplate: requiredMessageTemplate,\r\n validationGroup: validationGroup\r\n } = _ref;\r\n var $rootElement = $(\"<div>\").addClass(rootElementCssClassList.join(\" \")).appendTo($parent);\r\n $rootElement.addClass(isRequired ? FIELD_ITEM_REQUIRED_CLASS : FIELD_ITEM_OPTIONAL_CLASS);\r\n if (isSimpleItem) {\r\n $rootElement.addClass(FLEX_LAYOUT_CLASS)\r\n }\r\n if (isSimpleItem && labelNeedBaselineAlign) {\r\n $rootElement.addClass(FIELD_ITEM_LABEL_ALIGN_CLASS)\r\n }\r\n var $fieldEditorContainer = $(\"<div>\");\r\n $fieldEditorContainer.data(\"dx-form-item\", item);\r\n $fieldEditorContainer.addClass(FIELD_ITEM_CONTENT_CLASS).addClass(FIELD_ITEM_CONTENT_LOCATION_CLASS + {\r\n right: \"left\",\r\n left: \"right\",\r\n top: \"bottom\"\r\n } [formLabelLocation]);\r\n var $label = null;\r\n if (needRenderLabel) {\r\n if (labelOptions.labelTemplate) {\r\n labelOptions.labelTemplateData = getTemplateData(item, editorOptions, formOrLayoutManager)\r\n }\r\n $label = renderLabel(labelOptions)\r\n }\r\n if ($label) {\r\n $rootElement.append($label);\r\n if (\"top\" === labelLocation || \"left\" === labelLocation) {\r\n $rootElement.append($fieldEditorContainer)\r\n }\r\n if (\"right\" === labelLocation) {\r\n $rootElement.prepend($fieldEditorContainer)\r\n }\r\n if (\"top\" === labelLocation) {\r\n $rootElement.addClass(LABEL_VERTICAL_ALIGNMENT_CLASS)\r\n } else {\r\n $rootElement.addClass(LABEL_HORIZONTAL_ALIGNMENT_CLASS)\r\n }\r\n if (\"dxCheckBox\" === item.editorType || \"dxSwitch\" === item.editorType) {\r\n eventsEngine.on($label, clickEventName, (function() {\r\n eventsEngine.trigger($fieldEditorContainer.children(), clickEventName)\r\n }))\r\n }\r\n } else {\r\n $rootElement.append($fieldEditorContainer)\r\n }\r\n var widgetInstance;\r\n if (template) {\r\n template.render({\r\n container: getPublicElement($fieldEditorContainer),\r\n model: getTemplateData(item, editorOptions, formOrLayoutManager),\r\n onRendered() {\r\n var $validationTarget = getValidationTarget($fieldEditorContainer);\r\n var validationTargetInstance = tryGetValidationTargetInstance($validationTarget);\r\n subscribeWrapperInvalidClassToggle(validationTargetInstance)\r\n }\r\n })\r\n } else {\r\n var $div = $(\"<div>\").appendTo($fieldEditorContainer);\r\n try {\r\n widgetInstance = createComponentCallback($div, item.editorType, editorOptions);\r\n widgetInstance.setAria(\"describedby\", helpID);\r\n if (labelID) {\r\n widgetInstance.setAria(\"labelledby\", labelID)\r\n }\r\n widgetInstance.setAria(\"required\", isRequired)\r\n } catch (e) {\r\n errors.log(\"E1035\", e.message)\r\n }\r\n }\r\n var $validationTarget = getValidationTarget($fieldEditorContainer);\r\n var validationTargetInstance = $validationTarget && $validationTarget.data(VALIDATION_TARGET_CLASS);\r\n if (validationTargetInstance) {\r\n var isItemHaveCustomLabel = item.label && item.label.text;\r\n var itemName = isItemHaveCustomLabel ? null : name;\r\n var fieldName = isItemHaveCustomLabel ? item.label.text : itemName && captionize(itemName);\r\n var validationRules;\r\n if (isSimpleItem) {\r\n if (item.validationRules) {\r\n validationRules = item.validationRules\r\n } else {\r\n var requiredMessage = format(requiredMessageTemplate, fieldName || \"\");\r\n validationRules = item.isRequired ? [{\r\n type: \"required\",\r\n message: requiredMessage\r\n }] : null\r\n }\r\n }\r\n if (Array.isArray(validationRules) && validationRules.length) {\r\n createComponentCallback($validationTarget, Validator, {\r\n validationRules: validationRules,\r\n validationGroup: validationGroup,\r\n dataGetter: function() {\r\n return {\r\n formItem: item\r\n }\r\n }\r\n })\r\n }\r\n subscribeWrapperInvalidClassToggle(validationTargetInstance)\r\n }\r\n if (helpText && isSimpleItem) {\r\n var $editorParent = $fieldEditorContainer.parent();\r\n $editorParent.append($(\"<div>\").addClass(FIELD_ITEM_CONTENT_WRAPPER_CLASS).append($fieldEditorContainer).append($(\"<div>\").addClass(FIELD_ITEM_HELP_TEXT_CLASS).attr(\"id\", helpID).text(helpText)))\r\n }\r\n return {\r\n $fieldEditorContainer: $fieldEditorContainer,\r\n $rootElement: $rootElement,\r\n widgetInstance: widgetInstance\r\n }\r\n}\r\n\r\nfunction getValidationTarget($fieldEditorContainer) {\r\n var $editor = $fieldEditorContainer.children().first();\r\n return $editor.hasClass(TEMPLATE_WRAPPER_CLASS) ? $editor.children().first() : $editor\r\n}\r\n\r\nfunction tryGetValidationTargetInstance($validationTarget) {\r\n var _$validationTarget$pa, _$validationTarget$pa2;\r\n return (null === $validationTarget || void 0 === $validationTarget ? void 0 : $validationTarget.data(VALIDATION_TARGET_CLASS)) || (null === $validationTarget || void 0 === $validationTarget ? void 0 : null === (_$validationTarget$pa = $validationTarget.parent) || void 0 === _$validationTarget$pa ? void 0 : null === (_$validationTarget$pa2 = _$validationTarget$pa.call($validationTarget)) || void 0 === _$validationTarget$pa2 ? void 0 : _$validationTarget$pa2.data(VALIDATION_TARGET_CLASS))\r\n}\r\n\r\nfunction subscribeWrapperInvalidClassToggle(validationTargetInstance) {\r\n if (validationTargetInstance && isMaterial()) {\r\n var wrapperClass = \".\".concat(FIELD_ITEM_CONTENT_WRAPPER_CLASS);\r\n var toggleInvalidClass = _ref2 => {\r\n var {\r\n element: element,\r\n component: component\r\n } = _ref2;\r\n var {\r\n isValid: isValid,\r\n validationMessageMode: validationMessageMode\r\n } = component.option();\r\n $(element).parents(wrapperClass).toggleClass(INVALID_CLASS, false === isValid && (component._isFocused() || \"always\" === validationMessageMode))\r\n };\r\n validationTargetInstance.on(\"optionChanged\", e => {\r\n if (\"isValid\" !== e.name) {\r\n return\r\n }\r\n toggleInvalidClass(e)\r\n });\r\n validationTargetInstance.on(\"focusIn\", toggleInvalidClass).on(\"focusOut\", toggleInvalidClass).on(\"enterKey\", toggleInvalidClass)\r\n }\r\n}\r\n\r\nfunction getTemplateData(item, editorOptions, formOrLayoutManager) {\r\n return {\r\n dataField: item.dataField,\r\n editorType: item.editorType,\r\n editorOptions: editorOptions,\r\n component: formOrLayoutManager,\r\n name: item.name\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/components/button_item.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nvar FIELD_BUTTON_ITEM_CLASS = \"dx-field-button-item\";\r\nexport function renderButtonItem(_ref) {\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n validationGroup: validationGroup,\r\n createComponentCallback: createComponentCallback\r\n } = _ref;\r\n var $rootElement = $(\"<div>\").appendTo($parent).addClass(rootElementCssClassList.join(\" \")).addClass(FIELD_BUTTON_ITEM_CLASS).css(\"textAlign\", convertAlignmentToTextAlign(item.horizontalAlignment));\r\n $parent.css(\"justifyContent\", convertAlignmentToJustifyContent(item.verticalAlignment));\r\n var $button = $(\"<div>\").appendTo($rootElement);\r\n return {\r\n $rootElement: $rootElement,\r\n buttonInstance: createComponentCallback($button, \"dxButton\", extend({\r\n validationGroup: validationGroup\r\n }, item.buttonOptions))\r\n }\r\n}\r\n\r\nfunction convertAlignmentToTextAlign(horizontalAlignment) {\r\n return isDefined(horizontalAlignment) ? horizontalAlignment : \"right\"\r\n}\r\n\r\nfunction convertAlignmentToJustifyContent(verticalAlignment) {\r\n switch (verticalAlignment) {\r\n case \"center\":\r\n return \"center\";\r\n case \"bottom\":\r\n return \"flex-end\";\r\n default:\r\n return \"flex-start\"\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/components/empty_item.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nexport var FIELD_EMPTY_ITEM_CLASS = \"dx-field-empty-item\";\r\nexport function renderEmptyItem(_ref) {\r\n var {\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref;\r\n return $(\"<div>\").addClass(FIELD_EMPTY_ITEM_CLASS).html(\" \").addClass(rootElementCssClassList.join(\" \")).appendTo($parent)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.layout_manager.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n default as FormItemsRunTimeInfo\r\n} from \"./ui.form.items_runtime_info\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isFunction,\r\n isObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n getCurrentScreenFactor,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeIndexes\r\n} from \"../../core/utils/array\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport ResponsiveBox from \"../responsive_box\";\r\nimport {\r\n LAYOUT_MANAGER_ONE_COLUMN,\r\n FORM_LAYOUT_MANAGER_CLASS,\r\n SINGLE_COLUMN_ITEM_CONTENT,\r\n ROOT_SIMPLE_ITEM_CLASS,\r\n SIMPLE_ITEM_TYPE,\r\n FIELD_ITEM_CLASS\r\n} from \"./constants\";\r\nimport \"../text_box\";\r\nimport \"../number_box\";\r\nimport \"../check_box\";\r\nimport \"../date_box\";\r\nimport \"../button\";\r\nimport {\r\n renderFieldItem\r\n} from \"./components/field_item\";\r\nimport {\r\n renderButtonItem\r\n} from \"./components/button_item\";\r\nimport {\r\n renderEmptyItem\r\n} from \"./components/empty_item\";\r\nimport {\r\n convertToRenderFieldItemOptions\r\n} from \"./ui.form.layout_manager.utils\";\r\nvar FORM_EDITOR_BY_DEFAULT = \"dxTextBox\";\r\nvar LAYOUT_MANAGER_FIRST_ROW_CLASS = \"dx-first-row\";\r\nvar LAYOUT_MANAGER_LAST_ROW_CLASS = \"dx-last-row\";\r\nvar LAYOUT_MANAGER_FIRST_COL_CLASS = \"dx-first-col\";\r\nvar LAYOUT_MANAGER_LAST_COL_CLASS = \"dx-last-col\";\r\nvar LayoutManager = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n layoutData: {},\r\n readOnly: false,\r\n colCount: 1,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n onFieldDataChanged: null,\r\n onEditorEnterKey: null,\r\n customizeItem: null,\r\n alignItemLabels: true,\r\n minColWidth: 200,\r\n showRequiredMark: true,\r\n screenByWidth: null,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n labelMode: \"outside\",\r\n optionalMark: messageLocalization.format(\"dxForm-optionalMark\"),\r\n requiredMessage: messageLocalization.getFormatter(\"dxForm-requiredMessage\")\r\n })\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n layoutData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _init: function() {\r\n var layoutData = this.option(\"layoutData\");\r\n this.callBase();\r\n this._itemWatchers = [];\r\n this._itemsRunTimeInfo = new FormItemsRunTimeInfo;\r\n this._updateReferencedOptions(layoutData);\r\n this._initDataAndItems(layoutData)\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._cleanItemWatchers()\r\n },\r\n _initDataAndItems: function(initialData) {\r\n this._syncDataWithItems();\r\n this._updateItems(initialData)\r\n },\r\n _syncDataWithItems: function() {\r\n var layoutData = this.option(\"layoutData\");\r\n var userItems = this.option(\"items\");\r\n if (isDefined(userItems)) {\r\n userItems.forEach(item => {\r\n if (item.dataField && void 0 === this._getDataByField(item.dataField)) {\r\n var value;\r\n if (item.editorOptions) {\r\n value = item.editorOptions.value\r\n }\r\n if (isDefined(value) || item.dataField in layoutData) {\r\n this._updateFieldValue(item.dataField, value)\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _getDataByField: function(dataField) {\r\n return dataField ? this.option(\"layoutData.\" + dataField) : null\r\n },\r\n _isCheckboxUndefinedStateEnabled: function(_ref) {\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n } = _ref;\r\n if (true === allowIndeterminateState && \"dxCheckBox\" === editorType) {\r\n var nameParts = [\"layoutData\", ...dataField.split(\".\")];\r\n var propertyName = nameParts.pop();\r\n var layoutData = this.option(nameParts.join(\".\"));\r\n return layoutData && propertyName in layoutData\r\n }\r\n return false\r\n },\r\n _updateFieldValue: function(dataField, value) {\r\n var layoutData = this.option(\"layoutData\");\r\n var newValue = value;\r\n if (!variableWrapper.isWrapped(layoutData[dataField]) && isDefined(dataField)) {\r\n this.option(\"layoutData.\" + dataField, newValue)\r\n } else if (variableWrapper.isWritableWrapped(layoutData[dataField])) {\r\n newValue = isFunction(newValue) ? newValue() : newValue;\r\n layoutData[dataField](newValue)\r\n }\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: newValue\r\n })\r\n },\r\n _triggerOnFieldDataChanged: function(args) {\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _updateItems: function(layoutData) {\r\n var that = this;\r\n var userItems = this.option(\"items\");\r\n var isUserItemsExist = isDefined(userItems);\r\n var customizeItem = that.option(\"customizeItem\");\r\n var items = isUserItemsExist ? userItems : this._generateItemsByData(layoutData);\r\n if (isDefined(items)) {\r\n var processedItems = [];\r\n each(items, (function(index, item) {\r\n if (that._isAcceptableItem(item)) {\r\n item = that._processItem(item);\r\n customizeItem && customizeItem(item);\r\n if (isObject(item) && false !== variableWrapper.unwrap(item.visible)) {\r\n processedItems.push(item)\r\n }\r\n }\r\n }));\r\n if (!that._itemWatchers.length || !isUserItemsExist) {\r\n that._updateItemWatchers(items)\r\n }\r\n this._setItems(processedItems);\r\n this._sortItems()\r\n }\r\n },\r\n _cleanItemWatchers: function() {\r\n this._itemWatchers.forEach((function(dispose) {\r\n dispose()\r\n }));\r\n this._itemWatchers = []\r\n },\r\n _updateItemWatchers: function(items) {\r\n var that = this;\r\n var watch = that._getWatch();\r\n items.forEach((function(item) {\r\n if (isObject(item) && isDefined(item.visible) && isFunction(watch)) {\r\n that._itemWatchers.push(watch((function() {\r\n return variableWrapper.unwrap(item.visible)\r\n }), (function() {\r\n that._updateItems(that.option(\"layoutData\"));\r\n that.repaint()\r\n }), {\r\n skipImmediate: true\r\n }))\r\n }\r\n }))\r\n },\r\n _generateItemsByData: function(layoutData) {\r\n var result = [];\r\n if (isDefined(layoutData)) {\r\n each(layoutData, (function(dataField) {\r\n result.push({\r\n dataField: dataField\r\n })\r\n }))\r\n }\r\n return result\r\n },\r\n _isAcceptableItem: function(item) {\r\n var itemField = item.dataField || item;\r\n var itemData = this._getDataByField(itemField);\r\n return !(isFunction(itemData) && !variableWrapper.isWrapped(itemData))\r\n },\r\n _processItem: function(item) {\r\n if (\"string\" === typeof item) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if (\"object\" === typeof item && !item.itemType) {\r\n item.itemType = SIMPLE_ITEM_TYPE\r\n }\r\n if (!isDefined(item.editorType) && isDefined(item.dataField)) {\r\n var value = this._getDataByField(item.dataField);\r\n item.editorType = isDefined(value) ? this._getEditorTypeByDataType(type(value)) : FORM_EDITOR_BY_DEFAULT\r\n }\r\n if (\"dxCheckBox\" === item.editorType) {\r\n var _item$allowIndetermin;\r\n item.allowIndeterminateState = null !== (_item$allowIndetermin = item.allowIndeterminateState) && void 0 !== _item$allowIndetermin ? _item$allowIndetermin : true\r\n }\r\n return item\r\n },\r\n _getEditorTypeByDataType: function(dataType) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"dxNumberBox\";\r\n case \"date\":\r\n return \"dxDateBox\";\r\n case \"boolean\":\r\n return \"dxCheckBox\";\r\n default:\r\n return \"dxTextBox\"\r\n }\r\n },\r\n _sortItems: function() {\r\n normalizeIndexes(this._items, \"visibleIndex\");\r\n this._sortIndexes()\r\n },\r\n _sortIndexes: function() {\r\n this._items.sort((function(itemA, itemB) {\r\n var indexA = itemA.visibleIndex;\r\n var indexB = itemB.visibleIndex;\r\n var result;\r\n if (indexA > indexB) {\r\n result = 1\r\n } else if (indexA < indexB) {\r\n result = -1\r\n } else {\r\n result = 0\r\n }\r\n return result\r\n }))\r\n },\r\n _initMarkup: function() {\r\n this._itemsRunTimeInfo.clear();\r\n this.$element().addClass(FORM_LAYOUT_MANAGER_CLASS);\r\n this.callBase();\r\n this._renderResponsiveBox()\r\n },\r\n _renderResponsiveBox: function() {\r\n var templatesInfo = [];\r\n if (this._items && this._items.length) {\r\n var colCount = this._getColCount();\r\n var $container = $(\"<div>\").appendTo(this.$element());\r\n this._prepareItemsWithMerging(colCount);\r\n var layoutItems = this._generateLayoutItems();\r\n this._responsiveBox = this._createComponent($container, ResponsiveBox, this._getResponsiveBoxConfig(layoutItems, colCount, templatesInfo));\r\n if (!hasWindow()) {\r\n this._renderTemplates(templatesInfo)\r\n }\r\n }\r\n },\r\n _itemStateChangedHandler: function(e) {\r\n this._refresh()\r\n },\r\n _renderTemplates: function(templatesInfo) {\r\n var that = this;\r\n var itemsWithLabelTemplateCount = 0;\r\n templatesInfo.forEach(_ref2 => {\r\n var _item$label;\r\n var {\r\n item: item\r\n } = _ref2;\r\n if (null !== item && void 0 !== item && null !== (_item$label = item.label) && void 0 !== _item$label && _item$label.template) {\r\n itemsWithLabelTemplateCount++\r\n }\r\n });\r\n each(templatesInfo, (function(index, info) {\r\n switch (info.itemType) {\r\n case \"empty\":\r\n renderEmptyItem(info);\r\n break;\r\n case \"button\":\r\n that._renderButtonItem(info);\r\n break;\r\n default:\r\n that._renderFieldItem(info, itemsWithLabelTemplateCount)\r\n }\r\n }))\r\n },\r\n _getResponsiveBoxConfig: function(layoutItems, colCount, templatesInfo) {\r\n var that = this;\r\n var colCountByScreen = that.option(\"colCountByScreen\");\r\n var xsColCount = colCountByScreen && colCountByScreen.xs;\r\n return {\r\n onItemStateChanged: this._itemStateChangedHandler.bind(this),\r\n onLayoutChanged: function() {\r\n var onLayoutChanged = that.option(\"onLayoutChanged\");\r\n var isSingleColumnMode = that.isSingleColumnMode();\r\n if (onLayoutChanged) {\r\n that.$element().toggleClass(LAYOUT_MANAGER_ONE_COLUMN, isSingleColumnMode);\r\n onLayoutChanged(isSingleColumnMode)\r\n }\r\n },\r\n onContentReady: function(e) {\r\n if (hasWindow()) {\r\n that._renderTemplates(templatesInfo)\r\n }\r\n if (that.option(\"onLayoutChanged\")) {\r\n that.$element().toggleClass(LAYOUT_MANAGER_ONE_COLUMN, that.isSingleColumnMode(e.component))\r\n }\r\n },\r\n itemTemplate: function(e, itemData, itemElement) {\r\n if (!e.location) {\r\n return\r\n }\r\n var $itemElement = $(itemElement);\r\n var itemRenderedCountInPreviousRows = e.location.row * colCount;\r\n var item = that._items[e.location.col + itemRenderedCountInPreviousRows];\r\n if (!item) {\r\n return\r\n }\r\n var itemCssClassList = [item.cssClass];\r\n $itemElement.toggleClass(SINGLE_COLUMN_ITEM_CONTENT, that.isSingleColumnMode(this));\r\n if (0 === e.location.row) {\r\n itemCssClassList.push(LAYOUT_MANAGER_FIRST_ROW_CLASS)\r\n }\r\n if (0 === e.location.col) {\r\n itemCssClassList.push(LAYOUT_MANAGER_FIRST_COL_CLASS)\r\n }\r\n if (item.itemType === SIMPLE_ITEM_TYPE && that.option(\"isRoot\")) {\r\n $itemElement.addClass(ROOT_SIMPLE_ITEM_CLASS)\r\n }\r\n var isLastColumn = e.location.col === colCount - 1 || e.location.col + e.location.colspan === colCount;\r\n var rowsCount = that._getRowsCount();\r\n var isLastRow = e.location.row === rowsCount - 1;\r\n if (isLastColumn) {\r\n itemCssClassList.push(LAYOUT_MANAGER_LAST_COL_CLASS)\r\n }\r\n if (isLastRow) {\r\n itemCssClassList.push(LAYOUT_MANAGER_LAST_ROW_CLASS)\r\n }\r\n if (\"empty\" !== item.itemType) {\r\n itemCssClassList.push(FIELD_ITEM_CLASS);\r\n itemCssClassList.push(that.option(\"cssItemClass\"));\r\n if (isDefined(item.col)) {\r\n itemCssClassList.push(\"dx-col-\" + item.col)\r\n }\r\n }\r\n templatesInfo.push({\r\n itemType: item.itemType,\r\n item: item,\r\n $parent: $itemElement,\r\n rootElementCssClassList: itemCssClassList\r\n })\r\n },\r\n cols: that._generateRatio(colCount),\r\n rows: that._generateRatio(that._getRowsCount(), true),\r\n dataSource: layoutItems,\r\n screenByWidth: that.option(\"screenByWidth\"),\r\n singleColumnScreen: xsColCount ? false : \"xs\"\r\n }\r\n },\r\n _getColCount: function() {\r\n var colCount = this.option(\"colCount\");\r\n var colCountByScreen = this.option(\"colCountByScreen\");\r\n if (colCountByScreen) {\r\n var screenFactor = this.option(\"form\").getTargetScreenFactor();\r\n if (!screenFactor) {\r\n screenFactor = hasWindow() ? getCurrentScreenFactor(this.option(\"screenByWidth\")) : \"lg\"\r\n }\r\n colCount = colCountByScreen[screenFactor] || colCount\r\n }\r\n if (\"auto\" === colCount) {\r\n if (this._cashedColCount) {\r\n return this._cashedColCount\r\n }\r\n this._cashedColCount = colCount = this._getMaxColCount()\r\n }\r\n return colCount < 1 ? 1 : colCount\r\n },\r\n _getMaxColCount: function() {\r\n if (!hasWindow()) {\r\n return 1\r\n }\r\n var minColWidth = this.option(\"minColWidth\");\r\n var width = getWidth(this.$element());\r\n var itemsCount = this._items.length;\r\n var maxColCount = Math.floor(width / minColWidth) || 1;\r\n return itemsCount < maxColCount ? itemsCount : maxColCount\r\n },\r\n isCachedColCountObsolete: function() {\r\n return this._cashedColCount && this._getMaxColCount() !== this._cashedColCount\r\n },\r\n _prepareItemsWithMerging: function(colCount) {\r\n var items = this._items.slice(0);\r\n var item;\r\n var itemsMergedByCol;\r\n var result = [];\r\n var j;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n result.push(item);\r\n if (this.option(\"alignItemLabels\") || item.alignItemLabels || item.colSpan) {\r\n item.col = this._getColByIndex(result.length - 1, colCount)\r\n }\r\n if (item.colSpan > 1 && item.col + item.colSpan <= colCount) {\r\n itemsMergedByCol = [];\r\n for (j = 0; j < item.colSpan - 1; j++) {\r\n itemsMergedByCol.push({\r\n merged: true\r\n })\r\n }\r\n result = result.concat(itemsMergedByCol)\r\n } else {\r\n delete item.colSpan\r\n }\r\n }\r\n this._setItems(result)\r\n },\r\n _getColByIndex: function(index, colCount) {\r\n return index % colCount\r\n },\r\n _setItems: function(items) {\r\n this._items = items;\r\n this._cashedColCount = null\r\n },\r\n _generateLayoutItems: function() {\r\n var items = this._items;\r\n var colCount = this._getColCount();\r\n var result = [];\r\n var item;\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n item = items[i];\r\n if (!item.merged) {\r\n var generatedItem = {\r\n location: {\r\n row: parseInt(i / colCount),\r\n col: this._getColByIndex(i, colCount)\r\n }\r\n };\r\n if (isDefined(item.disabled)) {\r\n generatedItem.disabled = item.disabled\r\n }\r\n if (isDefined(item.visible)) {\r\n generatedItem.visible = item.visible\r\n }\r\n if (isDefined(item.colSpan)) {\r\n generatedItem.location.colspan = item.colSpan\r\n }\r\n if (isDefined(item.rowSpan)) {\r\n generatedItem.location.rowspan = item.rowSpan\r\n }\r\n result.push(generatedItem)\r\n }\r\n }\r\n return result\r\n },\r\n _renderEmptyItem: function($container) {\r\n renderEmptyItem({\r\n $container: $container\r\n })\r\n },\r\n _renderButtonItem: function(_ref3) {\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref3;\r\n var {\r\n $rootElement: $rootElement,\r\n buttonInstance: buttonInstance\r\n } = renderButtonItem({\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n validationGroup: this.option(\"validationGroup\"),\r\n createComponentCallback: this._createComponent.bind(this)\r\n });\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: buttonInstance,\r\n guid: item.guid,\r\n $itemContainer: $rootElement\r\n })\r\n },\r\n _renderFieldItem: function(_ref4, itemsWithLabelTemplateCount) {\r\n var _item$label2, _this$option;\r\n var {\r\n item: item,\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList\r\n } = _ref4;\r\n var editorValue = this._getDataByField(item.dataField);\r\n var canAssignUndefinedValueToEditor = false;\r\n if (void 0 === editorValue) {\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n } = item;\r\n canAssignUndefinedValueToEditor = this._isCheckboxUndefinedStateEnabled({\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n })\r\n }\r\n var name = item.dataField || item.name;\r\n var formOrLayoutManager = this._getFormOrThis();\r\n var {\r\n $fieldEditorContainer: $fieldEditorContainer,\r\n widgetInstance: widgetInstance,\r\n $rootElement: $rootElement\r\n } = renderFieldItem(convertToRenderFieldItemOptions({\r\n $parent: $parent,\r\n rootElementCssClassList: rootElementCssClassList,\r\n item: item,\r\n name: name,\r\n editorValue: editorValue,\r\n canAssignUndefinedValueToEditor: canAssignUndefinedValueToEditor,\r\n formOrLayoutManager: this._getFormOrThis(),\r\n createComponentCallback: this._createComponent.bind(this),\r\n formLabelLocation: this.option(\"labelLocation\"),\r\n requiredMessageTemplate: this.option(\"requiredMessage\"),\r\n validationGroup: this.option(\"validationGroup\"),\r\n editorValidationBoundary: this.option(\"validationBoundary\"),\r\n editorStylingMode: this.option(\"form\") && this.option(\"form\").option(\"stylingMode\"),\r\n showColonAfterLabel: this.option(\"showColonAfterLabel\"),\r\n managerLabelLocation: this.option(\"labelLocation\"),\r\n template: item.template ? this._getTemplate(item.template) : null,\r\n labelTemplate: null !== (_item$label2 = item.label) && void 0 !== _item$label2 && _item$label2.template ? this._getTemplate(item.label.template) : null,\r\n itemId: this.option(\"form\") && this.option(\"form\").getItemID(name),\r\n managerMarkOptions: this._getMarkOptions(),\r\n labelMode: this.option(\"labelMode\"),\r\n onLabelTemplateRendered: () => {\r\n this._incTemplateRenderedCallCount();\r\n if (this._shouldAlignLabelsOnTemplateRendered(formOrLayoutManager, itemsWithLabelTemplateCount)) {\r\n formOrLayoutManager._alignLabels(this, this.isSingleColumnMode(formOrLayoutManager))\r\n }\r\n }\r\n }));\r\n null === (_this$option = this.option(\"onFieldItemRendered\")) || void 0 === _this$option ? void 0 : _this$option();\r\n if (widgetInstance && item.dataField) {\r\n this._bindDataField(widgetInstance, item.dataField, item.editorType, $fieldEditorContainer)\r\n }\r\n this._itemsRunTimeInfo.add({\r\n item: item,\r\n widgetInstance: widgetInstance,\r\n guid: item.guid,\r\n $itemContainer: $rootElement\r\n })\r\n },\r\n _incTemplateRenderedCallCount() {\r\n var _this$_labelTemplateR;\r\n this._labelTemplateRenderedCallCount = (null !== (_this$_labelTemplateR = this._labelTemplateRenderedCallCount) && void 0 !== _this$_labelTemplateR ? _this$_labelTemplateR : 0) + 1\r\n },\r\n _shouldAlignLabelsOnTemplateRendered(formOrLayoutManager, totalItemsWithLabelTemplate) {\r\n return formOrLayoutManager.option(\"templatesRenderAsynchronously\") && this._labelTemplateRenderedCallCount === totalItemsWithLabelTemplate\r\n },\r\n _getMarkOptions: function() {\r\n return {\r\n showRequiredMark: this.option(\"showRequiredMark\"),\r\n requiredMark: this.option(\"requiredMark\"),\r\n showOptionalMark: this.option(\"showOptionalMark\"),\r\n optionalMark: this.option(\"optionalMark\")\r\n }\r\n },\r\n _getFormOrThis: function() {\r\n return this.option(\"form\") || this\r\n },\r\n _bindDataField: function(editorInstance, dataField, editorType, $container) {\r\n var formOrThis = this._getFormOrThis();\r\n editorInstance.on(\"enterKey\", (function(args) {\r\n formOrThis._createActionByOption(\"onEditorEnterKey\")(extend(args, {\r\n dataField: dataField\r\n }))\r\n }));\r\n this._createWatcher(editorInstance, $container, dataField);\r\n this.linkEditorToDataField(editorInstance, dataField, editorType)\r\n },\r\n _createWatcher: function(editorInstance, $container, dataField) {\r\n var that = this;\r\n var watch = that._getWatch();\r\n if (!isFunction(watch)) {\r\n return\r\n }\r\n var dispose = watch((function() {\r\n return that._getDataByField(dataField)\r\n }), (function() {\r\n var fieldValue = that._getDataByField(dataField);\r\n if (\"dxTagBox\" === editorInstance.NAME) {\r\n var editorValue = editorInstance.option(\"value\");\r\n if (fieldValue !== editorValue && function(array1, array2) {\r\n if (!Array.isArray(array1) || !Array.isArray(array2) || array1.length !== array2.length) {\r\n return false\r\n }\r\n for (var i = 0; i < array1.length; i++) {\r\n if (array1[i] !== array2[i]) {\r\n return false\r\n }\r\n }\r\n return true\r\n }(fieldValue, editorValue)) {\r\n return\r\n }\r\n }\r\n editorInstance.option(\"value\", fieldValue)\r\n }), {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on($container, removeEvent, dispose)\r\n },\r\n _getWatch: function() {\r\n if (!isDefined(this._watch)) {\r\n var formInstance = this.option(\"form\");\r\n this._watch = formInstance && formInstance.option(\"integrationOptions.watchMethod\")\r\n }\r\n return this._watch\r\n },\r\n _createComponent: function($editor, type, editorOptions) {\r\n var readOnlyState = this.option(\"readOnly\");\r\n var instance = this.callBase($editor, type, editorOptions);\r\n readOnlyState && instance.option(\"readOnly\", readOnlyState);\r\n this.on(\"optionChanged\", (function(args) {\r\n if (\"readOnly\" === args.name && !isDefined(editorOptions.readOnly)) {\r\n instance.option(args.name, args.value)\r\n }\r\n }));\r\n return instance\r\n },\r\n _generateRatio: function(count, isAutoSize) {\r\n var result = [];\r\n var ratio;\r\n var i;\r\n for (i = 0; i < count; i++) {\r\n ratio = {\r\n ratio: 1\r\n };\r\n if (isAutoSize) {\r\n ratio.baseSize = \"auto\"\r\n }\r\n result.push(ratio)\r\n }\r\n return result\r\n },\r\n _getRowsCount: function() {\r\n return Math.ceil(this._items.length / this._getColCount())\r\n },\r\n _updateReferencedOptions: function(newLayoutData) {\r\n var layoutData = this.option(\"layoutData\");\r\n if (isObject(layoutData)) {\r\n Object.getOwnPropertyNames(layoutData).forEach(property => delete this._optionsByReference[\"layoutData.\" + property])\r\n }\r\n if (isObject(newLayoutData)) {\r\n Object.getOwnPropertyNames(newLayoutData).forEach(property => this._optionsByReference[\"layoutData.\" + property] = true)\r\n }\r\n },\r\n _resetWidget(instance) {\r\n this._disableEditorValueChangedHandler = true;\r\n instance.reset();\r\n this._disableEditorValueChangedHandler = false;\r\n instance.option(\"isValid\", true)\r\n },\r\n _optionChanged(args) {\r\n if (0 === args.fullName.search(\"layoutData.\")) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"showRequiredMark\":\r\n case \"showOptionalMark\":\r\n case \"requiredMark\":\r\n case \"optionalMark\":\r\n this._cashedRequiredConfig = null;\r\n this._invalidate();\r\n break;\r\n case \"layoutData\":\r\n this._updateReferencedOptions(args.value);\r\n if (this.option(\"items\")) {\r\n if (!isEmptyObject(args.value)) {\r\n this._itemsRunTimeInfo.each((_, itemRunTimeInfo) => {\r\n if (isDefined(itemRunTimeInfo.item)) {\r\n var dataField = itemRunTimeInfo.item.dataField;\r\n if (dataField && isDefined(itemRunTimeInfo.widgetInstance)) {\r\n var valueGetter = compileGetter(dataField);\r\n var dataValue = valueGetter(args.value);\r\n var {\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType\r\n } = itemRunTimeInfo.item;\r\n if (void 0 !== dataValue || this._isCheckboxUndefinedStateEnabled({\r\n allowIndeterminateState: allowIndeterminateState,\r\n editorType: editorType,\r\n dataField: dataField\r\n })) {\r\n itemRunTimeInfo.widgetInstance.option(\"value\", dataValue)\r\n } else {\r\n this._resetWidget(itemRunTimeInfo.widgetInstance)\r\n }\r\n }\r\n }\r\n })\r\n }\r\n } else {\r\n this._initDataAndItems(args.value);\r\n this._invalidate()\r\n }\r\n break;\r\n case \"items\":\r\n this._cleanItemWatchers();\r\n this._initDataAndItems(args.value);\r\n this._invalidate();\r\n break;\r\n case \"alignItemLabels\":\r\n case \"labelLocation\":\r\n case \"labelMode\":\r\n case \"requiredMessage\":\r\n this._invalidate();\r\n break;\r\n case \"customizeItem\":\r\n this._updateItems(this.option(\"layoutData\"));\r\n this._invalidate();\r\n break;\r\n case \"colCount\":\r\n this._resetColCount();\r\n break;\r\n case \"minColWidth\":\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._resetColCount()\r\n }\r\n break;\r\n case \"readOnly\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._resetColCount()\r\n }\r\n break;\r\n case \"onFieldDataChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetColCount: function() {\r\n this._cashedColCount = null;\r\n this._invalidate()\r\n },\r\n linkEditorToDataField(editorInstance, dataField) {\r\n this.on(\"optionChanged\", args => {\r\n if (args.fullName === \"layoutData.\".concat(dataField)) {\r\n editorInstance._setOptionWithoutOptionChange(\"value\", args.value)\r\n }\r\n });\r\n editorInstance.on(\"valueChanged\", args => {\r\n var isValueReferenceType = isObject(args.value) || Array.isArray(args.value);\r\n if (!this._disableEditorValueChangedHandler && !(isValueReferenceType && args.value === args.previousValue)) {\r\n this._updateFieldValue(dataField, args.value)\r\n }\r\n })\r\n },\r\n _dimensionChanged: function() {\r\n if (\"auto\" === this.option(\"colCount\") && this.isCachedColCountObsolete()) {\r\n this._eventsStrategy.fireEvent(\"autoColCountChanged\")\r\n }\r\n },\r\n updateData: function(data, value) {\r\n var that = this;\r\n if (isObject(data)) {\r\n each(data, (function(dataField, fieldValue) {\r\n that._updateFieldValue(dataField, fieldValue)\r\n }))\r\n } else if (\"string\" === typeof data) {\r\n that._updateFieldValue(data, value)\r\n }\r\n },\r\n getEditor: function(field) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByDataField(field) || this._itemsRunTimeInfo.findWidgetInstanceByName(field)\r\n },\r\n isSingleColumnMode: function(component) {\r\n var responsiveBox = this._responsiveBox || component;\r\n if (responsiveBox) {\r\n return responsiveBox.option(\"currentScreenFactor\") === responsiveBox.option(\"singleColumnScreen\")\r\n }\r\n },\r\n getItemsRunTimeInfo: function() {\r\n return this._itemsRunTimeInfo\r\n }\r\n});\r\nregisterComponent(\"dxLayoutManager\", LayoutManager);\r\nexport default LayoutManager;\r\n","/**\r\n * DevExtreme (esm/ui/form/ui.form.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport config from \"../../core/config\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isObject,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n triggerResizeEvent,\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n defaultScreenFactorFunc,\r\n getCurrentScreenFactor,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport ValidationEngine from \"../validation_engine\";\r\nimport {\r\n default as FormItemsRunTimeInfo\r\n} from \"./ui.form.items_runtime_info\";\r\nimport TabPanel from \"../tab_panel\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nimport tryCreateItemOptionAction from \"./ui.form.item_options_actions\";\r\nimport \"./ui.form.layout_manager\";\r\nimport {\r\n concatPaths,\r\n createItemPathByIndex,\r\n getFullOptionName,\r\n getOptionNameFromFullName,\r\n tryGetTabPath,\r\n getTextWithoutSpaces,\r\n isEqualToDataFieldOrNameOrTitleOrCaption,\r\n isFullPathContainsTabs,\r\n getItemPath,\r\n convertToLayoutManagerOptions\r\n} from \"./ui.form.utils\";\r\nimport {\r\n convertToLabelMarkOptions\r\n} from \"./ui.form.layout_manager.utils\";\r\nimport {\r\n setLabelWidthByMaxLabelWidth\r\n} from \"./components/label\";\r\nimport \"../validation_summary\";\r\nimport \"../validation_group\";\r\nimport {\r\n FORM_CLASS,\r\n FIELD_ITEM_CLASS,\r\n FORM_GROUP_CLASS,\r\n FORM_GROUP_CONTENT_CLASS,\r\n FIELD_ITEM_CONTENT_HAS_GROUP_CLASS,\r\n FIELD_ITEM_CONTENT_HAS_TABS_CLASS,\r\n FORM_GROUP_WITH_CAPTION_CLASS,\r\n FORM_GROUP_CAPTION_CLASS,\r\n FIELD_ITEM_TAB_CLASS,\r\n FORM_FIELD_ITEM_COL_CLASS,\r\n GROUP_COL_COUNT_CLASS,\r\n GROUP_COL_COUNT_ATTR,\r\n FIELD_ITEM_CONTENT_CLASS,\r\n FORM_VALIDATION_SUMMARY,\r\n ROOT_SIMPLE_ITEM_CLASS,\r\n FORM_UNDERLINED_CLASS\r\n} from \"./constants\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"../toolbar/constants\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar ITEM_OPTIONS_FOR_VALIDATION_UPDATING = [\"items\", \"isRequired\", \"validationRules\", \"visible\"];\r\nvar Form = Widget.inherit({\r\n _init: function() {\r\n this.callBase();\r\n this._cachedColCountOptions = [];\r\n this._itemsRunTimeInfo = new FormItemsRunTimeInfo;\r\n this._groupsColCount = [];\r\n this._attachSyncSubscriptions()\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n formID: \"dx-\" + new Guid,\r\n formData: {},\r\n colCount: 1,\r\n screenByWidth: defaultScreenFactorFunc,\r\n colCountByScreen: void 0,\r\n labelLocation: \"left\",\r\n readOnly: false,\r\n onFieldDataChanged: null,\r\n customizeItem: null,\r\n onEditorEnterKey: null,\r\n minColWidth: 200,\r\n alignItemLabels: true,\r\n alignItemLabelsInAllGroups: true,\r\n alignRootItemLabels: true,\r\n showColonAfterLabel: true,\r\n showRequiredMark: true,\r\n showOptionalMark: false,\r\n requiredMark: \"*\",\r\n optionalMark: messageLocalization.format(\"dxForm-optionalMark\"),\r\n requiredMessage: messageLocalization.getFormatter(\"dxForm-requiredMessage\"),\r\n showValidationSummary: false,\r\n items: void 0,\r\n scrollingEnabled: false,\r\n validationGroup: void 0,\r\n stylingMode: config().editorStylingMode,\r\n labelMode: \"outside\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n showColonAfterLabel: false,\r\n labelLocation: \"top\"\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n formData: true,\r\n validationGroup: true\r\n })\r\n },\r\n _getGroupColCount: function($element) {\r\n return parseInt($element.attr(GROUP_COL_COUNT_ATTR))\r\n },\r\n _applyLabelsWidthByCol: function($container, index) {\r\n var options = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : {};\r\n var labelMarkOptions = arguments.length > 3 ? arguments[3] : void 0;\r\n var fieldItemClass = options.inOneColumn ? FIELD_ITEM_CLASS : FORM_FIELD_ITEM_COL_CLASS + index;\r\n var cssExcludeTabbedSelector = options.excludeTabbed ? \":not(.\".concat(FIELD_ITEM_TAB_CLASS, \")\") : \"\";\r\n setLabelWidthByMaxLabelWidth($container, \".\".concat(fieldItemClass).concat(cssExcludeTabbedSelector), labelMarkOptions);\r\n return\r\n },\r\n _applyLabelsWidth: function($container, excludeTabbed, inOneColumn, colCount, labelMarkOptions) {\r\n colCount = inOneColumn ? 1 : colCount || this._getGroupColCount($container);\r\n var applyLabelsOptions = {\r\n excludeTabbed: excludeTabbed,\r\n inOneColumn: inOneColumn\r\n };\r\n var i;\r\n for (i = 0; i < colCount; i++) {\r\n this._applyLabelsWidthByCol($container, i, applyLabelsOptions, labelMarkOptions)\r\n }\r\n },\r\n _getGroupElementsInColumn: function($container, columnIndex, colCount) {\r\n var cssColCountSelector = isDefined(colCount) ? \".\" + GROUP_COL_COUNT_CLASS + colCount : \"\";\r\n var groupSelector = \".\" + FORM_FIELD_ITEM_COL_CLASS + columnIndex + \" > .\" + FIELD_ITEM_CONTENT_CLASS + \" > .\" + FORM_GROUP_CLASS + cssColCountSelector;\r\n return $container.find(groupSelector)\r\n },\r\n _applyLabelsWidthWithGroups: function($container, colCount, excludeTabbed, labelMarkOptions) {\r\n if (true === this.option(\"alignRootItemLabels\")) {\r\n var $rootSimpleItems = $container.find(\".\".concat(ROOT_SIMPLE_ITEM_CLASS));\r\n for (var colIndex = 0; colIndex < colCount; colIndex++) {\r\n this._applyLabelsWidthByCol($rootSimpleItems, colIndex, excludeTabbed, labelMarkOptions)\r\n }\r\n }\r\n var alignItemLabelsInAllGroups = this.option(\"alignItemLabelsInAllGroups\");\r\n if (alignItemLabelsInAllGroups) {\r\n this._applyLabelsWidthWithNestedGroups($container, colCount, excludeTabbed, labelMarkOptions)\r\n } else {\r\n var $groups = this.$element().find(\".\" + FORM_GROUP_CLASS);\r\n var i;\r\n for (i = 0; i < $groups.length; i++) {\r\n this._applyLabelsWidth($groups.eq(i), excludeTabbed, void 0, void 0, labelMarkOptions)\r\n }\r\n }\r\n },\r\n _applyLabelsWidthWithNestedGroups: function($container, colCount, excludeTabbed, labelMarkOptions) {\r\n var applyLabelsOptions = {\r\n excludeTabbed: excludeTabbed\r\n };\r\n var colIndex;\r\n var groupsColIndex;\r\n var groupColIndex;\r\n var $groupsByCol;\r\n for (colIndex = 0; colIndex < colCount; colIndex++) {\r\n $groupsByCol = this._getGroupElementsInColumn($container, colIndex);\r\n this._applyLabelsWidthByCol($groupsByCol, 0, applyLabelsOptions, labelMarkOptions);\r\n for (groupsColIndex = 0; groupsColIndex < this._groupsColCount.length; groupsColIndex++) {\r\n $groupsByCol = this._getGroupElementsInColumn($container, colIndex, this._groupsColCount[groupsColIndex]);\r\n var groupColCount = this._getGroupColCount($groupsByCol);\r\n for (groupColIndex = 1; groupColIndex < groupColCount; groupColIndex++) {\r\n this._applyLabelsWidthByCol($groupsByCol, groupColIndex, applyLabelsOptions, labelMarkOptions)\r\n }\r\n }\r\n }\r\n },\r\n _labelLocation: function() {\r\n return this.option(\"labelLocation\")\r\n },\r\n _alignLabelsInColumn: function(_ref) {\r\n var {\r\n layoutManager: layoutManager,\r\n inOneColumn: inOneColumn,\r\n $container: $container,\r\n excludeTabbed: excludeTabbed,\r\n items: items\r\n } = _ref;\r\n if (!hasWindow() || \"top\" === this._labelLocation()) {\r\n return\r\n }\r\n var labelMarkOptions = convertToLabelMarkOptions(layoutManager._getMarkOptions());\r\n if (inOneColumn) {\r\n this._applyLabelsWidth($container, excludeTabbed, true, void 0, labelMarkOptions)\r\n } else if (this._checkGrouping(items)) {\r\n this._applyLabelsWidthWithGroups($container, layoutManager._getColCount(), excludeTabbed, labelMarkOptions)\r\n } else {\r\n this._applyLabelsWidth($container, excludeTabbed, false, layoutManager._getColCount(), labelMarkOptions)\r\n }\r\n },\r\n _prepareFormData: function() {\r\n if (!isDefined(this.option(\"formData\"))) {\r\n this.option(\"formData\", {})\r\n }\r\n },\r\n _setStylingModeClass: function() {\r\n if (\"underlined\" === this.option(\"stylingMode\")) {\r\n this.$element().addClass(FORM_UNDERLINED_CLASS)\r\n }\r\n },\r\n _initMarkup: function() {\r\n ValidationEngine.addGroup(this._getValidationGroup());\r\n this._clearCachedInstances();\r\n this._prepareFormData();\r\n this.$element().addClass(FORM_CLASS);\r\n this._setStylingModeClass();\r\n this.callBase();\r\n this.setAria(\"role\", \"form\", this.$element());\r\n if (this.option(\"scrollingEnabled\")) {\r\n this._renderScrollable()\r\n }\r\n this._renderLayout();\r\n this._renderValidationSummary();\r\n this._lastMarkupScreenFactor = this._targetScreenFactor || this._getCurrentScreenFactor()\r\n },\r\n _getCurrentScreenFactor: function() {\r\n return hasWindow() ? getCurrentScreenFactor(this.option(\"screenByWidth\")) : \"lg\"\r\n },\r\n _clearCachedInstances: function() {\r\n this._itemsRunTimeInfo.clear();\r\n this._cachedLayoutManagers = []\r\n },\r\n _alignLabels: function(layoutManager, inOneColumn) {\r\n this._alignLabelsInColumn({\r\n $container: this.$element(),\r\n layoutManager: layoutManager,\r\n excludeTabbed: true,\r\n items: this.option(\"items\"),\r\n inOneColumn: inOneColumn\r\n });\r\n triggerResizeEvent(this.$element().find(\".\".concat(TOOLBAR_CLASS)))\r\n },\r\n _clean: function() {\r\n this._clearValidationSummary();\r\n this.callBase();\r\n this._groupsColCount = [];\r\n this._cachedColCountOptions = [];\r\n this._lastMarkupScreenFactor = void 0\r\n },\r\n _renderScrollable: function() {\r\n var useNativeScrolling = this.option(\"useNativeScrolling\");\r\n this._scrollable = new Scrollable(this.$element(), {\r\n useNative: !!useNativeScrolling,\r\n useSimulatedScrollbar: !useNativeScrolling,\r\n useKeyboard: false,\r\n direction: \"both\",\r\n bounceEnabled: false\r\n })\r\n },\r\n _getContent: function() {\r\n return this.option(\"scrollingEnabled\") ? $(this._scrollable.content()) : this.$element()\r\n },\r\n _clearValidationSummary: function() {\r\n var _this$_$validationSum;\r\n null === (_this$_$validationSum = this._$validationSummary) || void 0 === _this$_$validationSum ? void 0 : _this$_$validationSum.remove();\r\n this._$validationSummary = void 0;\r\n this._validationSummary = void 0\r\n },\r\n _renderValidationSummary: function() {\r\n this._clearValidationSummary();\r\n if (this.option(\"showValidationSummary\")) {\r\n this._$validationSummary = $(\"<div>\").addClass(FORM_VALIDATION_SUMMARY).appendTo(this._getContent());\r\n this._validationSummary = this._$validationSummary.dxValidationSummary({\r\n validationGroup: this._getValidationGroup()\r\n }).dxValidationSummary(\"instance\")\r\n }\r\n },\r\n _prepareItems(items, parentIsTabbedItem, currentPath, isTabs) {\r\n if (items) {\r\n var result = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var path = concatPaths(currentPath, createItemPathByIndex(i, isTabs));\r\n var itemRunTimeInfo = {\r\n item: item,\r\n itemIndex: i,\r\n path: path\r\n };\r\n var guid = this._itemsRunTimeInfo.add(itemRunTimeInfo);\r\n if (isString(item)) {\r\n item = {\r\n dataField: item\r\n }\r\n }\r\n if (isObject(item)) {\r\n var preparedItem = _extends({}, item);\r\n itemRunTimeInfo.preparedItem = preparedItem;\r\n preparedItem.guid = guid;\r\n this._tryPrepareGroupItem(preparedItem);\r\n this._tryPrepareTabbedItem(preparedItem, path);\r\n this._tryPrepareItemTemplate(preparedItem);\r\n if (parentIsTabbedItem) {\r\n preparedItem.cssItemClass = FIELD_ITEM_TAB_CLASS\r\n }\r\n if (preparedItem.items) {\r\n preparedItem.items = this._prepareItems(preparedItem.items, parentIsTabbedItem, path)\r\n }\r\n result.push(preparedItem)\r\n } else {\r\n result.push(item)\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n _tryPrepareGroupItem: function(item) {\r\n if (\"group\" === item.itemType) {\r\n item.alignItemLabels = ensureDefined(item.alignItemLabels, true);\r\n item._prepareGroupItemTemplate = itemTemplate => {\r\n if (item.template) {\r\n item.groupContentTemplate = this._getTemplate(itemTemplate)\r\n }\r\n item.template = this._itemGroupTemplate.bind(this, item)\r\n };\r\n item._prepareGroupItemTemplate(item.template)\r\n }\r\n },\r\n _tryPrepareTabbedItem: function(item, path) {\r\n if (\"tabbed\" === item.itemType) {\r\n item.template = this._itemTabbedTemplate.bind(this, item);\r\n item.tabs = this._prepareItems(item.tabs, true, path, true)\r\n }\r\n },\r\n _tryPrepareItemTemplate: function(item) {\r\n if (item.template) {\r\n item.template = this._getTemplate(item.template)\r\n }\r\n },\r\n _checkGrouping: function(items) {\r\n if (items) {\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (\"group\" === item.itemType) {\r\n return true\r\n }\r\n }\r\n }\r\n },\r\n _renderLayout: function() {\r\n var that = this;\r\n var items = that.option(\"items\");\r\n var $content = that._getContent();\r\n items = that._prepareItems(items);\r\n that._rootLayoutManager = that._renderLayoutManager($content, this._createLayoutManagerOptions(items, {\r\n isRoot: true,\r\n colCount: that.option(\"colCount\"),\r\n alignItemLabels: that.option(\"alignItemLabels\"),\r\n screenByWidth: this.option(\"screenByWidth\"),\r\n colCountByScreen: this.option(\"colCountByScreen\"),\r\n onLayoutChanged: function(inOneColumn) {\r\n that._alignLabels.bind(that)(that._rootLayoutManager, inOneColumn)\r\n },\r\n onContentReady: function(e) {\r\n that._alignLabels(e.component, e.component.isSingleColumnMode())\r\n }\r\n }))\r\n },\r\n _tryGetItemsForTemplate: function(item) {\r\n return item.items || []\r\n },\r\n _itemTabbedTemplate: function(item, e, $container) {\r\n var $tabPanel = $(\"<div>\").appendTo($container);\r\n var tabPanelOptions = extend({}, item.tabPanelOptions, {\r\n dataSource: item.tabs,\r\n onItemRendered: args => {\r\n var _item$tabPanelOptions, _item$tabPanelOptions2;\r\n null === (_item$tabPanelOptions = item.tabPanelOptions) || void 0 === _item$tabPanelOptions ? void 0 : null === (_item$tabPanelOptions2 = _item$tabPanelOptions.onItemRendered) || void 0 === _item$tabPanelOptions2 ? void 0 : _item$tabPanelOptions2.call(_item$tabPanelOptions, args);\r\n triggerShownEvent(args.itemElement)\r\n },\r\n itemTemplate: (itemData, e, container) => {\r\n var $container = $(container);\r\n var alignItemLabels = ensureDefined(itemData.alignItemLabels, true);\r\n var layoutManager = this._renderLayoutManager($container, this._createLayoutManagerOptions(this._tryGetItemsForTemplate(itemData), {\r\n colCount: itemData.colCount,\r\n alignItemLabels: alignItemLabels,\r\n screenByWidth: this.option(\"screenByWidth\"),\r\n colCountByScreen: itemData.colCountByScreen,\r\n cssItemClass: itemData.cssItemClass,\r\n onLayoutChanged: inOneColumn => {\r\n this._alignLabelsInColumn({\r\n $container: $container,\r\n layoutManager: layoutManager,\r\n items: itemData.items,\r\n inOneColumn: inOneColumn\r\n })\r\n }\r\n }));\r\n if (this._itemsRunTimeInfo) {\r\n this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(itemData.guid, {\r\n layoutManager: layoutManager\r\n })\r\n }\r\n if (alignItemLabels) {\r\n this._alignLabelsInColumn({\r\n $container: $container,\r\n layoutManager: layoutManager,\r\n items: itemData.items,\r\n inOneColumn: layoutManager.isSingleColumnMode()\r\n })\r\n }\r\n }\r\n });\r\n var tryUpdateTabPanelInstance = (items, instance) => {\r\n if (Array.isArray(items)) {\r\n items.forEach(item => this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(item.guid, {\r\n widgetInstance: instance\r\n }))\r\n }\r\n };\r\n var tabPanel = this._createComponent($tabPanel, TabPanel, tabPanelOptions);\r\n $($container).parent().addClass(FIELD_ITEM_CONTENT_HAS_TABS_CLASS);\r\n tabPanel.on(\"optionChanged\", e => {\r\n if (\"dataSource\" === e.fullName) {\r\n tryUpdateTabPanelInstance(e.value, e.component)\r\n }\r\n });\r\n tryUpdateTabPanelInstance([{\r\n guid: item.guid\r\n }, ...item.tabs], tabPanel)\r\n },\r\n _itemGroupTemplate: function(item, e, $container) {\r\n var $group = $(\"<div>\").toggleClass(FORM_GROUP_WITH_CAPTION_CLASS, isDefined(item.caption) && item.caption.length).addClass(FORM_GROUP_CLASS).appendTo($container);\r\n $($container).parent().addClass(FIELD_ITEM_CONTENT_HAS_GROUP_CLASS);\r\n var colCount;\r\n var layoutManager;\r\n if (item.caption) {\r\n $(\"<span>\").addClass(FORM_GROUP_CAPTION_CLASS).text(item.caption).appendTo($group)\r\n }\r\n var $groupContent = $(\"<div>\").addClass(FORM_GROUP_CONTENT_CLASS).appendTo($group);\r\n if (item.groupContentTemplate) {\r\n item._renderGroupContentTemplate = () => {\r\n $groupContent.empty();\r\n var data = {\r\n formData: this.option(\"formData\"),\r\n component: this\r\n };\r\n item.groupContentTemplate.render({\r\n model: data,\r\n container: getPublicElement($groupContent)\r\n })\r\n };\r\n item._renderGroupContentTemplate()\r\n } else {\r\n layoutManager = this._renderLayoutManager($groupContent, this._createLayoutManagerOptions(this._tryGetItemsForTemplate(item), {\r\n colCount: item.colCount,\r\n colCountByScreen: item.colCountByScreen,\r\n alignItemLabels: item.alignItemLabels,\r\n cssItemClass: item.cssItemClass\r\n }));\r\n this._itemsRunTimeInfo && this._itemsRunTimeInfo.extendRunTimeItemInfoByKey(item.guid, {\r\n layoutManager: layoutManager\r\n });\r\n colCount = layoutManager._getColCount();\r\n if (!this._groupsColCount.includes(colCount)) {\r\n this._groupsColCount.push(colCount)\r\n }\r\n $group.addClass(GROUP_COL_COUNT_CLASS + colCount);\r\n $group.attr(GROUP_COL_COUNT_ATTR, colCount)\r\n }\r\n },\r\n _createLayoutManagerOptions: function(items, extendedLayoutManagerOptions) {\r\n return convertToLayoutManagerOptions({\r\n form: this,\r\n formOptions: this.option(),\r\n $formElement: this.$element(),\r\n items: items,\r\n validationGroup: this._getValidationGroup(),\r\n extendedLayoutManagerOptions: extendedLayoutManagerOptions,\r\n onFieldDataChanged: args => {\r\n if (!this._isDataUpdating) {\r\n this._triggerOnFieldDataChanged(args)\r\n }\r\n },\r\n onContentReady: args => {\r\n this._itemsRunTimeInfo.addItemsOrExtendFrom(args.component._itemsRunTimeInfo);\r\n extendedLayoutManagerOptions.onContentReady && extendedLayoutManagerOptions.onContentReady(args)\r\n },\r\n onDisposing: _ref2 => {\r\n var {\r\n component: component\r\n } = _ref2;\r\n var nestedItemsRunTimeInfo = component.getItemsRunTimeInfo();\r\n this._itemsRunTimeInfo.removeItemsByItems(nestedItemsRunTimeInfo)\r\n },\r\n onFieldItemRendered: () => {\r\n var _this$_validationSumm;\r\n null === (_this$_validationSumm = this._validationSummary) || void 0 === _this$_validationSumm ? void 0 : _this$_validationSumm.refreshValidationGroup()\r\n }\r\n })\r\n },\r\n _renderLayoutManager: function($parent, layoutManagerOptions) {\r\n var baseColCountByScreen = {\r\n lg: layoutManagerOptions.colCount,\r\n md: layoutManagerOptions.colCount,\r\n sm: layoutManagerOptions.colCount,\r\n xs: 1\r\n };\r\n this._cachedColCountOptions.push({\r\n colCountByScreen: extend(baseColCountByScreen, layoutManagerOptions.colCountByScreen)\r\n });\r\n var $element = $(\"<div>\");\r\n $element.appendTo($parent);\r\n var instance = this._createComponent($element, \"dxLayoutManager\", layoutManagerOptions);\r\n instance.on(\"autoColCountChanged\", () => {\r\n this._clearAutoColCountChangedTimeout();\r\n this.autoColCountChangedTimeoutId = setTimeout(() => !this._disposed && this._refresh(), 0)\r\n });\r\n this._cachedLayoutManagers.push(instance);\r\n return instance\r\n },\r\n _getValidationGroup: function() {\r\n return this.option(\"validationGroup\") || this\r\n },\r\n _createComponent: function($element, type, config) {\r\n config = config || {};\r\n this._extendConfig(config, {\r\n readOnly: this.option(\"readOnly\")\r\n });\r\n return this.callBase($element, type, config)\r\n },\r\n _attachSyncSubscriptions: function() {\r\n var that = this;\r\n that.on(\"optionChanged\", (function(args) {\r\n var optionFullName = args.fullName;\r\n if (\"formData\" === optionFullName) {\r\n if (!isDefined(args.value)) {\r\n that._options.silent(\"formData\", args.value = {})\r\n }\r\n that._triggerOnFieldDataChangedByDataSet(args.value)\r\n }\r\n if (that._cachedLayoutManagers.length) {\r\n each(that._cachedLayoutManagers, (function(index, layoutManager) {\r\n if (\"formData\" === optionFullName) {\r\n that._isDataUpdating = true;\r\n layoutManager.option(\"layoutData\", args.value);\r\n that._isDataUpdating = false\r\n }\r\n if (\"readOnly\" === args.name || \"disabled\" === args.name) {\r\n layoutManager.option(optionFullName, args.value)\r\n }\r\n }))\r\n }\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n var splitFullName = args.fullName.split(\".\");\r\n if (splitFullName.length > 1 && -1 !== splitFullName[0].search(\"items\") && this._itemsOptionChangedHandler(args)) {\r\n return\r\n }\r\n if (splitFullName.length > 1 && -1 !== splitFullName[0].search(\"formData\") && this._formDataOptionChangedHandler(args)) {\r\n return\r\n }\r\n this._defaultOptionChangedHandler(args)\r\n },\r\n _defaultOptionChangedHandler: function(args) {\r\n switch (args.name) {\r\n case \"formData\":\r\n if (!this.option(\"items\")) {\r\n this._invalidate()\r\n } else if (isEmptyObject(args.value)) {\r\n this._resetValues()\r\n }\r\n break;\r\n case \"onFieldDataChanged\":\r\n break;\r\n case \"items\":\r\n case \"colCount\":\r\n case \"onEditorEnterKey\":\r\n case \"labelLocation\":\r\n case \"labelMode\":\r\n case \"alignItemLabels\":\r\n case \"showColonAfterLabel\":\r\n case \"customizeItem\":\r\n case \"alignItemLabelsInAllGroups\":\r\n case \"showRequiredMark\":\r\n case \"showOptionalMark\":\r\n case \"requiredMark\":\r\n case \"optionalMark\":\r\n case \"requiredMessage\":\r\n case \"scrollingEnabled\":\r\n case \"formID\":\r\n case \"colCountByScreen\":\r\n case \"screenByWidth\":\r\n case \"stylingMode\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationSummary\":\r\n this._renderValidationSummary();\r\n break;\r\n case \"minColWidth\":\r\n if (\"auto\" === this.option(\"colCount\")) {\r\n this._invalidate()\r\n }\r\n break;\r\n case \"alignRootItemLabels\":\r\n case \"readOnly\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._rootLayoutManager.option(args.name, args.value);\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode());\r\n break;\r\n case \"validationGroup\":\r\n ValidationEngine.removeGroup(args.previousValue || this);\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemsOptionChangedHandler: function(args) {\r\n var nameParts = args.fullName.split(\".\");\r\n var value = args.value;\r\n var itemPath = this._getItemPath(nameParts);\r\n var item = this.option(itemPath);\r\n var optionNameWithoutPath = args.fullName.replace(itemPath + \".\", \"\");\r\n var simpleOptionName = optionNameWithoutPath.split(\".\")[0].replace(/\\[\\d+]/, \"\");\r\n var itemAction = this._tryCreateItemOptionAction(simpleOptionName, item, item[simpleOptionName], args.previousValue, itemPath);\r\n var result = this._tryExecuteItemOptionAction(itemAction) || this._tryChangeLayoutManagerItemOption(args.fullName, value);\r\n if (!result && item) {\r\n this._changeItemOption(item, optionNameWithoutPath, value);\r\n var items = this._generateItemsFromData(this.option(\"items\"));\r\n this.option(\"items\", items);\r\n result = true\r\n }\r\n return result\r\n },\r\n _formDataOptionChangedHandler: function(args) {\r\n var nameParts = args.fullName.split(\".\");\r\n var value = args.value;\r\n var dataField = nameParts.slice(1).join(\".\");\r\n var editor = this.getEditor(dataField);\r\n if (editor) {\r\n editor.option(\"value\", value)\r\n } else {\r\n this._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: value\r\n })\r\n }\r\n return true\r\n },\r\n _tryCreateItemOptionAction: function(optionName, item, value, previousValue, itemPath) {\r\n if (\"tabs\" === optionName) {\r\n this._itemsRunTimeInfo.removeItemsByPathStartWith(\"\".concat(itemPath, \".tabs\"));\r\n value = this._prepareItems(value, true, itemPath, true)\r\n }\r\n return tryCreateItemOptionAction(optionName, {\r\n item: item,\r\n value: value,\r\n previousValue: previousValue,\r\n itemsRunTimeInfo: this._itemsRunTimeInfo\r\n })\r\n },\r\n _tryExecuteItemOptionAction: function(action) {\r\n return action && action.tryExecute()\r\n },\r\n _updateValidationGroupAndSummaryIfNeeded: function(fullName) {\r\n var optionName = getOptionNameFromFullName(fullName);\r\n if (ITEM_OPTIONS_FOR_VALIDATION_UPDATING.indexOf(optionName) > -1) {\r\n ValidationEngine.addGroup(this._getValidationGroup());\r\n if (this.option(\"showValidationSummary\")) {\r\n var _this$_validationSumm2;\r\n null === (_this$_validationSumm2 = this._validationSummary) || void 0 === _this$_validationSumm2 ? void 0 : _this$_validationSumm2.refreshValidationGroup()\r\n }\r\n }\r\n },\r\n _setLayoutManagerItemOption(layoutManager, optionName, value, path) {\r\n if (this._updateLockCount > 0) {\r\n !layoutManager._updateLockCount && layoutManager.beginUpdate();\r\n var key = this._itemsRunTimeInfo.findKeyByPath(path);\r\n this.postponedOperations.add(key, () => {\r\n !layoutManager._disposed && layoutManager.endUpdate();\r\n return (new Deferred).resolve()\r\n })\r\n }\r\n var contentReadyHandler = e => {\r\n e.component.off(\"contentReady\", contentReadyHandler);\r\n if (isFullPathContainsTabs(path)) {\r\n var tabPath = tryGetTabPath(path);\r\n var tabLayoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(tabPath);\r\n if (tabLayoutManager) {\r\n this._alignLabelsInColumn({\r\n items: tabLayoutManager.option(\"items\"),\r\n layoutManager: tabLayoutManager,\r\n $container: tabLayoutManager.$element(),\r\n inOneColumn: tabLayoutManager.isSingleColumnMode()\r\n })\r\n }\r\n } else {\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode())\r\n }\r\n };\r\n layoutManager.on(\"contentReady\", contentReadyHandler);\r\n layoutManager.option(optionName, value);\r\n this._updateValidationGroupAndSummaryIfNeeded(optionName)\r\n },\r\n _tryChangeLayoutManagerItemOption(fullName, value) {\r\n var nameParts = fullName.split(\".\");\r\n var optionName = getOptionNameFromFullName(fullName);\r\n if (\"items\" === optionName && nameParts.length > 1) {\r\n var itemPath = this._getItemPath(nameParts);\r\n var layoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(itemPath);\r\n if (layoutManager) {\r\n this._itemsRunTimeInfo.removeItemsByItems(layoutManager.getItemsRunTimeInfo());\r\n var items = this._prepareItems(value, false, itemPath);\r\n this._setLayoutManagerItemOption(layoutManager, optionName, items, itemPath);\r\n return true\r\n }\r\n } else if (nameParts.length > 2) {\r\n var endPartIndex = nameParts.length - 2;\r\n var _itemPath = this._getItemPath(nameParts.slice(0, endPartIndex));\r\n var _layoutManager = this._itemsRunTimeInfo.findGroupOrTabLayoutManagerByPath(_itemPath);\r\n if (_layoutManager) {\r\n var fullOptionName = getFullOptionName(nameParts[endPartIndex], optionName);\r\n if (\"editorType\" === optionName) {\r\n if (_layoutManager.option(fullOptionName) !== value) {\r\n return false\r\n }\r\n }\r\n if (\"visible\" === optionName) {\r\n var formItems = this.option(getFullOptionName(_itemPath, \"items\"));\r\n if (formItems && formItems.length) {\r\n var layoutManagerItems = _layoutManager.option(\"items\");\r\n formItems.forEach((item, index) => {\r\n var layoutItem = layoutManagerItems[index];\r\n layoutItem.visibleIndex = item.visibleIndex\r\n })\r\n }\r\n }\r\n this._setLayoutManagerItemOption(_layoutManager, fullOptionName, value, _itemPath);\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _tryChangeLayoutManagerItemOptions(itemPath, options) {\r\n var result;\r\n this.beginUpdate();\r\n each(options, (optionName, optionValue) => {\r\n result = this._tryChangeLayoutManagerItemOption(getFullOptionName(itemPath, optionName), optionValue);\r\n if (!result) {\r\n return false\r\n }\r\n });\r\n this.endUpdate();\r\n return result\r\n },\r\n _getItemPath: function(nameParts) {\r\n var itemPath = nameParts[0];\r\n var i;\r\n for (i = 1; i < nameParts.length; i++) {\r\n if (-1 !== nameParts[i].search(/items\\[\\d+]|tabs\\[\\d+]/)) {\r\n itemPath += \".\" + nameParts[i]\r\n } else {\r\n break\r\n }\r\n }\r\n return itemPath\r\n },\r\n _triggerOnFieldDataChanged: function(args) {\r\n this._createActionByOption(\"onFieldDataChanged\")(args)\r\n },\r\n _triggerOnFieldDataChangedByDataSet: function(data) {\r\n var that = this;\r\n if (data && isObject(data)) {\r\n each(data, (function(dataField, value) {\r\n that._triggerOnFieldDataChanged({\r\n dataField: dataField,\r\n value: value\r\n })\r\n }))\r\n }\r\n },\r\n _updateFieldValue: function(dataField, value) {\r\n if (isDefined(this.option(\"formData\"))) {\r\n var editor = this.getEditor(dataField);\r\n this.option(\"formData.\" + dataField, value);\r\n if (editor) {\r\n var editorValue = editor.option(\"value\");\r\n if (editorValue !== value) {\r\n editor.option(\"value\", value)\r\n }\r\n }\r\n }\r\n },\r\n _generateItemsFromData: function(items) {\r\n var formData = this.option(\"formData\");\r\n var result = [];\r\n if (!items && isDefined(formData)) {\r\n each(formData, (function(dataField) {\r\n result.push({\r\n dataField: dataField\r\n })\r\n }))\r\n }\r\n if (items) {\r\n each(items, (function(index, item) {\r\n if (isObject(item)) {\r\n result.push(item)\r\n } else {\r\n result.push({\r\n dataField: item\r\n })\r\n }\r\n }))\r\n }\r\n return result\r\n },\r\n _getItemByField: function(field, items) {\r\n var that = this;\r\n var fieldParts = isObject(field) ? field : that._getFieldParts(field);\r\n var fieldName = fieldParts.fieldName;\r\n var fieldPath = fieldParts.fieldPath;\r\n var resultItem;\r\n if (items.length) {\r\n each(items, (function(index, item) {\r\n var itemType = item.itemType;\r\n if (fieldPath.length) {\r\n var path = fieldPath.slice();\r\n item = that._getItemByFieldPath(path, fieldName, item)\r\n } else if (\"group\" === itemType && !(item.caption || item.name) || \"tabbed\" === itemType && !item.name) {\r\n var subItemsField = that._getSubItemField(itemType);\r\n item.items = that._generateItemsFromData(item.items);\r\n item = that._getItemByField({\r\n fieldName: fieldName,\r\n fieldPath: fieldPath\r\n }, item[subItemsField])\r\n }\r\n if (isEqualToDataFieldOrNameOrTitleOrCaption(item, fieldName)) {\r\n resultItem = item;\r\n return false\r\n }\r\n }))\r\n }\r\n return resultItem\r\n },\r\n _getFieldParts: function(field) {\r\n var fieldName = field;\r\n var separatorIndex = fieldName.indexOf(\".\");\r\n var resultPath = [];\r\n while (-1 !== separatorIndex) {\r\n resultPath.push(fieldName.substr(0, separatorIndex));\r\n fieldName = fieldName.substr(separatorIndex + 1);\r\n separatorIndex = fieldName.indexOf(\".\")\r\n }\r\n return {\r\n fieldName: fieldName,\r\n fieldPath: resultPath.reverse()\r\n }\r\n },\r\n _getItemByFieldPath: function(path, fieldName, item) {\r\n var itemType = item.itemType;\r\n var subItemsField = this._getSubItemField(itemType);\r\n var isItemWithSubItems = \"group\" === itemType || \"tabbed\" === itemType || item.title;\r\n var result;\r\n do {\r\n if (isItemWithSubItems) {\r\n var name = item.name || item.caption || item.title;\r\n var isGroupWithName = isDefined(name);\r\n var nameWithoutSpaces = getTextWithoutSpaces(name);\r\n var pathNode = void 0;\r\n item[subItemsField] = this._generateItemsFromData(item[subItemsField]);\r\n if (isGroupWithName) {\r\n pathNode = path.pop()\r\n }\r\n if (!path.length) {\r\n result = this._getItemByField(fieldName, item[subItemsField]);\r\n if (result) {\r\n break\r\n }\r\n }\r\n if (!isGroupWithName || isGroupWithName && nameWithoutSpaces === pathNode) {\r\n if (path.length) {\r\n result = this._searchItemInEverySubItem(path, fieldName, item[subItemsField])\r\n }\r\n }\r\n } else {\r\n break\r\n }\r\n } while (path.length && !isDefined(result));\r\n return result\r\n },\r\n _getSubItemField: function(itemType) {\r\n return \"tabbed\" === itemType ? \"tabs\" : \"items\"\r\n },\r\n _searchItemInEverySubItem: function(path, fieldName, items) {\r\n var that = this;\r\n var result;\r\n each(items, (function(index, groupItem) {\r\n result = that._getItemByFieldPath(path.slice(), fieldName, groupItem);\r\n if (result) {\r\n return false\r\n }\r\n }));\r\n if (!result) {\r\n result = false\r\n }\r\n return result\r\n },\r\n _changeItemOption: function(item, option, value) {\r\n if (isObject(item)) {\r\n item[option] = value\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n var currentScreenFactor = this._getCurrentScreenFactor();\r\n if (this._lastMarkupScreenFactor !== currentScreenFactor) {\r\n if (this._isColCountChanged(this._lastMarkupScreenFactor, currentScreenFactor)) {\r\n this._targetScreenFactor = currentScreenFactor;\r\n this._refresh();\r\n this._targetScreenFactor = void 0\r\n }\r\n this._lastMarkupScreenFactor = currentScreenFactor\r\n }\r\n },\r\n _isColCountChanged: function(oldScreenSize, newScreenSize) {\r\n var isChanged = false;\r\n each(this._cachedColCountOptions, (function(index, item) {\r\n if (item.colCountByScreen[oldScreenSize] !== item.colCountByScreen[newScreenSize]) {\r\n isChanged = true;\r\n return false\r\n }\r\n }));\r\n return isChanged\r\n },\r\n _refresh: function() {\r\n var editorSelector = \".\" + FOCUSED_STATE_CLASS + \" input, .\" + FOCUSED_STATE_CLASS + \" textarea\";\r\n eventsEngine.trigger(this.$element().find(editorSelector), \"change\");\r\n this.callBase()\r\n },\r\n _resetValues: function() {\r\n this._itemsRunTimeInfo.each((function(_, itemRunTimeInfo) {\r\n if (isDefined(itemRunTimeInfo.widgetInstance) && Editor.isEditor(itemRunTimeInfo.widgetInstance)) {\r\n itemRunTimeInfo.widgetInstance.reset();\r\n itemRunTimeInfo.widgetInstance.option(\"isValid\", true)\r\n }\r\n }));\r\n ValidationEngine.resetGroup(this._getValidationGroup())\r\n },\r\n _updateData: function(data, value, isComplexData) {\r\n var that = this;\r\n var _data = isComplexData ? value : data;\r\n if (isObject(_data)) {\r\n each(_data, (function(dataField, fieldValue) {\r\n that._updateData(isComplexData ? data + \".\" + dataField : dataField, fieldValue, isObject(fieldValue))\r\n }))\r\n } else if (isString(data)) {\r\n that._updateFieldValue(data, value)\r\n }\r\n },\r\n registerKeyHandler: function(key, handler) {\r\n this.callBase(key, handler);\r\n this._itemsRunTimeInfo.each((function(_, itemRunTimeInfo) {\r\n if (isDefined(itemRunTimeInfo.widgetInstance)) {\r\n itemRunTimeInfo.widgetInstance.registerKeyHandler(key, handler)\r\n }\r\n }))\r\n },\r\n _focusTarget: function() {\r\n return this.$element().find(\".\" + FIELD_ITEM_CONTENT_CLASS + \" [tabindex]\").first()\r\n },\r\n _visibilityChanged: function() {\r\n this._alignLabels(this._rootLayoutManager, this._rootLayoutManager.isSingleColumnMode())\r\n },\r\n _clearAutoColCountChangedTimeout: function() {\r\n if (this.autoColCountChangedTimeoutId) {\r\n clearTimeout(this.autoColCountChangedTimeoutId);\r\n this.autoColCountChangedTimeoutId = void 0\r\n }\r\n },\r\n _dispose: function() {\r\n this._clearAutoColCountChangedTimeout();\r\n ValidationEngine.removeGroup(this._getValidationGroup());\r\n this.callBase()\r\n },\r\n resetValues: function() {\r\n this._resetValues()\r\n },\r\n updateData: function(data, value) {\r\n this._updateData(data, value)\r\n },\r\n getEditor: function(dataField) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByDataField(dataField) || this._itemsRunTimeInfo.findWidgetInstanceByName(dataField)\r\n },\r\n getButton: function(name) {\r\n return this._itemsRunTimeInfo.findWidgetInstanceByName(name)\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new Deferred;\r\n if (that._scrollable) {\r\n that._scrollable.update().done((function() {\r\n deferred.resolveWith(that)\r\n }))\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n itemOption: function(id, option, value) {\r\n var items = this._generateItemsFromData(this.option(\"items\"));\r\n var item = this._getItemByField(id, items);\r\n var path = getItemPath(items, item);\r\n if (!item) {\r\n return\r\n }\r\n switch (arguments.length) {\r\n case 1:\r\n return item;\r\n case 3:\r\n var itemAction = this._tryCreateItemOptionAction(option, item, value, item[option], path);\r\n this._changeItemOption(item, option, value);\r\n var fullName = getFullOptionName(path, option);\r\n if (!this._tryExecuteItemOptionAction(itemAction) && !this._tryChangeLayoutManagerItemOption(fullName, value)) {\r\n this.option(\"items\", items)\r\n }\r\n break;\r\n default:\r\n if (isObject(option)) {\r\n if (!this._tryChangeLayoutManagerItemOptions(path, option)) {\r\n var allowUpdateItems;\r\n each(option, (optionName, optionValue) => {\r\n var itemAction = this._tryCreateItemOptionAction(optionName, item, optionValue, item[optionName], path);\r\n this._changeItemOption(item, optionName, optionValue);\r\n if (!allowUpdateItems && !this._tryExecuteItemOptionAction(itemAction)) {\r\n allowUpdateItems = true\r\n }\r\n });\r\n allowUpdateItems && this.option(\"items\", items)\r\n }\r\n }\r\n }\r\n },\r\n validate: function() {\r\n return ValidationEngine.validateGroup(this._getValidationGroup())\r\n },\r\n getItemID: function(name) {\r\n return \"dx_\" + this.option(\"formID\") + \"_\" + (name || new Guid)\r\n },\r\n getTargetScreenFactor: function() {\r\n return this._targetScreenFactor\r\n }\r\n});\r\nregisterComponent(\"dxForm\", Form);\r\nexport default Form;\r\n","/**\r\n * DevExtreme (esm/ui/form.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Form from \"./form/ui.form\";\r\nexport default Form;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.accessibility.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport * as accessibility from \"../../ui/shared/accessibility\";\r\nexport var registerKeyboardAction = function(viewName, instance, $element, selector, action) {\r\n var keyboardController = instance.getController(\"keyboardNavigation\");\r\n if (instance.option(\"useLegacyKeyboardNavigation\") || keyboardController && !keyboardController.isKeyboardEnabled()) {\r\n return\r\n }\r\n instance.createAction(\"onKeyDown\");\r\n accessibility.registerKeyboardAction(viewName, instance, $element, selector, action, args => {\r\n instance.executeAction(\"onKeyDown\", args)\r\n })\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.adaptivity.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport Guid from \"../../core/guid\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport Form from \"../form\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n isElementInDom\r\n} from \"../../core/utils/dom\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar COLUMN_HEADERS_VIEW = \"columnHeadersView\";\r\nvar ROWS_VIEW = \"rowsView\";\r\nvar FOOTER_VIEW = \"footerView\";\r\nvar COLUMN_VIEWS = [COLUMN_HEADERS_VIEW, ROWS_VIEW, FOOTER_VIEW];\r\nvar ADAPTIVE_NAMESPACE = \"dxDataGridAdaptivity\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar ADAPTIVE_ROW_TYPE = \"detailAdaptive\";\r\nvar FORM_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar FORM_ITEM_MODIFIED = \"dx-item-modified\";\r\nvar HIDDEN_COLUMN_CLASS = \"hidden-column\";\r\nvar ADAPTIVE_COLUMN_BUTTON_CLASS = \"adaptive-more\";\r\nvar ADAPTIVE_COLUMN_NAME_CLASS = \"dx-command-adaptive\";\r\nvar COMMAND_ADAPTIVE_HIDDEN_CLASS = \"dx-command-adaptive-hidden\";\r\nvar ADAPTIVE_DETAIL_ROW_CLASS = \"dx-adaptive-detail-row\";\r\nvar ADAPTIVE_ITEM_TEXT_CLASS = \"dx-adaptive-item-text\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar LAST_DATA_CELL_CLASS = \"dx-last-data-cell\";\r\nvar ADAPTIVE_COLUMN_NAME = \"adaptive\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar REVERT_TOOLTIP_CLASS = \"revert-tooltip\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar EXPAND_ARIA_NAME = \"dxDataGrid-ariaAdaptiveExpand\";\r\nvar COLLAPSE_ARIA_NAME = \"dxDataGrid-ariaAdaptiveCollapse\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\n\r\nfunction getColumnId(that, column) {\r\n return that._columnsController.getColumnId(column)\r\n}\r\n\r\nfunction getDataCellElements($row) {\r\n return $row.find(\"td:not(.dx-datagrid-hidden-column):not([class*='dx-command-'])\")\r\n}\r\n\r\nfunction adaptiveCellTemplate(container, options) {\r\n var $adaptiveColumnButton;\r\n var $container = $(container);\r\n var adaptiveColumnsController = options.component.getController(\"adaptiveColumns\");\r\n if (\"data\" === options.rowType) {\r\n $adaptiveColumnButton = $(\"<span>\").addClass(adaptiveColumnsController.addWidgetPrefix(ADAPTIVE_COLUMN_BUTTON_CLASS));\r\n eventsEngine.on($adaptiveColumnButton, addNamespace(clickEventName, ADAPTIVE_NAMESPACE), adaptiveColumnsController.createAction((function() {\r\n adaptiveColumnsController.toggleExpandAdaptiveDetailRow(options.key)\r\n })));\r\n $adaptiveColumnButton.appendTo($container)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n}\r\nvar AdaptiveColumnsController = modules.ViewController.inherit({\r\n _isRowEditMode: function() {\r\n var editMode = this._getEditMode();\r\n return editMode === EDIT_MODE_ROW\r\n },\r\n _isItemModified: function(item, cellOptions) {\r\n var columnIndex = this._columnsController.getVisibleIndex(item.column.index);\r\n var rowIndex = this._dataController.getRowIndexByKey(cellOptions.key);\r\n var row = this._dataController.items()[rowIndex + 1];\r\n return row && row.modifiedValues && isDefined(row.modifiedValues[columnIndex])\r\n },\r\n _renderFormViewTemplate: function(item, cellOptions, $container) {\r\n var column = item.column;\r\n var focusAction = this.createAction((function() {\r\n eventsEngine.trigger($container, clickEventName)\r\n }));\r\n var rowData = cellOptions.row.data;\r\n var value = column.calculateCellValue(rowData);\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, rowData, cellOptions.rowType);\r\n var text = gridCoreUtils.formatValue(displayValue, column);\r\n var isCellOrBatchEditMode = this._editingController.isCellOrBatchEditMode();\r\n var rowsView = this._rowsView;\r\n if (column.allowEditing && this.getController(\"keyboardNavigation\").isKeyboardEnabled()) {\r\n $container.attr(\"tabIndex\", this.option(\"tabIndex\"));\r\n if (isCellOrBatchEditMode) {\r\n eventsEngine.off($container, \"focus\", focusAction);\r\n eventsEngine.on($container, \"focus\", focusAction)\r\n }\r\n }\r\n if (column.cellTemplate) {\r\n var templateOptions = extend({}, cellOptions, {\r\n value: value,\r\n displayValue: displayValue,\r\n text: text,\r\n column: column\r\n });\r\n rowsView.renderTemplate($container, column.cellTemplate, templateOptions, isElementInDom($container)).done(() => {\r\n rowsView._cellPrepared($container, cellOptions)\r\n })\r\n } else {\r\n var container = $container.get(0);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n $container.addClass(ADAPTIVE_ITEM_TEXT_CLASS);\r\n if (!isDefined(text) || \"\" === text) {\r\n $container.html(\" \")\r\n }\r\n if (!this._isRowEditMode()) {\r\n if (this._isItemModified(item, cellOptions)) {\r\n $container.addClass(FORM_ITEM_MODIFIED)\r\n }\r\n }\r\n rowsView._cellPrepared($container, cellOptions)\r\n }\r\n },\r\n _getTemplate: function(item, cellOptions) {\r\n var that = this;\r\n var column = item.column;\r\n var editingController = this.getController(\"editing\");\r\n return function(options, container) {\r\n var $container = $(container);\r\n var columnIndex = that._columnsController.getVisibleIndex(column.index);\r\n var templateOptions = extend({}, cellOptions);\r\n var renderFormTemplate = function() {\r\n var isItemEdited = that._isItemEdited(item);\r\n templateOptions.value = cellOptions.row.values[columnIndex];\r\n if (isItemEdited || column.showEditorAlways) {\r\n editingController.renderFormEditTemplate(templateOptions, item, options, $container, !isItemEdited)\r\n } else {\r\n templateOptions.column = column;\r\n templateOptions.columnIndex = columnIndex;\r\n that._renderFormViewTemplate(item, templateOptions, $container)\r\n }\r\n };\r\n renderFormTemplate();\r\n templateOptions.watch && templateOptions.watch((function() {\r\n return {\r\n isItemEdited: that._isItemEdited(item),\r\n value: cellOptions.row.values[columnIndex]\r\n }\r\n }), (function() {\r\n $container.contents().remove();\r\n $container.removeClass(ADAPTIVE_ITEM_TEXT_CLASS);\r\n renderFormTemplate()\r\n }))\r\n }\r\n },\r\n _isVisibleColumnsValid: function(visibleColumns) {\r\n if (visibleColumns < 2) {\r\n return false\r\n }\r\n if (visibleColumns.length - function() {\r\n var result = 0;\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var visibleColumn = visibleColumns[j];\r\n if (visibleColumn.command) {\r\n result++\r\n }\r\n }\r\n return result\r\n }() <= 1) {\r\n return false\r\n }\r\n return true\r\n },\r\n _calculatePercentWidths: function(widths, visibleColumns) {\r\n var that = this;\r\n var percentWidths = 0;\r\n visibleColumns.forEach((function(item, index) {\r\n if (widths[index] !== HIDDEN_COLUMNS_WIDTH) {\r\n percentWidths += that._getItemPercentWidth(item)\r\n }\r\n }));\r\n return percentWidths\r\n },\r\n _isPercentWidth: function(width) {\r\n return isString(width) && \"%\" === width.slice(-1)\r\n },\r\n _isColumnHidden: function(column) {\r\n return this._hiddenColumns.filter((function(hiddenColumn) {\r\n return hiddenColumn.index === column.index\r\n })).length > 0\r\n },\r\n _getAverageColumnsWidth: function(containerWidth, columns, columnsCanFit) {\r\n var that = this;\r\n var fixedColumnsWidth = 0;\r\n var columnsWithoutFixedWidthCount = 0;\r\n columns.forEach((function(column) {\r\n if (!that._isColumnHidden(column)) {\r\n var width = column.width;\r\n if (isDefined(width) && !isNaN(parseFloat(width))) {\r\n fixedColumnsWidth += that._isPercentWidth(width) ? that._calculatePercentWidth({\r\n visibleIndex: column.visibleIndex,\r\n columnsCount: columns.length,\r\n columnsCanFit: columnsCanFit,\r\n bestFitWidth: column.bestFitWidth,\r\n columnWidth: width,\r\n containerWidth: containerWidth\r\n }) : parseFloat(width)\r\n } else {\r\n columnsWithoutFixedWidthCount++\r\n }\r\n }\r\n }));\r\n return (containerWidth - fixedColumnsWidth) / columnsWithoutFixedWidthCount\r\n },\r\n _calculateColumnWidth: function(column, containerWidth, contentColumns, columnsCanFit) {\r\n var columnId = getColumnId(this, column);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var bestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n var columnsCount = contentColumns.length;\r\n var colWidth;\r\n if (widthOption && \"auto\" !== widthOption) {\r\n if (this._isPercentWidth(widthOption)) {\r\n colWidth = this._calculatePercentWidth({\r\n visibleIndex: column.visibleIndex,\r\n columnsCount: columnsCount,\r\n columnsCanFit: columnsCanFit,\r\n bestFitWidth: bestFitWidth,\r\n columnWidth: widthOption,\r\n containerWidth: containerWidth\r\n })\r\n } else {\r\n return parseFloat(widthOption)\r\n }\r\n } else {\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n colWidth = columnAutoWidth || !!column.command ? bestFitWidth : this._getAverageColumnsWidth(containerWidth, contentColumns, columnsCanFit)\r\n }\r\n return colWidth\r\n },\r\n _calculatePercentWidth: function(options) {\r\n var columnFitted = options.visibleIndex < options.columnsCount - 1 && options.columnsCanFit;\r\n var partialWidth = options.containerWidth * parseFloat(options.columnWidth) / 100;\r\n var resultWidth = options.columnsCanFit && partialWidth < options.bestFitWidth ? options.bestFitWidth : partialWidth;\r\n return columnFitted ? options.containerWidth * parseFloat(options.columnWidth) / 100 : resultWidth\r\n },\r\n _getNotTruncatedColumnWidth: function(column, containerWidth, contentColumns, columnsCanFit) {\r\n var columnId = getColumnId(this, column);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var bestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n if (widthOption && \"auto\" !== widthOption && !this._isPercentWidth(widthOption)) {\r\n return parseFloat(widthOption)\r\n }\r\n var colWidth = this._calculateColumnWidth(column, containerWidth, contentColumns, columnsCanFit);\r\n return colWidth < bestFitWidth ? null : colWidth\r\n },\r\n _getItemPercentWidth: function(item) {\r\n var result = 0;\r\n if (item.width && this._isPercentWidth(item.width)) {\r\n result = parseFloat(item.width)\r\n }\r\n return result\r\n },\r\n _getCommandColumnsWidth: function() {\r\n var that = this;\r\n var columns = that._columnsController.getVisibleColumns();\r\n var colWidth = 0;\r\n each(columns, (function(index, column) {\r\n if (column.index < 0 || column.command) {\r\n colWidth += that._columnsController.columnOption(getColumnId(that, column), \"bestFitWidth\") || 0\r\n }\r\n }));\r\n return colWidth\r\n },\r\n _isItemEdited: function(item) {\r\n if (this.isFormOrPopupEditMode()) {\r\n return false\r\n }\r\n if (this._isRowEditMode()) {\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n if (equalByValue(editRowKey, this._dataController.adaptiveExpandedKey())) {\r\n return true\r\n }\r\n } else {\r\n var rowIndex = this._dataController.getRowIndexByKey(this._dataController.adaptiveExpandedKey()) + 1;\r\n var columnIndex = this._columnsController.getVisibleIndex(item.column.index);\r\n return this._editingController.isEditCell(rowIndex, columnIndex)\r\n }\r\n },\r\n _getFormItemsByHiddenColumns: function(hiddenColumns) {\r\n var items = [];\r\n each(hiddenColumns, (function(_, column) {\r\n items.push({\r\n column: column,\r\n name: column.name,\r\n dataField: column.dataField,\r\n visibleIndex: column.visibleIndex\r\n })\r\n }));\r\n return items\r\n },\r\n _getAdaptiveColumnVisibleIndex: function(visibleColumns) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n var column = visibleColumns[i];\r\n if (column.command === ADAPTIVE_COLUMN_NAME) {\r\n return i\r\n }\r\n }\r\n },\r\n _hideAdaptiveColumn: function(resultWidths, visibleColumns) {\r\n var visibleIndex = this._getAdaptiveColumnVisibleIndex(visibleColumns);\r\n if (isDefined(visibleIndex)) {\r\n resultWidths[visibleIndex] = HIDDEN_COLUMNS_WIDTH;\r\n this._hideVisibleColumn({\r\n isCommandColumn: true,\r\n visibleIndex: visibleIndex\r\n })\r\n }\r\n },\r\n _showHiddenCellsInView: function(_ref) {\r\n var {\r\n $cells: $cells,\r\n isCommandColumn: isCommandColumn\r\n } = _ref;\r\n var cssClassNameToRemove = this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);\r\n if (isCommandColumn) {\r\n cssClassNameToRemove = COMMAND_ADAPTIVE_HIDDEN_CLASS;\r\n $cells.attr({\r\n tabIndex: 0,\r\n \"aria-hidden\": null\r\n }).removeClass(cssClassNameToRemove)\r\n } else {\r\n $cells.removeClass(cssClassNameToRemove)\r\n }\r\n },\r\n _showHiddenColumns: function() {\r\n for (var i = 0; i < COLUMN_VIEWS.length; i++) {\r\n var view = this.getView(COLUMN_VIEWS[i]);\r\n if (view && view.isVisible() && view.element()) {\r\n var viewName = view.name;\r\n var $hiddenCommandCells = view.element().find(\".\" + COMMAND_ADAPTIVE_HIDDEN_CLASS);\r\n this._showHiddenCellsInView({\r\n viewName: viewName,\r\n $cells: $hiddenCommandCells,\r\n isCommandColumn: true\r\n });\r\n var $hiddenCells = view.element().find(\".\" + this.addWidgetPrefix(HIDDEN_COLUMN_CLASS));\r\n this._showHiddenCellsInView({\r\n viewName: viewName,\r\n $cells: $hiddenCells\r\n })\r\n }\r\n }\r\n },\r\n _isCellValid: function($cell) {\r\n return $cell && $cell.length && !$cell.hasClass(MASTER_DETAIL_CELL_CLASS) && !$cell.hasClass(GROUP_CELL_CLASS)\r\n },\r\n _hideVisibleColumn: function(_ref2) {\r\n var {\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n } = _ref2;\r\n var that = this;\r\n COLUMN_VIEWS.forEach((function(viewName) {\r\n var view = that.getView(viewName);\r\n view && that._hideVisibleColumnInView({\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n })\r\n }))\r\n },\r\n _hideVisibleColumnInView: function(_ref3) {\r\n var {\r\n view: view,\r\n isCommandColumn: isCommandColumn,\r\n visibleIndex: visibleIndex\r\n } = _ref3;\r\n var viewName = view.name;\r\n var $cellElement;\r\n var column = this._columnsController.getVisibleColumns()[visibleIndex];\r\n var editFormRowIndex = this._editingController && this._editingController.getEditFormRowIndex();\r\n if (view && view.isVisible() && column) {\r\n var rowsCount = view.getRowsCount();\r\n var $rowElements = view._getRowElements();\r\n for (var rowIndex = 0; rowIndex < rowsCount; rowIndex++) {\r\n var cancelClassAdding = rowIndex === editFormRowIndex && viewName === ROWS_VIEW && \"popup\" !== this.option(\"editing.mode\");\r\n if (!cancelClassAdding) {\r\n var currentVisibleIndex = viewName === COLUMN_HEADERS_VIEW ? this._columnsController.getVisibleIndex(column.index, rowIndex) : visibleIndex;\r\n if (currentVisibleIndex >= 0) {\r\n var $rowElement = $rowElements.eq(rowIndex);\r\n $cellElement = this._findCellElementInRow($rowElement, currentVisibleIndex);\r\n this._isCellValid($cellElement) && this._hideVisibleCellInView({\r\n viewName: viewName,\r\n isCommandColumn: isCommandColumn,\r\n $cell: $cellElement\r\n })\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _findCellElementInRow($rowElement, visibleColumnIndex) {\r\n var $rowCells = $rowElement.children();\r\n var visibleIndex = visibleColumnIndex;\r\n var cellIsInsideGroup = false;\r\n if ($rowElement.hasClass(GROUP_ROW_CLASS)) {\r\n var $groupCell = $rowElement.find(\".\".concat(GROUP_CELL_CLASS));\r\n var colSpan = $groupCell.attr(\"colspan\");\r\n if ($groupCell.length && isDefined(colSpan)) {\r\n var groupCellLength = parseInt(colSpan);\r\n var endGroupIndex = $groupCell.index() + groupCellLength - 1;\r\n if (visibleColumnIndex > endGroupIndex) {\r\n visibleIndex = visibleColumnIndex - groupCellLength + 1\r\n } else {\r\n cellIsInsideGroup = true\r\n }\r\n }\r\n }\r\n var $cellElement = !cellIsInsideGroup ? $rowCells.eq(visibleIndex) : void 0;\r\n return $cellElement\r\n },\r\n _hideVisibleCellInView: function(_ref4) {\r\n var {\r\n $cell: $cell,\r\n isCommandColumn: isCommandColumn\r\n } = _ref4;\r\n var cssClassNameToAdd = isCommandColumn ? COMMAND_ADAPTIVE_HIDDEN_CLASS : this.addWidgetPrefix(HIDDEN_COLUMN_CLASS);\r\n $cell.attr({\r\n tabIndex: -1,\r\n \"aria-hidden\": true\r\n }).addClass(cssClassNameToAdd)\r\n },\r\n _getEditMode: function() {\r\n return this._editingController.getEditMode()\r\n },\r\n isFormOrPopupEditMode: function() {\r\n var editMode = this._getEditMode();\r\n return editMode === EDIT_MODE_FORM || editMode === EDIT_MODE_POPUP\r\n },\r\n hideRedundantColumns: function(resultWidths, visibleColumns, hiddenQueue) {\r\n this._hiddenColumns = [];\r\n if (this._isVisibleColumnsValid(visibleColumns) && hiddenQueue.length) {\r\n var totalWidth = 0;\r\n var $rootElement = this.component.$element();\r\n var rootElementWidth = getWidth($rootElement) - this._getCommandColumnsWidth();\r\n var getVisibleContentColumns = function() {\r\n return visibleColumns.filter(item => !item.command && 0 === this._hiddenColumns.filter(i => i.index === item.index).length)\r\n }.bind(this);\r\n var visibleContentColumns = getVisibleContentColumns();\r\n var contentColumnsCount = visibleContentColumns.length;\r\n var i;\r\n var hasHiddenColumns;\r\n var needHideColumn;\r\n do {\r\n needHideColumn = false;\r\n totalWidth = 0;\r\n var percentWidths = this._calculatePercentWidths(resultWidths, visibleColumns);\r\n var columnsCanFit = percentWidths < 100 && 0 !== percentWidths;\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n var visibleColumn = visibleColumns[i];\r\n var columnWidth = this._getNotTruncatedColumnWidth(visibleColumn, rootElementWidth, visibleContentColumns, columnsCanFit);\r\n var columnId = getColumnId(this, visibleColumn);\r\n var widthOption = this._columnsController.columnOption(columnId, \"width\");\r\n var minWidth = this._columnsController.columnOption(columnId, \"minWidth\");\r\n var columnBestFitWidth = this._columnsController.columnOption(columnId, \"bestFitWidth\");\r\n if (resultWidths[i] === HIDDEN_COLUMNS_WIDTH) {\r\n hasHiddenColumns = true;\r\n continue\r\n }\r\n if (!columnWidth && !visibleColumn.command && !visibleColumn.fixed) {\r\n needHideColumn = true;\r\n break\r\n }\r\n if (!widthOption || \"auto\" === widthOption) {\r\n columnWidth = Math.max(columnBestFitWidth || 0, minWidth || 0)\r\n }\r\n if (visibleColumn.command !== ADAPTIVE_COLUMN_NAME || hasHiddenColumns) {\r\n totalWidth += columnWidth\r\n }\r\n }\r\n needHideColumn = needHideColumn || totalWidth > getWidth($rootElement);\r\n if (needHideColumn) {\r\n var column = hiddenQueue.pop();\r\n var visibleIndex = this._columnsController.getVisibleIndex(column.index);\r\n rootElementWidth += this._calculateColumnWidth(column, rootElementWidth, visibleContentColumns, columnsCanFit);\r\n this._hideVisibleColumn({\r\n visibleIndex: visibleIndex\r\n });\r\n resultWidths[visibleIndex] = HIDDEN_COLUMNS_WIDTH;\r\n this._hiddenColumns.push(column);\r\n visibleContentColumns = getVisibleContentColumns()\r\n }\r\n } while (needHideColumn && visibleContentColumns.length > 1 && hiddenQueue.length);\r\n if (contentColumnsCount === visibleContentColumns.length) {\r\n this._hideAdaptiveColumn(resultWidths, visibleColumns)\r\n }\r\n } else {\r\n this._hideAdaptiveColumn(resultWidths, visibleColumns)\r\n }\r\n },\r\n getItemContentByColumnIndex: function(visibleColumnIndex) {\r\n var $itemContent;\r\n for (var i = 0; i < this._$itemContents.length; i++) {\r\n $itemContent = this._$itemContents.eq(i);\r\n var item = $itemContent.data(\"dx-form-item\");\r\n if (item && item.column && this._columnsController.getVisibleIndex(item.column.index) === visibleColumnIndex) {\r\n return $itemContent\r\n }\r\n }\r\n },\r\n toggleExpandAdaptiveDetailRow: function(key, alwaysExpanded) {\r\n if (!(this.isFormOrPopupEditMode() && this._editingController.isEditing())) {\r\n this.getController(\"data\").toggleExpandAdaptiveDetailRow(key, alwaysExpanded)\r\n }\r\n },\r\n createFormByHiddenColumns: function(container, options) {\r\n var that = this;\r\n var $container = $(container);\r\n var userFormOptions = {\r\n items: that._getFormItemsByHiddenColumns(that._hiddenColumns),\r\n formID: \"dx-\" + new Guid\r\n };\r\n var defaultFormOptions = isMaterial() ? {\r\n colCount: 2\r\n } : {};\r\n this.executeAction(\"onAdaptiveDetailRowPreparing\", {\r\n formOptions: userFormOptions\r\n });\r\n that._$itemContents = null;\r\n that._form = that._createComponent($(\"<div>\").appendTo($container), Form, extend(defaultFormOptions, userFormOptions, {\r\n customizeItem: function(item) {\r\n var column = item.column || that._columnsController.columnOption(item.name || item.dataField);\r\n if (column) {\r\n item.label = item.label || {};\r\n item.label.text = item.label.text || column.caption;\r\n item.column = column;\r\n item.template = that._getTemplate(item, options, that.updateForm.bind(that))\r\n }\r\n userFormOptions.customizeItem && userFormOptions.customizeItem.call(this, item)\r\n },\r\n onContentReady: function(e) {\r\n userFormOptions.onContentReady && userFormOptions.onContentReady.call(this, e);\r\n that._$itemContents = $container.find(\".\" + FORM_ITEM_CONTENT_CLASS)\r\n }\r\n }))\r\n },\r\n hasAdaptiveDetailRowExpanded: function() {\r\n return isDefined(this._dataController.adaptiveExpandedKey())\r\n },\r\n updateForm: function(hiddenColumns) {\r\n if (this.hasAdaptiveDetailRowExpanded()) {\r\n if (this._form && isDefined(this._form._contentReadyAction)) {\r\n if (hiddenColumns && hiddenColumns.length) {\r\n this._form.option(\"items\", this._getFormItemsByHiddenColumns(hiddenColumns))\r\n } else {\r\n this._form.repaint()\r\n }\r\n }\r\n }\r\n },\r\n updateHidingQueue: function(columns) {\r\n var hideableColumns = columns.filter((function(column) {\r\n return column.visible && !column.type && !column.fixed && !(isDefined(column.groupIndex) && column.groupIndex >= 0)\r\n }));\r\n var columnsHasHidingPriority;\r\n var i;\r\n this._hidingColumnsQueue = [];\r\n if (this.option(\"allowColumnResizing\") && \"widget\" === this.option(\"columnResizingMode\")) {\r\n return this._hidingColumnsQueue\r\n }\r\n for (i = 0; i < hideableColumns.length; i++) {\r\n if (isDefined(hideableColumns[i].hidingPriority) && hideableColumns[i].hidingPriority >= 0) {\r\n columnsHasHidingPriority = true;\r\n this._hidingColumnsQueue[hideableColumns[i].hidingPriority] = hideableColumns[i]\r\n }\r\n }\r\n if (columnsHasHidingPriority) {\r\n this._hidingColumnsQueue.reverse()\r\n } else if (this.option(\"columnHidingEnabled\")) {\r\n for (i = 0; i < hideableColumns.length; i++) {\r\n var visibleIndex = this._columnsController.getVisibleIndex(hideableColumns[i].index);\r\n this._hidingColumnsQueue[visibleIndex] = hideableColumns[i]\r\n }\r\n }\r\n this._hidingColumnsQueue = this._hidingColumnsQueue.filter(Object);\r\n return this._hidingColumnsQueue\r\n },\r\n getHiddenColumns: function() {\r\n return this._hiddenColumns\r\n },\r\n hasHiddenColumns: function() {\r\n return this._hiddenColumns.length > 0\r\n },\r\n getHidingColumnsQueue: function() {\r\n return this._hidingColumnsQueue\r\n },\r\n init: function() {\r\n var that = this;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._columnsController.addCommandColumn({\r\n type: ADAPTIVE_COLUMN_NAME,\r\n command: ADAPTIVE_COLUMN_NAME,\r\n visible: true,\r\n adaptiveHidden: true,\r\n cssClass: ADAPTIVE_COLUMN_NAME_CLASS,\r\n alignment: \"center\",\r\n width: \"auto\",\r\n cellTemplate: adaptiveCellTemplate,\r\n fixedPosition: \"right\"\r\n });\r\n that._columnsController.columnsChanged.add((function() {\r\n var isAdaptiveVisible = !!that.updateHidingQueue(that._columnsController.getColumns()).length;\r\n that._columnsController.columnOption(\"command:adaptive\", \"adaptiveHidden\", !isAdaptiveVisible, true)\r\n }));\r\n that._editingController = that.getController(\"editing\");\r\n that._hidingColumnsQueue = [];\r\n that._hiddenColumns = [];\r\n that.createAction(\"onAdaptiveDetailRowPreparing\");\r\n that.callBase()\r\n },\r\n optionChanged: function(args) {\r\n if (\"columnHidingEnabled\" === args.name) {\r\n this._columnsController.columnOption(\"command:adaptive\", \"adaptiveHidden\", !args.value)\r\n }\r\n this.callBase(args)\r\n },\r\n publicMethods: function() {\r\n return [\"isAdaptiveDetailRowExpanded\", \"expandAdaptiveDetailRow\", \"collapseAdaptiveDetailRow\"]\r\n },\r\n isAdaptiveDetailRowExpanded: function(key) {\r\n return this._dataController.adaptiveExpandedKey() && equalByValue(this._dataController.adaptiveExpandedKey(), key)\r\n },\r\n expandAdaptiveDetailRow: function(key) {\r\n if (!this.hasAdaptiveDetailRowExpanded()) {\r\n this.toggleExpandAdaptiveDetailRow(key)\r\n }\r\n },\r\n collapseAdaptiveDetailRow: function() {\r\n if (this.hasAdaptiveDetailRowExpanded()) {\r\n this.toggleExpandAdaptiveDetailRow()\r\n }\r\n },\r\n updateCommandAdaptiveAriaLabel: function(key, label) {\r\n var rowIndex = this._dataController.getRowIndexByKey(key);\r\n if (-1 === rowIndex) {\r\n return\r\n }\r\n var $row = $(this.component.getRowElement(rowIndex));\r\n this.setCommandAdaptiveAriaLabel($row, label)\r\n },\r\n setCommandAdaptiveAriaLabel: function($row, labelName) {\r\n var $adaptiveCommand = $row.find(\".dx-command-adaptive\");\r\n $adaptiveCommand.attr(\"aria-label\", messageLocalization.format(labelName))\r\n }\r\n});\r\nexport var adaptivityModule = {\r\n defaultOptions: function() {\r\n return {\r\n columnHidingEnabled: false,\r\n onAdaptiveDetailRowPreparing: null\r\n }\r\n },\r\n controllers: {\r\n adaptiveColumns: AdaptiveColumnsController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (options.rowType === ADAPTIVE_ROW_TYPE && \"detail\" === column.command) {\r\n return function(container, options) {\r\n that._adaptiveColumnsController.createFormByHiddenColumns($(container), options)\r\n }\r\n }\r\n return that.callBase(options)\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row && row.rowType === ADAPTIVE_ROW_TYPE && row.key === this._dataController.adaptiveExpandedKey()) {\r\n $row.addClass(ADAPTIVE_DETAIL_ROW_CLASS)\r\n }\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n this.callBase($row, options);\r\n var adaptiveColumnsController = this._adaptiveColumnsController;\r\n var hidingColumnsQueueLength = adaptiveColumnsController.getHidingColumnsQueue().length;\r\n var hiddenColumnsLength = adaptiveColumnsController.getHiddenColumns().length;\r\n if (hidingColumnsQueueLength && !hiddenColumnsLength) {\r\n getDataCellElements($row).last().addClass(LAST_DATA_CELL_CLASS)\r\n }\r\n if (\"data\" === options.row.rowType) {\r\n adaptiveColumnsController.setCommandAdaptiveAriaLabel($row, EXPAND_ARIA_NAME)\r\n }\r\n },\r\n _getColumnIndexByElementCore: function($element) {\r\n var $itemContent = $element.closest(\".\" + FORM_ITEM_CONTENT_CLASS);\r\n if ($itemContent.length && $itemContent.closest(this.component.$element()).length) {\r\n var formItem = $itemContent.length ? $itemContent.first().data(\"dx-form-item\") : null;\r\n return formItem && formItem.column && this._columnsController.getVisibleIndex(formItem.column.index)\r\n } else {\r\n return this.callBase($element)\r\n }\r\n },\r\n _cellPrepared: function($cell, options) {\r\n this.callBase.apply(this, arguments);\r\n if (options.row.rowType !== ADAPTIVE_ROW_TYPE && options.column.visibleWidth === HIDDEN_COLUMNS_WIDTH) {\r\n $cell.addClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS))\r\n }\r\n },\r\n _getCellElement: function(rowIndex, columnIdentifier) {\r\n var item = this._dataController.items()[rowIndex];\r\n if (item && item.rowType === ADAPTIVE_ROW_TYPE) {\r\n return this._adaptiveColumnsController.getItemContentByColumnIndex(columnIdentifier)\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n },\r\n getContextMenuItems: function(options) {\r\n if (options.row && \"detailAdaptive\" === options.row.rowType) {\r\n var view = this.component.getView(\"columnHeadersView\");\r\n var formItem = $(options.targetElement).closest(\".dx-field-item-label\").next().data(\"dx-form-item\");\r\n options.column = formItem ? formItem.column : options.column;\r\n return view.getContextMenuItems && view.getContextMenuItems(options)\r\n }\r\n return this.callBase && this.callBase(options)\r\n },\r\n isClickableElement: function($target) {\r\n var isClickable = this.callBase ? this.callBase($target) : false;\r\n return isClickable || !!$target.closest(\".\" + ADAPTIVE_COLUMN_NAME_CLASS).length\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\")\r\n }\r\n }\r\n },\r\n controllers: {\r\n export: {\r\n _updateColumnWidth: function(column, width) {\r\n this.callBase(column, column.visibleWidth === HIDDEN_COLUMNS_WIDTH ? column.bestFitWidth : width)\r\n }\r\n },\r\n columnsResizer: {\r\n _pointCreated: function(point, cellsLength, columns) {\r\n var result = this.callBase(point, cellsLength, columns);\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumnIndex = this._getNextColumnIndex(point.columnIndex);\r\n var nextColumn = columns[nextColumnIndex] || {};\r\n var hasHiddenColumnsOnly = nextColumnIndex !== point.columnIndex + 1 && nextColumn.command;\r\n var hasAdaptiveHiddenWidth = currentColumn.visibleWidth === HIDDEN_COLUMNS_WIDTH || hasHiddenColumnsOnly;\r\n return result || hasAdaptiveHiddenWidth\r\n },\r\n _getNextColumnIndex: function(currentColumnIndex) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var index = this.callBase(currentColumnIndex);\r\n while (visibleColumns[index] && visibleColumns[index].visibleWidth === HIDDEN_COLUMNS_WIDTH) {\r\n index++\r\n }\r\n return index\r\n }\r\n },\r\n draggingHeader: {\r\n _pointCreated: function(point, columns, location, sourceColumn) {\r\n var result = this.callBase(point, columns, location, sourceColumn);\r\n var column = columns[point.columnIndex - 1] || {};\r\n var hasAdaptiveHiddenWidth = column.visibleWidth === HIDDEN_COLUMNS_WIDTH;\r\n return result || hasAdaptiveHiddenWidth\r\n }\r\n },\r\n editing: {\r\n _isRowEditMode: function() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n },\r\n _getFormEditItemTemplate: function(cellOptions, column) {\r\n if (this.getEditMode() !== EDIT_MODE_ROW && \"detailAdaptive\" === cellOptions.rowType) {\r\n cellOptions.columnIndex = this._columnsController.getVisibleIndex(column.index);\r\n return this.getColumnTemplate(cellOptions)\r\n }\r\n return this.callBase(cellOptions, column)\r\n },\r\n _closeEditItem: function($targetElement) {\r\n var $itemContents = $targetElement.closest(\".\" + FORM_ITEM_CONTENT_CLASS);\r\n var rowIndex = this._dataController.getRowIndexByKey(this._dataController.adaptiveExpandedKey()) + 1;\r\n var formItem = $itemContents.length ? $itemContents.first().data(\"dx-form-item\") : null;\r\n var columnIndex = formItem && formItem.column && this._columnsController.getVisibleIndex(formItem.column.index);\r\n if (!this.isEditCell(rowIndex, columnIndex)) {\r\n this.callBase($targetElement)\r\n }\r\n },\r\n _beforeUpdateItems: function(rowIndices, rowIndex) {\r\n if (!this._adaptiveController.isFormOrPopupEditMode() && this._adaptiveController.hasHiddenColumns()) {\r\n var items = this._dataController.items();\r\n var item = items[rowIndex];\r\n var oldExpandRowIndex = gridCoreUtils.getIndexByKey(this._dataController.adaptiveExpandedKey(), items);\r\n this._isForceRowAdaptiveExpand = !this._adaptiveController.hasAdaptiveDetailRowExpanded();\r\n if (oldExpandRowIndex >= 0) {\r\n rowIndices.push(oldExpandRowIndex + 1)\r\n }\r\n rowIndices.push(rowIndex + 1);\r\n this._dataController.adaptiveExpandedKey(item.key)\r\n }\r\n },\r\n _afterInsertRow: function(key) {\r\n this.callBase.apply(this, arguments);\r\n if (this._adaptiveController.hasHiddenColumns()) {\r\n this._adaptiveController.toggleExpandAdaptiveDetailRow(key, this.isRowEditMode());\r\n this._isForceRowAdaptiveExpand = true\r\n }\r\n },\r\n _collapseAdaptiveDetailRow: function() {\r\n if (this._isRowEditMode() && this._isForceRowAdaptiveExpand) {\r\n this._adaptiveController.collapseAdaptiveDetailRow();\r\n this._isForceRowAdaptiveExpand = false\r\n }\r\n },\r\n _cancelEditAdaptiveDetailRow: function() {\r\n if (this._adaptiveController.hasHiddenColumns()) {\r\n this._collapseAdaptiveDetailRow()\r\n }\r\n },\r\n _afterSaveEditData: function() {\r\n this.callBase.apply(this, arguments);\r\n var deferred = new Deferred;\r\n if (this._isRowEditMode() && this._adaptiveController.hasHiddenColumns()) {\r\n when(this.getController(\"validating\").validate(true)).done(isValid => {\r\n if (isValid) {\r\n this._cancelEditAdaptiveDetailRow()\r\n }\r\n deferred.resolve()\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _beforeCancelEditData: function() {\r\n this.callBase();\r\n this._cancelEditAdaptiveDetailRow()\r\n },\r\n _getRowIndicesForCascadeUpdating: function(row) {\r\n var rowIndices = this.callBase.apply(this, arguments);\r\n if (this._adaptiveController.isAdaptiveDetailRowExpanded(row.key)) {\r\n rowIndices.push(row.rowType === ADAPTIVE_ROW_TYPE ? row.rowIndex - 1 : row.rowIndex + 1)\r\n }\r\n return rowIndices\r\n },\r\n _beforeCloseEditCellInBatchMode: function(rowIndices) {\r\n var expandedKey = this._dataController._adaptiveExpandedKey;\r\n if (expandedKey) {\r\n var rowIndex = gridCoreUtils.getIndexByKey(expandedKey, this._dataController.items());\r\n if (rowIndex > -1) {\r\n rowIndices.unshift(rowIndex)\r\n }\r\n }\r\n },\r\n editRow: function(rowIndex) {\r\n if (this._adaptiveController.isFormOrPopupEditMode()) {\r\n this._adaptiveController.collapseAdaptiveDetailRow()\r\n }\r\n this.callBase(rowIndex)\r\n },\r\n deleteRow: function(rowIndex) {\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (this.getEditMode() === EDIT_MODE_BATCH && this._adaptiveController.isAdaptiveDetailRowExpanded(rowKey)) {\r\n this._adaptiveController.collapseAdaptiveDetailRow()\r\n }\r\n this.callBase(rowIndex)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveController = this.getController(\"adaptiveColumns\")\r\n }\r\n },\r\n resizing: {\r\n _needBestFit: function() {\r\n return this.callBase() || !!this._adaptiveColumnsController.getHidingColumnsQueue().length\r\n },\r\n _correctColumnWidths: function(resultWidths, visibleColumns) {\r\n var adaptiveController = this._adaptiveColumnsController;\r\n var oldHiddenColumns = adaptiveController.getHiddenColumns();\r\n var hidingColumnsQueue = adaptiveController.updateHidingQueue(this._columnsController.getColumns());\r\n adaptiveController.hideRedundantColumns(resultWidths, visibleColumns, hidingColumnsQueue);\r\n var hiddenColumns = adaptiveController.getHiddenColumns();\r\n if (adaptiveController.hasAdaptiveDetailRowExpanded()) {\r\n if (oldHiddenColumns.length !== hiddenColumns.length) {\r\n adaptiveController.updateForm(hiddenColumns)\r\n }\r\n }!hiddenColumns.length && adaptiveController.collapseAdaptiveDetailRow();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n isBestFit && this._adaptiveColumnsController._showHiddenColumns();\r\n this.callBase(isBestFit)\r\n },\r\n _needStretch: function() {\r\n var adaptiveColumnsController = this._adaptiveColumnsController;\r\n return this.callBase.apply(this, arguments) || adaptiveColumnsController.getHidingColumnsQueue().length || adaptiveColumnsController.hasHiddenColumns()\r\n },\r\n init: function() {\r\n this._adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n this.callBase()\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._updateScrollableTimeoutID)\r\n }\r\n },\r\n data: {\r\n _processItems: function(items, change) {\r\n var changeType = change.changeType;\r\n items = this.callBase.apply(this, arguments);\r\n if (\"loadingAll\" === changeType || !isDefined(this._adaptiveExpandedKey)) {\r\n return items\r\n }\r\n var expandRowIndex = gridCoreUtils.getIndexByKey(this._adaptiveExpandedKey, items);\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n if (expandRowIndex >= 0) {\r\n var item = items[expandRowIndex];\r\n items.splice(expandRowIndex + 1, 0, {\r\n visible: true,\r\n rowType: ADAPTIVE_ROW_TYPE,\r\n key: item.key,\r\n data: item.data,\r\n node: item.node,\r\n modifiedValues: item.modifiedValues,\r\n isNewRow: item.isNewRow,\r\n values: item.values\r\n })\r\n } else if (\"refresh\" === changeType && !(newMode && change.repaintChangesOnly)) {\r\n this._adaptiveExpandedKey = void 0\r\n }\r\n return items\r\n },\r\n _getRowIndicesForExpand: function(key) {\r\n var rowIndices = this.callBase.apply(this, arguments);\r\n if (this.getController(\"adaptiveColumns\").isAdaptiveDetailRowExpanded(key)) {\r\n var lastRowIndex = rowIndices[rowIndices.length - 1];\r\n rowIndices.push(lastRowIndex + 1)\r\n }\r\n return rowIndices\r\n },\r\n adaptiveExpandedKey: function(value) {\r\n if (isDefined(value)) {\r\n this._adaptiveExpandedKey = value\r\n } else {\r\n return this._adaptiveExpandedKey\r\n }\r\n },\r\n toggleExpandAdaptiveDetailRow: function(key, alwaysExpanded) {\r\n var oldExpandLoadedRowIndex = gridCoreUtils.getIndexByKey(this._adaptiveExpandedKey, this._items);\r\n var newExpandLoadedRowIndex = gridCoreUtils.getIndexByKey(key, this._items);\r\n if (oldExpandLoadedRowIndex >= 0 && oldExpandLoadedRowIndex === newExpandLoadedRowIndex && !alwaysExpanded) {\r\n key = void 0;\r\n newExpandLoadedRowIndex = -1\r\n }\r\n var oldKey = this._adaptiveExpandedKey;\r\n this._adaptiveExpandedKey = key;\r\n if (oldExpandLoadedRowIndex >= 0) {\r\n oldExpandLoadedRowIndex++\r\n }\r\n if (newExpandLoadedRowIndex >= 0) {\r\n newExpandLoadedRowIndex++\r\n }\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n this.updateItems({\r\n allowInvisibleRowIndices: true,\r\n changeType: \"update\",\r\n rowIndices: [oldExpandLoadedRowIndex - rowIndexDelta, newExpandLoadedRowIndex - rowIndexDelta]\r\n });\r\n var adaptiveColumnsController = this.getController(\"adaptiveColumns\");\r\n adaptiveColumnsController.updateCommandAdaptiveAriaLabel(key, COLLAPSE_ARIA_NAME);\r\n adaptiveColumnsController.updateCommandAdaptiveAriaLabel(oldKey, EXPAND_ARIA_NAME)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveExpandedKey = void 0\r\n }\r\n },\r\n editorFactory: {\r\n _getFocusCellSelector: function() {\r\n return this.callBase() + \", .dx-adaptive-detail-row .dx-field-item > .dx-field-item-content\"\r\n },\r\n _getTooltipsSelector: function() {\r\n return this.callBase() + \", .dx-field-item-content .\" + this.addWidgetPrefix(REVERT_TOOLTIP_CLASS)\r\n }\r\n },\r\n columns: {\r\n _isColumnVisible: function(column) {\r\n return this.callBase(column) && !column.adaptiveHidden\r\n }\r\n },\r\n keyboardNavigation: {\r\n _isCellValid: function($cell) {\r\n return this.callBase.apply(this, arguments) && !$cell.hasClass(this.addWidgetPrefix(HIDDEN_COLUMN_CLASS)) && !$cell.hasClass(COMMAND_ADAPTIVE_HIDDEN_CLASS)\r\n },\r\n _processNextCellInMasterDetail: function($nextCell) {\r\n this.callBase($nextCell);\r\n var isCellOrBatchMode = this._editingController.isCellOrBatchEditMode();\r\n if (!this._isInsideEditForm($nextCell) && $nextCell && isCellOrBatchMode) {\r\n eventsEngine.on($nextCell, \"focus\", (function focusHandler() {\r\n eventsEngine.off($nextCell, \"focus\", focusHandler);\r\n eventsEngine.trigger($nextCell, \"dxclick\")\r\n }))\r\n }\r\n },\r\n _handleTabKeyOnMasterDetailCell: function(eventTarget, direction) {\r\n var result = this.callBase(eventTarget, direction);\r\n var $currentCell = this._getFocusedCell();\r\n var $row = $currentCell && $currentCell.parent();\r\n if (!result && $row && $row.length) {\r\n var $dataCells = getDataCellElements($row);\r\n var $targetCell = \"next\" === direction ? $dataCells.last() : $dataCells.first();\r\n var rowIndex = $row.get(0).rowIndex;\r\n var adaptiveController = this._adaptiveController;\r\n var key = this._dataController.getKeyByRowIndex(\"next\" === direction ? rowIndex : rowIndex - 1);\r\n var isCellElementsEquals = $currentCell && $targetCell && $currentCell.get(0) === $targetCell.get(0);\r\n return adaptiveController.isAdaptiveDetailRowExpanded(key) && isCellElementsEquals\r\n }\r\n return result\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._adaptiveController = this.getController(\"adaptiveColumns\")\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_chooser.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n deferUpdate,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isMaterial as isMaterialTheme,\r\n isGeneric,\r\n current\r\n} from \"../themes\";\r\nimport TreeView from \"../tree_view\";\r\nimport devices from \"../../core/devices\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport Button from \"../button\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nvar COLUMN_CHOOSER_CLASS = \"column-chooser\";\r\nvar COLUMN_CHOOSER_BUTTON_CLASS = \"column-chooser-button\";\r\nvar NOTOUCH_ACTION_CLASS = \"notouch-action\";\r\nvar COLUMN_CHOOSER_LIST_CLASS = \"column-chooser-list\";\r\nvar COLUMN_CHOOSER_PLAIN_CLASS = \"column-chooser-plain\";\r\nvar COLUMN_CHOOSER_DRAG_CLASS = \"column-chooser-mode-drag\";\r\nvar COLUMN_CHOOSER_SELECT_CLASS = \"column-chooser-mode-select\";\r\nvar COLUMN_CHOOSER_ICON_NAME = \"column-chooser\";\r\nvar COLUMN_CHOOSER_ITEM_CLASS = \"dx-column-chooser-item\";\r\nvar TREEVIEW_NODE_SELECTOR = \".dx-treeview-node\";\r\nvar CHECKBOX_SELECTOR = \".dx-checkbox\";\r\nvar CLICK_TIMEOUT = 300;\r\nvar processItems = function(that, chooserColumns) {\r\n var items = [];\r\n var isSelectMode = \"select\" === that.option(\"columnChooser.mode\");\r\n if (chooserColumns.length) {\r\n each(chooserColumns, (function(index, column) {\r\n var item = {\r\n text: column.caption,\r\n cssClass: column.cssClass,\r\n allowHiding: column.allowHiding,\r\n expanded: true,\r\n id: column.index,\r\n disabled: false,\r\n disableCheckBox: false === column.allowHiding,\r\n parentId: isDefined(column.ownerBand) ? column.ownerBand : null\r\n };\r\n if (isSelectMode) {\r\n item.selected = column.visible\r\n }\r\n items.push(item)\r\n }))\r\n }\r\n return items\r\n};\r\nvar ColumnChooserController = modules.ViewController.inherit({\r\n renderShowColumnChooserButton: function($element) {\r\n var that = this;\r\n var columnChooserButtonClass = that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS);\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n var $showColumnChooserButton = $element.find(\".\" + columnChooserButtonClass);\r\n var $columnChooserButton;\r\n if (columnChooserEnabled) {\r\n if (!$showColumnChooserButton.length) {\r\n $columnChooserButton = $(\"<div>\").addClass(columnChooserButtonClass).appendTo($element);\r\n that._createComponent($columnChooserButton, Button, {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: that.option(\"columnChooser.title\"),\r\n integrationOptions: {}\r\n })\r\n } else {\r\n $showColumnChooserButton.show()\r\n }\r\n } else {\r\n $showColumnChooserButton.hide()\r\n }\r\n },\r\n getPosition: function() {\r\n var rowsView = this.getView(\"rowsView\");\r\n return {\r\n my: \"right bottom\",\r\n at: \"right bottom\",\r\n of: rowsView && rowsView.element(),\r\n collision: \"fit\",\r\n offset: \"-2 -2\",\r\n boundaryOffset: \"2 2\"\r\n }\r\n }\r\n});\r\nvar ColumnChooserView = ColumnsView.inherit({\r\n _resizeCore: noop,\r\n _isWinDevice: function() {\r\n return !!devices.real().win\r\n },\r\n _updateList: function(change) {\r\n var items;\r\n var $popupContent = this._popupContainer.$content();\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var columnChooserList = this._columnChooserList;\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n this._popupContainer.setAria({\r\n role: \"dialog\",\r\n label: messageLocalization.format(\"dxDataGrid-columnChooserTitle\")\r\n });\r\n if (isSelectMode && columnChooserList && change && \"selection\" === change.changeType) {\r\n items = processItems(this, chooserColumns);\r\n for (var i = 0; i < items.length; i++) {\r\n var selected = items[i].selected;\r\n var id = items[i].id;\r\n if (id === change.columnIndex) {\r\n if (selected) {\r\n columnChooserList.selectItem(id, selected)\r\n } else {\r\n columnChooserList.unselectItem(id, selected)\r\n }\r\n }\r\n }\r\n } else if (!isSelectMode || !columnChooserList || \"full\" === change) {\r\n this._popupContainer.$wrapper().toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_DRAG_CLASS), !isSelectMode).toggleClass(this.addWidgetPrefix(COLUMN_CHOOSER_SELECT_CLASS), isSelectMode);\r\n items = processItems(this, chooserColumns);\r\n this._renderTreeView($popupContent, items)\r\n }\r\n },\r\n _initializePopupContainer: function() {\r\n var that = this;\r\n var $element = that.element().addClass(that.addWidgetPrefix(COLUMN_CHOOSER_CLASS));\r\n var columnChooserOptions = that.option(\"columnChooser\");\r\n var themeName = current();\r\n var isGenericTheme = isGeneric(themeName);\r\n var isMaterial = isMaterialTheme(themeName);\r\n var dxPopupOptions = {\r\n visible: false,\r\n shading: false,\r\n showCloseButton: false,\r\n dragEnabled: true,\r\n resizeEnabled: true,\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true,\r\n toolbarItems: [{\r\n text: columnChooserOptions.title,\r\n toolbar: \"top\",\r\n location: isGenericTheme || isMaterial ? \"before\" : \"center\"\r\n }],\r\n position: that.getController(\"columnChooser\").getPosition(),\r\n width: columnChooserOptions.width,\r\n height: columnChooserOptions.height,\r\n rtlEnabled: that.option(\"rtlEnabled\"),\r\n onHidden: function() {\r\n if (that._isWinDevice()) {\r\n $(\"body\").removeClass(that.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n container: columnChooserOptions.container\r\n };\r\n if (isGenericTheme || isMaterial) {\r\n extend(dxPopupOptions, {\r\n showCloseButton: true\r\n })\r\n } else {\r\n dxPopupOptions.toolbarItems[dxPopupOptions.toolbarItems.length] = {\r\n shortcut: \"cancel\"\r\n }\r\n }\r\n if (!isDefined(this._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, Popup, dxPopupOptions);\r\n that._popupContainer.on(\"optionChanged\", (function(args) {\r\n if (\"visible\" === args.name) {\r\n that.renderCompleted.fire()\r\n }\r\n }))\r\n } else {\r\n this._popupContainer.option(dxPopupOptions)\r\n }\r\n },\r\n _renderCore: function(change) {\r\n if (this._popupContainer) {\r\n this._updateList(change)\r\n }\r\n },\r\n _renderTreeView: function($container, items) {\r\n var that = this;\r\n var columnChooser = this.option(\"columnChooser\");\r\n var isSelectMode = \"select\" === columnChooser.mode;\r\n var treeViewConfig = {\r\n items: items,\r\n dataStructure: \"plain\",\r\n activeStateEnabled: true,\r\n focusStateEnabled: true,\r\n hoverStateEnabled: true,\r\n itemTemplate: \"item\",\r\n showCheckBoxesMode: \"none\",\r\n rootValue: null,\r\n searchEnabled: columnChooser.allowSearch,\r\n searchTimeout: columnChooser.searchTimeout,\r\n onItemRendered: function(e) {\r\n if (e.itemData.disableCheckBox) {\r\n var $treeViewNode = $(e.itemElement).closest(TREEVIEW_NODE_SELECTOR);\r\n var $checkBox;\r\n if ($treeViewNode.length) {\r\n $checkBox = $treeViewNode.find(CHECKBOX_SELECTOR);\r\n if ($checkBox.length) {\r\n var checkBoxInstance = $checkBox.data(\"dxCheckBox\");\r\n checkBoxInstance && checkBoxInstance.option(\"disabled\", true)\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var scrollableInstance = $container.find(\".dx-scrollable\").data(\"dxScrollable\");\r\n var scrollTop = scrollableInstance && scrollableInstance.scrollTop();\r\n if (isSelectMode && !this._columnsController.isBandColumnsUsed()) {\r\n $container.addClass(this.addWidgetPrefix(COLUMN_CHOOSER_PLAIN_CLASS))\r\n }\r\n treeViewConfig.onContentReady = function(e) {\r\n deferUpdate((function() {\r\n if (scrollTop) {\r\n var scrollable = $(e.element).find(\".dx-scrollable\").data(\"dxScrollable\");\r\n scrollable && scrollable.scrollTo({\r\n y: scrollTop\r\n })\r\n }\r\n that.renderCompleted.fire()\r\n }))\r\n };\r\n if (this._isWinDevice()) {\r\n treeViewConfig.useNativeScrolling = false\r\n }\r\n extend(treeViewConfig, isSelectMode ? this._prepareSelectModeConfig() : this._prepareDragModeConfig());\r\n if (this._columnChooserList) {\r\n if (!treeViewConfig.searchEnabled) {\r\n treeViewConfig.searchValue = \"\"\r\n }\r\n this._columnChooserList.option(treeViewConfig)\r\n } else {\r\n this._columnChooserList = this._createComponent($container, TreeView, treeViewConfig);\r\n $container.addClass(this.addWidgetPrefix(COLUMN_CHOOSER_LIST_CLASS))\r\n }\r\n },\r\n _prepareDragModeConfig: function() {\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return {\r\n noDataText: columnChooserOptions.emptyPanelText,\r\n activeStateEnabled: false,\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n itemTemplate: function(data, index, item) {\r\n $(item).text(data.text).parent().addClass(data.cssClass).addClass(COLUMN_CHOOSER_ITEM_CLASS)\r\n }\r\n }\r\n },\r\n _prepareSelectModeConfig: function() {\r\n var that = this;\r\n return {\r\n selectNodesRecursive: false,\r\n showCheckBoxesMode: \"normal\",\r\n onItemSelectionChanged: function(e) {\r\n var visibleColumns = that._columnsController.getVisibleColumns().filter((function(item) {\r\n return !item.command\r\n }));\r\n var isLastColumnUnselected = 1 === visibleColumns.length && !e.itemData.selected;\r\n if (isLastColumnUnselected) {\r\n e.component.selectItem(e.itemElement)\r\n } else {\r\n setTimeout((function() {\r\n that._columnsController.columnOption(e.itemData.id, \"visible\", e.itemData.selected)\r\n }), CLICK_TIMEOUT)\r\n }\r\n }\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n this.callBase(e);\r\n if (isSelectMode) {\r\n var needPartialRender = optionNames.visible && 1 === optionNames.length && void 0 !== e.columnIndex;\r\n var needFullRender = optionNames.showInColumnChooser || optionNames.caption || optionNames.visible || changeTypes.columns && optionNames.all;\r\n if (needPartialRender) {\r\n this.render(null, {\r\n changeType: \"selection\",\r\n columnIndex: e.columnIndex\r\n })\r\n } else if (needFullRender) {\r\n this.render(null, \"full\")\r\n }\r\n }\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._initializePopupContainer();\r\n this.render(null, \"full\");\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getColumnElements: function() {\r\n var result = [];\r\n var $node;\r\n var isSelectMode = \"select\" === this.option(\"columnChooser.mode\");\r\n var chooserColumns = this._columnsController.getChooserColumns(isSelectMode);\r\n var $content = this._popupContainer && this._popupContainer.$content();\r\n var $nodes = $content && $content.find(\".dx-treeview-node\");\r\n if ($nodes) {\r\n chooserColumns.forEach((function(column) {\r\n $node = $nodes.filter(\"[data-item-id = '\" + column.index + \"']\");\r\n var item = $node.length ? $node.children(\".\" + COLUMN_CHOOSER_ITEM_CLASS).get(0) : null;\r\n result.push(item)\r\n }))\r\n }\r\n return $(result)\r\n },\r\n getName: function() {\r\n return \"columnChooser\"\r\n },\r\n getColumns: function() {\r\n return this._columnsController.getChooserColumns()\r\n },\r\n allowDragging: function(column, sourceLocation) {\r\n var columnVisible = column && column.allowHiding && (\"columnChooser\" !== sourceLocation || !column.visible && this._columnsController.isParentColumnVisible(column.index));\r\n return this.isColumnChooserVisible() && columnVisible\r\n },\r\n getBoundingRect: function() {\r\n var container = this._popupContainer && this._popupContainer.$overlayContent();\r\n if (container && container.is(\":visible\")) {\r\n var offset = container.offset();\r\n return {\r\n left: offset.left,\r\n top: offset.top,\r\n right: offset.left + getOuterWidth(container),\r\n bottom: offset.top + getOuterHeight(container)\r\n }\r\n }\r\n return null\r\n },\r\n showColumnChooser: function() {\r\n if (!this._popupContainer) {\r\n this._initializePopupContainer();\r\n this.render()\r\n }\r\n this._popupContainer.show();\r\n if (this._isWinDevice()) {\r\n $(\"body\").addClass(this.addWidgetPrefix(NOTOUCH_ACTION_CLASS))\r\n }\r\n },\r\n hideColumnChooser: function() {\r\n if (this._popupContainer) {\r\n this._popupContainer.hide()\r\n }\r\n },\r\n isColumnChooserVisible: function() {\r\n var popupContainer = this._popupContainer;\r\n return popupContainer && popupContainer.option(\"visible\")\r\n },\r\n publicMethods: function() {\r\n return [\"showColumnChooser\", \"hideColumnChooser\"]\r\n }\r\n});\r\nexport var columnChooserModule = {\r\n defaultOptions: function() {\r\n return {\r\n columnChooser: {\r\n enabled: false,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n mode: \"dragAndDrop\",\r\n width: 250,\r\n height: 260,\r\n title: messageLocalization.format(\"dxDataGrid-columnChooserTitle\"),\r\n emptyPanelText: messageLocalization.format(\"dxDataGrid-columnChooserEmptyText\"),\r\n container: void 0\r\n }\r\n }\r\n },\r\n controllers: {\r\n columnChooser: ColumnChooserController\r\n },\r\n views: {\r\n columnChooserView: ColumnChooserView\r\n },\r\n extenders: {\r\n views: {\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._appendColumnChooserItem(items)\r\n },\r\n _appendColumnChooserItem: function(items) {\r\n var that = this;\r\n var columnChooserEnabled = that.option(\"columnChooser.enabled\");\r\n if (columnChooserEnabled) {\r\n var hintText = that.option(\"columnChooser.title\");\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: COLUMN_CHOOSER_ICON_NAME,\r\n onClick: function() {\r\n that.component.getView(\"columnChooserView\").showColumnChooser()\r\n },\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: function(e) {\r\n $(e.element).addClass(that._getToolbarButtonClass(that.addWidgetPrefix(COLUMN_CHOOSER_BUTTON_CLASS)))\r\n },\r\n elementAttr: {\r\n \"aria-haspopup\": \"dialog\"\r\n }\r\n },\r\n showText: \"inMenu\",\r\n location: \"after\",\r\n name: \"columnChooserButton\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"columnChooser\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible: function() {\r\n var columnChooserEnabled = this.option(\"columnChooser.enabled\");\r\n return this.callBase() || columnChooserEnabled\r\n }\r\n }\r\n },\r\n controllers: {\r\n columns: {\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnChooserMode = this.option(\"columnChooser.mode\");\r\n var isMoveColumnDisallowed = \"select\" === columnChooserMode && \"columnChooser\" === targetLocation;\r\n return isMoveColumnDisallowed ? false : this.callBase(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_fixing.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport gridCoreUtils from \"../grid_core/ui.grid_core.utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar FIRST_CELL_CLASS = \"dx-first-cell\";\r\nvar LAST_CELL_CLASS = \"dx-last-cell\";\r\nvar HOVER_STATE_CLASS = \"dx-state-hover\";\r\nvar FIXED_COL_CLASS = \"dx-col-fixed\";\r\nvar FIXED_COLUMNS_CLASS = \"dx-fixed-columns\";\r\nvar POINTER_EVENTS_NONE_CLASS = \"dx-pointer-events-none\";\r\nvar COMMAND_TRANSPARENT = \"transparent\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar getTransparentColumnIndex = function(fixedColumns) {\r\n var transparentColumnIndex = -1;\r\n each(fixedColumns, (function(index, column) {\r\n if (column.command === COMMAND_TRANSPARENT) {\r\n transparentColumnIndex = index;\r\n return false\r\n }\r\n }));\r\n return transparentColumnIndex\r\n};\r\nvar normalizeColumnWidths = function(fixedColumns, widths, fixedWidths) {\r\n var fixedColumnIndex = 0;\r\n if (fixedColumns && widths && fixedWidths) {\r\n for (var i = 0; i < fixedColumns.length; i++) {\r\n if (fixedColumns[i].command === COMMAND_TRANSPARENT) {\r\n fixedColumnIndex += fixedColumns[i].colspan\r\n } else {\r\n if (widths[fixedColumnIndex] < fixedWidths[i]) {\r\n widths[fixedColumnIndex] = fixedWidths[i]\r\n }\r\n fixedColumnIndex++\r\n }\r\n }\r\n }\r\n return widths\r\n};\r\nvar baseFixedColumns = {\r\n init: function() {\r\n this.callBase();\r\n this._isFixedTableRendering = false;\r\n this._isFixedColumns = false\r\n },\r\n _createCol: function(column) {\r\n return this.callBase(column).toggleClass(FIXED_COL_CLASS, !!(this._isFixedTableRendering && (column.fixed || column.command && column.command !== COMMAND_TRANSPARENT)))\r\n },\r\n _correctColumnIndicesForFixedColumns: function(fixedColumns, change) {\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var transparentColspan = fixedColumns[transparentColumnIndex].colspan;\r\n var columnIndices = change && change.columnIndices;\r\n if (columnIndices) {\r\n change.columnIndices = columnIndices.map((function(columnIndices) {\r\n if (columnIndices) {\r\n return columnIndices.map((function(columnIndex) {\r\n if (columnIndex < transparentColumnIndex) {\r\n return columnIndex\r\n } else if (columnIndex >= transparentColumnIndex + transparentColspan) {\r\n return columnIndex - transparentColspan + 1\r\n }\r\n return -1\r\n })).filter((function(columnIndex) {\r\n return columnIndex >= 0\r\n }))\r\n }\r\n }))\r\n }\r\n },\r\n _partialUpdateFixedTable(fixedColumns) {\r\n var fixedTableElement = this._fixedTableElement;\r\n var $rows = this._getRowElementsCore(fixedTableElement);\r\n var $colgroup = fixedTableElement.children(\"colgroup\");\r\n $colgroup.replaceWith(this._createColGroup(fixedColumns));\r\n for (var i = 0; i < $rows.length; i++) {\r\n this._partialUpdateFixedRow($($rows[i]), fixedColumns)\r\n }\r\n },\r\n _partialUpdateFixedRow($row, fixedColumns) {\r\n var cellElements = $row.get(0).childNodes;\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var transparentColumn = fixedColumns[transparentColumnIndex];\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var groupCellOptions;\r\n var colIndex = columnIndexOffset + 1;\r\n var colspan = transparentColumn.colspan;\r\n if ($row.hasClass(DETAIL_ROW_CLASS)) {\r\n var _this$_columnsControl;\r\n cellElements[0].setAttribute(\"colspan\", null === (_this$_columnsControl = this._columnsController.getVisibleColumns()) || void 0 === _this$_columnsControl ? void 0 : _this$_columnsControl.length);\r\n return\r\n }\r\n if ($row.hasClass(GROUP_ROW_CLASS)) {\r\n groupCellOptions = this._getGroupCellOptions({\r\n row: $row.data(\"options\"),\r\n columns: this._columnsController.getVisibleColumns()\r\n });\r\n colspan = groupCellOptions.colspan - Math.max(0, cellElements.length - (groupCellOptions.columnIndex + 2))\r\n }\r\n for (var j = 0; j < cellElements.length; j++) {\r\n var needUpdateColspan = groupCellOptions ? j === groupCellOptions.columnIndex + 1 : j === transparentColumnIndex;\r\n cellElements[j].setAttribute(\"aria-colindex\", colIndex);\r\n if (needUpdateColspan) {\r\n cellElements[j].setAttribute(\"colspan\", colspan);\r\n colIndex += colspan\r\n } else {\r\n colIndex++\r\n }\r\n }\r\n },\r\n _renderTable: function(options) {\r\n var $fixedTable;\r\n var fixedColumns = this.getFixedColumns();\r\n this._isFixedColumns = !!fixedColumns.length;\r\n var $table = this.callBase(options);\r\n if (this._isFixedColumns) {\r\n var change = null === options || void 0 === options ? void 0 : options.change;\r\n this._isFixedTableRendering = true;\r\n if (null !== change && void 0 !== change && change.virtualColumnsScrolling && true !== this.option(\"scrolling.legacyMode\")) {\r\n this._partialUpdateFixedTable(fixedColumns);\r\n this._isFixedTableRendering = false\r\n } else {\r\n var columnIndices = null === change || void 0 === change ? void 0 : change.columnIndices;\r\n this._correctColumnIndicesForFixedColumns(fixedColumns, change);\r\n $fixedTable = this._createTable(fixedColumns);\r\n this._renderRows($fixedTable, extend({}, options, {\r\n columns: fixedColumns\r\n }));\r\n when(this._updateContent($fixedTable, change)).done(() => {\r\n this._isFixedTableRendering = false\r\n });\r\n if (columnIndices) {\r\n change.columnIndices = columnIndices\r\n }\r\n }\r\n } else {\r\n this._fixedTableElement && this._fixedTableElement.parent().remove();\r\n this._fixedTableElement = null\r\n }\r\n return $table\r\n },\r\n _renderRow: function($table, options) {\r\n var fixedCorrection;\r\n var cells = options.row.cells;\r\n this.callBase.apply(this, arguments);\r\n if (this._isFixedTableRendering && cells && cells.length) {\r\n fixedCorrection = 0;\r\n var fixedCells = options.row.cells || [];\r\n cells = cells.slice();\r\n options.row.cells = cells;\r\n for (var i = 0; i < fixedCells.length; i++) {\r\n if (fixedCells[i].column && fixedCells[i].column.command === COMMAND_TRANSPARENT) {\r\n fixedCorrection = (fixedCells[i].column.colspan || 1) - 1;\r\n continue\r\n }\r\n cells[i + fixedCorrection] = fixedCells[i]\r\n }\r\n }\r\n },\r\n _createCell: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var columnCommand = column && column.command;\r\n var rowType = options.rowType;\r\n var $cell = that.callBase.apply(that, arguments);\r\n var fixedColumns;\r\n var prevFixedColumn;\r\n var transparentColumnIndex;\r\n if (that._isFixedTableRendering || \"filter\" === rowType) {\r\n fixedColumns = that.getFixedColumns();\r\n transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n prevFixedColumn = fixedColumns[transparentColumnIndex - 1]\r\n }\r\n if (that._isFixedTableRendering) {\r\n if (columnCommand === COMMAND_TRANSPARENT) {\r\n $cell.addClass(POINTER_EVENTS_NONE_CLASS).toggleClass(FIRST_CELL_CLASS, 0 === transparentColumnIndex || prevFixedColumn && \"expand\" === prevFixedColumn.command).toggleClass(LAST_CELL_CLASS, fixedColumns.length && transparentColumnIndex === fixedColumns.length - 1);\r\n if (\"freeSpace\" !== rowType) {\r\n gridCoreUtils.setEmptyText($cell)\r\n }\r\n }\r\n } else if (\"filter\" === rowType) {\r\n $cell.toggleClass(FIRST_CELL_CLASS, options.columnIndex === transparentColumnIndex)\r\n }\r\n var isRowAltStyle = that.option(\"rowAlternationEnabled\") && options.isAltRow;\r\n if (browser.mozilla && options.column.fixed && \"group\" !== options.rowType && !isRowAltStyle) {\r\n $cell.addClass(FIXED_COL_CLASS)\r\n }\r\n return $cell\r\n },\r\n _wrapTableInScrollContainer: function() {\r\n var $scrollContainer = this.callBase.apply(this, arguments);\r\n if (this._isFixedTableRendering) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_FIXED_CLASS))\r\n }\r\n return $scrollContainer\r\n },\r\n _renderCellContent: function($cell, options) {\r\n var isEmptyCell;\r\n var column = options.column;\r\n var isFixedTableRendering = this._isFixedTableRendering;\r\n var isGroupCell = \"group\" === options.rowType && isDefined(column.groupIndex);\r\n if (isFixedTableRendering && isGroupCell && !column.command && !column.groupCellTemplate) {\r\n $cell.css(\"pointerEvents\", \"none\")\r\n }\r\n if (!isFixedTableRendering && this._isFixedColumns) {\r\n isEmptyCell = column.fixed || column.command && false !== column.fixed;\r\n if (isGroupCell) {\r\n isEmptyCell = false;\r\n if (options.row.summaryCells && options.row.summaryCells.length) {\r\n var columns = this._columnsController.getVisibleColumns();\r\n var alignByFixedColumnCellCount = this._getAlignByColumnCellCount ? this._getAlignByColumnCellCount(column.colspan, {\r\n columns: columns,\r\n row: options.row,\r\n isFixed: true\r\n }) : 0;\r\n if (alignByFixedColumnCellCount > 0) {\r\n var transparentColumnIndex = getTransparentColumnIndex(this._columnsController.getFixedColumns());\r\n isEmptyCell = columns.length - alignByFixedColumnCellCount < transparentColumnIndex\r\n }\r\n }\r\n }\r\n if (isEmptyCell) {\r\n if (column.command && \"buttons\" !== column.type || \"group\" === options.rowType) {\r\n $cell.html(\" \").addClass(column.cssClass);\r\n return\r\n } else {\r\n $cell.addClass(\"dx-hidden-cell\")\r\n }\r\n }\r\n }\r\n if (column.command !== COMMAND_TRANSPARENT) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var cellElements = this.callBase.apply(this, arguments);\r\n var isGroupRow = cellElements.parent().hasClass(GROUP_ROW_CLASS);\r\n var headerRowIndex = \"columnHeadersView\" === this.name ? rowIndex : void 0;\r\n if (this._fixedTableElement && cellElements) {\r\n var fixedColumns = this.getFixedColumns(headerRowIndex);\r\n var fixedCellElements = this._getRowElements(this._fixedTableElement).eq(rowIndex).children(\"td\");\r\n each(fixedCellElements, (columnIndex, cell) => {\r\n if (isGroupRow) {\r\n if (cellElements[columnIndex] && \"hidden\" !== cell.style.visibility) {\r\n cellElements[columnIndex] = cell\r\n }\r\n } else {\r\n var fixedColumn = fixedColumns[columnIndex];\r\n if (fixedColumn) {\r\n if (fixedColumn.command === COMMAND_TRANSPARENT) {\r\n if (fixedCellElements.eq(columnIndex).hasClass(MASTER_DETAIL_CELL_CLASS)) {\r\n cellElements[columnIndex] = cell || cellElements[columnIndex]\r\n }\r\n } else {\r\n var fixedColumnIndex = this._columnsController.getVisibleIndexByColumn(fixedColumn, headerRowIndex);\r\n cellElements[fixedColumnIndex] = cell || cellElements[fixedColumnIndex]\r\n }\r\n }\r\n }\r\n })\r\n }\r\n return cellElements\r\n },\r\n getColumnWidths: function() {\r\n var fixedWidths;\r\n var result = this.callBase();\r\n var fixedColumns = this.getFixedColumns();\r\n if (this._fixedTableElement && result.length) {\r\n fixedWidths = this.callBase(this._fixedTableElement)\r\n }\r\n return normalizeColumnWidths(fixedColumns, result, fixedWidths)\r\n },\r\n getTableElement: function() {\r\n var tableElement = this._isFixedTableRendering ? this._fixedTableElement : this.callBase();\r\n return tableElement\r\n },\r\n setTableElement: function(tableElement) {\r\n if (this._isFixedTableRendering) {\r\n this._fixedTableElement = tableElement.addClass(POINTER_EVENTS_NONE_CLASS)\r\n } else {\r\n this.callBase(tableElement)\r\n }\r\n },\r\n getColumns: function(rowIndex, $tableElement) {\r\n $tableElement = $tableElement || this.getTableElement();\r\n if (this._isFixedTableRendering || $tableElement && $tableElement.closest(\"table\").parent(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS)).length) {\r\n return this.getFixedColumns(rowIndex)\r\n }\r\n return this.callBase(rowIndex, $tableElement)\r\n },\r\n getRowIndex: function($row) {\r\n var $fixedTable = this._fixedTableElement;\r\n if ($fixedTable && $fixedTable.find($row).length) {\r\n return this._getRowElements($fixedTable).index($row)\r\n }\r\n return this.callBase($row)\r\n },\r\n getTableElements: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n if (this._fixedTableElement) {\r\n result = $([result.get(0), this._fixedTableElement.get(0)])\r\n }\r\n return result\r\n },\r\n getFixedColumns: function(rowIndex) {\r\n return this._columnsController.getFixedColumns(rowIndex)\r\n },\r\n getFixedColumnsOffset: function() {\r\n var offset = {\r\n left: 0,\r\n right: 0\r\n };\r\n var $transparentColumn;\r\n if (this._fixedTableElement) {\r\n $transparentColumn = this.getTransparentColumnElement();\r\n var positionTransparentColumn = $transparentColumn.position();\r\n offset = {\r\n left: positionTransparentColumn.left,\r\n right: getOuterWidth(this.element(), true) - (getOuterWidth($transparentColumn, true) + positionTransparentColumn.left)\r\n }\r\n }\r\n return offset\r\n },\r\n getTransparentColumnElement: function() {\r\n return this._fixedTableElement && this._fixedTableElement.find(\".\" + POINTER_EVENTS_NONE_CLASS).first()\r\n },\r\n getFixedTableElement: function() {\r\n return this._fixedTableElement\r\n },\r\n isFixedColumns: function() {\r\n return this._isFixedColumns\r\n },\r\n _resizeCore: function() {\r\n this.callBase();\r\n this.synchronizeRows()\r\n },\r\n setColumnWidths: function(options) {\r\n var columns;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = options.widths;\r\n var isWidthsSynchronized = widths && widths.length && isDefined(visibleColumns[0].visibleWidth);\r\n var optionNames = options.optionNames;\r\n var isColumnWidthChanged = optionNames && optionNames.width;\r\n var useVisibleColumns = false;\r\n this.callBase.apply(this, arguments);\r\n if (this._fixedTableElement) {\r\n var hasAutoWidth = widths && widths.some((function(width) {\r\n return \"auto\" === width\r\n }));\r\n useVisibleColumns = hasAutoWidth && (!isWidthsSynchronized || !this.isScrollbarVisible(true));\r\n if (useVisibleColumns) {\r\n columns = visibleColumns\r\n }\r\n this.callBase(extend({}, options, {\r\n $tableElement: this._fixedTableElement,\r\n columns: columns,\r\n fixed: true\r\n }))\r\n }\r\n if (isWidthsSynchronized || isColumnWidthChanged && this.option(\"wordWrapEnabled\")) {\r\n this.synchronizeRows()\r\n }\r\n },\r\n _createColGroup: function(columns) {\r\n if (this._isFixedTableRendering && !this.option(\"columnAutoWidth\")) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var useVisibleColumns = visibleColumns.filter((function(column) {\r\n return !column.width\r\n })).length;\r\n if (useVisibleColumns) {\r\n columns = visibleColumns\r\n }\r\n }\r\n return this.callBase(columns)\r\n },\r\n _getClientHeight: function(element) {\r\n var boundingClientRectElement = element.getBoundingClientRect && getBoundingRect(element);\r\n return boundingClientRectElement && boundingClientRectElement.height ? boundingClientRectElement.height : element.clientHeight\r\n },\r\n synchronizeRows: function() {\r\n var rowHeights = [];\r\n var fixedRowHeights = [];\r\n var rowIndex;\r\n var $rowElements;\r\n var $fixedRowElements;\r\n var $contentElement;\r\n if (this._isFixedColumns && this._tableElement && this._fixedTableElement) {\r\n var heightTable = this._getClientHeight(this._tableElement.get(0));\r\n var heightFixedTable = this._getClientHeight(this._fixedTableElement.get(0));\r\n $rowElements = this._getRowElements(this._tableElement);\r\n $fixedRowElements = this._getRowElements(this._fixedTableElement);\r\n $contentElement = this._findContentElement();\r\n if (heightTable !== heightFixedTable) {\r\n $contentElement && $contentElement.css(\"height\", heightTable);\r\n $rowElements.css(\"height\", \"\");\r\n $fixedRowElements.css(\"height\", \"\");\r\n for (rowIndex = 0; rowIndex < $rowElements.length; rowIndex++) {\r\n rowHeights.push(this._getClientHeight($rowElements.get(rowIndex)));\r\n fixedRowHeights.push(this._getClientHeight($fixedRowElements.get(rowIndex)))\r\n }\r\n for (rowIndex = 0; rowIndex < $rowElements.length; rowIndex++) {\r\n var rowHeight = rowHeights[rowIndex];\r\n var fixedRowHeight = fixedRowHeights[rowIndex];\r\n if (rowHeight > fixedRowHeight) {\r\n $fixedRowElements.eq(rowIndex).css(\"height\", rowHeight)\r\n } else if (rowHeight < fixedRowHeight) {\r\n $rowElements.eq(rowIndex).css(\"height\", fixedRowHeight)\r\n }\r\n }\r\n $contentElement && $contentElement.css(\"height\", \"\")\r\n }\r\n }\r\n },\r\n setScrollerSpacing: function(width) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this.callBase(width);\r\n this.element().children(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS)).css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n }\r\n};\r\nvar ColumnHeadersViewFixedColumnsExtender = extend({}, baseFixedColumns, {\r\n _getRowVisibleColumns: function(rowIndex) {\r\n if (this._isFixedTableRendering) {\r\n return this.getFixedColumns(rowIndex)\r\n }\r\n return this.callBase(rowIndex)\r\n },\r\n getContextMenuItems: function(options) {\r\n var column = options.column;\r\n var columnFixingOptions = this.option(\"columnFixing\");\r\n var items = this.callBase(options);\r\n if (options.row && \"header\" === options.row.rowType) {\r\n if (true === columnFixingOptions.enabled && column && column.allowFixing) {\r\n var onItemClick = params => {\r\n switch (params.itemData.value) {\r\n case \"none\":\r\n this._columnsController.columnOption(column.index, \"fixed\", false);\r\n break;\r\n case \"left\":\r\n this._columnsController.columnOption(column.index, {\r\n fixed: true,\r\n fixedPosition: \"left\"\r\n });\r\n break;\r\n case \"right\":\r\n this._columnsController.columnOption(column.index, {\r\n fixed: true,\r\n fixedPosition: \"right\"\r\n })\r\n }\r\n };\r\n items = items || [];\r\n items.push({\r\n text: columnFixingOptions.texts.fix,\r\n beginGroup: true,\r\n items: [{\r\n text: columnFixingOptions.texts.leftPosition,\r\n value: \"left\",\r\n disabled: column.fixed && (!column.fixedPosition || \"left\" === column.fixedPosition),\r\n onItemClick: onItemClick\r\n }, {\r\n text: columnFixingOptions.texts.rightPosition,\r\n value: \"right\",\r\n disabled: column.fixed && \"right\" === column.fixedPosition,\r\n onItemClick: onItemClick\r\n }]\r\n }, {\r\n text: columnFixingOptions.texts.unfix,\r\n value: \"none\",\r\n disabled: !column.fixed,\r\n onItemClick: onItemClick\r\n })\r\n }\r\n }\r\n return items\r\n },\r\n getFixedColumnElements: function(rowIndex) {\r\n if (isDefined(rowIndex)) {\r\n return this._fixedTableElement && this._getRowElements(this._fixedTableElement).eq(rowIndex).children()\r\n }\r\n var columnElements = this.getColumnElements();\r\n var $transparentColumnElement = this.getTransparentColumnElement();\r\n if (columnElements && $transparentColumnElement && $transparentColumnElement.length) {\r\n var transparentColumnIndex = getTransparentColumnIndex(this.getFixedColumns());\r\n columnElements.splice(transparentColumnIndex, $transparentColumnElement.get(0).colSpan, $transparentColumnElement.get(0))\r\n }\r\n return columnElements\r\n },\r\n getColumnWidths: function() {\r\n var fixedWidths;\r\n var result = this.callBase();\r\n var $fixedColumnElements = this.getFixedColumnElements();\r\n var fixedColumns = this.getFixedColumns();\r\n if (this._fixedTableElement) {\r\n if ($fixedColumnElements && $fixedColumnElements.length) {\r\n fixedWidths = this._getWidths($fixedColumnElements)\r\n } else {\r\n fixedWidths = this.callBase(this._fixedTableElement)\r\n }\r\n }\r\n return normalizeColumnWidths(fixedColumns, result, fixedWidths)\r\n }\r\n});\r\nvar RowsViewFixedColumnsExtender = extend({}, baseFixedColumns, {\r\n _detachHoverEvents: function() {\r\n this._fixedTableElement && eventsEngine.off(this._fixedTableElement, \"mouseover mouseout\", \".dx-data-row\");\r\n this._tableElement && eventsEngine.off(this._tableElement, \"mouseover mouseout\", \".dx-data-row\")\r\n },\r\n _attachHoverEvents: function() {\r\n var that = this;\r\n var attachHoverEvent = function($table) {\r\n eventsEngine.on($table, \"mouseover mouseout\", \".dx-data-row\", that.createAction((function(args) {\r\n var event = args.event;\r\n var rowIndex = that.getRowIndex($(event.target).closest(\".dx-row\"));\r\n var isHover = \"mouseover\" === event.type;\r\n if (rowIndex >= 0) {\r\n that._tableElement && that._getRowElements(that._tableElement).eq(rowIndex).toggleClass(HOVER_STATE_CLASS, isHover);\r\n that._fixedTableElement && that._getRowElements(that._fixedTableElement).eq(rowIndex).toggleClass(HOVER_STATE_CLASS, isHover)\r\n }\r\n })))\r\n };\r\n if (that._fixedTableElement && that._tableElement) {\r\n attachHoverEvent(that._fixedTableElement);\r\n attachHoverEvent(that._tableElement)\r\n }\r\n },\r\n _findContentElement: function() {\r\n var that = this;\r\n var $content;\r\n var scrollTop;\r\n var contentClass = that.addWidgetPrefix(CONTENT_CLASS);\r\n var element = that.element();\r\n var scrollDelay = browser.mozilla ? 60 : 0;\r\n if (element && that._isFixedTableRendering) {\r\n $content = element.children(\".\" + contentClass);\r\n var scrollable = that.getScrollable();\r\n if (!$content.length && scrollable) {\r\n $content = $(\"<div>\").addClass(contentClass);\r\n eventsEngine.on($content, \"scroll\", (function(e) {\r\n var target = e.target;\r\n clearTimeout(that._fixedScrollTimeout);\r\n that._fixedScrollTimeout = setTimeout((function() {\r\n scrollTop = $(target).scrollTop();\r\n scrollable.scrollTo({\r\n y: scrollTop\r\n })\r\n }), scrollDelay)\r\n }));\r\n eventsEngine.on($content, wheelEventName, (function(e) {\r\n var $nearestScrollable = $(e.target).closest(\".dx-scrollable\");\r\n var shouldScroll = false;\r\n if (scrollable && scrollable.$element().is($nearestScrollable)) {\r\n shouldScroll = true\r\n } else {\r\n var nearestScrollableInstance = $nearestScrollable.length && Scrollable.getInstance($nearestScrollable.get(0));\r\n var nearestScrollableHasVerticalScrollbar = nearestScrollableInstance && nearestScrollableInstance.scrollHeight() - nearestScrollableInstance.clientHeight() > 0;\r\n shouldScroll = nearestScrollableInstance && !nearestScrollableHasVerticalScrollbar\r\n }\r\n if (shouldScroll) {\r\n scrollTop = scrollable.scrollTop();\r\n scrollable.scrollTo({\r\n y: scrollTop - e.delta\r\n });\r\n if (scrollable.scrollTop() > 0 && scrollable.scrollTop() + scrollable.clientHeight() < scrollable.scrollHeight() + that.getScrollbarWidth()) {\r\n return false\r\n }\r\n }\r\n }));\r\n $content.appendTo(element)\r\n }\r\n return $content\r\n }\r\n return that.callBase()\r\n },\r\n _updateScrollable: function() {\r\n this.callBase();\r\n var scrollable = this.getScrollable();\r\n if (null !== scrollable && void 0 !== scrollable && scrollable._disposed) {\r\n return\r\n }\r\n var scrollTop = scrollable && scrollable.scrollOffset().top;\r\n this._updateFixedTablePosition(scrollTop)\r\n },\r\n _renderContent: function(contentElement, tableElement) {\r\n if (this._isFixedTableRendering) {\r\n return contentElement.empty().addClass(this.addWidgetPrefix(CONTENT_CLASS) + \" \" + this.addWidgetPrefix(CONTENT_FIXED_CLASS)).append(tableElement)\r\n }\r\n return this.callBase(contentElement, tableElement)\r\n },\r\n _getGroupCellOptions: function(options) {\r\n if (this._isFixedTableRendering) {\r\n return this.callBase(extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n }\r\n return this.callBase(options)\r\n },\r\n _renderGroupedCells: function($row, options) {\r\n return this.callBase($row, extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n },\r\n _renderGroupSummaryCells: function($row, options) {\r\n if (this._isFixedTableRendering) {\r\n this.callBase($row, extend({}, options, {\r\n columns: this._columnsController.getVisibleColumns()\r\n }))\r\n } else {\r\n this.callBase($row, options)\r\n }\r\n },\r\n _hasAlignByColumnSummaryItems: function(columnIndex, options) {\r\n var result = this.callBase.apply(this, arguments);\r\n var column = options.columns[columnIndex];\r\n if (options.isFixed) {\r\n return column.fixed && (result || \"right\" === column.fixedPosition)\r\n }\r\n return result && (!this._isFixedColumns || !column.fixed)\r\n },\r\n _renderGroupSummaryCellsCore: function($groupCell, options, groupCellColSpan, alignByColumnCellCount) {\r\n var alignByFixedColumnCellCount;\r\n if (this._isFixedTableRendering) {\r\n options.isFixed = true;\r\n alignByFixedColumnCellCount = this._getAlignByColumnCellCount(groupCellColSpan, options);\r\n options.isFixed = false;\r\n var startColumnIndex = options.columns.length - alignByFixedColumnCellCount;\r\n options = extend({}, options, {\r\n columns: this.getFixedColumns()\r\n });\r\n var transparentColumnIndex = getTransparentColumnIndex(options.columns);\r\n if (startColumnIndex < transparentColumnIndex) {\r\n alignByFixedColumnCellCount -= options.columns[transparentColumnIndex].colspan - 1 || 0;\r\n groupCellColSpan -= options.columns[transparentColumnIndex].colspan - 1 || 0\r\n } else if (alignByColumnCellCount > 0) {\r\n $groupCell.css(\"visibility\", \"hidden\")\r\n }\r\n alignByColumnCellCount = alignByFixedColumnCellCount\r\n }\r\n this.callBase($groupCell, options, groupCellColSpan, alignByColumnCellCount)\r\n },\r\n _getSummaryCellIndex: function(columnIndex, columns) {\r\n if (this._isFixedTableRendering) {\r\n var transparentColumnIndex = getTransparentColumnIndex(columns);\r\n if (columnIndex > transparentColumnIndex) {\r\n columnIndex += columns[transparentColumnIndex].colspan - 1\r\n }\r\n return columnIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _renderCore: function(change) {\r\n this._detachHoverEvents();\r\n this.callBase(change);\r\n var isFixedColumns = this._isFixedColumns;\r\n this.element().toggleClass(FIXED_COLUMNS_CLASS, isFixedColumns);\r\n if (this.option(\"hoverStateEnabled\") && isFixedColumns) {\r\n this._attachHoverEvents()\r\n }\r\n },\r\n setRowsOpacity: function(columnIndex, value) {\r\n this.callBase(columnIndex, value);\r\n var $rows = this._getRowElements(this._fixedTableElement);\r\n this._setRowsOpacityCore($rows, this.getFixedColumns(), columnIndex, value)\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n if (\"hoverStateEnabled\" === args.name && this._isFixedColumns) {\r\n args.value ? this._attachHoverEvents() : this._detachHoverEvents()\r\n }\r\n },\r\n getCellIndex: function($cell) {\r\n var $fixedTable = this._fixedTableElement;\r\n var cellIndex = 0;\r\n if ($fixedTable && $cell.is(\"td\") && $cell.closest($fixedTable).length) {\r\n var columns = this.getFixedColumns();\r\n each(columns, (function(index, column) {\r\n if (index === $cell[0].cellIndex) {\r\n return false\r\n }\r\n if (column.colspan) {\r\n cellIndex += column.colspan;\r\n return\r\n }\r\n cellIndex++\r\n }));\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateFixedTablePosition: function(scrollTop, needFocus) {\r\n if (this._fixedTableElement && this._tableElement) {\r\n var $focusedElement;\r\n var editorFactory = this.getController(\"editorFactory\");\r\n this._fixedTableElement.parent().scrollTop(scrollTop);\r\n if (needFocus && editorFactory) {\r\n $focusedElement = editorFactory.focus();\r\n $focusedElement && editorFactory.focus($focusedElement)\r\n }\r\n }\r\n },\r\n setScrollerSpacing: function(vWidth, hWidth) {\r\n var styles = {\r\n marginBottom: 0\r\n };\r\n var $fixedContent = this.element().children(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS));\r\n if ($fixedContent.length && this._fixedTableElement) {\r\n $fixedContent.css(styles);\r\n this._fixedTableElement.css(styles);\r\n styles[this.option(\"rtlEnabled\") ? \"marginLeft\" : \"marginRight\"] = vWidth;\r\n styles.marginBottom = hWidth;\r\n var useNativeScrolling = this._scrollable && this._scrollable.option(\"useNative\");\r\n (useNativeScrolling ? $fixedContent : this._fixedTableElement).css(styles)\r\n }\r\n },\r\n _getElasticScrollTop: function(e) {\r\n var elasticScrollTop = 0;\r\n if (e.scrollOffset.top < 0) {\r\n elasticScrollTop = -e.scrollOffset.top\r\n } else if (e.reachedBottom) {\r\n var $scrollableContent = $(e.component.content());\r\n var $scrollableContainer = $(e.component.container());\r\n var maxScrollTop = Math.max($scrollableContent.get(0).clientHeight - $scrollableContainer.get(0).clientHeight, 0);\r\n elasticScrollTop = maxScrollTop - e.scrollOffset.top\r\n }\r\n return Math.floor(elasticScrollTop)\r\n },\r\n _applyElasticScrolling: function(e) {\r\n if (this._fixedTableElement) {\r\n var elasticScrollTop = this._getElasticScrollTop(e);\r\n if (0 !== Math.ceil(elasticScrollTop)) {\r\n move(this._fixedTableElement, {\r\n top: elasticScrollTop\r\n })\r\n } else {\r\n this._fixedTableElement.css(\"transform\", \"\")\r\n }\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n this._updateFixedTablePosition(e.scrollOffset.top, true);\r\n this._applyElasticScrolling(e);\r\n this.callBase(e)\r\n },\r\n _updateContentPosition: function(isRender) {\r\n this.callBase.apply(this, arguments);\r\n if (!isRender) {\r\n this._updateFixedTablePosition(this._scrollTop)\r\n }\r\n },\r\n _afterRowPrepared: function(e) {\r\n if (this._isFixedTableRendering) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _scrollToElement: function($element) {\r\n this.callBase($element, this.getFixedColumnsOffset())\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._fixedScrollTimeout)\r\n }\r\n});\r\nvar FooterViewFixedColumnsExtender = baseFixedColumns;\r\nexport var columnFixingModule = {\r\n defaultOptions: function() {\r\n return {\r\n columnFixing: {\r\n enabled: false,\r\n texts: {\r\n fix: messageLocalization.format(\"dxDataGrid-columnFixingFix\"),\r\n unfix: messageLocalization.format(\"dxDataGrid-columnFixingUnfix\"),\r\n leftPosition: messageLocalization.format(\"dxDataGrid-columnFixingLeftPosition\"),\r\n rightPosition: messageLocalization.format(\"dxDataGrid-columnFixingRightPosition\")\r\n }\r\n }\r\n }\r\n },\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFixedColumnsExtender,\r\n rowsView: RowsViewFixedColumnsExtender,\r\n footerView: FooterViewFixedColumnsExtender\r\n },\r\n controllers: {\r\n draggingHeader: {\r\n _generatePointsByColumns: function(options) {\r\n var visibleColumns = options.columns;\r\n var targetDraggingPanel = options.targetDraggingPanel;\r\n if (targetDraggingPanel && \"headers\" === targetDraggingPanel.getName() && targetDraggingPanel.isFixedColumns()) {\r\n if (options.sourceColumn.fixed) {\r\n if (!options.rowIndex) {\r\n options.columnElements = targetDraggingPanel.getFixedColumnElements(0)\r\n }\r\n options.columns = targetDraggingPanel.getFixedColumns(options.rowIndex);\r\n var pointsByColumns = this.callBase(options);\r\n ! function(columns, fixedColumns, pointsByColumns) {\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var correctIndex = columns.length - fixedColumns.length;\r\n each(pointsByColumns, (function(_, point) {\r\n if (point.index > transparentColumnIndex) {\r\n point.columnIndex += correctIndex;\r\n point.index += correctIndex\r\n }\r\n }));\r\n return pointsByColumns\r\n }(visibleColumns, options.columns, pointsByColumns);\r\n return pointsByColumns\r\n }\r\n }\r\n return this.callBase(options)\r\n },\r\n _pointCreated: function(point, columns, location, sourceColumn) {\r\n var result = this.callBase.apply(this, arguments);\r\n var targetColumn = columns[point.columnIndex];\r\n var $transparentColumn = this._columnHeadersView.getTransparentColumnElement();\r\n if (!result && \"headers\" === location && $transparentColumn && $transparentColumn.length) {\r\n var boundingRect = getBoundingRect($transparentColumn.get(0));\r\n if (sourceColumn && sourceColumn.fixed) {\r\n return \"right\" === sourceColumn.fixedPosition ? point.x < boundingRect.right : point.x > boundingRect.left\r\n } else {\r\n if (targetColumn && targetColumn.fixed && \"right\" !== targetColumn.fixedPosition) {\r\n return true\r\n }\r\n return point.x < boundingRect.left || point.x > boundingRect.right\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n columnsResizer: {\r\n _generatePointsByColumns: function() {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var columns = columnsController && that._columnsController.getVisibleColumns();\r\n var fixedColumns = columnsController && that._columnsController.getFixedColumns();\r\n var transparentColumnIndex = getTransparentColumnIndex(fixedColumns);\r\n var correctIndex = columns.length - fixedColumns.length;\r\n var cells = that._columnHeadersView.getFixedColumnElements();\r\n that.callBase();\r\n if (cells && cells.length > 0) {\r\n that._pointsByFixedColumns = gridCoreUtils.getPointsByColumns(cells, (function(point) {\r\n if (point.index > transparentColumnIndex) {\r\n point.columnIndex += correctIndex;\r\n point.index += correctIndex\r\n }\r\n return that._pointCreated(point, columns.length, columns)\r\n }))\r\n }\r\n },\r\n _getTargetPoint: function(pointsByColumns, currentX, deltaX) {\r\n var $transparentColumn = this._columnHeadersView.getTransparentColumnElement();\r\n if ($transparentColumn && $transparentColumn.length) {\r\n var boundingRect = getBoundingRect($transparentColumn.get(0));\r\n if (currentX <= boundingRect.left || currentX >= boundingRect.right) {\r\n return this.callBase(this._pointsByFixedColumns, currentX, deltaX)\r\n }\r\n }\r\n return this.callBase(pointsByColumns, currentX, deltaX)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_headers.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"./ui.grid_core.accessibility\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_CLASS = \"headers\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar ROW_CLASS_SELECTOR = \".dx-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar CONTEXT_MENU_SORT_ASC_ICON = \"context-menu-sort-asc\";\r\nvar CONTEXT_MENU_SORT_DESC_ICON = \"context-menu-sort-desc\";\r\nvar CONTEXT_MENU_SORT_NONE_ICON = \"context-menu-sort-none\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar VISIBILITY_HIDDEN_CLASS = \"dx-visibility-hidden\";\r\nvar TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX = \"dx-text-content-alignment-\";\r\nvar SORT_INDICATOR_CLASS = \"dx-sort-indicator\";\r\nvar SORT_INDEX_INDICATOR_CLASS = \"dx-sort-index-indicator\";\r\nvar HEADER_FILTER_CLASS_SELECTOR = \".dx-header-filter\";\r\nvar HEADER_FILTER_INDICATOR_CLASS = \"dx-header-filter-indicator\";\r\nvar MULTI_ROW_HEADER_CLASS = \"dx-header-multi-row\";\r\nexport var columnHeadersModule = {\r\n defaultOptions: function() {\r\n return {\r\n showColumnHeaders: true,\r\n cellHintEnabled: true\r\n }\r\n },\r\n views: {\r\n columnHeadersView: ColumnsView.inherit(function() {\r\n var createCellContent = function(that, $cell, options) {\r\n var $cellContent = $(\"<div>\").addClass(that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n that.setAria(\"role\", \"presentation\", $cellContent);\r\n addCssClassesToCellContent(that, $cell, options.column, $cellContent);\r\n var showColumnLines = that.option(\"showColumnLines\");\r\n var contentAlignment = that.getController(\"columns\").getHeaderContentAlignment(options.column.alignment);\r\n return $cellContent[showColumnLines || \"right\" === contentAlignment ? \"appendTo\" : \"prependTo\"]($cell)\r\n };\r\n\r\n function addCssClassesToCellContent(that, $cell, column, $cellContent) {\r\n var $indicatorElements = that._getIndicatorElements($cell, true);\r\n var $visibleIndicatorElements = that._getIndicatorElements($cell);\r\n var indicatorCount = $indicatorElements && $indicatorElements.length;\r\n var columnAlignment = that._getColumnAlignment(column.alignment);\r\n var sortIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sort\"));\r\n var sortIndexIndicatorClassName = \".\".concat(that._getIndicatorClassName(\"sortIndex\"));\r\n var $sortIndicator = $visibleIndicatorElements.filter(sortIndicatorClassName);\r\n var $sortIndexIndicator = $visibleIndicatorElements.children().filter(sortIndexIndicatorClassName);\r\n $cellContent = $cellContent || $cell.children(\".\" + that.addWidgetPrefix(CELL_CONTENT_CLASS));\r\n $cellContent.toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + columnAlignment, indicatorCount > 0).toggleClass(TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX + (\"left\" === columnAlignment ? \"right\" : \"left\"), indicatorCount > 0 && \"center\" === column.alignment).toggleClass(SORT_INDICATOR_CLASS, !!$sortIndicator.length).toggleClass(SORT_INDEX_INDICATOR_CLASS, !!$sortIndexIndicator.length).toggleClass(HEADER_FILTER_INDICATOR_CLASS, !!$visibleIndicatorElements.filter(\".\" + that._getIndicatorClassName(\"headerFilter\")).length)\r\n }\r\n return {\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n eventsEngine.on($table, \"mousedown selectstart\", this.createAction((function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n })));\r\n return $table\r\n },\r\n _isLegacyKeyboardNavigation() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDefaultTemplate: function(column) {\r\n var that = this;\r\n return function($container, options) {\r\n var $content = column.command ? $container : createCellContent(that, $container, options);\r\n var caption = \"expand\" !== column.command && column.caption;\r\n if (caption) {\r\n $content.text(caption)\r\n } else if (column.command) {\r\n $container.html(\" \")\r\n }\r\n }\r\n },\r\n _getHeaderTemplate: function(column) {\r\n return column.headerCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n },\r\n _processTemplate: function(template, options) {\r\n var that = this;\r\n var resultTemplate;\r\n var column = options.column;\r\n var renderingTemplate = that.callBase(template);\r\n if (\"header\" === options.rowType && renderingTemplate && column.headerCellTemplate && !column.command) {\r\n resultTemplate = {\r\n render: function(options) {\r\n var $content = createCellContent(that, options.container, options.model);\r\n renderingTemplate.render(extend({}, options, {\r\n container: $content\r\n }))\r\n }\r\n }\r\n } else {\r\n resultTemplate = renderingTemplate\r\n }\r\n return resultTemplate\r\n },\r\n _handleDataChanged: function(e) {\r\n if (\"refresh\" !== e.changeType) {\r\n return\r\n }\r\n if (this._isGroupingChanged || this._requireReady) {\r\n this._isGroupingChanged = false;\r\n this.render()\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var $cell = this.callBase($row, options);\r\n if (\"header\" === options.row.rowType) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n if (options.column && !options.column.type) {\r\n $cell.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n }\r\n }\r\n return $cell\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n this.callBase($cell, cellOptions);\r\n if (\"header\" === cellOptions.rowType) {\r\n this.setAria(\"role\", \"columnheader\", $cell);\r\n if (cellOptions.column && !cellOptions.column.command && !cellOptions.column.isBand) {\r\n $cell.attr(\"id\", cellOptions.column.headerId);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaColumn\") + \" \" + cellOptions.column.caption, $cell)\r\n }\r\n }\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n $row.toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n if (\"header\" === row.rowType) {\r\n $row.addClass(HEADER_ROW_CLASS);\r\n if (!this._isLegacyKeyboardNavigation()) {\r\n registerKeyboardAction(\"columnHeaders\", this, $row, \"td\", this._handleActionKeyDown.bind(this))\r\n }\r\n }\r\n return $row\r\n },\r\n _handleActionKeyDown: function(args) {\r\n var event = args.event;\r\n var $target = $(event.target);\r\n this._lastActionElement = event.target;\r\n if ($target.is(HEADER_FILTER_CLASS_SELECTOR)) {\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var $column = $target.closest(\"td\");\r\n var columnIndex = this.getColumnIndexByElement($column);\r\n if (columnIndex >= 0) {\r\n headerFilterController.showHeaderFilterMenu(columnIndex, false)\r\n }\r\n } else {\r\n var $row = $target.closest(ROW_CLASS_SELECTOR);\r\n this._processHeaderAction(event, $row)\r\n }\r\n event.preventDefault()\r\n },\r\n _renderCore: function() {\r\n var that = this;\r\n var $container = that.element();\r\n var change = {};\r\n if (that._tableElement && !that._dataController.isLoaded() && !that._hasRowElements) {\r\n return\r\n }\r\n $container.addClass(that.addWidgetPrefix(HEADERS_CLASS)).toggleClass(that.addWidgetPrefix(NOWRAP_CLASS), !that.option(\"wordWrapEnabled\")).empty();\r\n that.setAria(\"role\", \"presentation\", $container);\r\n that._updateContent(that._renderTable({\r\n change: change\r\n }), change);\r\n if (that.getRowCount() > 1) {\r\n $container.addClass(MULTI_ROW_HEADER_CLASS)\r\n }\r\n that.callBase.apply(that, arguments)\r\n },\r\n _renderRows: function() {\r\n var that = this;\r\n if (that._dataController.isLoaded() || that._hasRowElements) {\r\n that.callBase.apply(that, arguments);\r\n that._hasRowElements = true\r\n }\r\n },\r\n _getRowVisibleColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n _renderRow: function($table, options) {\r\n options.columns = this._getRowVisibleColumns(options.row.rowIndex);\r\n this.callBase($table, options)\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var $cellElement = this.callBase.apply(this, arguments);\r\n column.rowspan > 1 && \"header\" === options.rowType && $cellElement.attr(\"rowSpan\", column.rowspan);\r\n return $cellElement\r\n },\r\n _getRows: function() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n if (this.option(\"showColumnHeaders\")) {\r\n for (var i = 0; i < rowCount; i++) {\r\n result.push({\r\n rowType: \"header\",\r\n rowIndex: i\r\n })\r\n }\r\n }\r\n return result\r\n },\r\n _getCellTemplate: function(options) {\r\n if (\"header\" === options.rowType) {\r\n return this._getHeaderTemplate(options.column)\r\n }\r\n },\r\n _columnOptionChanged: function(e) {\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n if (changeTypes.grouping || changeTypes.groupExpanding) {\r\n if (changeTypes.grouping) {\r\n this._isGroupingChanged = true\r\n }\r\n return\r\n }\r\n this.callBase(e);\r\n if (optionNames.width || optionNames.visible) {\r\n this.resizeCompleted.fire()\r\n }\r\n },\r\n _isElementVisible: function(elementOptions) {\r\n return elementOptions && elementOptions.visible\r\n },\r\n _alignCaptionByCenter: function($cell) {\r\n var $indicatorsContainer = this._getIndicatorContainer($cell, true);\r\n if ($indicatorsContainer && $indicatorsContainer.length) {\r\n $indicatorsContainer.filter(\".\" + VISIBILITY_HIDDEN_CLASS).remove();\r\n $indicatorsContainer = this._getIndicatorContainer($cell);\r\n $indicatorsContainer.clone().addClass(VISIBILITY_HIDDEN_CLASS).css(\"float\", \"\").insertBefore($cell.children(\".\" + this.addWidgetPrefix(CELL_CONTENT_CLASS)))\r\n }\r\n },\r\n _updateCell: function($cell, options) {\r\n if (\"header\" === options.rowType && \"center\" === options.column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n var $indicatorElement = this.callBase.apply(this, arguments);\r\n if (\"center\" === column.alignment) {\r\n this._alignCaptionByCenter($cell)\r\n }\r\n addCssClassesToCellContent(this, $cell, column);\r\n return $indicatorElement\r\n },\r\n _getIndicatorContainer: function($cell, returnAll) {\r\n var $indicatorsContainer = this.callBase($cell);\r\n return returnAll ? $indicatorsContainer : $indicatorsContainer.filter(\":not(.\" + VISIBILITY_HIDDEN_CLASS + \")\")\r\n },\r\n _isSortableElement: function() {\r\n return true\r\n },\r\n getHeadersRowHeight: function() {\r\n var $tableElement = this.getTableElement();\r\n var $headerRows = $tableElement && $tableElement.find(\".\" + HEADER_ROW_CLASS);\r\n return $headerRows && $headerRows.toArray().reduce((function(sum, headerRow) {\r\n return sum + getHeight(headerRow)\r\n }), 0) || 0\r\n },\r\n getHeaderElement: function(index) {\r\n var columnElements = this.getColumnElements();\r\n return columnElements && columnElements.eq(index)\r\n },\r\n getColumnElements: function(index, bandColumnIndex) {\r\n var that = this;\r\n var $cellElement;\r\n var columnsController = that._columnsController;\r\n var rowCount = that.getRowCount();\r\n if (that.option(\"showColumnHeaders\")) {\r\n if (rowCount > 1 && (!isDefined(index) || isDefined(bandColumnIndex))) {\r\n var result = [];\r\n var visibleColumns = isDefined(bandColumnIndex) ? columnsController.getChildrenByBandColumn(bandColumnIndex, true) : columnsController.getVisibleColumns();\r\n each(visibleColumns, (function(_, column) {\r\n var rowIndex = isDefined(index) ? index : columnsController.getRowIndex(column.index);\r\n $cellElement = that._getCellElement(rowIndex, columnsController.getVisibleIndex(column.index, rowIndex));\r\n $cellElement && result.push($cellElement.get(0))\r\n }));\r\n return $(result)\r\n } else if (!index || index < rowCount) {\r\n return that.getCellElements(index || 0)\r\n }\r\n }\r\n },\r\n getColumnIndexByElement: function($cell) {\r\n var cellIndex = this.getCellIndex($cell);\r\n var $row = $cell.closest(\".dx-row\");\r\n var rowIndex = $row[0].rowIndex;\r\n var column = this.getColumns(rowIndex)[cellIndex];\r\n return column ? column.index : -1\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n var column = this.getColumns()[columnIndex];\r\n return column ? this._columnsController.getVisibleIndex(column.index, rowIndex) : -1\r\n },\r\n getColumnWidths: function() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n return this._getWidths($columnElements)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n allowDragging: function(column, sourceLocation, draggingPanels) {\r\n var i;\r\n var draggableColumnCount = 0;\r\n var rowIndex = column && this._columnsController.getRowIndex(column.index);\r\n var columns = this.getColumns(0 === rowIndex ? 0 : null);\r\n var canHideColumn = (null === column || void 0 === column ? void 0 : column.allowHiding) && columns.length > 1;\r\n var allowDrag = function(column) {\r\n return column.allowReordering || column.allowGrouping || column.allowHiding\r\n };\r\n for (i = 0; i < columns.length; i++) {\r\n if (allowDrag(columns[i])) {\r\n draggableColumnCount++\r\n }\r\n }\r\n if (draggableColumnCount <= 1 && !canHideColumn) {\r\n return false\r\n } else if (!draggingPanels) {\r\n return (this.option(\"allowColumnReordering\") || this._columnsController.isColumnOptionUsed(\"allowReordering\")) && column && column.allowReordering\r\n }\r\n for (i = 0; i < draggingPanels.length; i++) {\r\n var draggingPanel = draggingPanels[i];\r\n if (draggingPanel && draggingPanel.allowDragging(column, sourceLocation)) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n getBoundingRect: function() {\r\n var $columnElements = this.getColumnElements();\r\n if ($columnElements && $columnElements.length) {\r\n var offset = this.getTableElement().offset();\r\n return {\r\n top: offset.top\r\n }\r\n }\r\n return null\r\n },\r\n getName: function() {\r\n return \"headers\"\r\n },\r\n getColumnCount: function() {\r\n var $columnElements = this.getColumnElements();\r\n return $columnElements ? $columnElements.length : 0\r\n },\r\n isVisible: function() {\r\n return this.option(\"showColumnHeaders\")\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"showColumnHeaders\":\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n getContextMenuItems: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (options.row && (\"header\" === options.row.rowType || \"detailAdaptive\" === options.row.rowType)) {\r\n var sortingOptions = that.option(\"sorting\");\r\n if (sortingOptions && \"none\" !== sortingOptions.mode && column && column.allowSorting) {\r\n var onItemClick = function(params) {\r\n setTimeout((function() {\r\n that._columnsController.changeSortOrder(column.index, params.itemData.value)\r\n }))\r\n };\r\n return [{\r\n text: sortingOptions.ascendingText,\r\n value: \"asc\",\r\n disabled: \"asc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_ASC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.descendingText,\r\n value: \"desc\",\r\n disabled: \"desc\" === column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_DESC_ICON,\r\n onItemClick: onItemClick\r\n }, {\r\n text: sortingOptions.clearText,\r\n value: \"none\",\r\n disabled: !column.sortOrder,\r\n icon: CONTEXT_MENU_SORT_NONE_ICON,\r\n onItemClick: onItemClick\r\n }]\r\n }\r\n }\r\n },\r\n getRowCount: function() {\r\n return this._columnsController && this._columnsController.getRowCount()\r\n },\r\n setRowsOpacity: function(columnIndex, value, rowIndex) {\r\n var that = this;\r\n var i;\r\n var columnElements;\r\n var rowCount = that.getRowCount();\r\n var columns = that._columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n var setColumnOpacity = function(index, column) {\r\n if (column.ownerBand === columnID) {\r\n columnElements.eq(index).css({\r\n opacity: value\r\n });\r\n if (column.isBand) {\r\n that.setRowsOpacity(column.index, value, i + 1)\r\n }\r\n }\r\n };\r\n if (isDefined(columnID)) {\r\n rowIndex = rowIndex || 0;\r\n for (i = rowIndex; i < rowCount; i++) {\r\n columnElements = that.getCellElements(i);\r\n each(that.getColumns(i), setColumnOpacity)\r\n }\r\n }\r\n }\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.columns_controller.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isNumeric,\r\n isFunction,\r\n isObject,\r\n isPlainObject,\r\n type\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeIndexes\r\n} from \"../../core/utils/array\";\r\nimport config from \"../../core/config\";\r\nimport {\r\n orderEach,\r\n deepExtendArraySafe\r\n} from \"../../core/utils/object\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport dateSerialization from \"../../core/utils/date_serialization\";\r\nimport numberLocalization from \"../../localization/number\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport Store from \"../../data/abstract_store\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport filterUtils from \"../shared/filtering\";\r\nvar USER_STATE_FIELD_NAMES_15_1 = [\"filterValues\", \"filterType\", \"fixed\", \"fixedPosition\"];\r\nvar USER_STATE_FIELD_NAMES = [\"visibleIndex\", \"dataField\", \"name\", \"dataType\", \"width\", \"visible\", \"sortOrder\", \"lastSortOrder\", \"sortIndex\", \"groupIndex\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"added\"].concat(USER_STATE_FIELD_NAMES_15_1);\r\nvar IGNORE_COLUMN_OPTION_NAMES = {\r\n visibleWidth: true,\r\n bestFitWidth: true,\r\n bufferedFilterValue: true\r\n};\r\nvar COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nvar MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER || 9007199254740991;\r\nvar GROUP_COMMAND_COLUMN_NAME = \"groupExpand\";\r\nvar regExp = /columns\\[(\\d+)\\]\\.?/gi;\r\nvar globalColumnId = 1;\r\nexport var columnsControllerModule = {\r\n defaultOptions: function() {\r\n return {\r\n commonColumnSettings: {\r\n allowFiltering: true,\r\n allowHiding: true,\r\n allowSorting: true,\r\n allowEditing: true,\r\n encodeHtml: true,\r\n trueText: messageLocalization.format(\"dxDataGrid-trueText\"),\r\n falseText: messageLocalization.format(\"dxDataGrid-falseText\")\r\n },\r\n allowColumnReordering: false,\r\n allowColumnResizing: false,\r\n columnResizingMode: \"nextColumn\",\r\n columnMinWidth: void 0,\r\n columnWidth: void 0,\r\n adaptColumnWidthByRatio: true,\r\n columns: void 0,\r\n regenerateColumnsByVisibleItems: false,\r\n customizeColumns: null,\r\n dateSerializationFormat: void 0\r\n }\r\n },\r\n controllers: {\r\n columns: modules.Controller.inherit(function() {\r\n var DEFAULT_COLUMN_OPTIONS = {\r\n visible: true,\r\n showInColumnChooser: true\r\n };\r\n var DATATYPE_OPERATIONS = {\r\n number: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n string: [\"contains\", \"notcontains\", \"startswith\", \"endswith\", \"=\", \"<>\"],\r\n date: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"],\r\n datetime: [\"=\", \"<>\", \"<\", \">\", \"<=\", \">=\", \"between\"]\r\n };\r\n var COLUMN_INDEX_OPTIONS = {\r\n visibleIndex: true,\r\n groupIndex: true,\r\n grouped: true,\r\n sortIndex: true,\r\n sortOrder: true\r\n };\r\n var setFilterOperationsAsDefaultValues = function(column) {\r\n column.filterOperations = column.defaultFilterOperations\r\n };\r\n var createColumn = function(that, columnOptions, userStateColumnOptions, bandColumn) {\r\n var commonColumnOptions = {};\r\n if (columnOptions) {\r\n if (isString(columnOptions)) {\r\n columnOptions = {\r\n dataField: columnOptions\r\n }\r\n }\r\n that.setName(columnOptions);\r\n var result = {};\r\n if (columnOptions.command) {\r\n result = deepExtendArraySafe(commonColumnOptions, columnOptions)\r\n } else {\r\n commonColumnOptions = that.getCommonSettings(columnOptions);\r\n if (userStateColumnOptions && userStateColumnOptions.name && userStateColumnOptions.dataField) {\r\n columnOptions = extend({}, columnOptions, {\r\n dataField: userStateColumnOptions.dataField\r\n })\r\n }\r\n var calculatedColumnOptions = that._createCalculatedColumnOptions(columnOptions, bandColumn);\r\n if (!columnOptions.type) {\r\n result = {\r\n headerId: \"dx-col-\".concat(globalColumnId++)\r\n }\r\n }\r\n result = deepExtendArraySafe(result, DEFAULT_COLUMN_OPTIONS);\r\n deepExtendArraySafe(result, commonColumnOptions);\r\n deepExtendArraySafe(result, calculatedColumnOptions);\r\n deepExtendArraySafe(result, columnOptions);\r\n deepExtendArraySafe(result, {\r\n selector: null\r\n })\r\n }\r\n if (columnOptions.filterOperations === columnOptions.defaultFilterOperations) {\r\n setFilterOperationsAsDefaultValues(result)\r\n }\r\n return result\r\n }\r\n };\r\n var createColumnsFromOptions = function createColumnsFromOptions(that, columnsOptions, bandColumn) {\r\n var result = [];\r\n if (columnsOptions) {\r\n each(columnsOptions, (function(index, columnOptions) {\r\n var userStateColumnOptions = that._columnsUserState && checkUserStateColumn(columnOptions, that._columnsUserState[index]) && that._columnsUserState[index];\r\n var column = createColumn(that, columnOptions, userStateColumnOptions, bandColumn);\r\n if (column) {\r\n if (bandColumn) {\r\n column.ownerBand = bandColumn\r\n }\r\n result.push(column);\r\n if (column.columns) {\r\n result = result.concat(createColumnsFromOptions(that, column.columns, column));\r\n delete column.columns;\r\n column.hasColumns = true\r\n }\r\n }\r\n }))\r\n }\r\n return result\r\n };\r\n var getParentBandColumns = function(columnIndex, columnParentByIndex) {\r\n var result = [];\r\n var parent = columnParentByIndex[columnIndex];\r\n while (parent) {\r\n result.unshift(parent);\r\n columnIndex = parent.index;\r\n parent = columnParentByIndex[columnIndex]\r\n }\r\n return result\r\n };\r\n var _getChildrenByBandColumn = function(columnIndex, columnChildrenByIndex, recursive) {\r\n var result = [];\r\n var children = columnChildrenByIndex[columnIndex];\r\n if (children) {\r\n for (var i = 0; i < children.length; i++) {\r\n var column = children[i];\r\n if (!isDefined(column.groupIndex) || column.showWhenGrouped) {\r\n result.push(column);\r\n if (recursive && column.isBand) {\r\n result = result.concat(_getChildrenByBandColumn(column.index, columnChildrenByIndex, recursive))\r\n }\r\n }\r\n }\r\n }\r\n return result\r\n };\r\n var getColumnFullPath = function(that, column) {\r\n var result = [];\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(item) {\r\n return item.ownerBand === column.ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n var columnIndex = that._columns.indexOf(column);\r\n if (columnIndex >= 0) {\r\n result = [\"columns[\".concat(columnIndex, \"]\")]\r\n }\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n while (columns.length && -1 !== columns.indexOf(column)) {\r\n result.unshift(\"columns[\".concat(columns.indexOf(column), \"]\"));\r\n column = bandColumnsCache.columnParentByIndex[column.index];\r\n columns = column ? that._columns.filter(callbackFilter) : []\r\n }\r\n }\r\n return result.join(\".\")\r\n };\r\n var calculateColspan = function calculateColspan(that, columnID) {\r\n var colspan = 0;\r\n var columns = that.getChildrenByBandColumn(columnID, true);\r\n each(columns, (function(_, column) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index);\r\n colspan += column.colspan || 1\r\n } else {\r\n colspan += 1\r\n }\r\n }));\r\n return colspan\r\n };\r\n var getValueDataType = function(value) {\r\n var dataType = type(value);\r\n if (\"string\" !== dataType && \"boolean\" !== dataType && \"number\" !== dataType && \"date\" !== dataType && \"object\" !== dataType) {\r\n dataType = void 0\r\n }\r\n return dataType\r\n };\r\n var getSerializationFormat = function(dataType, value) {\r\n switch (dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n return dateSerialization.getDateSerializationFormat(value);\r\n case \"number\":\r\n if (isString(value)) {\r\n return \"string\"\r\n }\r\n if (isNumeric(value)) {\r\n return null\r\n }\r\n }\r\n };\r\n var updateSerializers = function(options, dataType) {\r\n if (!options.deserializeValue) {\r\n if (gridCoreUtils.isDateType(dataType)) {\r\n options.deserializeValue = function(value) {\r\n return dateSerialization.deserializeDate(value)\r\n };\r\n options.serializeValue = function(value) {\r\n return isString(value) ? value : dateSerialization.serializeDate(value, this.serializationFormat)\r\n }\r\n }\r\n if (\"number\" === dataType) {\r\n options.deserializeValue = function(value) {\r\n var parsedValue = parseFloat(value);\r\n return isNaN(parsedValue) ? value : parsedValue\r\n };\r\n options.serializeValue = function(value, target) {\r\n if (\"filter\" === target) {\r\n return value\r\n }\r\n return isDefined(value) && \"string\" === this.serializationFormat ? value.toString() : value\r\n }\r\n }\r\n }\r\n };\r\n var customizeTextForBooleanDataType = function(e) {\r\n if (true === e.value) {\r\n return this.trueText || \"true\"\r\n } else if (false === e.value) {\r\n return this.falseText || \"false\"\r\n } else {\r\n return e.valueText || \"\"\r\n }\r\n };\r\n var getCustomizeTextByDataType = function(dataType) {\r\n if (\"boolean\" === dataType) {\r\n return customizeTextForBooleanDataType\r\n }\r\n };\r\n var updateColumnIndexes = function(that) {\r\n each(that._columns, (function(index, column) {\r\n column.index = index\r\n }));\r\n each(that._columns, (function(index, column) {\r\n if (isObject(column.ownerBand)) {\r\n column.ownerBand = column.ownerBand.index\r\n }\r\n }));\r\n each(that._commandColumns, (function(index, column) {\r\n column.index = -(index + 1)\r\n }))\r\n };\r\n var updateColumnGroupIndexes = function(that, currentColumn) {\r\n normalizeIndexes(that._columns, \"groupIndex\", currentColumn, (function(column) {\r\n var grouped = column.grouped;\r\n delete column.grouped;\r\n return grouped\r\n }))\r\n };\r\n var getColumnIndexByVisibleIndex = function(that, visibleIndex, location) {\r\n var rowIndex = isObject(visibleIndex) ? visibleIndex.rowIndex : null;\r\n var columns = \"group\" === location ? that.getGroupColumns() : \"columnChooser\" === location ? that.getChooserColumns() : that.getVisibleColumns(rowIndex);\r\n var column;\r\n visibleIndex = isObject(visibleIndex) ? visibleIndex.columnIndex : visibleIndex;\r\n column = columns[visibleIndex];\r\n if (column && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n column = that._columns.filter(col => column.type === col.type)[0] || column\r\n }\r\n return column && isDefined(column.index) ? column.index : -1\r\n };\r\n\r\n function checkUserStateColumn(column, userStateColumn) {\r\n return column && userStateColumn && userStateColumn.name === (column.name || column.dataField) && (userStateColumn.dataField === column.dataField || column.name)\r\n }\r\n var applyUserState = function(that) {\r\n var columnsUserState = that._columnsUserState;\r\n var ignoreColumnOptionNames = that._ignoreColumnOptionNames || [];\r\n var columns = that._columns;\r\n var columnCountById = {};\r\n var resultColumns = [];\r\n var allColumnsHaveState = true;\r\n var userStateColumnIndexes = [];\r\n var column;\r\n var userStateColumnIndex;\r\n var i;\r\n\r\n function applyFieldsState(column, userStateColumn) {\r\n if (!userStateColumn) {\r\n return\r\n }\r\n for (var index = 0; index < USER_STATE_FIELD_NAMES.length; index++) {\r\n var fieldName = USER_STATE_FIELD_NAMES[index];\r\n if (ignoreColumnOptionNames.includes(fieldName)) {\r\n continue\r\n }\r\n if (\"dataType\" === fieldName) {\r\n column[fieldName] = column[fieldName] || userStateColumn[fieldName]\r\n } else if (USER_STATE_FIELD_NAMES_15_1.includes(fieldName)) {\r\n if (fieldName in userStateColumn) {\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n } else {\r\n if (\"selectedFilterOperation\" === fieldName && userStateColumn[fieldName]) {\r\n column.defaultSelectedFilterOperation = column[fieldName] || null\r\n }\r\n column[fieldName] = userStateColumn[fieldName]\r\n }\r\n }\r\n }\r\n\r\n function findUserStateColumn(columnsUserState, column) {\r\n var id = column.name || column.dataField;\r\n var count = columnCountById[id] || 0;\r\n for (var j = 0; j < columnsUserState.length; j++) {\r\n if (checkUserStateColumn(column, columnsUserState[j])) {\r\n if (count) {\r\n count--\r\n } else {\r\n columnCountById[id] = columnCountById[id] || 0;\r\n columnCountById[id]++;\r\n return j\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n if (columnsUserState) {\r\n for (i = 0; i < columns.length; i++) {\r\n userStateColumnIndex = findUserStateColumn(columnsUserState, columns[i]);\r\n allColumnsHaveState = allColumnsHaveState && userStateColumnIndex >= 0;\r\n userStateColumnIndexes.push(userStateColumnIndex)\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n userStateColumnIndex = userStateColumnIndexes[i];\r\n if (that._hasUserState || allColumnsHaveState) {\r\n applyFieldsState(column, columnsUserState[userStateColumnIndex])\r\n }\r\n if (userStateColumnIndex >= 0 && isDefined(columnsUserState[userStateColumnIndex].initialIndex)) {\r\n resultColumns[userStateColumnIndex] = column\r\n } else {\r\n resultColumns.push(column)\r\n }\r\n }\r\n var hasAddedBands = false;\r\n for (i = 0; i < columnsUserState.length; i++) {\r\n var columnUserState = columnsUserState[i];\r\n if (columnUserState.added && findUserStateColumn(columns, columnUserState) < 0) {\r\n column = createColumn(that, columnUserState.added);\r\n applyFieldsState(column, columnUserState);\r\n resultColumns.push(column);\r\n if (columnUserState.added.columns) {\r\n hasAddedBands = true\r\n }\r\n }\r\n }\r\n if (hasAddedBands) {\r\n updateColumnIndexes(that);\r\n resultColumns = createColumnsFromOptions(that, resultColumns)\r\n }\r\n assignColumns(that, resultColumns)\r\n }\r\n };\r\n var updateIndexes = function(that, column) {\r\n updateColumnIndexes(that);\r\n updateColumnGroupIndexes(that, column);\r\n ! function(that, currentColumn) {\r\n each(that._columns, (function(index, column) {\r\n if (isDefined(column.sortIndex) && !isSortOrderValid(column.sortOrder)) {\r\n delete column.sortIndex\r\n }\r\n }));\r\n normalizeIndexes(that._columns, \"sortIndex\", currentColumn, (function(column) {\r\n return !isDefined(column.groupIndex) && isSortOrderValid(column.sortOrder)\r\n }))\r\n }(that, column);\r\n resetBandColumnsCache(that);\r\n ! function(that, currentColumn) {\r\n var column;\r\n var result = [];\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var bandedColumns = [];\r\n var columns = that._columns.filter(column => !column.command);\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n var parentBandColumns = getParentBandColumns(i, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns.length) {\r\n bandedColumns.push(column)\r\n } else {\r\n result.push(column)\r\n }\r\n }\r\n normalizeIndexes(bandedColumns, \"visibleIndex\", currentColumn);\r\n normalizeIndexes(result, \"visibleIndex\", currentColumn)\r\n }(that, column)\r\n };\r\n var resetColumnsCache = function(that) {\r\n that.resetColumnsCache()\r\n };\r\n\r\n function assignColumns(that, columns) {\r\n that._columns = columns;\r\n resetColumnsCache(that);\r\n that.updateColumnDataTypes()\r\n }\r\n var updateColumnChanges = function(that, changeType, optionName, columnIndex) {\r\n var columnChanges = that._columnChanges || {\r\n optionNames: {\r\n length: 0\r\n },\r\n changeTypes: {\r\n length: 0\r\n },\r\n columnIndex: columnIndex\r\n };\r\n optionName = optionName || \"all\";\r\n optionName = optionName.split(\".\")[0];\r\n var changeTypes = columnChanges.changeTypes;\r\n if (changeType && !changeTypes[changeType]) {\r\n changeTypes[changeType] = true;\r\n changeTypes.length++\r\n }\r\n var optionNames = columnChanges.optionNames;\r\n if (optionName && !optionNames[optionName]) {\r\n optionNames[optionName] = true;\r\n optionNames.length++\r\n }\r\n if (void 0 === columnIndex || columnIndex !== columnChanges.columnIndex) {\r\n delete columnChanges.columnIndex\r\n }\r\n that._columnChanges = columnChanges;\r\n resetColumnsCache(that)\r\n };\r\n var fireColumnsChanged = function(that) {\r\n var onColumnsChanging = that.option(\"onColumnsChanging\");\r\n var columnChanges = that._columnChanges;\r\n var reinitOptionNames = [\"dataField\", \"lookup\", \"dataType\", \"columns\"];\r\n if (that.isInitialized() && !that._updateLockCount && columnChanges) {\r\n if (onColumnsChanging) {\r\n that._updateLockCount++;\r\n onColumnsChanging(extend({\r\n component: that.component\r\n }, columnChanges));\r\n that._updateLockCount--\r\n }\r\n that._columnChanges = void 0;\r\n if (options = columnChanges.optionNames, options && reinitOptionNames.some(name => options[name])) {\r\n that.reinit()\r\n } else {\r\n that.columnsChanged.fire(columnChanges)\r\n }\r\n }\r\n var options\r\n };\r\n var updateSortOrderWhenGrouping = function(that, column, groupIndex, prevGroupIndex) {\r\n var columnWasGrouped = prevGroupIndex >= 0;\r\n if (groupIndex >= 0) {\r\n if (!columnWasGrouped) {\r\n column.lastSortOrder = column.sortOrder\r\n }\r\n } else {\r\n var sortMode = that.option(\"sorting.mode\");\r\n var sortOrder = column.lastSortOrder;\r\n if (\"single\" === sortMode) {\r\n var sortedByAnotherColumn = that._columns.some(col => col !== column && isDefined(col.sortIndex));\r\n if (sortedByAnotherColumn) {\r\n sortOrder = void 0\r\n }\r\n }\r\n column.sortOrder = sortOrder\r\n }\r\n };\r\n var fireOptionChanged = function(that, options) {\r\n var value = options.value;\r\n var optionName = options.optionName;\r\n var prevValue = options.prevValue;\r\n var fullOptionName = options.fullOptionName;\r\n var fullOptionPath = \"\".concat(fullOptionName, \".\").concat(optionName);\r\n if (!IGNORE_COLUMN_OPTION_NAMES[optionName] && that._skipProcessingColumnsChange !== fullOptionPath) {\r\n that._skipProcessingColumnsChange = fullOptionPath;\r\n that.component._notifyOptionChanged(fullOptionPath, value, prevValue);\r\n that._skipProcessingColumnsChange = false\r\n }\r\n };\r\n var columnOptionCore = function(that, column, optionName, value, notFireEvent) {\r\n var optionGetter = compileGetter(optionName);\r\n var columnIndex = column.index;\r\n var columns;\r\n var changeType;\r\n var initialColumn;\r\n if (3 === arguments.length) {\r\n return optionGetter(column, {\r\n functionsAsIs: true\r\n })\r\n }\r\n var prevValue = optionGetter(column, {\r\n functionsAsIs: true\r\n });\r\n if (!equalByValue(prevValue, value)) {\r\n if (\"groupIndex\" === optionName || \"calculateGroupValue\" === optionName) {\r\n changeType = \"grouping\";\r\n updateSortOrderWhenGrouping(that, column, value, prevValue)\r\n } else if (\"sortIndex\" === optionName || \"sortOrder\" === optionName || \"calculateSortValue\" === optionName) {\r\n changeType = \"sorting\"\r\n } else {\r\n changeType = \"columns\"\r\n }\r\n var optionSetter = compileSetter(optionName);\r\n optionSetter(column, value, {\r\n functionsAsIs: true\r\n });\r\n var fullOptionName = getColumnFullPath(that, column);\r\n if (COLUMN_INDEX_OPTIONS[optionName]) {\r\n updateIndexes(that, column);\r\n value = optionGetter(column)\r\n }\r\n if (\"name\" === optionName || \"allowEditing\" === optionName) {\r\n that._checkColumns()\r\n }\r\n if (!isDefined(prevValue) && !isDefined(value) && 0 !== optionName.indexOf(\"buffer\")) {\r\n notFireEvent = true\r\n }\r\n if (!notFireEvent) {\r\n if (!USER_STATE_FIELD_NAMES.includes(optionName) && \"visibleWidth\" !== optionName) {\r\n columns = that.option(\"columns\");\r\n initialColumn = that.getColumnByPath(fullOptionName, columns);\r\n if (isString(initialColumn)) {\r\n initialColumn = columns[columnIndex] = {\r\n dataField: initialColumn\r\n }\r\n }\r\n if (initialColumn && checkUserStateColumn(initialColumn, column)) {\r\n optionSetter(initialColumn, value, {\r\n functionsAsIs: true\r\n })\r\n }\r\n }\r\n updateColumnChanges(that, changeType, optionName, columnIndex)\r\n } else {\r\n resetColumnsCache(that)\r\n }\r\n fullOptionName && fireOptionChanged(that, {\r\n fullOptionName: fullOptionName,\r\n optionName: optionName,\r\n value: value,\r\n prevValue: prevValue\r\n })\r\n }\r\n };\r\n\r\n function isSortOrderValid(sortOrder) {\r\n return \"asc\" === sortOrder || \"desc\" === sortOrder\r\n }\r\n var defaultSetCellValue = function(data, value) {\r\n var path = this.dataField.split(\".\");\r\n var dotCount = path.length - 1;\r\n if (this.serializeValue) {\r\n value = this.serializeValue(value)\r\n }\r\n for (var i = 0; i < dotCount; i++) {\r\n var name = path[i];\r\n data = data[name] = data[name] || {}\r\n }\r\n data[path[dotCount]] = value\r\n };\r\n var isCustomCommandColumn = (that, commandColumn) => !!that._columns.filter(column => column.type === commandColumn.type).length;\r\n var getFixedPosition = function(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n if (column.command && !isCustomCommandColumn(that, column) || !column.fixedPosition) {\r\n return rtlEnabled ? \"right\" : \"left\"\r\n }\r\n return column.fixedPosition\r\n };\r\n var processExpandColumns = function(columns, expandColumns, type, columnIndex) {\r\n var customColumnIndex;\r\n var rowCount = this.getRowCount();\r\n var rowspan = columns[columnIndex] && columns[columnIndex].rowspan;\r\n var expandColumnsByType = expandColumns.filter(column => column.type === type);\r\n columns.forEach((column, index) => {\r\n if (column.type === type) {\r\n customColumnIndex = index;\r\n rowspan = columns[index + 1] ? columns[index + 1].rowspan : rowCount\r\n }\r\n });\r\n if (rowspan > 1) {\r\n expandColumnsByType = map(expandColumnsByType, (function(expandColumn) {\r\n return extend({}, expandColumn, {\r\n rowspan: rowspan\r\n })\r\n }))\r\n }\r\n expandColumnsByType.unshift.apply(expandColumnsByType, isDefined(customColumnIndex) ? [customColumnIndex, 1] : [columnIndex, 0]);\r\n columns.splice.apply(columns, expandColumnsByType);\r\n return rowspan || 1\r\n };\r\n var numberToString = function(number, digitsCount) {\r\n var str = number ? number.toString() : \"0\";\r\n while (str.length < digitsCount) {\r\n str = \"0\" + str\r\n }\r\n return str\r\n };\r\n var mergeColumns = (that, columns, commandColumns, needToExtend) => {\r\n var column;\r\n var commandColumnIndex;\r\n var result = columns.slice().map(column => extend({}, column));\r\n var isColumnFixing = that._isColumnFixing();\r\n var defaultCommandColumns = commandColumns.slice().map(column => extend({\r\n fixed: isColumnFixing\r\n }, column));\r\n var getCommandColumnIndex = column => commandColumns.reduce((result, commandColumn, index) => {\r\n var columnType = needToExtend && column.type === GROUP_COMMAND_COLUMN_NAME ? \"expand\" : column.type;\r\n return commandColumn.type === columnType || commandColumn.command === column.command ? index : result\r\n }, -1);\r\n var callbackFilter = commandColumn => commandColumn.command !== commandColumns[commandColumnIndex].command;\r\n for (var i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n commandColumnIndex = column && (column.type || column.command) ? getCommandColumnIndex(column) : -1;\r\n if (commandColumnIndex >= 0) {\r\n if (needToExtend) {\r\n result[i] = extend({\r\n fixed: isColumnFixing\r\n }, commandColumns[commandColumnIndex], column);\r\n if (column.type !== GROUP_COMMAND_COLUMN_NAME) {\r\n defaultCommandColumns = defaultCommandColumns.filter(callbackFilter)\r\n }\r\n } else {\r\n var columnOptions = {\r\n visibleIndex: column.visibleIndex,\r\n index: column.index,\r\n headerId: column.headerId,\r\n allowFixing: 0 === column.groupIndex,\r\n allowReordering: 0 === column.groupIndex,\r\n groupIndex: column.groupIndex\r\n };\r\n result[i] = extend({}, column, commandColumns[commandColumnIndex], column.type === GROUP_COMMAND_COLUMN_NAME && columnOptions)\r\n }\r\n }\r\n }\r\n if (columns.length && needToExtend && defaultCommandColumns.length) {\r\n result = result.concat(defaultCommandColumns)\r\n }\r\n return result\r\n };\r\n var isColumnFixed = (that, column) => isDefined(column.fixed) || !column.type ? column.fixed : that._isColumnFixing();\r\n var resetBandColumnsCache = that => {\r\n that._bandColumnsCache = void 0\r\n };\r\n var findColumn = (columns, identifier) => {\r\n var identifierOptionName = isString(identifier) && identifier.substr(0, identifier.indexOf(\":\"));\r\n var column;\r\n if (void 0 === identifier) {\r\n return\r\n }\r\n if (identifierOptionName) {\r\n identifier = identifier.substr(identifierOptionName.length + 1)\r\n }\r\n if (identifierOptionName) {\r\n column = columns.filter(column => \"\" + column[identifierOptionName] === identifier)[0]\r\n } else {\r\n [\"index\", \"name\", \"dataField\", \"caption\"].some(optionName => {\r\n column = columns.filter(column => column[optionName] === identifier)[0];\r\n return !!column\r\n })\r\n }\r\n return column\r\n };\r\n return {\r\n _getExpandColumnOptions: function() {\r\n return {\r\n type: \"expand\",\r\n command: \"expand\",\r\n width: \"auto\",\r\n cssClass: COMMAND_EXPAND_CLASS,\r\n allowEditing: false,\r\n allowGrouping: false,\r\n allowSorting: false,\r\n allowResizing: false,\r\n allowReordering: false,\r\n allowHiding: false\r\n }\r\n },\r\n _getFirstItems: function(dataSource) {\r\n var groupsCount;\r\n var items = [];\r\n if (dataSource && dataSource.items().length > 0) {\r\n groupsCount = gridCoreUtils.normalizeSortingInfo(dataSource.group()).length;\r\n items = function getFirstItemsCore(items, groupsCount) {\r\n if (!items || !groupsCount) {\r\n return items\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var childItems = getFirstItemsCore(items[i].items || items[i].collapsedItems, groupsCount - 1);\r\n if (childItems && childItems.length) {\r\n return childItems\r\n }\r\n }\r\n }(dataSource.items(), groupsCount) || []\r\n }\r\n return items\r\n },\r\n _endUpdateCore: function() {\r\n !this._skipProcessingColumnsChange && fireColumnsChanged(this)\r\n },\r\n init: function(isApplyingUserState) {\r\n var columns = this.option(\"columns\");\r\n this._commandColumns = this._commandColumns || [];\r\n this._columns = this._columns || [];\r\n this._isColumnsFromOptions = !!columns;\r\n if (this._isColumnsFromOptions) {\r\n assignColumns(this, columns ? createColumnsFromOptions(this, columns) : []);\r\n applyUserState(this)\r\n } else {\r\n assignColumns(this, this._columnsUserState ? createColumnsFromOptions(this, this._columnsUserState) : this._columns)\r\n }! function(that) {\r\n var options = that._getExpandColumnOptions();\r\n that.addCommandColumn(options)\r\n }(this);\r\n if (this._dataSourceApplied) {\r\n this.applyDataSource(this._dataSource, true, isApplyingUserState)\r\n } else {\r\n updateIndexes(this)\r\n }\r\n this._checkColumns()\r\n },\r\n callbackNames: function() {\r\n return [\"columnsChanged\"]\r\n },\r\n getColumnByPath: function(path, columns) {\r\n var column;\r\n var columnIndexes = [];\r\n path.replace(regExp, (function(_, columnIndex) {\r\n columnIndexes.push(parseInt(columnIndex));\r\n return \"\"\r\n }));\r\n if (columnIndexes.length) {\r\n if (columns) {\r\n column = columnIndexes.reduce((function(column, index) {\r\n return column && column.columns && column.columns[index]\r\n }), {\r\n columns: columns\r\n })\r\n } else {\r\n column = function(that, columnIndexes) {\r\n var result;\r\n var columns;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var callbackFilter = function(column) {\r\n var ownerBand = result ? result.index : void 0;\r\n return column.ownerBand === ownerBand\r\n };\r\n if (bandColumnsCache.isPlain) {\r\n result = that._columns[columnIndexes[0]]\r\n } else {\r\n columns = that._columns.filter(callbackFilter);\r\n for (var i = 0; i < columnIndexes.length; i++) {\r\n result = columns[columnIndexes[i]];\r\n if (result) {\r\n columns = that._columns.filter(callbackFilter)\r\n }\r\n }\r\n }\r\n return result\r\n }(this, columnIndexes)\r\n }\r\n }\r\n return column\r\n },\r\n optionChanged: function(args) {\r\n var needUpdateRequireResize;\r\n switch (args.name) {\r\n case \"adaptColumnWidthByRatio\":\r\n args.handled = true;\r\n break;\r\n case \"dataSource\":\r\n if (args.value !== args.previousValue && !this.option(\"columns\") && (!Array.isArray(args.value) || !Array.isArray(args.previousValue))) {\r\n this._columns = []\r\n }\r\n break;\r\n case \"columns\":\r\n needUpdateRequireResize = this._skipProcessingColumnsChange;\r\n args.handled = true;\r\n if (!this._skipProcessingColumnsChange) {\r\n if (args.name === args.fullName) {\r\n this._columnsUserState = null;\r\n this._ignoreColumnOptionNames = null;\r\n this.init()\r\n } else {\r\n this._columnOptionChanged(args);\r\n needUpdateRequireResize = true\r\n }\r\n }\r\n if (needUpdateRequireResize) {\r\n this._updateRequireResize(args)\r\n }\r\n break;\r\n case \"commonColumnSettings\":\r\n case \"columnAutoWidth\":\r\n case \"allowColumnResizing\":\r\n case \"allowColumnReordering\":\r\n case \"columnFixing\":\r\n case \"grouping\":\r\n case \"groupPanel\":\r\n case \"regenerateColumnsByVisibleItems\":\r\n case \"customizeColumns\":\r\n case \"columnHidingEnabled\":\r\n case \"dateSerializationFormat\":\r\n case \"columnResizingMode\":\r\n case \"columnMinWidth\":\r\n case \"columnWidth\":\r\n args.handled = true;\r\n var ignoreColumnOptionNames = \"columnWidth\" === args.fullName && [\"width\"];\r\n this.reinit(ignoreColumnOptionNames);\r\n break;\r\n case \"rtlEnabled\":\r\n this.reinit();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _columnOptionChanged: function(args) {\r\n var columnOptionValue = {};\r\n var column = this.getColumnByPath(args.fullName);\r\n var columnOptionName = args.fullName.replace(regExp, \"\");\r\n if (column) {\r\n if (columnOptionName) {\r\n columnOptionValue[columnOptionName] = args.value\r\n } else {\r\n columnOptionValue = args.value\r\n }\r\n this._skipProcessingColumnsChange = args.fullName;\r\n this.columnOption(column.index, columnOptionValue);\r\n this._skipProcessingColumnsChange = false\r\n }\r\n },\r\n _updateRequireResize: function(args) {\r\n var component = this.component;\r\n if (\"width\" === args.fullName.replace(regExp, \"\") && component._updateLockCount) {\r\n component._requireResize = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"addColumn\", \"deleteColumn\", \"columnOption\", \"columnCount\", \"clearSorting\", \"clearGrouping\", \"getVisibleColumns\", \"getVisibleColumnIndex\"]\r\n },\r\n applyDataSource: function(dataSource, forceApplying, isApplyingUserState) {\r\n var isDataSourceLoaded = dataSource && dataSource.isLoaded();\r\n this._dataSource = dataSource;\r\n if (!this._dataSourceApplied || 0 === this._dataSourceColumnsCount || forceApplying || this.option(\"regenerateColumnsByVisibleItems\")) {\r\n if (isDataSourceLoaded) {\r\n if (!this._isColumnsFromOptions) {\r\n var columnsFromDataSource = function(that, dataSource) {\r\n var firstItems = that._getFirstItems(dataSource);\r\n var fieldName;\r\n var processedFields = {};\r\n var result = [];\r\n for (var i = 0; i < firstItems.length; i++) {\r\n if (firstItems[i]) {\r\n for (fieldName in firstItems[i]) {\r\n if (!isFunction(firstItems[i][fieldName]) || variableWrapper.isWrapped(firstItems[i][fieldName])) {\r\n processedFields[fieldName] = true\r\n }\r\n }\r\n }\r\n }\r\n for (fieldName in processedFields) {\r\n if (0 !== fieldName.indexOf(\"__\")) {\r\n var column = createColumn(that, fieldName);\r\n result.push(column)\r\n }\r\n }\r\n return result\r\n }(this, dataSource);\r\n if (columnsFromDataSource.length) {\r\n assignColumns(this, columnsFromDataSource);\r\n this._dataSourceColumnsCount = this._columns.length;\r\n applyUserState(this)\r\n }\r\n }\r\n return this.updateColumns(dataSource, forceApplying, isApplyingUserState)\r\n } else {\r\n this._dataSourceApplied = false;\r\n updateIndexes(this)\r\n }\r\n } else if (isDataSourceLoaded && !this.isAllDataTypesDefined(true) && this.updateColumnDataTypes(dataSource)) {\r\n updateColumnChanges(this, \"columns\");\r\n fireColumnsChanged(this);\r\n return (new Deferred).reject().promise()\r\n }\r\n },\r\n reset: function() {\r\n this._dataSource = null;\r\n this._dataSourceApplied = false;\r\n this._dataSourceColumnsCount = void 0;\r\n this.reinit()\r\n },\r\n resetColumnsCache: function() {\r\n this._visibleColumns = void 0;\r\n this._fixedColumns = void 0;\r\n this._rowCount = void 0;\r\n resetBandColumnsCache(this)\r\n },\r\n reinit: function(ignoreColumnOptionNames) {\r\n this._columnsUserState = this.getUserState();\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames || null;\r\n this.init();\r\n if (ignoreColumnOptionNames) {\r\n this._ignoreColumnOptionNames = null\r\n }\r\n },\r\n isInitialized: function() {\r\n return !!this._columns.length || !!this.option(\"columns\")\r\n },\r\n isDataSourceApplied: function() {\r\n return this._dataSourceApplied\r\n },\r\n getCommonSettings: function(column) {\r\n var commonColumnSettings = (!column || !column.type) && this.option(\"commonColumnSettings\") || {};\r\n var groupingOptions = this.option(\"grouping\") || {};\r\n var groupPanelOptions = this.option(\"groupPanel\") || {};\r\n return extend({\r\n allowFixing: this.option(\"columnFixing.enabled\"),\r\n allowResizing: this.option(\"allowColumnResizing\") || void 0,\r\n allowReordering: this.option(\"allowColumnReordering\"),\r\n minWidth: this.option(\"columnMinWidth\"),\r\n width: this.option(\"columnWidth\"),\r\n autoExpandGroup: groupingOptions.autoExpandAll,\r\n allowCollapsing: groupingOptions.allowCollapsing,\r\n allowGrouping: groupPanelOptions.allowColumnDragging && groupPanelOptions.visible || groupingOptions.contextMenuEnabled\r\n }, commonColumnSettings)\r\n },\r\n isColumnOptionUsed: function(optionName) {\r\n for (var i = 0; i < this._columns.length; i++) {\r\n if (this._columns[i][optionName]) {\r\n return true\r\n }\r\n }\r\n },\r\n isAllDataTypesDefined: function(checkSerializers) {\r\n var columns = this._columns;\r\n if (!columns.length) {\r\n return false\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].dataField && columns[i].calculateCellValue === columns[i].defaultCalculateCellValue) {\r\n continue\r\n }\r\n if (!columns[i].dataType || checkSerializers && columns[i].deserializeValue && void 0 === columns[i].serializationFormat) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n getColumns: function() {\r\n return this._columns\r\n },\r\n isBandColumnsUsed: function() {\r\n return this.getColumns().some((function(column) {\r\n return column.isBand\r\n }))\r\n },\r\n getGroupColumns: function() {\r\n var result = [];\r\n each(this._columns, (function() {\r\n if (isDefined(this.groupIndex)) {\r\n result[this.groupIndex] = this\r\n }\r\n }));\r\n return result\r\n },\r\n _shouldReturnVisibleColumns: function() {\r\n return true\r\n },\r\n _compileVisibleColumns: function(rowIndex) {\r\n this._visibleColumns = this._visibleColumns || this._compileVisibleColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._visibleColumns.length - 1;\r\n return this._visibleColumns[rowIndex] || []\r\n },\r\n getVisibleColumns: function(rowIndex) {\r\n if (!this._shouldReturnVisibleColumns()) {\r\n return []\r\n }\r\n return this._compileVisibleColumns.apply(this, arguments)\r\n },\r\n getFixedColumns: function(rowIndex) {\r\n this._fixedColumns = this._fixedColumns || this._getFixedColumnsCore();\r\n rowIndex = isDefined(rowIndex) ? rowIndex : this._fixedColumns.length - 1;\r\n return this._fixedColumns[rowIndex] || []\r\n },\r\n getFilteringColumns: function() {\r\n return this.getColumns().filter(item => (item.dataField || item.name) && (item.allowFiltering || item.allowHeaderFiltering)).map(item => {\r\n var field = extend(true, {}, item);\r\n if (!isDefined(field.dataField)) {\r\n field.dataField = field.name\r\n }\r\n field.filterOperations = item.filterOperations !== item.defaultFilterOperations ? field.filterOperations : null;\r\n return field\r\n })\r\n },\r\n getColumnIndexOffset: function() {\r\n return 0\r\n },\r\n _getFixedColumnsCore: function() {\r\n var result = [];\r\n var rowCount = this.getRowCount();\r\n var isColumnFixing = this._isColumnFixing();\r\n var transparentColumn = {\r\n command: \"transparent\"\r\n };\r\n var transparentColspan = 0;\r\n var notFixedColumnCount;\r\n var transparentColumnIndex;\r\n var lastFixedPosition;\r\n if (isColumnFixing) {\r\n for (var i = 0; i <= rowCount; i++) {\r\n notFixedColumnCount = 0;\r\n lastFixedPosition = null;\r\n transparentColumnIndex = null;\r\n var visibleColumns = this.getVisibleColumns(i, true);\r\n for (var j = 0; j < visibleColumns.length; j++) {\r\n var prevColumn = visibleColumns[j - 1];\r\n var column = visibleColumns[j];\r\n if (!column.fixed) {\r\n if (0 === i) {\r\n if (column.isBand && column.colspan) {\r\n transparentColspan += column.colspan\r\n } else {\r\n transparentColspan++\r\n }\r\n }\r\n notFixedColumnCount++;\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else if (prevColumn && prevColumn.fixed && getFixedPosition(this, prevColumn) !== getFixedPosition(this, column)) {\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = j\r\n }\r\n } else {\r\n lastFixedPosition = column.fixedPosition\r\n }\r\n }\r\n if (0 === i && (0 === notFixedColumnCount || notFixedColumnCount >= visibleColumns.length)) {\r\n return []\r\n }\r\n if (!isDefined(transparentColumnIndex)) {\r\n transparentColumnIndex = \"right\" === lastFixedPosition ? 0 : visibleColumns.length\r\n }\r\n result[i] = visibleColumns.slice(0);\r\n if (!transparentColumn.colspan) {\r\n transparentColumn.colspan = transparentColspan\r\n }\r\n result[i].splice(transparentColumnIndex, notFixedColumnCount, transparentColumn)\r\n }\r\n }\r\n return result.map(columns => columns.map(column => {\r\n var newColumn = _extends({}, column);\r\n if (newColumn.headerId) {\r\n newColumn.headerId += \"-fixed\"\r\n }\r\n return newColumn\r\n }))\r\n },\r\n _isColumnFixing: function() {\r\n var isColumnFixing = this.option(\"columnFixing.enabled\");\r\n !isColumnFixing && each(this._columns, (function(_, column) {\r\n if (column.fixed) {\r\n isColumnFixing = true;\r\n return false\r\n }\r\n }));\r\n return isColumnFixing\r\n },\r\n _getExpandColumnsCore: function() {\r\n return this.getGroupColumns()\r\n },\r\n getExpandColumns: function() {\r\n var expandColumns = this._getExpandColumnsCore();\r\n var expandColumn;\r\n var firstGroupColumn = expandColumns.filter(column => 0 === column.groupIndex)[0];\r\n var isFixedFirstGroupColumn = firstGroupColumn && firstGroupColumn.fixed;\r\n var isColumnFixing = this._isColumnFixing();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (expandColumns.length) {\r\n expandColumn = this.columnOption(\"command:expand\")\r\n }\r\n expandColumns = map(expandColumns, column => extend({}, column, {\r\n visibleWidth: null,\r\n minWidth: null,\r\n cellTemplate: !isDefined(column.groupIndex) ? column.cellTemplate : null,\r\n headerCellTemplate: null,\r\n fixed: !isDefined(column.groupIndex) || !isFixedFirstGroupColumn ? isColumnFixing : true,\r\n fixedPosition: rtlEnabled ? \"right\" : \"left\"\r\n }, expandColumn, {\r\n index: column.index,\r\n type: column.type || GROUP_COMMAND_COLUMN_NAME\r\n }));\r\n return expandColumns\r\n },\r\n getBandColumnsCache: function() {\r\n if (!this._bandColumnsCache) {\r\n var columns = this._columns;\r\n var columnChildrenByIndex = {};\r\n var columnParentByIndex = {};\r\n var isPlain = true;\r\n columns.forEach((function(column) {\r\n var ownerBand = column.ownerBand;\r\n var parentIndex = isObject(ownerBand) ? ownerBand.index : ownerBand;\r\n var parent = columns[parentIndex];\r\n if (column.hasColumns) {\r\n isPlain = false\r\n }\r\n if (column.colspan) {\r\n column.colspan = void 0\r\n }\r\n if (column.rowspan) {\r\n column.rowspan = void 0\r\n }\r\n if (parent) {\r\n columnParentByIndex[column.index] = parent\r\n } else {\r\n parentIndex = -1\r\n }\r\n columnChildrenByIndex[parentIndex] = columnChildrenByIndex[parentIndex] || [];\r\n columnChildrenByIndex[parentIndex].push(column)\r\n }));\r\n this._bandColumnsCache = {\r\n isPlain: isPlain,\r\n columnChildrenByIndex: columnChildrenByIndex,\r\n columnParentByIndex: columnParentByIndex\r\n }\r\n }\r\n return this._bandColumnsCache\r\n },\r\n _isColumnVisible: function(column) {\r\n return column.visible && this.isParentColumnVisible(column.index)\r\n },\r\n _compileVisibleColumnsCore: function() {\r\n var that = this;\r\n var i;\r\n var result = [];\r\n var rowspanGroupColumns = 0;\r\n var rowspanExpandColumns = 0;\r\n var rowCount = that.getRowCount();\r\n var positiveIndexedColumns = [];\r\n var negativeIndexedColumns = [];\r\n var notGroupedColumnsCount = 0;\r\n var isFixedToEnd;\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var expandColumns = mergeColumns(that, that.getExpandColumns(), that._columns);\r\n var columns = mergeColumns(that, that._columns, that._commandColumns, true);\r\n var columnDigitsCount = function(number) {\r\n var i;\r\n for (i = 0; number > 1; i++) {\r\n number /= 10\r\n }\r\n return i\r\n }(columns.length);\r\n ! function(that, columns, bandColumnsCache) {\r\n var rowspan;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (column.visible || column.command) {\r\n if (column.isBand) {\r\n column.colspan = column.colspan || calculateColspan(that, column.index)\r\n }\r\n if (!column.isBand || !column.colspan) {\r\n rowspan = that.getRowCount();\r\n if (!column.command && (!isDefined(column.groupIndex) || column.showWhenGrouped)) {\r\n rowspan -= getParentBandColumns(column.index, bandColumnsCache.columnParentByIndex).length\r\n }\r\n if (rowspan > 1) {\r\n column.rowspan = rowspan\r\n }\r\n }\r\n }\r\n }\r\n }(that, columns, bandColumnsCache);\r\n for (i = 0; i < rowCount; i++) {\r\n result[i] = [];\r\n negativeIndexedColumns[i] = [{}];\r\n positiveIndexedColumns[i] = [{}, {}, {}]\r\n }\r\n each(columns, (function() {\r\n var visibleIndex = this.visibleIndex;\r\n var indexedColumns;\r\n var parentBandColumns = getParentBandColumns(this.index, bandColumnsCache.columnParentByIndex);\r\n var visible = that._isColumnVisible(this);\r\n if (visible && (!isDefined(this.groupIndex) || this.showWhenGrouped)) {\r\n var rowIndex = parentBandColumns.length;\r\n if (visibleIndex < 0) {\r\n visibleIndex = -visibleIndex;\r\n indexedColumns = negativeIndexedColumns[rowIndex]\r\n } else {\r\n this.fixed = parentBandColumns.length ? parentBandColumns[0].fixed : this.fixed;\r\n this.fixedPosition = parentBandColumns.length ? parentBandColumns[0].fixedPosition : this.fixedPosition;\r\n if (this.fixed) {\r\n isFixedToEnd = \"right\" === this.fixedPosition;\r\n if (rtlEnabled && (!this.command || isCustomCommandColumn(that, this))) {\r\n isFixedToEnd = !isFixedToEnd\r\n }\r\n if (isFixedToEnd) {\r\n indexedColumns = positiveIndexedColumns[rowIndex][2]\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][0]\r\n }\r\n } else {\r\n indexedColumns = positiveIndexedColumns[rowIndex][1]\r\n }\r\n }\r\n if (parentBandColumns.length) {\r\n visibleIndex = numberToString(visibleIndex, columnDigitsCount);\r\n for (i = parentBandColumns.length - 1; i >= 0; i--) {\r\n visibleIndex = numberToString(parentBandColumns[i].visibleIndex, columnDigitsCount) + visibleIndex\r\n }\r\n }\r\n indexedColumns[visibleIndex] = indexedColumns[visibleIndex] || [];\r\n indexedColumns[visibleIndex].push(this);\r\n notGroupedColumnsCount++\r\n }\r\n }));\r\n each(result, (function(rowIndex) {\r\n orderEach(negativeIndexedColumns[rowIndex], (function(_, columns) {\r\n result[rowIndex].unshift.apply(result[rowIndex], columns)\r\n }));\r\n var firstPositiveIndexColumn = result[rowIndex].length;\r\n each(positiveIndexedColumns[rowIndex], (function(index, columnsByFixing) {\r\n orderEach(columnsByFixing, (function(_, columnsByVisibleIndex) {\r\n result[rowIndex].push.apply(result[rowIndex], columnsByVisibleIndex)\r\n }))\r\n }));\r\n if (rowspanExpandColumns < rowIndex + 1) {\r\n rowspanExpandColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, \"detailExpand\", firstPositiveIndexColumn)\r\n }\r\n if (rowspanGroupColumns < rowIndex + 1) {\r\n rowspanGroupColumns += processExpandColumns.call(that, result[rowIndex], expandColumns, GROUP_COMMAND_COLUMN_NAME, firstPositiveIndexColumn)\r\n }\r\n }));\r\n result.push(function getDataColumns(columns, rowIndex, bandColumnID) {\r\n var result = [];\r\n rowIndex = rowIndex || 0;\r\n columns[rowIndex] && each(columns[rowIndex], (function(_, column) {\r\n if (column.ownerBand === bandColumnID || column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (!column.isBand || !column.colspan) {\r\n if (!column.command || rowIndex < 1) {\r\n result.push(column)\r\n }\r\n } else {\r\n result.push.apply(result, getDataColumns(columns, rowIndex + 1, column.index))\r\n }\r\n }\r\n }));\r\n return result\r\n }(result));\r\n if (!notGroupedColumnsCount && that._columns.length) {\r\n result[rowCount].push({\r\n command: \"empty\"\r\n })\r\n }\r\n return result\r\n },\r\n getInvisibleColumns: function(columns, bandColumnIndex) {\r\n var that = this;\r\n var result = [];\r\n var hiddenColumnsByBand;\r\n columns = columns || that._columns;\r\n each(columns, (function(_, column) {\r\n if (column.ownerBand !== bandColumnIndex) {\r\n return\r\n }\r\n if (column.isBand) {\r\n if (!column.visible) {\r\n hiddenColumnsByBand = that.getChildrenByBandColumn(column.index)\r\n } else {\r\n hiddenColumnsByBand = that.getInvisibleColumns(that.getChildrenByBandColumn(column.index), column.index)\r\n }\r\n if (hiddenColumnsByBand.length) {\r\n result.push(column);\r\n result = result.concat(hiddenColumnsByBand)\r\n }\r\n return\r\n }\r\n if (!column.visible) {\r\n result.push(column)\r\n }\r\n }));\r\n return result\r\n },\r\n getChooserColumns: function(getAllColumns) {\r\n var columns = getAllColumns ? this.getColumns() : this.getInvisibleColumns();\r\n var columnChooserColumns = columns.filter(column => column.showInColumnChooser);\r\n var sortOrder = this.option(\"columnChooser.sortOrder\");\r\n return ((columns, sortOrder) => {\r\n if (\"asc\" !== sortOrder && \"desc\" !== sortOrder) {\r\n return columns\r\n }\r\n var sign = \"asc\" === sortOrder ? 1 : -1;\r\n columns.sort((function(column1, column2) {\r\n var caption1 = column1.caption || \"\";\r\n var caption2 = column2.caption || \"\";\r\n return sign * caption1.localeCompare(caption2)\r\n }));\r\n return columns\r\n })(columnChooserColumns, sortOrder)\r\n },\r\n allowMoveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var columnIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var sourceColumn = this._columns[columnIndex];\r\n if (sourceColumn && (sourceColumn.allowReordering || sourceColumn.allowGrouping || sourceColumn.allowHiding)) {\r\n if (sourceLocation === targetLocation) {\r\n if (\"columnChooser\" === sourceLocation) {\r\n return false\r\n }\r\n fromVisibleIndex = isObject(fromVisibleIndex) ? fromVisibleIndex.columnIndex : fromVisibleIndex;\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n return fromVisibleIndex !== toVisibleIndex && fromVisibleIndex + 1 !== toVisibleIndex\r\n } else if (\"group\" === sourceLocation && \"columnChooser\" !== targetLocation || \"group\" === targetLocation) {\r\n return sourceColumn && sourceColumn.allowGrouping\r\n } else if (\"columnChooser\" === sourceLocation || \"columnChooser\" === targetLocation) {\r\n return sourceColumn && sourceColumn.allowHiding\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n moveColumn: function(fromVisibleIndex, toVisibleIndex, sourceLocation, targetLocation) {\r\n var options = {};\r\n var prevGroupIndex;\r\n var fromIndex = getColumnIndexByVisibleIndex(this, fromVisibleIndex, sourceLocation);\r\n var toIndex = getColumnIndexByVisibleIndex(this, toVisibleIndex, targetLocation);\r\n var targetGroupIndex;\r\n if (fromIndex >= 0) {\r\n var column = this._columns[fromIndex];\r\n toVisibleIndex = isObject(toVisibleIndex) ? toVisibleIndex.columnIndex : toVisibleIndex;\r\n targetGroupIndex = toIndex >= 0 ? this._columns[toIndex].groupIndex : -1;\r\n if (isDefined(column.groupIndex) && \"group\" === sourceLocation) {\r\n if (targetGroupIndex > column.groupIndex) {\r\n targetGroupIndex--\r\n }\r\n if (\"group\" !== targetLocation) {\r\n options.groupIndex = void 0\r\n } else {\r\n prevGroupIndex = column.groupIndex;\r\n delete column.groupIndex;\r\n updateColumnGroupIndexes(this)\r\n }\r\n }\r\n if (\"group\" === targetLocation) {\r\n options.groupIndex = function(that, column, groupIndex) {\r\n var groupColumns = that.getGroupColumns();\r\n var i;\r\n if (groupIndex >= 0) {\r\n for (i = 0; i < groupColumns.length; i++) {\r\n if (groupColumns[i].groupIndex >= groupIndex) {\r\n groupColumns[i].groupIndex++\r\n }\r\n }\r\n } else {\r\n groupIndex = 0;\r\n for (i = 0; i < groupColumns.length; i++) {\r\n groupIndex = Math.max(groupIndex, groupColumns[i].groupIndex + 1)\r\n }\r\n }\r\n return groupIndex\r\n }(this, 0, targetGroupIndex);\r\n column.groupIndex = prevGroupIndex\r\n } else if (toVisibleIndex >= 0) {\r\n var targetColumn = this._columns[toIndex];\r\n if (!targetColumn || column.ownerBand !== targetColumn.ownerBand) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else if (isColumnFixed(this, column) ^ isColumnFixed(this, targetColumn)) {\r\n options.visibleIndex = MAX_SAFE_INTEGER\r\n } else {\r\n options.visibleIndex = targetColumn.visibleIndex\r\n }\r\n }\r\n var isVisible = \"columnChooser\" !== targetLocation;\r\n if (column.visible !== isVisible) {\r\n options.visible = isVisible\r\n }\r\n this.columnOption(column.index, options)\r\n }\r\n },\r\n changeSortOrder: function(columnIndex, sortOrder) {\r\n var options = {};\r\n var sortingOptions = this.option(\"sorting\");\r\n var sortingMode = sortingOptions && sortingOptions.mode;\r\n var needResetSorting = \"single\" === sortingMode || !sortOrder;\r\n var allowSorting = \"single\" === sortingMode || \"multiple\" === sortingMode;\r\n var column = this._columns[columnIndex];\r\n if (allowSorting && column && column.allowSorting) {\r\n if (needResetSorting && !isDefined(column.groupIndex)) {\r\n each(this._columns, (function(index) {\r\n if (index !== columnIndex && this.sortOrder) {\r\n if (!isDefined(this.groupIndex)) {\r\n delete this.sortOrder\r\n }\r\n delete this.sortIndex\r\n }\r\n }))\r\n }\r\n if (isSortOrderValid(sortOrder)) {\r\n if (column.sortOrder !== sortOrder) {\r\n options.sortOrder = sortOrder\r\n }\r\n } else if (\"none\" === sortOrder) {\r\n if (column.sortOrder) {\r\n options.sortIndex = void 0;\r\n options.sortOrder = void 0\r\n }\r\n } else {\r\n ! function(column) {\r\n if (\"ctrl\" === sortOrder) {\r\n if (!(\"sortOrder\" in column && \"sortIndex\" in column)) {\r\n return false\r\n }\r\n options.sortOrder = void 0;\r\n options.sortIndex = void 0\r\n } else if (isDefined(column.groupIndex) || isDefined(column.sortIndex)) {\r\n options.sortOrder = \"desc\" === column.sortOrder ? \"asc\" : \"desc\"\r\n } else {\r\n options.sortOrder = \"asc\"\r\n }\r\n return true\r\n }(column)\r\n }\r\n }\r\n this.columnOption(column.index, options)\r\n },\r\n getSortDataSourceParameters: function(useLocalSelector) {\r\n var sortColumns = [];\r\n var sort = [];\r\n each(this._columns, (function() {\r\n if ((this.dataField || this.selector || this.calculateCellValue) && isDefined(this.sortIndex) && !isDefined(this.groupIndex)) {\r\n sortColumns[this.sortIndex] = this\r\n }\r\n }));\r\n each(sortColumns, (function() {\r\n var sortOrder = this && this.sortOrder;\r\n if (isSortOrderValid(sortOrder)) {\r\n var sortItem = {\r\n selector: this.calculateSortValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue,\r\n desc: \"desc\" === this.sortOrder\r\n };\r\n if (this.sortingMethod) {\r\n sortItem.compare = this.sortingMethod.bind(this)\r\n }\r\n sort.push(sortItem)\r\n }\r\n }));\r\n return sort.length > 0 ? sort : null\r\n },\r\n getGroupDataSourceParameters: function(useLocalSelector) {\r\n var group = [];\r\n each(this.getGroupColumns(), (function() {\r\n var selector = this.calculateGroupValue || this.displayField || this.calculateDisplayValue || useLocalSelector && this.selector || this.dataField || this.calculateCellValue;\r\n if (selector) {\r\n var groupItem = {\r\n selector: selector,\r\n desc: \"desc\" === this.sortOrder,\r\n isExpanded: !!this.autoExpandGroup\r\n };\r\n if (this.sortingMethod) {\r\n groupItem.compare = this.sortingMethod.bind(this)\r\n }\r\n group.push(groupItem)\r\n }\r\n }));\r\n return group.length > 0 ? group : null\r\n },\r\n refresh: function(updateNewLookupsOnly) {\r\n var deferreds = [];\r\n each(this._columns, (function() {\r\n var lookup = this.lookup;\r\n if (lookup && !this.calculateDisplayValue) {\r\n if (updateNewLookupsOnly && lookup.valueMap) {\r\n return\r\n }\r\n if (lookup.update) {\r\n deferreds.push(lookup.update())\r\n }\r\n }\r\n }));\r\n return when.apply($, deferreds).done(resetColumnsCache.bind(null, this))\r\n },\r\n _updateColumnOptions: function(column, columnIndex) {\r\n column.selector = column.selector || function(data) {\r\n return column.calculateCellValue(data)\r\n };\r\n each([\"calculateSortValue\", \"calculateGroupValue\", \"calculateDisplayValue\"], (function(_, calculateCallbackName) {\r\n var calculateCallback = column[calculateCallbackName];\r\n if (isFunction(calculateCallback)) {\r\n if (!calculateCallback.originalCallback) {\r\n var context = {\r\n column: column\r\n };\r\n column[calculateCallbackName] = function(data) {\r\n return calculateCallback.call(context.column, data)\r\n };\r\n column[calculateCallbackName].originalCallback = calculateCallback;\r\n column[calculateCallbackName].columnIndex = columnIndex;\r\n column[calculateCallbackName].context = context\r\n } else {\r\n column[calculateCallbackName].context.column = column\r\n }\r\n }\r\n }));\r\n if (isString(column.calculateDisplayValue)) {\r\n column.displayField = column.calculateDisplayValue;\r\n column.calculateDisplayValue = compileGetter(column.displayField)\r\n }\r\n if (column.calculateDisplayValue) {\r\n column.displayValueMap = column.displayValueMap || {}\r\n }\r\n updateSerializers(column, column.dataType);\r\n var lookup = column.lookup;\r\n if (lookup) {\r\n updateSerializers(lookup, lookup.dataType)\r\n }\r\n var dataType = lookup ? lookup.dataType : column.dataType;\r\n if (dataType) {\r\n column.alignment = column.alignment || function(dataType, isRTL) {\r\n switch (dataType) {\r\n case \"number\":\r\n return \"right\";\r\n case \"boolean\":\r\n return \"center\";\r\n default:\r\n return getDefaultAlignment(isRTL)\r\n }\r\n }(dataType, this.option(\"rtlEnabled\"));\r\n column.format = column.format || gridCoreUtils.getFormatByDataType(dataType);\r\n column.customizeText = column.customizeText || getCustomizeTextByDataType(dataType);\r\n column.defaultFilterOperations = column.defaultFilterOperations || !lookup && DATATYPE_OPERATIONS[dataType] || [];\r\n if (!isDefined(column.filterOperations)) {\r\n setFilterOperationsAsDefaultValues(column)\r\n }\r\n column.defaultFilterOperation = column.filterOperations && column.filterOperations[0] || \"=\";\r\n column.showEditorAlways = isDefined(column.showEditorAlways) ? column.showEditorAlways : \"boolean\" === dataType && !column.cellTemplate && !column.lookup\r\n }\r\n },\r\n updateColumnDataTypes: function(dataSource) {\r\n var that = this;\r\n var dateSerializationFormat = that.option(\"dateSerializationFormat\");\r\n var firstItems = that._getFirstItems(dataSource);\r\n var isColumnDataTypesUpdated = false;\r\n each(that._columns, (function(index, column) {\r\n var i;\r\n var value;\r\n var dataType;\r\n var lookupDataType;\r\n var valueDataType;\r\n var lookup = column.lookup;\r\n if (gridCoreUtils.isDateType(column.dataType) && void 0 === column.serializationFormat) {\r\n column.serializationFormat = dateSerializationFormat\r\n }\r\n if (lookup && gridCoreUtils.isDateType(lookup.dataType) && void 0 === column.serializationFormat) {\r\n lookup.serializationFormat = dateSerializationFormat\r\n }\r\n if (column.calculateCellValue && firstItems.length) {\r\n if (!column.dataType || lookup && !lookup.dataType) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i]);\r\n if (!column.dataType) {\r\n valueDataType = getValueDataType(value);\r\n dataType = dataType || valueDataType;\r\n if (dataType && valueDataType && dataType !== valueDataType) {\r\n dataType = \"string\"\r\n }\r\n }\r\n if (lookup && !lookup.dataType) {\r\n valueDataType = getValueDataType(gridCoreUtils.getDisplayValue(column, value, firstItems[i]));\r\n lookupDataType = lookupDataType || valueDataType;\r\n if (lookupDataType && valueDataType && lookupDataType !== valueDataType) {\r\n lookupDataType = \"string\"\r\n }\r\n }\r\n }\r\n if (dataType || lookupDataType) {\r\n if (dataType) {\r\n column.dataType = dataType\r\n }\r\n if (lookup && lookupDataType) {\r\n lookup.dataType = lookupDataType\r\n }\r\n isColumnDataTypesUpdated = true\r\n }\r\n }\r\n if (void 0 === column.serializationFormat || lookup && void 0 === lookup.serializationFormat) {\r\n for (i = 0; i < firstItems.length; i++) {\r\n value = column.calculateCellValue(firstItems[i], true);\r\n if (void 0 === column.serializationFormat) {\r\n column.serializationFormat = getSerializationFormat(column.dataType, value)\r\n }\r\n if (lookup && void 0 === lookup.serializationFormat) {\r\n lookup.serializationFormat = getSerializationFormat(lookup.dataType, lookup.calculateCellValue(value, true))\r\n }\r\n }\r\n }\r\n }\r\n that._updateColumnOptions(column, index)\r\n }));\r\n return isColumnDataTypesUpdated\r\n },\r\n _customizeColumns: function(columns) {\r\n var customizeColumns = this.option(\"customizeColumns\");\r\n if (customizeColumns) {\r\n var hasOwnerBand = columns.some((function(column) {\r\n return isObject(column.ownerBand)\r\n }));\r\n if (hasOwnerBand) {\r\n updateIndexes(this)\r\n }\r\n customizeColumns(columns);\r\n assignColumns(this, createColumnsFromOptions(this, columns))\r\n }\r\n },\r\n updateColumns: function(dataSource, forceApplying, isApplyingUserState) {\r\n if (!forceApplying) {\r\n this.updateSortingGrouping(dataSource)\r\n }\r\n if (!dataSource || dataSource.isLoaded()) {\r\n var sortParameters = dataSource ? dataSource.sort() || [] : this.getSortDataSourceParameters();\r\n var groupParameters = dataSource ? dataSource.group() || [] : this.getGroupDataSourceParameters();\r\n var filterParameters = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().filter;\r\n if (!isApplyingUserState) {\r\n this._customizeColumns(this._columns)\r\n }\r\n updateIndexes(this);\r\n var columns = this._columns;\r\n return when(this.refresh(true)).always(() => {\r\n if (this._columns !== columns) {\r\n return\r\n }\r\n this._updateChanges(dataSource, {\r\n sorting: sortParameters,\r\n grouping: groupParameters,\r\n filtering: filterParameters\r\n });\r\n fireColumnsChanged(this)\r\n })\r\n }\r\n },\r\n _updateChanges: function(dataSource, parameters) {\r\n if (dataSource) {\r\n this.updateColumnDataTypes(dataSource);\r\n this._dataSourceApplied = true\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.sorting, this.getSortDataSourceParameters())) {\r\n updateColumnChanges(this, \"sorting\")\r\n }\r\n if (!gridCoreUtils.equalSortParameters(parameters.grouping, this.getGroupDataSourceParameters())) {\r\n updateColumnChanges(this, \"grouping\")\r\n }\r\n var dataController = this.getController(\"data\");\r\n if (dataController && !gridCoreUtils.equalFilterParameters(parameters.filtering, dataController.getCombinedFilter())) {\r\n updateColumnChanges(this, \"filtering\")\r\n }\r\n updateColumnChanges(this, \"columns\")\r\n },\r\n updateSortingGrouping: function(dataSource, fromDataSource) {\r\n var that = this;\r\n var sortParameters;\r\n var isColumnsChanged;\r\n var updateSortGroupParameterIndexes = function(columns, sortParameters, indexParameterName) {\r\n each(columns, (function(index, column) {\r\n delete column[indexParameterName];\r\n if (sortParameters) {\r\n for (var i = 0; i < sortParameters.length; i++) {\r\n var selector = sortParameters[i].selector;\r\n var isExpanded = sortParameters[i].isExpanded;\r\n if (selector === column.dataField || selector === column.name || selector === column.selector || selector === column.calculateCellValue || selector === column.calculateGroupValue || selector === column.calculateDisplayValue) {\r\n if (fromDataSource) {\r\n column.sortOrder = \"sortOrder\" in column ? column.sortOrder : sortParameters[i].desc ? \"desc\" : \"asc\"\r\n } else {\r\n column.sortOrder = column.sortOrder || (sortParameters[i].desc ? \"desc\" : \"asc\")\r\n }\r\n if (void 0 !== isExpanded) {\r\n column.autoExpandGroup = isExpanded\r\n }\r\n column[indexParameterName] = i;\r\n break\r\n }\r\n }\r\n }\r\n }))\r\n };\r\n if (dataSource) {\r\n sortParameters = gridCoreUtils.normalizeSortingInfo(dataSource.sort());\r\n var groupParameters = gridCoreUtils.normalizeSortingInfo(dataSource.group());\r\n var columnsGroupParameters = that.getGroupDataSourceParameters();\r\n var columnsSortParameters = that.getSortDataSourceParameters();\r\n var groupingChanged = !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters, true);\r\n var groupExpandingChanged = !groupingChanged && !gridCoreUtils.equalSortParameters(groupParameters, columnsGroupParameters);\r\n if (!that._columns.length) {\r\n each(groupParameters, (function(index, group) {\r\n that._columns.push(group.selector)\r\n }));\r\n each(sortParameters, (function(index, sort) {\r\n if (!isFunction(sort.selector)) {\r\n that._columns.push(sort.selector)\r\n }\r\n }));\r\n assignColumns(that, createColumnsFromOptions(that, that._columns))\r\n }\r\n if ((fromDataSource || !columnsGroupParameters && !that._hasUserState) && (groupingChanged || groupExpandingChanged)) {\r\n updateSortGroupParameterIndexes(that._columns, groupParameters, \"groupIndex\");\r\n if (fromDataSource) {\r\n groupingChanged && updateColumnChanges(that, \"grouping\");\r\n groupExpandingChanged && updateColumnChanges(that, \"groupExpanding\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if ((fromDataSource || !columnsSortParameters && !that._hasUserState) && !gridCoreUtils.equalSortParameters(sortParameters, columnsSortParameters)) {\r\n updateSortGroupParameterIndexes(that._columns, sortParameters, \"sortIndex\");\r\n if (fromDataSource) {\r\n updateColumnChanges(that, \"sorting\");\r\n isColumnsChanged = true\r\n }\r\n }\r\n if (isColumnsChanged) {\r\n fireColumnsChanged(that)\r\n }\r\n }\r\n },\r\n updateFilter: function(filter, remoteFiltering, columnIndex, filterValue) {\r\n if (!Array.isArray(filter)) {\r\n return filter\r\n }\r\n filter = extend([], filter);\r\n columnIndex = void 0 !== filter.columnIndex ? filter.columnIndex : columnIndex;\r\n filterValue = void 0 !== filter.filterValue ? filter.filterValue : filterValue;\r\n if (isString(filter[0]) && \"!\" !== filter[0]) {\r\n var column = this.columnOption(filter[0]);\r\n if (remoteFiltering) {\r\n if (config().forceIsoDateParsing && column && column.serializeValue && filter.length > 1) {\r\n filter[filter.length - 1] = column.serializeValue(filter[filter.length - 1], \"filter\")\r\n }\r\n } else if (column && column.selector) {\r\n filter[0] = column.selector;\r\n filter[0].columnIndex = column.index\r\n }\r\n } else if (isFunction(filter[0])) {\r\n filter[0].columnIndex = columnIndex;\r\n filter[0].filterValue = filterValue\r\n }\r\n for (var i = 0; i < filter.length; i++) {\r\n filter[i] = this.updateFilter(filter[i], remoteFiltering, columnIndex, filterValue)\r\n }\r\n return filter\r\n },\r\n columnCount: function() {\r\n return this._columns ? this._columns.length : 0\r\n },\r\n columnOption: function(identifier, option, value, notFireEvent) {\r\n var that = this;\r\n var columns = that._columns.concat(that._commandColumns);\r\n var column = findColumn(columns, identifier);\r\n if (column) {\r\n if (1 === arguments.length) {\r\n return extend({}, column)\r\n }\r\n if (isString(option)) {\r\n if (2 === arguments.length) {\r\n return columnOptionCore(that, column, option)\r\n } else {\r\n columnOptionCore(that, column, option, value, notFireEvent)\r\n }\r\n } else if (isObject(option)) {\r\n each(option, (function(optionName, value) {\r\n columnOptionCore(that, column, optionName, value, notFireEvent)\r\n }))\r\n }\r\n fireColumnsChanged(that)\r\n }\r\n },\r\n clearSorting: function() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"sortOrder\", void 0)\r\n }\r\n this.endUpdate()\r\n },\r\n clearGrouping: function() {\r\n var columnCount = this.columnCount();\r\n this.beginUpdate();\r\n for (var i = 0; i < columnCount; i++) {\r\n this.columnOption(i, \"groupIndex\", void 0)\r\n }\r\n this.endUpdate()\r\n },\r\n getVisibleIndex: function(index, rowIndex) {\r\n var columns = this.getVisibleColumns(rowIndex);\r\n for (var i = columns.length - 1; i >= 0; i--) {\r\n if (columns[i].index === index) {\r\n return i\r\n }\r\n }\r\n return -1\r\n },\r\n getVisibleIndexByColumn: function(column, rowIndex) {\r\n var visibleColumns = this.getVisibleColumns(rowIndex);\r\n var visibleColumn = visibleColumns.filter(col => col.index === column.index && col.command === column.command)[0];\r\n return visibleColumns.indexOf(visibleColumn)\r\n },\r\n getVisibleColumnIndex: function(id, rowIndex) {\r\n var index = this.columnOption(id, \"index\");\r\n return this.getVisibleIndex(index, rowIndex)\r\n },\r\n addColumn: function(options) {\r\n var column = createColumn(this, options);\r\n var index = this._columns.length;\r\n this._columns.push(column);\r\n if (column.isBand) {\r\n this._columns = createColumnsFromOptions(this, this._columns);\r\n column = this._columns[index]\r\n }\r\n column.added = options;\r\n updateIndexes(this, column);\r\n this.updateColumns(this._dataSource);\r\n this._checkColumns()\r\n },\r\n deleteColumn: function(id) {\r\n var column = this.columnOption(id);\r\n if (column && column.index >= 0) {\r\n columns = this._columns, void columns.forEach(column => {\r\n if (isDefined(column.ownerBand)) {\r\n column.ownerBand = columns[column.ownerBand]\r\n }\r\n });\r\n this._columns.splice(column.index, 1);\r\n if (column.isBand) {\r\n var childIndexes = this.getChildrenByBandColumn(column.index).map(column => column.index);\r\n this._columns = this._columns.filter(column => childIndexes.indexOf(column.index) < 0)\r\n }\r\n updateIndexes(this);\r\n this.updateColumns(this._dataSource)\r\n }\r\n var columns\r\n },\r\n addCommandColumn: function(options) {\r\n var commandColumn = this._commandColumns.filter(column => column.command === options.command)[0];\r\n if (!commandColumn) {\r\n commandColumn = options;\r\n this._commandColumns.push(commandColumn)\r\n }\r\n },\r\n getUserState: function() {\r\n var columns = this._columns;\r\n var result = [];\r\n var i;\r\n\r\n function handleStateField(index, value) {\r\n if (void 0 !== columns[i][value]) {\r\n result[i][value] = columns[i][value]\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n result[i] = {};\r\n each(USER_STATE_FIELD_NAMES, handleStateField)\r\n }\r\n return result\r\n },\r\n setName: function(column) {\r\n column.name = column.name || column.dataField || column.type\r\n },\r\n setUserState: function(state) {\r\n var dataSource = this._dataSource;\r\n var ignoreColumnOptionNames = this.option(\"stateStoring.ignoreColumnOptionNames\");\r\n null === state || void 0 === state ? void 0 : state.forEach(this.setName);\r\n if (!ignoreColumnOptionNames) {\r\n ignoreColumnOptionNames = [];\r\n var commonColumnSettings = this.getCommonSettings();\r\n if (!this.option(\"columnChooser.enabled\")) {\r\n ignoreColumnOptionNames.push(\"visible\")\r\n }\r\n if (\"none\" === this.option(\"sorting.mode\")) {\r\n ignoreColumnOptionNames.push(\"sortIndex\", \"sortOrder\")\r\n }\r\n if (!commonColumnSettings.allowGrouping) {\r\n ignoreColumnOptionNames.push(\"groupIndex\")\r\n }\r\n if (!commonColumnSettings.allowFixing) {\r\n ignoreColumnOptionNames.push(\"fixed\", \"fixedPosition\")\r\n }\r\n if (!commonColumnSettings.allowResizing) {\r\n ignoreColumnOptionNames.push(\"width\", \"visibleWidth\")\r\n }\r\n var isFilterPanelHidden = !this.option(\"filterPanel.visible\");\r\n if (!this.option(\"filterRow.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValue\", \"selectedFilterOperation\")\r\n }\r\n if (!this.option(\"headerFilter.visible\") && isFilterPanelHidden) {\r\n ignoreColumnOptionNames.push(\"filterValues\", \"filterType\")\r\n }\r\n }\r\n this._columnsUserState = state;\r\n this._ignoreColumnOptionNames = ignoreColumnOptionNames;\r\n this._hasUserState = !!state;\r\n updateColumnChanges(this, \"filtering\");\r\n this.init(true);\r\n if (dataSource) {\r\n dataSource.sort(this.getSortDataSourceParameters());\r\n dataSource.group(this.getGroupDataSourceParameters())\r\n }\r\n },\r\n _checkColumns: function() {\r\n var usedNames = {};\r\n var hasEditableColumnWithoutName = false;\r\n var duplicatedNames = [];\r\n this._columns.forEach(column => {\r\n var _column$columns;\r\n var name = column.name;\r\n var isBand = null === (_column$columns = column.columns) || void 0 === _column$columns ? void 0 : _column$columns.length;\r\n var isEditable = column.allowEditing && (column.dataField || column.setCellValue) && !isBand;\r\n if (name) {\r\n if (usedNames[name]) {\r\n duplicatedNames.push('\"'.concat(name, '\"'))\r\n }\r\n usedNames[name] = true\r\n } else if (isEditable) {\r\n hasEditableColumnWithoutName = true\r\n }\r\n });\r\n if (duplicatedNames.length) {\r\n errors.log(\"E1059\", duplicatedNames.join(\", \"))\r\n }\r\n if (hasEditableColumnWithoutName) {\r\n errors.log(\"E1060\")\r\n }\r\n },\r\n _createCalculatedColumnOptions: function(columnOptions, bandColumn) {\r\n var calculatedColumnOptions = {};\r\n var dataField = columnOptions.dataField;\r\n if (Array.isArray(columnOptions.columns) && columnOptions.columns.length || columnOptions.isBand) {\r\n calculatedColumnOptions.isBand = true;\r\n dataField = null\r\n }\r\n if (dataField) {\r\n if (isString(dataField)) {\r\n var getter = compileGetter(dataField);\r\n calculatedColumnOptions = {\r\n caption: captionize(dataField),\r\n calculateCellValue: function(data, skipDeserialization) {\r\n var value = getter(data);\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n setCellValue: defaultSetCellValue,\r\n parseValue: function(text) {\r\n var result;\r\n var parsedValue;\r\n if (\"number\" === this.dataType) {\r\n if (isString(text) && this.format) {\r\n result = function(text, format) {\r\n var parsedValue = numberLocalization.parse(text);\r\n if (isNumeric(parsedValue)) {\r\n var formattedValue = numberLocalization.format(parsedValue, format);\r\n var formattedValueWithDefaultFormat = numberLocalization.format(parsedValue, \"decimal\");\r\n if (formattedValue === text || formattedValueWithDefaultFormat === text) {\r\n return parsedValue\r\n }\r\n }\r\n }(text.trim(), this.format)\r\n } else if (isDefined(text) && isNumeric(text)) {\r\n result = Number(text)\r\n }\r\n } else if (\"boolean\" === this.dataType) {\r\n if (text === this.trueText) {\r\n result = true\r\n } else if (text === this.falseText) {\r\n result = false\r\n }\r\n } else if (gridCoreUtils.isDateType(this.dataType)) {\r\n parsedValue = dateLocalization.parse(text, this.format);\r\n if (parsedValue) {\r\n result = parsedValue\r\n }\r\n } else {\r\n result = text\r\n }\r\n return result\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.allowFiltering = true\r\n } else {\r\n calculatedColumnOptions.allowFiltering = !!columnOptions.calculateFilterExpression\r\n }\r\n calculatedColumnOptions.calculateFilterExpression = function() {\r\n return filterUtils.defaultCalculateFilterExpression.apply(this, arguments)\r\n };\r\n calculatedColumnOptions.createFilterExpression = function(filterValue) {\r\n var result;\r\n if (this.calculateFilterExpression) {\r\n result = this.calculateFilterExpression.apply(this, arguments)\r\n }\r\n if (isFunction(result)) {\r\n result = [result, \"=\", true]\r\n }\r\n if (result) {\r\n result.columnIndex = this.index;\r\n result.filterValue = filterValue\r\n }\r\n return result\r\n };\r\n if (!dataField || !isString(dataField)) {\r\n extend(true, calculatedColumnOptions, {\r\n allowSorting: false,\r\n allowGrouping: false,\r\n calculateCellValue: function() {\r\n return null\r\n }\r\n })\r\n }\r\n if (bandColumn) {\r\n calculatedColumnOptions.allowFixing = false\r\n }\r\n if (columnOptions.dataType) {\r\n calculatedColumnOptions.userDataType = columnOptions.dataType\r\n }\r\n if (columnOptions.selectedFilterOperation && !(\"defaultSelectedFilterOperation\" in calculatedColumnOptions)) {\r\n calculatedColumnOptions.defaultSelectedFilterOperation = columnOptions.selectedFilterOperation\r\n }\r\n if (columnOptions.lookup) {\r\n calculatedColumnOptions.lookup = {\r\n calculateCellValue: function(value, skipDeserialization) {\r\n if (this.valueExpr) {\r\n value = this.valueMap && this.valueMap[value]\r\n }\r\n return this.deserializeValue && !skipDeserialization ? this.deserializeValue(value) : value\r\n },\r\n updateValueMap: function() {\r\n this.valueMap = {};\r\n if (this.items) {\r\n var calculateValue = compileGetter(this.valueExpr);\r\n var calculateDisplayValue = compileGetter(this.displayExpr);\r\n for (var i = 0; i < this.items.length; i++) {\r\n var item = this.items[i];\r\n var displayValue = calculateDisplayValue(item);\r\n this.valueMap[calculateValue(item)] = displayValue;\r\n this.dataType = this.dataType || getValueDataType(displayValue)\r\n }\r\n }\r\n },\r\n update: function() {\r\n var that = this;\r\n var dataSource = that.dataSource;\r\n if (dataSource) {\r\n if (isFunction(dataSource) && !variableWrapper.isWrapped(dataSource)) {\r\n dataSource = dataSource({})\r\n }\r\n if (isPlainObject(dataSource) || dataSource instanceof Store || Array.isArray(dataSource)) {\r\n if (that.valueExpr) {\r\n var dataSourceOptions = normalizeDataSourceOptions(dataSource);\r\n dataSourceOptions.paginate = false;\r\n dataSource = new DataSource(dataSourceOptions);\r\n return dataSource.load().done((function(data) {\r\n that.items = data;\r\n that.updateValueMap && that.updateValueMap()\r\n }))\r\n }\r\n } else {\r\n errors.log(\"E1016\")\r\n }\r\n } else {\r\n that.updateValueMap && that.updateValueMap()\r\n }\r\n }\r\n }\r\n }\r\n calculatedColumnOptions.resizedCallbacks = Callbacks();\r\n if (columnOptions.resized) {\r\n calculatedColumnOptions.resizedCallbacks.add(columnOptions.resized.bind(columnOptions))\r\n }\r\n each(calculatedColumnOptions, (function(optionName) {\r\n if (isFunction(calculatedColumnOptions[optionName]) && 0 !== optionName.indexOf(\"default\")) {\r\n var defaultOptionName = \"default\" + optionName.charAt(0).toUpperCase() + optionName.substr(1);\r\n calculatedColumnOptions[defaultOptionName] = calculatedColumnOptions[optionName]\r\n }\r\n }));\r\n return calculatedColumnOptions\r\n },\r\n getRowCount: function() {\r\n this._rowCount = this._rowCount || function(that) {\r\n var rowCount = 1;\r\n var bandColumnsCache = that.getBandColumnsCache();\r\n var columnParentByIndex = bandColumnsCache.columnParentByIndex;\r\n that._columns.forEach((function(column) {\r\n var parents = getParentBandColumns(column.index, columnParentByIndex);\r\n var invisibleParents = parents.filter((function(column) {\r\n return !column.visible\r\n }));\r\n if (column.visible && !invisibleParents.length) {\r\n rowCount = Math.max(rowCount, parents.length + 1)\r\n }\r\n }));\r\n return rowCount\r\n }(this);\r\n return this._rowCount\r\n },\r\n getRowIndex: function(columnIndex, alwaysGetRowIndex) {\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n return column && (alwaysGetRowIndex || column.visible && !(column.command || isDefined(column.groupIndex))) ? getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex).length : 0\r\n },\r\n getChildrenByBandColumn: function(bandColumnIndex, onlyVisibleDirectChildren) {\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var result = _getChildrenByBandColumn(bandColumnIndex, bandColumnsCache.columnChildrenByIndex, !onlyVisibleDirectChildren);\r\n if (onlyVisibleDirectChildren) {\r\n return result.filter((function(column) {\r\n return column.visible && !column.command\r\n })).sort((function(column1, column2) {\r\n return column1.visibleIndex - column2.visibleIndex\r\n }))\r\n }\r\n return result\r\n },\r\n isParentBandColumn: function(columnIndex, bandColumnIndex) {\r\n var result = false;\r\n var column = this._columns[columnIndex];\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var parentBandColumns = column && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n if (parentBandColumns) {\r\n each(parentBandColumns, (function(_, bandColumn) {\r\n if (bandColumn.index === bandColumnIndex) {\r\n result = true;\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n },\r\n isParentColumnVisible: function(columnIndex) {\r\n var result = true;\r\n var bandColumnsCache = this.getBandColumnsCache();\r\n var bandColumns = columnIndex >= 0 && getParentBandColumns(columnIndex, bandColumnsCache.columnParentByIndex);\r\n bandColumns && each(bandColumns, (function(_, bandColumn) {\r\n result = result && bandColumn.visible;\r\n return result\r\n }));\r\n return result\r\n },\r\n getColumnId: function(column) {\r\n if (column.command && column.type === GROUP_COMMAND_COLUMN_NAME) {\r\n if (isCustomCommandColumn(this, column)) {\r\n return \"type:\" + column.type\r\n }\r\n return \"command:\" + column.command\r\n }\r\n return column.index\r\n },\r\n getCustomizeTextByDataType: getCustomizeTextByDataType,\r\n getHeaderContentAlignment: function(columnAlignment) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n return \"left\" === columnAlignment ? \"right\" : \"left\"\r\n }\r\n return columnAlignment\r\n }\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.columns_resizing_reordering.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setHeight as _setHeight,\r\n getHeight,\r\n setWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n addNamespace,\r\n eventData as getEventData,\r\n isTouchEvent\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../../events/drag\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport fx from \"../../animation/fx\";\r\nimport swatchContainer from \"../widget/swatch_container\";\r\nvar COLUMNS_SEPARATOR_CLASS = \"columns-separator\";\r\nvar COLUMNS_SEPARATOR_TRANSPARENT = \"columns-separator-transparent\";\r\nvar DRAGGING_HEADER_CLASS = \"drag-header\";\r\nvar CELL_CONTENT_CLASS = \"text-content\";\r\nvar HEADERS_DRAG_ACTION_CLASS = \"drag-action\";\r\nvar TRACKER_CLASS = \"tracker\";\r\nvar HEADERS_DROP_HIGHLIGHT_CLASS = \"drop-highlight\";\r\nvar BLOCK_SEPARATOR_CLASS = \"dx-block-separator\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar DRAGGING_COMMAND_CELL_CLASS = \"dx-drag-command-cell\";\r\nvar MODULE_NAMESPACE = \"dxDataGridResizingReordering\";\r\nvar COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH = 10;\r\nvar DRAGGING_DELTA = 5;\r\nvar COLUMN_OPACITY = .5;\r\nvar allowResizing = function(that) {\r\n return that.option(\"allowColumnResizing\") || that.getController(\"columns\").isColumnOptionUsed(\"allowResizing\")\r\n};\r\nvar allowReordering = function(that) {\r\n return that.option(\"allowColumnReordering\") || that.getController(\"columns\").isColumnOptionUsed(\"allowReordering\")\r\n};\r\nvar TrackerView = modules.View.inherit({\r\n _renderCore: function() {\r\n this.callBase();\r\n this.element().addClass(this.addWidgetPrefix(TRACKER_CLASS));\r\n this.hide()\r\n },\r\n _unsubscribeFromCallback: function() {\r\n if (this._positionChanged) {\r\n this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n }\r\n },\r\n _subscribeToCallback: function() {\r\n var that = this;\r\n that._positionChanged = function(position) {\r\n var $element = that.element();\r\n if ($element && $element.hasClass(that.addWidgetPrefix(TRACKER_CLASS))) {\r\n $element.css({\r\n top: position.top\r\n });\r\n _setHeight($element, position.height)\r\n }\r\n };\r\n this._tablePositionController.positionChanged.add(that._positionChanged)\r\n },\r\n optionChanged: function(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n this._unsubscribeFromCallback();\r\n if (args.value) {\r\n this._subscribeToCallback();\r\n this._invalidate()\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._subscribeToCallback()\r\n },\r\n isVisible: function() {\r\n return allowResizing(this)\r\n },\r\n show: function() {\r\n this.element().show()\r\n },\r\n hide: function() {\r\n this.element() && this.element().hide()\r\n },\r\n setHeight: function(value) {\r\n _setHeight(this.element(), value)\r\n },\r\n dispose: function() {\r\n this._unsubscribeFromCallback();\r\n this.callBase()\r\n }\r\n});\r\nvar SeparatorView = modules.View.inherit({\r\n _renderSeparator: function() {},\r\n _renderCore: function(options) {\r\n this.callBase(options);\r\n this._isShown = true;\r\n this._renderSeparator();\r\n this.hide()\r\n },\r\n show: function() {\r\n this._isShown = true\r\n },\r\n hide: function() {\r\n this._isShown = false\r\n },\r\n height: function(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if (isDefined(value)) {\r\n _setHeight($element, value)\r\n } else {\r\n return getHeight($element)\r\n }\r\n }\r\n },\r\n width: function(value) {\r\n var $element = this.element();\r\n if ($element) {\r\n if (isDefined(value)) {\r\n setWidth($element, value)\r\n } else {\r\n return getWidth($element)\r\n }\r\n }\r\n }\r\n});\r\nvar ColumnsSeparatorView = SeparatorView.inherit({\r\n _renderSeparator: function() {\r\n this.callBase();\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(COLUMNS_SEPARATOR_CLASS))\r\n },\r\n _subscribeToCallback: function() {\r\n var that = this;\r\n var $element;\r\n that._positionChanged = function(position) {\r\n $element = that.element();\r\n if ($element) {\r\n $element.css({\r\n top: position.top\r\n });\r\n _setHeight($element, position.height)\r\n }\r\n };\r\n that._tablePositionController.positionChanged.add(that._positionChanged)\r\n },\r\n _unsubscribeFromCallback: function() {\r\n this._positionChanged && this._tablePositionController.positionChanged.remove(this._positionChanged)\r\n },\r\n _init: function() {\r\n this._isTransparent = allowResizing(this);\r\n if (this.isVisible()) {\r\n this._subscribeToCallback()\r\n }\r\n },\r\n isVisible: function() {\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || allowResizing(this))\r\n },\r\n optionChanged: function(args) {\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._invalidate();\r\n this.hide(true)\r\n } else {\r\n this._unsubscribeFromCallback();\r\n this._isTransparent = allowResizing(this);\r\n this.hide(true)\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._tablePositionController = this.getController(\"tablePosition\");\r\n this._init()\r\n },\r\n show: function() {\r\n var $element = this.element();\r\n if ($element && !this._isShown) {\r\n if (this._isTransparent) {\r\n $element.removeClass(this.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT))\r\n } else {\r\n $element.show()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n hide: function(force) {\r\n var $element = this.element();\r\n var columnsSeparatorTransparent = this.addWidgetPrefix(COLUMNS_SEPARATOR_TRANSPARENT);\r\n if ($element && (this._isShown || force)) {\r\n if (this._isTransparent) {\r\n $element.addClass(columnsSeparatorTransparent);\r\n $element.css(\"left\", \"\");\r\n $element.show()\r\n } else {\r\n if ($element.hasClass(columnsSeparatorTransparent)) {\r\n $element.removeClass(columnsSeparatorTransparent)\r\n }\r\n $element.hide()\r\n }\r\n }\r\n this.callBase()\r\n },\r\n moveByX: function(outerX) {\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"left\", null === outerX ? 0 : outerX - this._parentElement().offset().left)\r\n }\r\n },\r\n changeCursor: function(cursorName) {\r\n cursorName = isDefined(cursorName) ? cursorName : \"\";\r\n var $element = this.element();\r\n if ($element) {\r\n $element.css(\"cursor\", cursorName)\r\n }\r\n },\r\n dispose: function() {\r\n this._unsubscribeFromCallback();\r\n this.callBase()\r\n }\r\n});\r\nvar BlockSeparatorView = SeparatorView.inherit({\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this.getController(\"data\").loadingChanged.add((function(isLoading) {\r\n if (!isLoading) {\r\n that.hide()\r\n }\r\n }))\r\n },\r\n _renderSeparator: function() {\r\n this.callBase();\r\n this.element().addClass(BLOCK_SEPARATOR_CLASS).html(\" \")\r\n },\r\n hide: function() {\r\n var $parent = this._parentElement();\r\n var $element = this.element();\r\n if ($element && this._isShown) {\r\n $element.css(\"display\", \"none\")\r\n }\r\n if ($parent && !$parent.children(\".\" + BLOCK_SEPARATOR_CLASS).length) {\r\n $parent.prepend(this.element())\r\n }\r\n this.callBase()\r\n },\r\n isVisible: function() {\r\n var groupPanelOptions = this.option(\"groupPanel\");\r\n var columnChooserOptions = this.option(\"columnChooser\");\r\n return groupPanelOptions && groupPanelOptions.visible || columnChooserOptions && columnChooserOptions.enabled\r\n },\r\n show: function(targetLocation) {\r\n var $element = this.element();\r\n var startAnimate = function(toOptions) {\r\n fx.stop($element, true);\r\n fx.animate($element, {\r\n type: \"slide\",\r\n from: {\r\n width: 0,\r\n display: toOptions.display\r\n },\r\n to: toOptions,\r\n duration: 300,\r\n easing: \"swing\"\r\n })\r\n };\r\n if ($element && !this._isShown) {\r\n switch (targetLocation) {\r\n case \"group\":\r\n startAnimate({\r\n width: \"50px\",\r\n display: \"inline-block\"\r\n });\r\n break;\r\n case \"columnChooser\":\r\n startAnimate({\r\n width: \"100%\",\r\n display: \"block\"\r\n });\r\n break;\r\n default:\r\n $element.css(\"display\", \"\")\r\n }\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar DraggingHeaderView = modules.View.inherit({\r\n _isDragging: false,\r\n isDragging: function() {\r\n return this._isDragging\r\n },\r\n _getDraggingPanelByPos: function(pos) {\r\n var result;\r\n each(this._dragOptions.draggingPanels, (function(index, draggingPanel) {\r\n if (draggingPanel) {\r\n var boundingRect = draggingPanel.getBoundingRect();\r\n if (boundingRect && (void 0 === boundingRect.bottom || pos.y < boundingRect.bottom) && (void 0 === boundingRect.top || pos.y > boundingRect.top) && (void 0 === boundingRect.left || pos.x > boundingRect.left) && (void 0 === boundingRect.right || pos.x < boundingRect.right)) {\r\n result = draggingPanel;\r\n return false\r\n }\r\n }\r\n }));\r\n return result\r\n },\r\n _renderCore: function() {\r\n this.element().addClass(this.addWidgetPrefix(DRAGGING_HEADER_CLASS) + \" \" + this.addWidgetPrefix(CELL_CONTENT_CLASS) + \" \" + WIDGET_CLASS).hide()\r\n },\r\n _resetTargetColumnOptions: function() {\r\n var params = this._dropOptions;\r\n params.targetColumnIndex = -1;\r\n delete params.targetColumnElement;\r\n delete params.isLast;\r\n delete params.posX;\r\n delete params.posY\r\n },\r\n _getVisibleIndexObject: function(rowIndex, visibleIndex) {\r\n if (isDefined(rowIndex)) {\r\n return {\r\n columnIndex: visibleIndex,\r\n rowIndex: rowIndex\r\n }\r\n }\r\n return visibleIndex\r\n },\r\n dispose: function() {\r\n var element = this.element();\r\n this._dragOptions = null;\r\n element && element.parent().find(\".\" + this.addWidgetPrefix(DRAGGING_HEADER_CLASS)).remove()\r\n },\r\n isVisible: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var commonColumnSettings = columnsController.getCommonSettings();\r\n return this.option(\"showColumnHeaders\") && (allowReordering(this) || commonColumnSettings.allowGrouping || commonColumnSettings.allowHiding)\r\n },\r\n init: function() {\r\n var that = this;\r\n this.callBase();\r\n this._controller = this.getController(\"draggingHeader\");\r\n this._columnsResizerViewController = this.getController(\"columnsResizer\");\r\n this.getController(\"data\").loadingChanged.add((function(isLoading) {\r\n var element = that.element();\r\n if (!isLoading && element) {\r\n element.hide()\r\n }\r\n }))\r\n },\r\n dragHeader: function(options) {\r\n var columnElement = options.columnElement;\r\n var isCommandColumn = !!options.sourceColumn.type;\r\n this._isDragging = true;\r\n this._dragOptions = options;\r\n this._dropOptions = {\r\n sourceIndex: options.index,\r\n sourceColumnIndex: this._getVisibleIndexObject(options.rowIndex, options.columnIndex),\r\n sourceColumnElement: options.columnElement,\r\n sourceLocation: options.sourceLocation\r\n };\r\n var document = domAdapter.getDocument();\r\n this._onSelectStart = document.onselectstart;\r\n document.onselectstart = function() {\r\n return false\r\n };\r\n this._controller.drag(this._dropOptions);\r\n this.element().css({\r\n textAlign: columnElement && columnElement.css(\"textAlign\"),\r\n height: columnElement && (isCommandColumn && columnElement.get(0).clientHeight || getHeight(columnElement)),\r\n width: columnElement && (isCommandColumn && columnElement.get(0).clientWidth || getWidth(columnElement)),\r\n whiteSpace: columnElement && columnElement.css(\"whiteSpace\")\r\n }).addClass(this.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS)).toggleClass(DRAGGING_COMMAND_CELL_CLASS, isCommandColumn).text(isCommandColumn ? \"\" : options.sourceColumn.caption);\r\n this.element().appendTo(swatchContainer.getSwatchContainer(columnElement))\r\n },\r\n moveHeader: function(args) {\r\n var e = args.event;\r\n var that = e.data.that;\r\n var eventData = getEventData(e);\r\n var isResizing = that._columnsResizerViewController ? that._columnsResizerViewController.isResizing() : false;\r\n var dragOptions = that._dragOptions;\r\n if (that._isDragging && !isResizing) {\r\n var $element = that.element();\r\n var moveDeltaX = Math.abs(eventData.x - dragOptions.columnElement.offset().left - dragOptions.deltaX);\r\n var moveDeltaY = Math.abs(eventData.y - dragOptions.columnElement.offset().top - dragOptions.deltaY);\r\n if ($element.is(\":visible\") || moveDeltaX > DRAGGING_DELTA || moveDeltaY > DRAGGING_DELTA) {\r\n $element.show();\r\n var newLeft = eventData.x - dragOptions.deltaX;\r\n var newTop = eventData.y - dragOptions.deltaY;\r\n $element.css({\r\n left: newLeft,\r\n top: newTop\r\n });\r\n that.dockHeader(eventData)\r\n }\r\n e.preventDefault()\r\n }\r\n },\r\n dockHeader: function(eventData) {\r\n var targetDraggingPanel = this._getDraggingPanelByPos(eventData);\r\n var controller = this._controller;\r\n var params = this._dropOptions;\r\n var dragOptions = this._dragOptions;\r\n if (targetDraggingPanel) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isVerticalOrientation = \"columnChooser\" === targetDraggingPanel.getName();\r\n var axisName = isVerticalOrientation ? \"y\" : \"x\";\r\n var targetLocation = targetDraggingPanel.getName();\r\n var rowIndex = \"headers\" === targetLocation ? dragOptions.rowIndex : void 0;\r\n var sourceColumn = dragOptions.sourceColumn;\r\n var columnElements = targetDraggingPanel.getColumnElements(rowIndex, null === sourceColumn || void 0 === sourceColumn ? void 0 : sourceColumn.ownerBand) || [];\r\n var pointsByTarget = dragOptions.pointsByTarget = dragOptions.pointsByTarget || {};\r\n var pointsByColumns = \"columnChooser\" === targetLocation ? [] : pointsByTarget[targetLocation] || controller._generatePointsByColumns(extend({}, dragOptions, {\r\n targetDraggingPanel: targetDraggingPanel,\r\n columns: targetDraggingPanel.getColumns(rowIndex),\r\n columnElements: columnElements,\r\n isVerticalOrientation: isVerticalOrientation,\r\n startColumnIndex: \"headers\" === targetLocation && $(columnElements[0]).index()\r\n }));\r\n pointsByTarget[targetLocation] = pointsByColumns;\r\n params.targetLocation = targetLocation;\r\n if (pointsByColumns.length > 0) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n var centerPosition = pointsByColumns[i + 1] && (pointsByColumns[i][axisName] + pointsByColumns[i + 1][axisName]) / 2;\r\n if (void 0 === centerPosition || (rtlEnabled && \"x\" === axisName ? eventData[axisName] > centerPosition : eventData[axisName] < centerPosition)) {\r\n params.targetColumnIndex = this._getVisibleIndexObject(rowIndex, pointsByColumns[i].columnIndex);\r\n if (columnElements[i]) {\r\n params.targetColumnElement = columnElements.eq(i);\r\n params.isLast = false\r\n } else {\r\n params.targetColumnElement = columnElements.last();\r\n params.isLast = true\r\n }\r\n params.posX = pointsByColumns[i].x;\r\n params.posY = pointsByColumns[i].y;\r\n controller.dock(params);\r\n break\r\n }\r\n }\r\n } else {\r\n this._resetTargetColumnOptions();\r\n controller.dock(params)\r\n }\r\n }\r\n },\r\n dropHeader: function(args) {\r\n var e = args.event;\r\n var that = e.data.that;\r\n var controller = that._controller;\r\n that.element().hide();\r\n if (controller && that._isDragging) {\r\n controller.drop(that._dropOptions)\r\n }\r\n that.element().appendTo(that._parentElement());\r\n that._dragOptions = null;\r\n that._dropOptions = null;\r\n that._isDragging = false;\r\n domAdapter.getDocument().onselectstart = that._onSelectStart || null\r\n }\r\n});\r\nvar isNextColumnResizingMode = function(that) {\r\n return \"widget\" !== that.option(\"columnResizingMode\")\r\n};\r\nvar ColumnsResizerViewController = modules.ViewController.inherit({\r\n _isHeadersRowArea: function(posY) {\r\n if (this._columnHeadersView) {\r\n var element = this._columnHeadersView.element();\r\n if (element) {\r\n var offsetTop = element.offset().top;\r\n var headersRowHeight = this._columnHeadersView.getHeadersRowHeight();\r\n return posY >= offsetTop && posY <= offsetTop + headersRowHeight\r\n }\r\n }\r\n return false\r\n },\r\n _isRtlParentStyle: function() {\r\n var _this$_$parentContain;\r\n return this.option(\"rtlEnabled\") && \"rtl\" === (null === (_this$_$parentContain = this._$parentContainer) || void 0 === _this$_$parentContain ? void 0 : _this$_$parentContain.parent().css(\"direction\"))\r\n },\r\n _pointCreated: function(point, cellsLength, columns) {\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var firstPointColumnIndex = !isNextColumnMode && rtlEnabled && !isRtlParentStyle ? 0 : 1;\r\n if (point.index >= firstPointColumnIndex && point.index < cellsLength + (!isNextColumnMode && (!rtlEnabled || isRtlParentStyle) ? 1 : 0)) {\r\n point.columnIndex -= firstPointColumnIndex;\r\n var currentColumn = columns[point.columnIndex] || {};\r\n var nextColumn = columns[point.columnIndex + 1] || {};\r\n return !(isNextColumnMode ? currentColumn.allowResizing && nextColumn.allowResizing : currentColumn.allowResizing)\r\n }\r\n return true\r\n },\r\n _getTargetPoint: function(pointsByColumns, currentX, deltaX) {\r\n if (pointsByColumns) {\r\n for (var i = 0; i < pointsByColumns.length; i++) {\r\n if (pointsByColumns[i].x === pointsByColumns[0].x && pointsByColumns[i + 1] && pointsByColumns[i].x === pointsByColumns[i + 1].x) {\r\n continue\r\n }\r\n if (pointsByColumns[i].x - deltaX <= currentX && currentX <= pointsByColumns[i].x + deltaX) {\r\n return pointsByColumns[i]\r\n }\r\n }\r\n }\r\n return null\r\n },\r\n _moveSeparator: function(args) {\r\n var _that$_draggingHeader;\r\n var e = args.event;\r\n var that = e.data;\r\n var columnsSeparatorWidth = that._columnsSeparatorView.width();\r\n var isNextColumnMode = isNextColumnResizingMode(that);\r\n var deltaX = columnsSeparatorWidth / 2;\r\n var parentOffset = that._$parentContainer.offset();\r\n var parentOffsetLeft = parentOffset.left;\r\n var eventData = getEventData(e);\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var isDragging = null === (_that$_draggingHeader = that._draggingHeaderView) || void 0 === _that$_draggingHeader ? void 0 : _that$_draggingHeader.isDragging();\r\n if (that._isResizing && that._resizingInfo) {\r\n if ((parentOffsetLeft <= eventData.x || !isNextColumnMode && isRtlParentStyle) && (!isNextColumnMode || eventData.x <= parentOffsetLeft + getWidth(that._$parentContainer))) {\r\n if (that._updateColumnsWidthIfNeeded(eventData.x)) {\r\n var $cell = that._columnHeadersView.getColumnElements().eq(that._resizingInfo.currentColumnIndex);\r\n var cell = $cell[0];\r\n if (cell) {\r\n var outerWidth = cell.getBoundingClientRect().width;\r\n that._columnsSeparatorView.moveByX($cell.offset().left + ((isNextColumnMode || isRtlParentStyle) && rtlEnabled ? 0 : outerWidth));\r\n that._tablePositionController.update(that._targetPoint.y);\r\n e.preventDefault()\r\n }\r\n }\r\n }\r\n } else if (!isDragging) {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n if (that._previousParentOffset) {\r\n if (that._previousParentOffset.left !== parentOffset.left || that._previousParentOffset.top !== parentOffset.top) {\r\n that.pointsByColumns(null)\r\n }\r\n }\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, columnsSeparatorWidth);\r\n that._previousParentOffset = parentOffset;\r\n that._isReadyResizing = false;\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.changeCursor(\"col-resize\");\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - deltaX);\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._isReadyResizing = true;\r\n e.preventDefault()\r\n } else {\r\n that._columnsSeparatorView.changeCursor();\r\n that._columnsSeparatorView.moveByX(null)\r\n }\r\n } else {\r\n that.pointsByColumns(null);\r\n that._isReadyResizing = false;\r\n that._columnsSeparatorView.changeCursor();\r\n that._columnsSeparatorView.moveByX(null)\r\n }\r\n }\r\n },\r\n _endResizing: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n if (that._isResizing) {\r\n that.pointsByColumns(null);\r\n that._resizingInfo = null;\r\n that._columnsSeparatorView.hide();\r\n that._columnsSeparatorView.changeCursor();\r\n that._trackerView.hide();\r\n that._isReadyResizing = false;\r\n that._isResizing = false\r\n }\r\n },\r\n _getNextColumnIndex: function(currentColumnIndex) {\r\n return currentColumnIndex + 1\r\n },\r\n _setupResizingInfo: function(posX) {\r\n var currentColumnIndex = this._targetPoint.columnIndex;\r\n var nextColumnIndex = this._getNextColumnIndex(currentColumnIndex);\r\n var currentHeader = this._columnHeadersView.getHeaderElement(currentColumnIndex);\r\n var nextHeader = this._columnHeadersView.getHeaderElement(nextColumnIndex);\r\n this._resizingInfo = {\r\n startPosX: posX,\r\n currentColumnIndex: currentColumnIndex,\r\n currentColumnWidth: currentHeader && currentHeader.length > 0 ? getBoundingRect(currentHeader[0]).width : 0,\r\n nextColumnIndex: nextColumnIndex,\r\n nextColumnWidth: nextHeader && nextHeader.length > 0 ? getBoundingRect(nextHeader[0]).width : 0\r\n }\r\n },\r\n _startResizing: function(args) {\r\n var e = args.event;\r\n var that = e.data;\r\n var eventData = getEventData(e);\r\n if (isTouchEvent(e)) {\r\n if (that._isHeadersRowArea(eventData.y)) {\r\n that._targetPoint = that._getTargetPoint(that.pointsByColumns(), eventData.x, COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH);\r\n if (that._targetPoint) {\r\n that._columnsSeparatorView.moveByX(that._targetPoint.x - that._columnsSeparatorView.width() / 2);\r\n that._isReadyResizing = true\r\n }\r\n } else {\r\n that._isReadyResizing = false\r\n }\r\n }\r\n if (that._isReadyResizing) {\r\n that._setupResizingInfo(eventData.x);\r\n that._isResizing = true;\r\n that._tablePositionController.update(that._targetPoint.y);\r\n that._columnsSeparatorView.show();\r\n that._trackerView.show();\r\n var scrollable = that.component.getScrollable();\r\n if (scrollable && that._isRtlParentStyle()) {\r\n that._scrollRight = getWidth(scrollable.$content()) - getWidth(scrollable.container()) - scrollable.scrollLeft()\r\n }\r\n e.preventDefault();\r\n e.stopPropagation()\r\n }\r\n if (this.isResizing()) {\r\n this.getController(\"editorFactory\").loseFocus()\r\n }\r\n },\r\n _generatePointsByColumns: function() {\r\n var that = this;\r\n var columns = that._columnsController ? that._columnsController.getVisibleColumns() : [];\r\n var cells = that._columnHeadersView.getColumnElements();\r\n var pointsByColumns = [];\r\n if (cells && cells.length > 0) {\r\n pointsByColumns = gridCoreUtils.getPointsByColumns(cells, (function(point) {\r\n return that._pointCreated(point, cells.length, columns)\r\n }))\r\n }\r\n that._pointsByColumns = pointsByColumns\r\n },\r\n _unsubscribeFromEvents: function() {\r\n this._moveSeparatorHandler && eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.move, MODULE_NAMESPACE), this._moveSeparatorHandler);\r\n this._startResizingHandler && eventsEngine.off(this._$parentContainer, addNamespace(pointerEvents.down, MODULE_NAMESPACE), this._startResizingHandler);\r\n if (this._endResizingHandler) {\r\n eventsEngine.off(this._columnsSeparatorView.element(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this._endResizingHandler);\r\n eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this._endResizingHandler)\r\n }\r\n },\r\n _subscribeToEvents: function() {\r\n this._moveSeparatorHandler = this.createAction(this._moveSeparator);\r\n this._startResizingHandler = this.createAction(this._startResizing);\r\n this._endResizingHandler = this.createAction(this._endResizing);\r\n eventsEngine.on(domAdapter.getDocument(), addNamespace(pointerEvents.move, MODULE_NAMESPACE), this, this._moveSeparatorHandler);\r\n eventsEngine.on(this._$parentContainer, addNamespace(pointerEvents.down, MODULE_NAMESPACE), this, this._startResizingHandler);\r\n eventsEngine.on(this._columnsSeparatorView.element(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this, this._endResizingHandler);\r\n eventsEngine.on(domAdapter.getDocument(), addNamespace(pointerEvents.up, MODULE_NAMESPACE), this, this._endResizingHandler)\r\n },\r\n _updateColumnsWidthIfNeeded: function(posX) {\r\n var deltaX;\r\n var needUpdate;\r\n var contentWidth = this._rowsView.contentWidth();\r\n var resizingInfo = this._resizingInfo;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnsSeparatorWidth = this._columnsSeparatorView.width();\r\n var isNextColumnMode = isNextColumnResizingMode(this);\r\n var adaptColumnWidthByRatio = isNextColumnMode && this.option(\"adaptColumnWidthByRatio\") && !this.option(\"columnAutoWidth\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isRtlParentStyle = this._isRtlParentStyle();\r\n var column = visibleColumns[resizingInfo.currentColumnIndex];\r\n var nextColumn = visibleColumns[resizingInfo.nextColumnIndex];\r\n\r\n function isPercentWidth(width) {\r\n return isString(width) && \"%\" === width.slice(-1)\r\n }\r\n\r\n function setColumnWidth(column, columnWidth, contentWidth, adaptColumnWidthByRatio) {\r\n if (column) {\r\n var oldColumnWidth = column.width;\r\n if (oldColumnWidth) {\r\n adaptColumnWidthByRatio = isPercentWidth(oldColumnWidth)\r\n }\r\n if (adaptColumnWidthByRatio) {\r\n columnsController.columnOption(column.index, \"visibleWidth\", columnWidth);\r\n columnsController.columnOption(column.index, \"width\", (columnWidth / contentWidth * 100).toFixed(3) + \"%\")\r\n } else {\r\n columnsController.columnOption(column.index, \"visibleWidth\", null);\r\n columnsController.columnOption(column.index, \"width\", columnWidth)\r\n }\r\n }\r\n }\r\n deltaX = posX - resizingInfo.startPosX;\r\n if ((isNextColumnMode || isRtlParentStyle) && rtlEnabled) {\r\n deltaX = -deltaX\r\n }\r\n var {\r\n cellWidth: cellWidth,\r\n nextCellWidth: nextCellWidth\r\n } = function(delta) {\r\n var nextMinWidth;\r\n var nextCellWidth;\r\n var needCorrectionNextCellWidth;\r\n var cellWidth = resizingInfo.currentColumnWidth + delta;\r\n var minWidth = column && column.minWidth || columnsSeparatorWidth;\r\n var result = {};\r\n if (cellWidth >= minWidth) {\r\n result.cellWidth = cellWidth\r\n } else {\r\n result.cellWidth = minWidth;\r\n needCorrectionNextCellWidth = true\r\n }\r\n if (isNextColumnMode) {\r\n nextCellWidth = resizingInfo.nextColumnWidth - delta;\r\n nextMinWidth = nextColumn && nextColumn.minWidth || columnsSeparatorWidth;\r\n if (nextCellWidth >= nextMinWidth) {\r\n if (needCorrectionNextCellWidth) {\r\n result.nextCellWidth = resizingInfo.nextColumnWidth - (delta + minWidth - cellWidth)\r\n } else {\r\n result.nextCellWidth = nextCellWidth\r\n }\r\n } else {\r\n result.nextCellWidth = nextMinWidth;\r\n result.cellWidth = resizingInfo.currentColumnWidth + (delta - nextMinWidth + nextCellWidth)\r\n }\r\n }\r\n return result\r\n }(deltaX);\r\n needUpdate = column.width !== cellWidth;\r\n if (needUpdate) {\r\n columnsController.beginUpdate();\r\n cellWidth = Math.floor(cellWidth);\r\n contentWidth = function(contentWidth, visibleColumns) {\r\n var allColumnsHaveWidth = visibleColumns.every(column => column.width);\r\n if (allColumnsHaveWidth) {\r\n var totalPercent = visibleColumns.reduce((sum, column) => {\r\n if (isPercentWidth(column.width)) {\r\n sum += parseFloat(column.width)\r\n }\r\n return sum\r\n }, 0);\r\n if (totalPercent > 100) {\r\n contentWidth = contentWidth / totalPercent * 100\r\n }\r\n }\r\n return contentWidth\r\n }(contentWidth, visibleColumns);\r\n setColumnWidth(column, cellWidth, contentWidth, adaptColumnWidthByRatio);\r\n if (isNextColumnMode) {\r\n nextCellWidth = Math.floor(nextCellWidth);\r\n setColumnWidth(nextColumn, nextCellWidth, contentWidth, adaptColumnWidthByRatio)\r\n } else {\r\n var columnWidths = this._columnHeadersView.getColumnWidths();\r\n columnWidths[resizingInfo.currentColumnIndex] = cellWidth;\r\n var hasScroll = columnWidths.reduce((totalWidth, width) => totalWidth + width, 0) > this._rowsView.contentWidth();\r\n if (!hasScroll) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns);\r\n if (lastColumnIndex >= 0) {\r\n columnsController.columnOption(visibleColumns[lastColumnIndex].index, \"visibleWidth\", \"auto\")\r\n }\r\n }\r\n for (var i = 0; i < columnWidths.length; i++) {\r\n if (visibleColumns[i] && visibleColumns[i] !== column && void 0 === visibleColumns[i].width) {\r\n columnsController.columnOption(visibleColumns[i].index, \"width\", columnWidths[i])\r\n }\r\n }\r\n }\r\n columnsController.endUpdate();\r\n if (!isNextColumnMode) {\r\n this.component.updateDimensions();\r\n var scrollable = this.component.getScrollable();\r\n if (scrollable && isRtlParentStyle) {\r\n var left = getWidth(scrollable.$content()) - getWidth(scrollable.container()) - this._scrollRight;\r\n scrollable.scrollTo({\r\n left: left\r\n })\r\n }\r\n }\r\n }\r\n return needUpdate\r\n },\r\n _subscribeToCallback: function(callback, handler) {\r\n callback.add(handler);\r\n this._subscribesToCallbacks.push({\r\n callback: callback,\r\n handler: handler\r\n })\r\n },\r\n _unsubscribeFromCallbacks: function() {\r\n for (var i = 0; i < this._subscribesToCallbacks.length; i++) {\r\n var subscribe = this._subscribesToCallbacks[i];\r\n subscribe.callback.remove(subscribe.handler)\r\n }\r\n this._subscribesToCallbacks = []\r\n },\r\n _unsubscribes: function() {\r\n this._unsubscribeFromEvents();\r\n this._unsubscribeFromCallbacks()\r\n },\r\n _init: function() {\r\n var that = this;\r\n var generatePointsByColumnsHandler = function() {\r\n if (!that._isResizing) {\r\n that.pointsByColumns(null)\r\n }\r\n };\r\n var generatePointsByColumnsScrollHandler = function(offset) {\r\n if (that._scrollLeft !== offset.left) {\r\n that._scrollLeft = offset.left;\r\n that.pointsByColumns(null)\r\n }\r\n };\r\n that._columnsSeparatorView = that.getView(\"columnsSeparatorView\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._trackerView = that.getView(\"trackerView\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._columnsController = that.getController(\"columns\");\r\n that._tablePositionController = that.getController(\"tablePosition\");\r\n that._$parentContainer = that.component.$element();\r\n that._draggingHeaderView = that.component.getView(\"draggingHeaderView\");\r\n that._subscribeToCallback(that._columnHeadersView.renderCompleted, generatePointsByColumnsHandler);\r\n that._subscribeToCallback(that._columnHeadersView.resizeCompleted, generatePointsByColumnsHandler);\r\n that._subscribeToCallback(that._columnsSeparatorView.renderCompleted, (function() {\r\n that._unsubscribeFromEvents();\r\n that._subscribeToEvents()\r\n }));\r\n that._subscribeToCallback(that._rowsView.renderCompleted, (function() {\r\n that._rowsView.scrollChanged.remove(generatePointsByColumnsScrollHandler);\r\n that._rowsView.scrollChanged.add(generatePointsByColumnsScrollHandler)\r\n }));\r\n var previousScrollbarVisibility = 0 !== that._rowsView.getScrollbarWidth();\r\n var previousTableHeight = 0;\r\n that._subscribeToCallback(that.getController(\"tablePosition\").positionChanged, (function(e) {\r\n if (that._isResizing && !that._rowsView.isResizing) {\r\n var scrollbarVisibility = 0 !== that._rowsView.getScrollbarWidth();\r\n if (previousScrollbarVisibility !== scrollbarVisibility || previousTableHeight && previousTableHeight !== e.height) {\r\n previousScrollbarVisibility = scrollbarVisibility;\r\n previousTableHeight = e.height;\r\n that.component.updateDimensions()\r\n } else {\r\n that._rowsView.updateFreeSpaceRowHeight()\r\n }\r\n }\r\n previousTableHeight = e.height\r\n }))\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n if (\"allowColumnResizing\" === args.name) {\r\n if (args.value) {\r\n this._init();\r\n this._subscribeToEvents()\r\n } else {\r\n this._unsubscribes()\r\n }\r\n }\r\n },\r\n isResizing: function() {\r\n return this._isResizing\r\n },\r\n init: function() {\r\n this._subscribesToCallbacks = [];\r\n if (allowResizing(this)) {\r\n this._init()\r\n }\r\n },\r\n pointsByColumns: function(value) {\r\n if (void 0 !== value) {\r\n this._pointsByColumns = value\r\n } else {\r\n if (!this._pointsByColumns) {\r\n this._generatePointsByColumns()\r\n }\r\n return this._pointsByColumns\r\n }\r\n },\r\n dispose: function() {\r\n this._unsubscribes();\r\n this.callBase()\r\n }\r\n});\r\nvar TablePositionViewController = modules.ViewController.inherit({\r\n update: function(top) {\r\n var params = {};\r\n var $element = this._columnHeadersView.element();\r\n var offset = $element && $element.offset();\r\n var offsetTop = offset && offset.top || 0;\r\n var diffOffsetTop = isDefined(top) ? Math.abs(top - offsetTop) : 0;\r\n var columnsHeadersHeight = this._columnHeadersView ? this._columnHeadersView.getHeight() : 0;\r\n var scrollBarWidth = this._rowsView.getScrollbarWidth(true);\r\n var rowsHeight = this._rowsView ? this._rowsView.height() - scrollBarWidth : 0;\r\n var columnsResizerController = this.component.getController(\"columnsResizer\");\r\n var draggingHeaderView = this.component.getView(\"draggingHeaderView\");\r\n params.height = columnsHeadersHeight;\r\n var isDraggingOrResizing = false !== columnsResizerController.isResizing() || draggingHeaderView.isDragging();\r\n if (isDraggingOrResizing) {\r\n params.height += rowsHeight - diffOffsetTop\r\n }\r\n if (null !== top && $element && $element.length) {\r\n params.top = $element[0].offsetTop + diffOffsetTop\r\n }\r\n this.positionChanged.fire(params)\r\n },\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that._columnHeadersView = this.getView(\"columnHeadersView\");\r\n that._rowsView = this.getView(\"rowsView\");\r\n that._pagerView = this.getView(\"pagerView\");\r\n that._rowsView.resizeCompleted.add((function() {\r\n if (that.option(\"allowColumnResizing\")) {\r\n var targetPoint = that.getController(\"columnsResizer\")._targetPoint;\r\n that.update(targetPoint ? targetPoint.y : null)\r\n }\r\n }))\r\n },\r\n ctor: function(component) {\r\n this.callBase(component);\r\n this.positionChanged = Callbacks()\r\n }\r\n});\r\nvar DraggingHeaderViewController = modules.ViewController.inherit({\r\n _generatePointsByColumns: function(options) {\r\n var that = this;\r\n return gridCoreUtils.getPointsByColumns(options.columnElements, (function(point) {\r\n return that._pointCreated(point, options.columns, options.targetDraggingPanel.getName(), options.sourceColumn)\r\n }), options.isVerticalOrientation, options.startColumnIndex)\r\n },\r\n _pointCreated: function(point, columns, location, sourceColumn) {\r\n var targetColumn = columns[point.columnIndex];\r\n var prevColumn = columns[point.columnIndex - 1];\r\n switch (location) {\r\n case \"columnChooser\":\r\n return true;\r\n case \"headers\":\r\n return sourceColumn && !sourceColumn.allowReordering || (!targetColumn || !targetColumn.allowReordering) && (!prevColumn || !prevColumn.allowReordering);\r\n default:\r\n return 0 === columns.length\r\n }\r\n },\r\n _subscribeToEvents: function(draggingHeader, draggingPanels) {\r\n var that = this;\r\n each(draggingPanels, (function(_, draggingPanel) {\r\n if (draggingPanel) {\r\n var columns;\r\n var rowCount = draggingPanel.getRowCount ? draggingPanel.getRowCount() : 1;\r\n var nameDraggingPanel = draggingPanel.getName();\r\n var subscribeToEvents = function(index, columnElement) {\r\n if (!columnElement) {\r\n return\r\n }\r\n var $columnElement = $(columnElement);\r\n var column = columns[index];\r\n if (draggingPanel.allowDragging(column, nameDraggingPanel, draggingPanels)) {\r\n $columnElement.addClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS));\r\n eventsEngine.on($columnElement, addNamespace(dragEventStart, MODULE_NAMESPACE), that.createAction((function(args) {\r\n var e = args.event;\r\n var eventData = getEventData(e);\r\n draggingHeader.dragHeader({\r\n deltaX: eventData.x - $(e.currentTarget).offset().left,\r\n deltaY: eventData.y - $(e.currentTarget).offset().top,\r\n sourceColumn: column,\r\n index: column.index,\r\n columnIndex: index,\r\n columnElement: $columnElement,\r\n sourceLocation: nameDraggingPanel,\r\n draggingPanels: draggingPanels,\r\n rowIndex: that._columnsController.getRowIndex(column.index, true)\r\n })\r\n })));\r\n eventsEngine.on($columnElement, addNamespace(dragEventMove, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.moveHeader));\r\n eventsEngine.on($columnElement, addNamespace(dragEventEnd, MODULE_NAMESPACE), {\r\n that: draggingHeader\r\n }, that.createAction(draggingHeader.dropHeader))\r\n }\r\n };\r\n for (var i = 0; i < rowCount; i++) {\r\n var columnElements = draggingPanel.getColumnElements(i) || [];\r\n if (columnElements.length) {\r\n columns = draggingPanel.getColumns(i) || [];\r\n each(columnElements, subscribeToEvents)\r\n }\r\n }\r\n }\r\n }))\r\n },\r\n _unsubscribeFromEvents: function(draggingHeader, draggingPanels) {\r\n var that = this;\r\n each(draggingPanels, (function(_, draggingPanel) {\r\n if (draggingPanel) {\r\n var columnElements = draggingPanel.getColumnElements() || [];\r\n each(columnElements, (function(index, columnElement) {\r\n var $columnElement = $(columnElement);\r\n eventsEngine.off($columnElement, addNamespace(dragEventStart, MODULE_NAMESPACE));\r\n eventsEngine.off($columnElement, addNamespace(dragEventMove, MODULE_NAMESPACE));\r\n eventsEngine.off($columnElement, addNamespace(dragEventEnd, MODULE_NAMESPACE));\r\n $columnElement.removeClass(that.addWidgetPrefix(HEADERS_DRAG_ACTION_CLASS))\r\n }))\r\n }\r\n }))\r\n },\r\n _getSeparator: function(targetLocation) {\r\n return \"headers\" === targetLocation ? this._columnsSeparatorView : this._blockSeparatorView\r\n },\r\n hideSeparators: function(type) {\r\n var blockSeparator = this._blockSeparatorView;\r\n var columnsSeparator = this._columnsSeparatorView;\r\n this._animationColumnIndex = null;\r\n blockSeparator && blockSeparator.hide();\r\n \"block\" !== type && columnsSeparator && columnsSeparator.hide()\r\n },\r\n init: function() {\r\n var that = this;\r\n that.callBase();\r\n that._columnsController = that.getController(\"columns\");\r\n that._columnHeadersView = that.getView(\"columnHeadersView\");\r\n that._columnsSeparatorView = that.getView(\"columnsSeparatorView\");\r\n that._draggingHeaderView = that.getView(\"draggingHeaderView\");\r\n that._rowsView = that.getView(\"rowsView\");\r\n that._blockSeparatorView = that.getView(\"blockSeparatorView\");\r\n that._headerPanelView = that.getView(\"headerPanel\");\r\n that._columnChooserView = that.getView(\"columnChooserView\");\r\n var subscribeToEvents = function() {\r\n if (that._draggingHeaderView) {\r\n var draggingPanels = [that._columnChooserView, that._columnHeadersView, that._headerPanelView];\r\n that._unsubscribeFromEvents(that._draggingHeaderView, draggingPanels);\r\n that._subscribeToEvents(that._draggingHeaderView, draggingPanels)\r\n }\r\n };\r\n that._columnHeadersView.renderCompleted.add(subscribeToEvents);\r\n that._headerPanelView && that._headerPanelView.renderCompleted.add(subscribeToEvents);\r\n that._columnChooserView && that._columnChooserView.renderCompleted.add(subscribeToEvents)\r\n },\r\n allowDrop: function(parameters) {\r\n return this._columnsController.allowMoveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n },\r\n drag: function(parameters) {\r\n var sourceIndex = parameters.sourceIndex;\r\n var sourceLocation = parameters.sourceLocation;\r\n var sourceColumnElement = parameters.sourceColumnElement;\r\n var headersView = this._columnHeadersView;\r\n var rowsView = this._rowsView;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: COLUMN_OPACITY\r\n });\r\n if (\"headers\" === sourceLocation) {\r\n headersView && headersView.setRowsOpacity(sourceIndex, COLUMN_OPACITY);\r\n rowsView && rowsView.setRowsOpacity(sourceIndex, COLUMN_OPACITY)\r\n }\r\n }\r\n },\r\n dock: function(parameters) {\r\n var that = this;\r\n var targetColumnIndex = isObject(parameters.targetColumnIndex) ? parameters.targetColumnIndex.columnIndex : parameters.targetColumnIndex;\r\n var sourceLocation = parameters.sourceLocation;\r\n var targetLocation = parameters.targetLocation;\r\n var separator = that._getSeparator(targetLocation);\r\n var hasTargetVisibleIndex = targetColumnIndex >= 0;\r\n that._columnHeadersView.element().find(\".\" + HEADER_ROW_CLASS).toggleClass(that.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS), \"headers\" !== sourceLocation && \"headers\" === targetLocation && !hasTargetVisibleIndex);\r\n if (separator) {\r\n if (that.allowDrop(parameters) && hasTargetVisibleIndex) {\r\n if (\"group\" === targetLocation || \"columnChooser\" === targetLocation) {\r\n ! function() {\r\n if (that._animationColumnIndex !== targetColumnIndex) {\r\n that.hideSeparators();\r\n separator.element()[parameters.isLast ? \"insertAfter\" : \"insertBefore\"](parameters.targetColumnElement);\r\n that._animationColumnIndex = targetColumnIndex;\r\n separator.show(targetLocation)\r\n }\r\n }()\r\n } else {\r\n that.hideSeparators(\"block\");\r\n that.getController(\"tablePosition\").update(parameters.posY);\r\n separator.moveByX(parameters.posX - separator.width());\r\n separator.show()\r\n }\r\n } else {\r\n that.hideSeparators()\r\n }\r\n }\r\n },\r\n drop: function(parameters) {\r\n var sourceColumnElement = parameters.sourceColumnElement;\r\n if (sourceColumnElement) {\r\n sourceColumnElement.css({\r\n opacity: \"\"\r\n });\r\n this._columnHeadersView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._rowsView.setRowsOpacity(parameters.sourceIndex, \"\");\r\n this._columnHeadersView.element().find(\".\" + HEADER_ROW_CLASS).removeClass(this.addWidgetPrefix(HEADERS_DROP_HIGHLIGHT_CLASS))\r\n }\r\n if (this.allowDrop(parameters)) {\r\n var separator = this._getSeparator(parameters.targetLocation);\r\n if (separator) {\r\n separator.hide()\r\n }\r\n this._columnsController.moveColumn(parameters.sourceColumnIndex, parameters.targetColumnIndex, parameters.sourceLocation, parameters.targetLocation)\r\n }\r\n },\r\n dispose: function() {\r\n if (this._draggingHeaderView) {\r\n this._unsubscribeFromEvents(this._draggingHeaderView, [this._columnChooserView, this._columnHeadersView, this._headerPanelView])\r\n }\r\n }\r\n});\r\nexport var columnsResizingReorderingModule = {\r\n views: {\r\n columnsSeparatorView: ColumnsSeparatorView,\r\n blockSeparatorView: BlockSeparatorView,\r\n draggingHeaderView: DraggingHeaderView,\r\n trackerView: TrackerView\r\n },\r\n controllers: {\r\n draggingHeader: DraggingHeaderViewController,\r\n tablePosition: TablePositionViewController,\r\n columnsResizer: ColumnsResizerViewController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _needUpdateRowHeight: function(itemCount) {\r\n var wordWrapEnabled = this.option(\"wordWrapEnabled\");\r\n var columnsResizerController = this.getController(\"columnsResizer\");\r\n var isResizing = columnsResizerController.isResizing();\r\n return this.callBase.apply(this, arguments) || itemCount > 0 && wordWrapEnabled && isResizing\r\n }\r\n }\r\n },\r\n controllers: {\r\n editorFactory: {\r\n renderFocusOverlay: function() {\r\n if (this.getController(\"columnsResizer\").isResizing()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.column_state_mixin.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nvar COLUMN_INDICATORS_CLASS = \"dx-column-indicators\";\r\nvar GROUP_PANEL_ITEM_CLASS = \"dx-group-panel-item\";\r\nexport default {\r\n _applyColumnState: function(options) {\r\n var _that$component;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var columnAlignment = this._getColumnAlignment(options.column.alignment, rtlEnabled);\r\n var parameters = extend(true, {\r\n columnAlignment: columnAlignment\r\n }, options);\r\n var isGroupPanelItem = parameters.rootElement.hasClass(GROUP_PANEL_ITEM_CLASS);\r\n var $indicatorsContainer = this._createIndicatorContainer(parameters, isGroupPanelItem);\r\n var $span = $(\"<span>\").addClass(this._getIndicatorClassName(options.name));\r\n var columnsController = null === (_that$component = this.component) || void 0 === _that$component ? void 0 : _that$component.getController(\"columns\");\r\n var indicatorAlignment = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getHeaderContentAlignment(columnAlignment)) || columnAlignment;\r\n parameters.container = $indicatorsContainer;\r\n parameters.indicator = $span;\r\n this._renderIndicator(parameters);\r\n $indicatorsContainer[(isGroupPanelItem || !options.showColumnLines) && \"left\" === indicatorAlignment ? \"appendTo\" : \"prependTo\"](options.rootElement);\r\n return $span\r\n },\r\n _getIndicatorClassName: noop,\r\n _getColumnAlignment: function(alignment, rtlEnabled) {\r\n rtlEnabled = rtlEnabled || this.option(\"rtlEnabled\");\r\n return alignment && \"center\" !== alignment ? alignment : getDefaultAlignment(rtlEnabled)\r\n },\r\n _createIndicatorContainer: function(options, ignoreIndicatorAlignment) {\r\n var $indicatorsContainer = this._getIndicatorContainer(options.rootElement);\r\n var indicatorAlignment = \"left\" === options.columnAlignment ? \"right\" : \"left\";\r\n if (!$indicatorsContainer.length) {\r\n $indicatorsContainer = $(\"<div>\").addClass(COLUMN_INDICATORS_CLASS)\r\n }\r\n this.setAria(\"role\", \"presentation\", $indicatorsContainer);\r\n return $indicatorsContainer.css(\"float\", options.showColumnLines && !ignoreIndicatorAlignment ? indicatorAlignment : null)\r\n },\r\n _getIndicatorContainer: function($cell) {\r\n return $cell && $cell.find(\".\" + COLUMN_INDICATORS_CLASS)\r\n },\r\n _getIndicatorElements: function($cell) {\r\n var $indicatorContainer = this._getIndicatorContainer($cell);\r\n return $indicatorContainer && $indicatorContainer.children()\r\n },\r\n _renderIndicator: function(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n $container && $indicator && $container.append($indicator)\r\n },\r\n _updateIndicators: function(indicatorName) {\r\n var columns = this.getColumns();\r\n var $cells = this.getColumnElements();\r\n var $cell;\r\n if (!$cells || columns.length !== $cells.length) {\r\n return\r\n }\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = $cells.eq(i);\r\n this._updateIndicator($cell, columns[i], indicatorName);\r\n var rowOptions = $cell.parent().data(\"options\");\r\n if (rowOptions && rowOptions.cells) {\r\n rowOptions.cells[$cell.index()].column = columns[i]\r\n }\r\n }\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n if (!column.command) {\r\n return this._applyColumnState({\r\n name: indicatorName,\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.columns_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getWidth,\r\n getOuterHeight,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n data as elementData\r\n} from \"../../core/element_data\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n setWidth\r\n} from \"../../core/utils/style\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n isRenderer,\r\n isFunction,\r\n isString,\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport * as iteratorUtils from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport columnStateMixin from \"./ui.grid_core.column_state_mixin\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nvar SCROLL_CONTAINER_CLASS = \"scroll-container\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"scrollable-simulated\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar TABLE_CLASS = \"table\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar CONTENT_FIXED_CLASS = \"content-fixed\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar CELL_UPDATED_ANIMATION_CLASS = \"cell-updated-animation\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"0.0001px\";\r\nvar CELL_HINT_VISIBLE = \"dxCellHintVisible\";\r\nvar FORM_FIELD_ITEM_CONTENT_CLASS = \"dx-field-item-content\";\r\nvar appendElementTemplate = {\r\n render: function(options) {\r\n options.container.append(options.content)\r\n }\r\n};\r\nvar subscribeToRowEvents = function(that, $table) {\r\n var touchTarget;\r\n var touchCurrentTarget;\r\n var timeoutId;\r\n\r\n function clearTouchTargets(timeout) {\r\n return setTimeout((function() {\r\n touchTarget = touchCurrentTarget = null\r\n }), timeout)\r\n }\r\n eventsEngine.on($table, \"touchstart touchend\", \".dx-row\", (function(e) {\r\n clearTimeout(timeoutId);\r\n if (\"touchstart\" === e.type) {\r\n touchTarget = e.target;\r\n touchCurrentTarget = e.currentTarget;\r\n timeoutId = clearTouchTargets(1e3)\r\n } else {\r\n timeoutId = clearTouchTargets()\r\n }\r\n }));\r\n eventsEngine.on($table, [clickEventName, dblclickEvent, pointerEvents.down].join(\" \"), \".dx-row\", that.createAction((function(e) {\r\n var event = e.event;\r\n if (touchTarget) {\r\n event.target = touchTarget;\r\n event.currentTarget = touchCurrentTarget\r\n }\r\n if (!$(event.target).closest(\"a\").length) {\r\n e.rowIndex = that.getRowIndex(event.currentTarget);\r\n if (e.rowIndex >= 0) {\r\n e.rowElement = getPublicElement($(event.currentTarget));\r\n e.columns = that.getColumns();\r\n if (event.type === pointerEvents.down) {\r\n that._rowPointerDown(e)\r\n } else if (event.type === clickEventName) {\r\n that._rowClick(e)\r\n } else {\r\n that._rowDblClick(e)\r\n }\r\n }\r\n }\r\n })))\r\n};\r\nvar getWidthStyle = function(width) {\r\n if (\"auto\" === width) {\r\n return \"\"\r\n }\r\n return isNumeric(width) ? width + \"px\" : width\r\n};\r\nvar setCellWidth = function(cell, column, width) {\r\n cell.style.width = cell.style.maxWidth = \"auto\" === column.width ? \"\" : width\r\n};\r\nvar copyAttributes = function(element, newElement) {\r\n if (!element || !newElement) {\r\n return\r\n }\r\n var oldAttributes = element.attributes;\r\n var newAttributes = newElement.attributes;\r\n var i;\r\n for (i = 0; i < oldAttributes.length; i++) {\r\n var name = oldAttributes[i].nodeName;\r\n if (!newElement.hasAttribute(name)) {\r\n element.removeAttribute(name)\r\n }\r\n }\r\n for (i = 0; i < newAttributes.length; i++) {\r\n element.setAttribute(newAttributes[i].nodeName, newAttributes[i].nodeValue)\r\n }\r\n};\r\nexport var ColumnsView = modules.View.inherit(columnStateMixin).inherit({\r\n _createScrollableOptions: function() {\r\n var scrollingOptions = this.option(\"scrolling\");\r\n var useNativeScrolling = this.option(\"scrolling.useNative\");\r\n var options = extend({}, scrollingOptions, {\r\n direction: \"both\",\r\n bounceEnabled: false,\r\n useKeyboard: false\r\n });\r\n if (void 0 === useNativeScrolling) {\r\n useNativeScrolling = true\r\n }\r\n if (\"auto\" === useNativeScrolling) {\r\n delete options.useNative;\r\n delete options.useSimulatedScrollbar\r\n } else {\r\n options.useNative = !!useNativeScrolling;\r\n options.useSimulatedScrollbar = !useNativeScrolling\r\n }\r\n return options\r\n },\r\n _updateCell: function($cell, parameters) {\r\n if (parameters.rowType) {\r\n this._cellPrepared($cell, parameters)\r\n }\r\n },\r\n _createCell: function(options) {\r\n var column = options.column;\r\n var alignment = column.alignment || getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var cell = domAdapter.createElement(\"td\");\r\n cell.style.textAlign = alignment;\r\n var $cell = $(cell);\r\n if (\"data\" === options.rowType && column.headerId && !column.type) {\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n }\r\n if (column.cssClass) {\r\n $cell.addClass(column.cssClass)\r\n }\r\n if (\"expand\" === column.command) {\r\n $cell.addClass(column.cssClass);\r\n $cell.addClass(this.addWidgetPrefix(GROUP_SPACE_CLASS))\r\n }\r\n if (column.colspan > 1) {\r\n $cell.attr(\"colSpan\", column.colspan)\r\n } else if (!column.isBand && \"auto\" !== column.visibleWidth && this.option(\"columnAutoWidth\")) {\r\n if (column.width || column.minWidth) {\r\n cell.style.minWidth = getWidthStyle(column.minWidth || column.width)\r\n }\r\n if (column.width) {\r\n setCellWidth(cell, column, getWidthStyle(column.width))\r\n }\r\n }\r\n return $cell\r\n },\r\n _createRow: function(rowObject, tagName) {\r\n tagName = tagName || \"tr\";\r\n var $element = $(\"<\".concat(tagName, \">\")).addClass(ROW_CLASS);\r\n this.setAria(\"role\", \"row\", $element);\r\n return $element\r\n },\r\n _isAltRow: function(row) {\r\n return row && row.dataIndex % 2 === 1\r\n },\r\n _createTable: function(columns, isAppend) {\r\n var that = this;\r\n var $table = $(\"<table>\").addClass(that.addWidgetPrefix(TABLE_CLASS)).addClass(that.addWidgetPrefix(TABLE_FIXED_CLASS));\r\n if (columns && !isAppend) {\r\n $table.append(that._createColGroup(columns));\r\n if (browser.safari) {\r\n $table.append($(\"<thead>\").append(\"<tr>\"))\r\n }\r\n that.setAria(\"role\", \"presentation\", $table)\r\n } else {\r\n that.setAria(\"hidden\", true, $table)\r\n }\r\n this.setAria(\"role\", \"presentation\", $(\"<tbody>\").appendTo($table));\r\n if (isAppend) {\r\n return $table\r\n }\r\n if (browser.mozilla) {\r\n eventsEngine.on($table, \"mousedown\", \"td\", (function(e) {\r\n if (e.ctrlKey) {\r\n e.preventDefault()\r\n }\r\n }))\r\n }\r\n if (that.option(\"cellHintEnabled\")) {\r\n eventsEngine.on($table, \"mousemove\", \".dx-row > td\", this.createAction((function(args) {\r\n var e = args.event;\r\n var $element = $(e.target);\r\n var $cell = $(e.currentTarget);\r\n var $row = $cell.parent();\r\n var visibleColumns = that._columnsController.getVisibleColumns();\r\n var rowOptions = $row.data(\"options\");\r\n var columnIndex = $cell.index();\r\n var cellOptions = rowOptions && rowOptions.cells && rowOptions.cells[columnIndex];\r\n var column = cellOptions ? cellOptions.column : visibleColumns[columnIndex];\r\n var isHeaderRow = $row.hasClass(\"dx-header-row\");\r\n var isDataRow = $row.hasClass(\"dx-data-row\");\r\n var isMasterDetailRow = $row.hasClass(DETAIL_ROW_CLASS);\r\n var isGroupRow = $row.hasClass(GROUP_ROW_CLASS);\r\n var isFilterRow = $row.hasClass(that.addWidgetPrefix(FILTER_ROW_CLASS));\r\n var isDataRowWithTemplate = isDataRow && (!column || column.cellTemplate);\r\n var isEditorShown = isDataRow && cellOptions && (rowOptions.isEditing || cellOptions.isEditing || (null === column || void 0 === column ? void 0 : column.showEditorAlways));\r\n var isHeaderRowWithTemplate = isHeaderRow && (!column || column.headerCellTemplate);\r\n var isGroupCellWithTemplate = isGroupRow && (!column || column.groupIndex && column.groupCellTemplate);\r\n var shouldShowHint = !isMasterDetailRow && !isFilterRow && !isEditorShown && !isDataRowWithTemplate && !isHeaderRowWithTemplate && !isGroupCellWithTemplate;\r\n if (shouldShowHint) {\r\n if ($element.data(CELL_HINT_VISIBLE)) {\r\n $element.removeAttr(\"title\");\r\n $element.data(CELL_HINT_VISIBLE, false)\r\n }\r\n var difference = $element[0].scrollWidth - $element[0].clientWidth;\r\n if (difference > 0 && !isDefined($element.attr(\"title\"))) {\r\n $element.attr(\"title\", $element.text());\r\n $element.data(CELL_HINT_VISIBLE, true)\r\n }\r\n }\r\n })))\r\n }\r\n var getOptions = function(event) {\r\n var $cell = $(event.currentTarget);\r\n var $fieldItemContent = $(event.target).closest(\".\" + FORM_FIELD_ITEM_CONTENT_CLASS);\r\n var $row = $cell.parent();\r\n var rowOptions = $row.data(\"options\");\r\n var options = rowOptions && rowOptions.cells && rowOptions.cells[$cell.index()];\r\n if (!$cell.closest(\"table\").is(event.delegateTarget)) {\r\n return\r\n }\r\n var resultOptions = extend({}, options, {\r\n cellElement: getPublicElement($cell),\r\n event: event,\r\n eventType: event.type\r\n });\r\n resultOptions.rowIndex = that.getRowIndex($row);\r\n if ($fieldItemContent.length) {\r\n var formItemOptions = $fieldItemContent.data(\"dx-form-item\");\r\n if (formItemOptions.column) {\r\n resultOptions.column = formItemOptions.column;\r\n resultOptions.columnIndex = that._columnsController.getVisibleIndex(resultOptions.column.index)\r\n }\r\n }\r\n return resultOptions\r\n };\r\n eventsEngine.on($table, \"mouseover\", \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n }));\r\n eventsEngine.on($table, \"mouseout\", \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellHoverChanged\", options)\r\n }));\r\n eventsEngine.on($table, clickEventName, \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellClick\", options)\r\n }));\r\n eventsEngine.on($table, dblclickEvent, \".dx-row > td\", (function(e) {\r\n var options = getOptions(e);\r\n options && that.executeAction(\"onCellDblClick\", options)\r\n }));\r\n subscribeToRowEvents(that, $table);\r\n return $table\r\n },\r\n _rowPointerDown: noop,\r\n _rowClick: noop,\r\n _rowDblClick: noop,\r\n _createColGroup: function(columns) {\r\n var colgroupElement = $(\"<colgroup>\");\r\n for (var i = 0; i < columns.length; i++) {\r\n var colspan = columns[i].colspan || 1;\r\n for (var j = 0; j < colspan; j++) {\r\n colgroupElement.append(this._createCol(columns[i]))\r\n }\r\n }\r\n return colgroupElement\r\n },\r\n _createCol: function(column) {\r\n var width = column.visibleWidth || column.width;\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n var col = $(\"<col>\");\r\n setWidth(col, width);\r\n return col\r\n },\r\n renderDelayedTemplates: function(change) {\r\n var delayedTemplates = this._delayedTemplates;\r\n var syncTemplates = delayedTemplates.filter(template => !template.async);\r\n var asyncTemplates = delayedTemplates.filter(template => template.async);\r\n this._delayedTemplates = [];\r\n this._renderDelayedTemplatesCore(syncTemplates, false, change);\r\n this._renderDelayedTemplatesCoreAsync(asyncTemplates)\r\n },\r\n _renderDelayedTemplatesCoreAsync: function(templates) {\r\n var that = this;\r\n if (templates.length) {\r\n getWindow().setTimeout((function() {\r\n that._renderDelayedTemplatesCore(templates, true)\r\n }))\r\n }\r\n },\r\n _renderDelayedTemplatesCore: function(templates, isAsync, change) {\r\n var date = new Date;\r\n while (templates.length) {\r\n var templateParameters = templates.shift();\r\n var options = templateParameters.options;\r\n var doc = domAdapter.getRootNode($(options.container).get(0));\r\n var needWaitAsyncTemplates = this._needWaitAsyncTemplates();\r\n if (!isAsync || $(options.container).closest(doc).length || needWaitAsyncTemplates) {\r\n if (change) {\r\n options.change = change\r\n }\r\n templateParameters.template.render(options)\r\n }\r\n if (isAsync && new Date - date > 30) {\r\n this._renderDelayedTemplatesCoreAsync(templates);\r\n break\r\n }\r\n }\r\n if (!templates.length && this._delayedTemplates.length) {\r\n this.renderDelayedTemplates()\r\n }\r\n },\r\n _processTemplate: function(template) {\r\n var renderingTemplate;\r\n if (template && template.render && !isRenderer(template)) {\r\n renderingTemplate = {\r\n allowRenderToDetachedContainer: template.allowRenderToDetachedContainer,\r\n render: function(options) {\r\n template.render(options.container, options.model, options.change);\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else if (isFunction(template)) {\r\n renderingTemplate = {\r\n render: function(options) {\r\n var renderedTemplate = template(getPublicElement(options.container), options.model, options.change);\r\n if (renderedTemplate && (renderedTemplate.nodeType || isRenderer(renderedTemplate))) {\r\n options.container.append(renderedTemplate)\r\n }\r\n options.deferred && options.deferred.resolve()\r\n }\r\n }\r\n } else {\r\n var templateID = isString(template) ? template : $(template).attr(\"id\");\r\n if (!templateID) {\r\n renderingTemplate = this.getTemplate(template)\r\n } else {\r\n if (!this._templatesCache[templateID]) {\r\n this._templatesCache[templateID] = this.getTemplate(template)\r\n }\r\n renderingTemplate = this._templatesCache[templateID]\r\n }\r\n }\r\n return renderingTemplate\r\n },\r\n renderTemplate: function(container, template, options, allowRenderToDetachedContainer, change) {\r\n var renderingTemplate = this._processTemplate(template, options);\r\n var column = options.column;\r\n var isDataRow = \"data\" === options.rowType;\r\n var templateDeferred = new Deferred;\r\n var templateOptions = {\r\n container: container,\r\n model: options,\r\n deferred: templateDeferred,\r\n onRendered: () => {\r\n templateDeferred.resolve()\r\n }\r\n };\r\n if (renderingTemplate) {\r\n options.component = this.component;\r\n var async = column && (column.renderAsync && isDataRow || this.option(\"renderAsync\") && (false !== column.renderAsync && (column.command || column.showEditorAlways) && isDataRow || \"filter\" === options.rowType));\r\n if ((renderingTemplate.allowRenderToDetachedContainer || allowRenderToDetachedContainer) && !async) {\r\n renderingTemplate.render(templateOptions)\r\n } else {\r\n this._delayedTemplates.push({\r\n template: renderingTemplate,\r\n options: templateOptions,\r\n async: async\r\n })\r\n }\r\n if (change) {\r\n change.templateDeferreds = change.templateDeferreds || [];\r\n change.templateDeferreds.push(templateDeferred)\r\n }\r\n } else {\r\n templateDeferred.reject()\r\n }\r\n return templateDeferred.promise()\r\n },\r\n _getBodies: function(tableElement) {\r\n return $(tableElement).children(\"tbody\").not(\".dx-header\").not(\".dx-footer\")\r\n },\r\n _needWrapRow: function($tableElement) {\r\n var _this$_getBodies;\r\n var hasRowTemplate = !!this.option().rowTemplate;\r\n return hasRowTemplate && !!(null !== (_this$_getBodies = this._getBodies($tableElement)) && void 0 !== _this$_getBodies && _this$_getBodies.filter(\".\" + ROW_CLASS).length)\r\n },\r\n _wrapRowIfNeed: function($table, $row, isRefreshing) {\r\n var $tableElement = isRefreshing ? $table || this._tableElement : this._tableElement || $table;\r\n var needWrapRow = this._needWrapRow($tableElement);\r\n if (needWrapRow) {\r\n var $tbody = $(\"<tbody>\").addClass($row.attr(\"class\"));\r\n this.setAria(\"role\", \"presentation\", $tbody);\r\n return $tbody.append($row)\r\n }\r\n return $row\r\n },\r\n _appendRow: function($table, $row, appendTemplate) {\r\n appendTemplate = appendTemplate || appendElementTemplate;\r\n appendTemplate.render({\r\n content: $row,\r\n container: $table\r\n })\r\n },\r\n _resizeCore: function() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n },\r\n _renderCore: function(e) {\r\n var $root = this.element().parent();\r\n if (!$root || $root.parent().length) {\r\n this.renderDelayedTemplates(e)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n options = options || {};\r\n options.columns = this._columnsController.getVisibleColumns();\r\n var changeType = options.change && options.change.changeType;\r\n var $table = this._createTable(options.columns, \"append\" === changeType || \"prepend\" === changeType || \"update\" === changeType);\r\n this._renderRows($table, options);\r\n return $table\r\n },\r\n _renderRows: function($table, options) {\r\n var rows = this._getRows(options.change);\r\n var columnIndices = options.change && options.change.columnIndices || [];\r\n var changeTypes = options.change && options.change.changeTypes || [];\r\n for (var i = 0; i < rows.length; i++) {\r\n this._renderRow($table, extend({\r\n row: rows[i],\r\n columnIndices: columnIndices[i],\r\n changeType: changeTypes[i]\r\n }, options))\r\n }\r\n },\r\n _renderRow: function($table, options) {\r\n if (!options.columnIndices) {\r\n options.row.cells = []\r\n }\r\n var $row = this._createRow(options.row);\r\n var $wrappedRow = this._wrapRowIfNeed($table, $row);\r\n if (\"remove\" !== options.changeType) {\r\n this._renderCells($row, options)\r\n }\r\n this._appendRow($table, $wrappedRow);\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, options.row);\r\n this._addWatchMethod(rowOptions, options.row);\r\n this._rowPrepared($wrappedRow, rowOptions, options.row)\r\n },\r\n _needRenderCell: function(columnIndex, columnIndices) {\r\n return !columnIndices || columnIndices.indexOf(columnIndex) >= 0\r\n },\r\n _renderCells: function($row, options) {\r\n var columnIndex = 0;\r\n var row = options.row;\r\n var columns = options.columns;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, extend({\r\n column: columns[i],\r\n columnIndex: columnIndex,\r\n value: row.values && row.values[columnIndex],\r\n oldValue: row.oldValues && row.oldValues[columnIndex]\r\n }, options))\r\n }\r\n if (columns[i].colspan > 1) {\r\n columnIndex += columns[i].colspan\r\n } else {\r\n columnIndex++\r\n }\r\n }\r\n },\r\n _updateCells: function($rowElement, $newRowElement, columnIndices) {\r\n var $cells = $rowElement.children();\r\n var $newCells = $newRowElement.children();\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var cellUpdatedClass = this.addWidgetPrefix(CELL_UPDATED_ANIMATION_CLASS);\r\n columnIndices.forEach((function(columnIndex, index) {\r\n var $cell = $cells.eq(columnIndex);\r\n var $newCell = $newCells.eq(index);\r\n $cell.replaceWith($newCell);\r\n if (highlightChanges && !$newCell.hasClass(\"dx-command-expand\")) {\r\n $newCell.addClass(cellUpdatedClass)\r\n }\r\n }));\r\n copyAttributes($rowElement.get(0), $newRowElement.get(0))\r\n },\r\n _setCellAriaAttributes: function($cell, cellOptions) {\r\n if (\"freeSpace\" !== cellOptions.rowType) {\r\n this.setAria(\"role\", \"gridcell\", $cell);\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var ariaColIndex = cellOptions.columnIndex + columnIndexOffset + 1;\r\n this.setAria(\"colindex\", ariaColIndex, $cell)\r\n }\r\n },\r\n _renderCell: function($row, options) {\r\n var cellOptions = this._getCellOptions(options);\r\n if (options.columnIndices) {\r\n if (options.row.cells) {\r\n var cellIndex = options.row.cells.findIndex(cell => cell.columnIndex === cellOptions.columnIndex);\r\n options.row.cells[cellIndex] = cellOptions\r\n }\r\n } else {\r\n options.row.cells.push(cellOptions)\r\n }\r\n var $cell = this._createCell(cellOptions);\r\n this._setCellAriaAttributes($cell, cellOptions);\r\n this._renderCellContent($cell, cellOptions, options);\r\n $row.get(0).appendChild($cell.get(0));\r\n return $cell\r\n },\r\n _renderCellContent: function($cell, options, renderOptions) {\r\n var template = this._getCellTemplate(options);\r\n when(!template || this.renderTemplate($cell, template, options, void 0, renderOptions.change)).done(() => {\r\n this._updateCell($cell, options)\r\n })\r\n },\r\n _getCellTemplate: function() {},\r\n _getRows: function() {\r\n return []\r\n },\r\n _getCellOptions: function(options) {\r\n var cellOptions = {\r\n column: options.column,\r\n columnIndex: options.columnIndex,\r\n rowType: options.row.rowType,\r\n isAltRow: this._isAltRow(options.row)\r\n };\r\n this._addWatchMethod(cellOptions);\r\n return cellOptions\r\n },\r\n _addWatchMethod: function(options, source) {\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n return\r\n }\r\n var watchers = [];\r\n source = source || options;\r\n source.watch = source.watch || function(getter, updateValueFunc, updateRowFunc) {\r\n var oldValue = getter(source.data);\r\n var watcher = function(row) {\r\n if (row && updateRowFunc) {\r\n updateRowFunc(row)\r\n }\r\n var newValue = getter(source.data);\r\n if (JSON.stringify(oldValue) !== JSON.stringify(newValue)) {\r\n if (row) {\r\n updateValueFunc(newValue)\r\n }\r\n oldValue = newValue\r\n }\r\n };\r\n watchers.push(watcher);\r\n return function() {\r\n var index = watchers.indexOf(watcher);\r\n if (index >= 0) {\r\n watchers.splice(index, 1)\r\n }\r\n }\r\n };\r\n source.update = source.update || function(row, keepRow) {\r\n if (row) {\r\n this.data = options.data = row.data;\r\n this.rowIndex = options.rowIndex = row.rowIndex;\r\n this.dataIndex = options.dataIndex = row.dataIndex;\r\n this.isExpanded = options.isExpanded = row.isExpanded;\r\n if (options.row && !keepRow) {\r\n options.row = row\r\n }\r\n }\r\n watchers.forEach((function(watcher) {\r\n watcher(row)\r\n }))\r\n };\r\n if (source !== options) {\r\n options.watch = source.watch.bind(source)\r\n }\r\n return options\r\n },\r\n _cellPrepared: function(cell, options) {\r\n options.cellElement = getPublicElement($(cell));\r\n this.executeAction(\"onCellPrepared\", options)\r\n },\r\n _rowPrepared: function($row, options) {\r\n elementData($row.get(0), \"options\", options);\r\n options.rowElement = getPublicElement($row);\r\n this.executeAction(\"onRowPrepared\", options)\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\"])) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var widths = iteratorUtils.map(visibleColumns, (function(column) {\r\n var width = column.visibleWidth || column.width;\r\n return isDefined(width) ? width : \"auto\"\r\n }));\r\n this.setColumnWidths({\r\n widths: widths,\r\n optionNames: optionNames\r\n });\r\n return\r\n }\r\n if (!this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n getCellIndex: function($cell) {\r\n var cellIndex = $cell.length ? $cell[0].cellIndex : -1;\r\n return cellIndex\r\n },\r\n getTableElements: function() {\r\n return this._tableElement || $()\r\n },\r\n getTableElement: function() {\r\n return this._tableElement\r\n },\r\n setTableElement: function(tableElement) {\r\n this._tableElement = tableElement\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"cellHintEnabled\":\r\n case \"onCellPrepared\":\r\n case \"onRowPrepared\":\r\n case \"onCellHoverChanged\":\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n },\r\n init: function() {\r\n var that = this;\r\n that._scrollLeft = -1;\r\n that._columnsController = that.getController(\"columns\");\r\n that._dataController = that.getController(\"data\");\r\n that._delayedTemplates = [];\r\n that._templatesCache = {};\r\n that.createAction(\"onCellClick\");\r\n that.createAction(\"onRowClick\");\r\n that.createAction(\"onCellDblClick\");\r\n that.createAction(\"onRowDblClick\");\r\n that.createAction(\"onCellHoverChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n that.createAction(\"onCellPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n that.createAction(\"onRowPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\",\r\n afterExecute: function(e) {\r\n that._afterRowPrepared(e)\r\n }\r\n });\r\n that._columnsController.columnsChanged.add(that._columnOptionChanged.bind(that));\r\n that._dataController && that._dataController.changed.add(that._handleDataChanged.bind(that))\r\n },\r\n _afterRowPrepared: noop,\r\n _handleDataChanged: function() {},\r\n callbackNames: function() {\r\n return [\"scrollChanged\"]\r\n },\r\n _updateScrollLeftPosition: function() {\r\n var scrollLeft = this._scrollLeft;\r\n if (scrollLeft >= 0) {\r\n this._scrollLeft = 0;\r\n this.scrollTo({\r\n left: scrollLeft\r\n })\r\n }\r\n },\r\n scrollTo: function(pos) {\r\n var $element = this.element();\r\n var $scrollContainer = $element && $element.children(\".\" + this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).not(\".\" + this.addWidgetPrefix(CONTENT_FIXED_CLASS));\r\n if (isDefined(pos) && isDefined(pos.left) && this._scrollLeft !== pos.left) {\r\n this._scrollLeft = pos.left;\r\n $scrollContainer && $scrollContainer.scrollLeft(pos.left)\r\n }\r\n },\r\n _wrapTableInScrollContainer: function($table) {\r\n var $scrollContainer = $(\"<div>\");\r\n var useNative = this.option(\"scrolling.useNative\");\r\n if (false === useNative || \"auto\" === useNative && !nativeScrolling) {\r\n $scrollContainer.addClass(this.addWidgetPrefix(SCROLLABLE_SIMULATED_CLASS))\r\n }\r\n eventsEngine.on($scrollContainer, \"scroll\", () => {\r\n var scrollLeft = $scrollContainer.scrollLeft();\r\n if (scrollLeft !== this._scrollLeft) {\r\n this.scrollChanged.fire({\r\n left: scrollLeft\r\n }, this.name)\r\n }\r\n });\r\n $scrollContainer.addClass(this.addWidgetPrefix(CONTENT_CLASS)).addClass(this.addWidgetPrefix(SCROLL_CONTAINER_CLASS)).append($table).appendTo(this.element());\r\n this.setAria(\"role\", \"presentation\", $scrollContainer);\r\n return $scrollContainer\r\n },\r\n _needWaitAsyncTemplates: function() {\r\n return this.option(\"templatesRenderAsynchronously\") && false === this.option(\"renderAsync\")\r\n },\r\n _waitAsyncTemplates: function(change, forceWaiting) {\r\n var needWaitAsyncTemplates = this._needWaitAsyncTemplates();\r\n var templateDeferreds = (forceWaiting || needWaitAsyncTemplates && (\"update\" !== (null === change || void 0 === change ? void 0 : change.changeType) || null !== change && void 0 !== change && change.isLiveUpdate)) && null !== change && void 0 !== change && change.templateDeferreds ? null === change || void 0 === change ? void 0 : change.templateDeferreds : [];\r\n return when.apply(this, templateDeferreds)\r\n },\r\n _updateContent: function($newTableElement, change) {\r\n return this._waitAsyncTemplates(change).done(() => {\r\n this.setTableElement($newTableElement);\r\n this._wrapTableInScrollContainer($newTableElement)\r\n })\r\n },\r\n _findContentElement: noop,\r\n _getWidths: function($cellElements) {\r\n var result = [];\r\n var width;\r\n if ($cellElements) {\r\n iteratorUtils.each($cellElements, (function(index, item) {\r\n width = item.offsetWidth;\r\n if (item.getBoundingClientRect) {\r\n var clientRect = getBoundingRect(item);\r\n if (clientRect.width > width - 1) {\r\n width = clientRect.width\r\n }\r\n }\r\n result.push(width)\r\n }))\r\n }\r\n return result\r\n },\r\n getColumnWidths: function($tableElement) {\r\n var result = [];\r\n var $rows;\r\n var $cells;\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n $tableElement = $tableElement || this.getTableElement();\r\n if ($tableElement) {\r\n $rows = $tableElement.children(\"tbody:not(.dx-header)\").children();\r\n for (var i = 0; i < $rows.length; i++) {\r\n var $row = $rows.eq(i);\r\n var isRowVisible = \"none\" !== $row.get(0).style.display && !$row.hasClass(\"dx-state-invisible\");\r\n if (!$row.is(\".\" + GROUP_ROW_CLASS) && !$row.is(\".\" + DETAIL_ROW_CLASS) && !$row.is(\".\" + ERROR_ROW_CLASS) && isRowVisible) {\r\n $cells = $row.children(\"td\");\r\n break\r\n }\r\n }\r\n result = this._getWidths($cells)\r\n }\r\n return result\r\n },\r\n getVisibleColumnIndex: function(columnIndex, rowIndex) {\r\n return columnIndex\r\n },\r\n setColumnWidths: function(_ref) {\r\n var {\r\n widths: widths,\r\n $tableElement: $tableElement,\r\n columns: columns,\r\n fixed: fixed\r\n } = _ref;\r\n var $cols;\r\n var width;\r\n var minWidth;\r\n var columnIndex;\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n $tableElement = $tableElement || this.getTableElement();\r\n if ($tableElement && $tableElement.length && widths) {\r\n columnIndex = 0;\r\n $cols = $tableElement.children(\"colgroup\").children(\"col\");\r\n setWidth($cols, \"auto\");\r\n columns = columns || this.getColumns(null, $tableElement);\r\n for (var i = 0; i < columns.length; i++) {\r\n if (columnAutoWidth && !fixed) {\r\n width = columns[i].width;\r\n if (width && !columns[i].command) {\r\n width = columns[i].visibleWidth || width;\r\n width = getWidthStyle(width);\r\n minWidth = getWidthStyle(columns[i].minWidth || width);\r\n var $rows = $rows || $tableElement.children().children(\".dx-row\").not(\".\" + DETAIL_ROW_CLASS);\r\n for (var rowIndex = 0; rowIndex < $rows.length; rowIndex++) {\r\n var row = $rows[rowIndex];\r\n var cell = void 0;\r\n var visibleIndex = this.getVisibleColumnIndex(i, rowIndex);\r\n if (row.classList.contains(GROUP_ROW_CLASS)) {\r\n cell = row.querySelector(\"td[aria-colindex='\".concat(visibleIndex + 1, \"']:not(.\").concat(GROUP_CELL_CLASS, \")\"))\r\n } else {\r\n cell = row.cells[visibleIndex]\r\n }\r\n if (cell) {\r\n setCellWidth(cell, columns[i], width);\r\n cell.style.minWidth = minWidth\r\n }\r\n }\r\n }\r\n }\r\n if (columns[i].colspan) {\r\n columnIndex += columns[i].colspan;\r\n continue\r\n }\r\n width = widths[columnIndex];\r\n if (\"adaptiveHidden\" === width) {\r\n width = HIDDEN_COLUMNS_WIDTH\r\n }\r\n if (\"number\" === typeof width) {\r\n width = width.toFixed(3) + \"px\"\r\n }\r\n setWidth($cols.eq(columnIndex), isDefined(width) ? width : \"auto\");\r\n columnIndex++\r\n }\r\n }\r\n },\r\n getCellElements: function(rowIndex) {\r\n return this._getCellElementsCore(rowIndex)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $row = this._getRowElements().eq(rowIndex);\r\n return $row.children()\r\n },\r\n _getCellElement: function(rowIndex, columnIdentifier) {\r\n var $cell;\r\n var $cells = this.getCellElements(rowIndex);\r\n var columnVisibleIndex = this._getVisibleColumnIndex($cells, rowIndex, columnIdentifier);\r\n if ($cells.length && columnVisibleIndex >= 0) {\r\n $cell = $cells.eq(columnVisibleIndex)\r\n }\r\n if ($cell && $cell.length) {\r\n return $cell\r\n }\r\n },\r\n _getRowElement: function(rowIndex) {\r\n var that = this;\r\n var $rowElement = $();\r\n var $tableElements = that.getTableElements();\r\n iteratorUtils.each($tableElements, (function(_, tableElement) {\r\n $rowElement = $rowElement.add(that._getRowElements($(tableElement)).eq(rowIndex))\r\n }));\r\n if ($rowElement.length) {\r\n return $rowElement\r\n }\r\n },\r\n getCellElement: function(rowIndex, columnIdentifier) {\r\n return getPublicElement(this._getCellElement(rowIndex, columnIdentifier))\r\n },\r\n getRowElement: function(rowIndex) {\r\n var $rows = this._getRowElement(rowIndex);\r\n var elements = [];\r\n if ($rows && !getPublicElement($rows).get) {\r\n for (var i = 0; i < $rows.length; i++) {\r\n elements.push($rows[i])\r\n }\r\n } else {\r\n elements = $rows\r\n }\r\n return elements\r\n },\r\n _getVisibleColumnIndex: function($cells, rowIndex, columnIdentifier) {\r\n if (isString(columnIdentifier)) {\r\n var columnIndex = this._columnsController.columnOption(columnIdentifier, \"index\");\r\n return this._columnsController.getVisibleIndex(columnIndex)\r\n }\r\n return columnIdentifier\r\n },\r\n getColumnElements: function() {},\r\n getColumns: function(rowIndex) {\r\n return this._columnsController.getVisibleColumns(rowIndex)\r\n },\r\n getCell: function(cellPosition, rows) {\r\n var $rows = rows || this._getRowElements();\r\n var $cells;\r\n if ($rows.length > 0 && cellPosition.rowIndex >= 0) {\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && \"virtual\" !== this.option(\"scrolling.rowRenderingMode\")) {\r\n cellPosition.rowIndex = cellPosition.rowIndex < $rows.length ? cellPosition.rowIndex : $rows.length - 1\r\n }\r\n $cells = this.getCellElements(cellPosition.rowIndex);\r\n if ($cells && $cells.length > 0) {\r\n return $cells.eq($cells.length > cellPosition.columnIndex ? cellPosition.columnIndex : $cells.length - 1)\r\n }\r\n }\r\n },\r\n getRowsCount: function() {\r\n var tableElement = this.getTableElement();\r\n if (tableElement && 1 === tableElement.length) {\r\n return tableElement[0].rows.length\r\n }\r\n return 0\r\n },\r\n _getRowElementsCore: function(tableElement) {\r\n tableElement = tableElement || this.getTableElement();\r\n if (tableElement) {\r\n var hasRowTemplate = this.option().rowTemplate || this.option(\"dataRowTemplate\");\r\n var tBodies = hasRowTemplate && tableElement.find(\"> tbody.\" + ROW_CLASS);\r\n return tBodies && tBodies.length ? tBodies : tableElement.find(\"> tbody > .\" + ROW_CLASS + \", > .\" + ROW_CLASS)\r\n }\r\n return $()\r\n },\r\n _getRowElements: function(tableElement) {\r\n return this._getRowElementsCore(tableElement)\r\n },\r\n getRowIndex: function($row) {\r\n return this._getRowElements().index($row)\r\n },\r\n getBoundingRect: function() {},\r\n getName: function() {},\r\n setScrollerSpacing: function(width) {\r\n var $element = this.element();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n $element && $element.css({\r\n paddingLeft: rtlEnabled ? width : \"\",\r\n paddingRight: !rtlEnabled ? width : \"\"\r\n })\r\n },\r\n isScrollbarVisible: function(isHorizontal) {\r\n var $element = this.element();\r\n var $tableElement = this._tableElement;\r\n if ($element && $tableElement) {\r\n return isHorizontal ? getOuterWidth($tableElement) - getWidth($element) > 0 : getOuterHeight($tableElement) - getHeight($element) > 0\r\n }\r\n return false\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.context_menu.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport ContextMenu from \"../context_menu\";\r\nvar CONTEXT_MENU = \"dx-context-menu\";\r\nvar viewName = {\r\n columnHeadersView: \"header\",\r\n rowsView: \"content\",\r\n footerView: \"footer\",\r\n headerPanel: \"headerPanel\"\r\n};\r\nvar VIEW_NAMES = [\"columnHeadersView\", \"rowsView\", \"footerView\", \"headerPanel\"];\r\nvar ContextMenuController = modules.ViewController.inherit({\r\n init: function() {\r\n this.createAction(\"onContextMenuPreparing\")\r\n },\r\n getContextMenuItems: function(dxEvent) {\r\n if (!dxEvent) {\r\n return false\r\n }\r\n var that = this;\r\n var $targetElement = $(dxEvent.target);\r\n var $element;\r\n var $targetRowElement;\r\n var $targetCellElement;\r\n var menuItems;\r\n each(VIEW_NAMES, (function() {\r\n var view = that.getView(this);\r\n $element = view && view.element();\r\n if ($element && ($element.is($targetElement) || $element.find($targetElement).length)) {\r\n var _rowOptions$cells, _rowOptions$cells$col;\r\n $targetCellElement = $targetElement.closest(\".dx-row > td, .dx-row > tr\");\r\n $targetRowElement = $targetCellElement.parent();\r\n var rowIndex = view.getRowIndex($targetRowElement);\r\n var columnIndex = $targetCellElement[0] && $targetCellElement[0].cellIndex;\r\n var rowOptions = $targetRowElement.data(\"options\");\r\n var options = {\r\n event: dxEvent,\r\n targetElement: getPublicElement($targetElement),\r\n target: viewName[this],\r\n rowIndex: rowIndex,\r\n row: view._getRows()[rowIndex],\r\n columnIndex: columnIndex,\r\n column: null === rowOptions || void 0 === rowOptions ? void 0 : null === (_rowOptions$cells = rowOptions.cells) || void 0 === _rowOptions$cells ? void 0 : null === (_rowOptions$cells$col = _rowOptions$cells[columnIndex]) || void 0 === _rowOptions$cells$col ? void 0 : _rowOptions$cells$col.column\r\n };\r\n options.items = view.getContextMenuItems && view.getContextMenuItems(options);\r\n that.executeAction(\"onContextMenuPreparing\", options);\r\n that._contextMenuPrepared(options);\r\n menuItems = options.items;\r\n if (menuItems) {\r\n return false\r\n }\r\n }\r\n }));\r\n return menuItems\r\n },\r\n _contextMenuPrepared: noop\r\n});\r\nvar ContextMenuView = modules.View.inherit({\r\n _renderCore: function() {\r\n var that = this;\r\n var $element = that.element().addClass(CONTEXT_MENU);\r\n this.setAria(\"role\", \"presentation\", $element);\r\n this._createComponent($element, ContextMenu, {\r\n onPositioning: function(actionArgs) {\r\n var event = actionArgs.event;\r\n var contextMenuInstance = actionArgs.component;\r\n var items = that.getController(\"contextMenu\").getContextMenuItems(event);\r\n if (items) {\r\n contextMenuInstance.option(\"items\", items);\r\n event.stopPropagation()\r\n } else {\r\n actionArgs.cancel = true\r\n }\r\n },\r\n onItemClick: function(params) {\r\n params.itemData.onItemClick && params.itemData.onItemClick(params)\r\n },\r\n cssClass: that.getWidgetContainerClass(),\r\n target: that.component.$element()\r\n })\r\n }\r\n});\r\nexport var contextMenuModule = {\r\n defaultOptions: function() {\r\n return {\r\n onContextMenuPreparing: null\r\n }\r\n },\r\n controllers: {\r\n contextMenu: ContextMenuController\r\n },\r\n views: {\r\n contextMenuView: ContextMenuView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.data_controller.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport CustomStore from \"../../data/custom_store\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n noop,\r\n deferRender,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DataHelperMixin from \"../../data_helper\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n findChanges\r\n} from \"../../core/utils/array_compare\";\r\nexport var dataControllerModule = {\r\n defaultOptions: function() {\r\n return {\r\n loadingTimeout: 0,\r\n dataSource: null,\r\n cacheEnabled: true,\r\n repaintChangesOnly: false,\r\n highlightChanges: false,\r\n onDataErrorOccurred: null,\r\n remoteOperations: \"auto\",\r\n paging: {\r\n enabled: true,\r\n pageSize: void 0,\r\n pageIndex: void 0\r\n }\r\n }\r\n },\r\n controllers: {\r\n data: modules.Controller.inherit({}).include(DataHelperMixin).inherit(function() {\r\n var changePaging = function(that, optionName, value) {\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (void 0 !== value) {\r\n var oldValue = that._getPagingOptionValue(optionName);\r\n if (oldValue !== value) {\r\n if (\"pageSize\" === optionName) {\r\n dataSource.pageIndex(0)\r\n }\r\n dataSource[optionName](value);\r\n that._skipProcessingPagingChange = true;\r\n that.option(\"paging.\" + optionName, value);\r\n that._skipProcessingPagingChange = false;\r\n var pageIndex = dataSource.pageIndex();\r\n that._isPaging = \"pageIndex\" === optionName;\r\n return dataSource[\"pageIndex\" === optionName ? \"load\" : \"reload\"]().done(() => {\r\n that._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n return Deferred().resolve().promise()\r\n }\r\n return dataSource[optionName]()\r\n }\r\n return 0\r\n };\r\n var members = {\r\n init: function() {\r\n var that = this;\r\n that._items = [];\r\n that._cachedProcessedItems = null;\r\n that._columnsController = that.getController(\"columns\");\r\n that._isPaging = false;\r\n that._currentOperationTypes = null;\r\n that._dataChangedHandler = e => {\r\n that._currentOperationTypes = this._dataSource.operationTypes();\r\n that._handleDataChanged(e);\r\n that._currentOperationTypes = null\r\n };\r\n that._columnsChangedHandler = that._handleColumnsChanged.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n that._dataPushedHandler = that._handleDataPushed.bind(that);\r\n that._columnsController.columnsChanged.add(that._columnsChangedHandler);\r\n that._isLoading = false;\r\n that._isCustomLoading = false;\r\n that._repaintChangesOnly = void 0;\r\n that._changes = [];\r\n that.createAction(\"onDataErrorOccurred\");\r\n that.dataErrorOccurred.add((function(error) {\r\n return that.executeAction(\"onDataErrorOccurred\", {\r\n error: error\r\n })\r\n }));\r\n that._refreshDataSource()\r\n },\r\n _getPagingOptionValue: function(optionName) {\r\n return this._dataSource[optionName]()\r\n },\r\n callbackNames: function() {\r\n return [\"changed\", \"loadingChanged\", \"dataErrorOccurred\", \"pageChanged\", \"dataSourceChanged\", \"pushed\"]\r\n },\r\n callbackFlags: function(name) {\r\n if (\"dataErrorOccurred\" === name) {\r\n return {\r\n stopOnFalse: true\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"beginCustomLoading\", \"endCustomLoading\", \"refresh\", \"filter\", \"clearFilter\", \"getCombinedFilter\", \"keyOf\", \"byKey\", \"getDataByKeys\", \"pageIndex\", \"pageSize\", \"pageCount\", \"totalCount\", \"_disposeDataSource\", \"getKeyByRowIndex\", \"getRowIndexByKey\", \"getDataSource\", \"getVisibleRows\", \"repaintRows\"]\r\n },\r\n reset: function() {\r\n this._columnsController.reset();\r\n this._items = [];\r\n this._refreshDataSource()\r\n },\r\n _handleDataSourceChange(args) {\r\n if (args.value === args.previousValue || this.option(\"columns\") && Array.isArray(args.value) && Array.isArray(args.previousValue)) {\r\n var isValueChanged = args.value !== args.previousValue;\r\n if (isValueChanged) {\r\n var store = this.store();\r\n if (store) {\r\n store._array = args.value\r\n }\r\n }\r\n if (this.needToRefreshOnDataSourceChange(args)) {\r\n this.refresh(this.option(\"repaintChangesOnly\"))\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n needToRefreshOnDataSourceChange: function(args) {\r\n return true\r\n },\r\n optionChanged: function(args) {\r\n var that = this;\r\n var dataSource;\r\n var changedPagingOptions;\r\n\r\n function handled() {\r\n args.handled = true\r\n }\r\n if (\"dataSource\" === args.name && args.name === args.fullName && this._handleDataSourceChange(args)) {\r\n handled();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"cacheEnabled\":\r\n case \"repaintChangesOnly\":\r\n case \"highlightChanges\":\r\n case \"loadingTimeout\":\r\n handled();\r\n break;\r\n case \"remoteOperations\":\r\n case \"keyExpr\":\r\n case \"dataSource\":\r\n case \"scrolling\":\r\n handled();\r\n that.reset();\r\n break;\r\n case \"paging\":\r\n dataSource = that.dataSource();\r\n if (dataSource) {\r\n changedPagingOptions = that._setPagingOptions(dataSource);\r\n if (changedPagingOptions) {\r\n var pageIndex = dataSource.pageIndex();\r\n this._isPaging = changedPagingOptions.isPageIndexChanged;\r\n dataSource.load().done(() => {\r\n this._isPaging = false;\r\n that.pageChanged.fire(pageIndex)\r\n })\r\n }\r\n }\r\n handled();\r\n break;\r\n case \"rtlEnabled\":\r\n that.reset();\r\n break;\r\n case \"columns\":\r\n dataSource = that.dataSource();\r\n if (dataSource && dataSource.isLoading() && args.name === args.fullName) {\r\n this._useSortingGroupingFromColumns = true;\r\n dataSource.load()\r\n }\r\n break;\r\n default:\r\n that.callBase(args)\r\n }\r\n },\r\n isReady: function() {\r\n return !this._isLoading\r\n },\r\n getDataSource: function() {\r\n return this._dataSource && this._dataSource._dataSource\r\n },\r\n getCombinedFilter: function(returnDataField) {\r\n return this.combinedFilter(void 0, returnDataField)\r\n },\r\n combinedFilter: function(filter, returnDataField) {\r\n var dataSource = this._dataSource;\r\n var columnsController = this._columnsController;\r\n if (dataSource) {\r\n if (void 0 === filter) {\r\n filter = dataSource.filter()\r\n }\r\n var additionalFilter = this._calculateAdditionalFilter();\r\n if (additionalFilter) {\r\n if (columnsController.isDataSourceApplied() || columnsController.isAllDataTypesDefined()) {\r\n filter = gridCoreUtils.combineFilters([additionalFilter, filter])\r\n }\r\n }\r\n filter = columnsController.updateFilter(filter, returnDataField || dataSource.remoteOperations().filtering)\r\n }\r\n return filter\r\n },\r\n waitReady: function() {\r\n if (this._updateLockCount) {\r\n this._readyDeferred = new Deferred;\r\n return this._readyDeferred\r\n }\r\n return when()\r\n },\r\n _endUpdateCore: function() {\r\n var changes = this._changes;\r\n if (changes.length) {\r\n this._changes = [];\r\n var repaintChangesOnly = changes.every(change => change.repaintChangesOnly);\r\n this.updateItems(1 === changes.length ? changes[0] : {\r\n repaintChangesOnly: repaintChangesOnly\r\n })\r\n }\r\n if (this._readyDeferred) {\r\n this._readyDeferred.resolve();\r\n this._readyDeferred = null\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions: function(e) {\r\n var _storeLoadOptions$fil;\r\n var columnsController = this._columnsController;\r\n var dataSource = this._dataSource;\r\n var storeLoadOptions = e.storeLoadOptions;\r\n if (e.isCustomLoading && !storeLoadOptions.isLoadingAll) {\r\n return\r\n }\r\n storeLoadOptions.filter = this.combinedFilter(storeLoadOptions.filter);\r\n if (1 === (null === (_storeLoadOptions$fil = storeLoadOptions.filter) || void 0 === _storeLoadOptions$fil ? void 0 : _storeLoadOptions$fil.length) && \"!\" === storeLoadOptions.filter[0]) {\r\n e.data = [];\r\n e.extra = e.extra || {};\r\n e.extra.totalCount = 0\r\n }\r\n if (!columnsController.isDataSourceApplied()) {\r\n columnsController.updateColumnDataTypes(dataSource)\r\n }\r\n this._columnsUpdating = true;\r\n columnsController.updateSortingGrouping(dataSource, !this._useSortingGroupingFromColumns);\r\n this._columnsUpdating = false;\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters();\r\n storeLoadOptions.group = columnsController.getGroupDataSourceParameters();\r\n dataSource.sort(storeLoadOptions.sort);\r\n dataSource.group(storeLoadOptions.group);\r\n storeLoadOptions.sort = columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().sorting);\r\n e.group = columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().grouping)\r\n },\r\n _handleColumnsChanged: function(e) {\r\n var that = this;\r\n var changeTypes = e.changeTypes;\r\n var optionNames = e.optionNames;\r\n var filterValue;\r\n var filterValues;\r\n var filterApplied;\r\n if (changeTypes.sorting || changeTypes.grouping) {\r\n if (that._dataSource && !that._columnsUpdating) {\r\n that._dataSource.group(that._columnsController.getGroupDataSourceParameters());\r\n that._dataSource.sort(that._columnsController.getSortDataSourceParameters());\r\n that.reload()\r\n }\r\n } else if (changeTypes.columns) {\r\n filterValues = that._columnsController.columnOption(e.columnIndex, \"filterValues\");\r\n if (optionNames.filterValues || optionNames.filterType && Array.isArray(filterValues) || optionNames.filterValue || optionNames.selectedFilterOperation || optionNames.allowFiltering) {\r\n filterValue = that._columnsController.columnOption(e.columnIndex, \"filterValue\");\r\n if (Array.isArray(filterValues) || void 0 === e.columnIndex || isDefined(filterValue) || !optionNames.selectedFilterOperation || optionNames.filterValue) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n if (!that._needApplyFilter && !gridCoreUtils.checkChanges(optionNames, [\"width\", \"visibleWidth\", \"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"filterValues\", \"filterType\"])) {\r\n that._columnsController.columnsChanged.add((function updateItemsHandler(change) {\r\n var _change$changeTypes;\r\n that._columnsController.columnsChanged.remove(updateItemsHandler);\r\n that.updateItems({\r\n repaintChangesOnly: false,\r\n virtualColumnsScrolling: null === change || void 0 === change ? void 0 : null === (_change$changeTypes = change.changeTypes) || void 0 === _change$changeTypes ? void 0 : _change$changeTypes.virtualColumnsScrolling\r\n })\r\n }))\r\n }\r\n if (isDefined(optionNames.visible)) {\r\n var column = that._columnsController.columnOption(e.columnIndex);\r\n if (column && (isDefined(column.filterValue) || isDefined(column.filterValues))) {\r\n that._applyFilter();\r\n filterApplied = true\r\n }\r\n }\r\n }\r\n if (!filterApplied && changeTypes.filtering) {\r\n that.reload()\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var columnsController = that._columnsController;\r\n var isAsyncDataSourceApplying = false;\r\n this._useSortingGroupingFromColumns = false;\r\n if (dataSource && !that._isDataSourceApplying) {\r\n that._isDataSourceApplying = true;\r\n when(that._columnsController.applyDataSource(dataSource)).done((function() {\r\n if (that._isLoading) {\r\n that._handleLoadingChanged(false)\r\n }\r\n if (isAsyncDataSourceApplying && e && e.isDelayed) {\r\n e.isDelayed = false\r\n }\r\n that._isDataSourceApplying = false;\r\n var needApplyFilter = that._needApplyFilter;\r\n that._needApplyFilter = false;\r\n if (needApplyFilter && !that._isAllDataTypesDefined && (additionalFilter = that._calculateAdditionalFilter(), additionalFilter && additionalFilter.length)) {\r\n errors.log(\"W1005\", that.component.NAME);\r\n that._applyFilter()\r\n } else {\r\n that.updateItems(e, true)\r\n }\r\n var additionalFilter\r\n })).fail((function() {\r\n that._isDataSourceApplying = false\r\n }));\r\n if (that._isDataSourceApplying) {\r\n isAsyncDataSourceApplying = true;\r\n that._handleLoadingChanged(true)\r\n }\r\n that._needApplyFilter = !that._columnsController.isDataSourceApplied();\r\n that._isAllDataTypesDefined = columnsController.isAllDataTypesDefined()\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n this._isLoading = isLoading;\r\n this._fireLoadingChanged()\r\n },\r\n _handleLoadError: function(e) {\r\n this.dataErrorOccurred.fire(e)\r\n },\r\n _handleDataPushed: function(changes) {\r\n this.pushed.fire(changes)\r\n },\r\n fireError: function() {\r\n this.dataErrorOccurred.fire(errors.Error.apply(errors, arguments))\r\n },\r\n _setPagingOptions: function(dataSource) {\r\n var pageIndex = this.option(\"paging.pageIndex\");\r\n var pageSize = this.option(\"paging.pageSize\");\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var appendMode = \"infinite\" === scrollingMode;\r\n var virtualMode = \"virtual\" === scrollingMode;\r\n var paginate = pagingEnabled || virtualMode || appendMode;\r\n var isPaginateChanged = false;\r\n var isPageSizeChanged = false;\r\n var isPageIndexChanged = false;\r\n dataSource.requireTotalCount(!appendMode);\r\n if (void 0 !== pagingEnabled && dataSource.paginate() !== paginate) {\r\n dataSource.paginate(paginate);\r\n isPaginateChanged = true\r\n }\r\n if (void 0 !== pageSize && dataSource.pageSize() !== pageSize) {\r\n dataSource.pageSize(pageSize);\r\n isPageSizeChanged = true\r\n }\r\n if (void 0 !== pageIndex && dataSource.pageIndex() !== pageIndex) {\r\n dataSource.pageIndex(pageIndex);\r\n isPageIndexChanged = true\r\n }\r\n if (isPaginateChanged || isPageSizeChanged || isPageIndexChanged) {\r\n return {\r\n isPaginateChanged: isPaginateChanged,\r\n isPageSizeChanged: isPageSizeChanged,\r\n isPageIndexChanged: isPageIndexChanged\r\n }\r\n }\r\n return false\r\n },\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n if (Array.isArray(dataSource)) {\r\n return {\r\n store: {\r\n type: \"array\",\r\n data: dataSource,\r\n key: this.option(\"keyExpr\")\r\n }\r\n }\r\n }\r\n return dataSource\r\n },\r\n _initDataSource: function() {\r\n var oldDataSource = this._dataSource;\r\n this.callBase();\r\n var dataSource = this._dataSource;\r\n this._useSortingGroupingFromColumns = true;\r\n this._cachedProcessedItems = null;\r\n if (dataSource) {\r\n var changedPagingOptions = this._setPagingOptions(dataSource);\r\n this._isPaging = null === changedPagingOptions || void 0 === changedPagingOptions ? void 0 : changedPagingOptions.isPageIndexChanged;\r\n this.setDataSource(dataSource)\r\n } else if (oldDataSource) {\r\n this.updateItems()\r\n }\r\n },\r\n _loadDataSource: function() {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var result = new Deferred;\r\n when(this._columnsController.refresh(true)).always((function() {\r\n if (dataSource) {\r\n dataSource.load().done((function() {\r\n that._isPaging = false;\r\n result.resolve.apply(result, arguments)\r\n })).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n }));\r\n return result.promise()\r\n },\r\n _beforeProcessItems: function(items) {\r\n return items.slice(0)\r\n },\r\n getRowIndexDelta: function() {\r\n return 0\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var changeType = change.changeType;\r\n var visibleColumns = that._columnsController.getVisibleColumns(null, \"loadingAll\" === changeType);\r\n var visibleItems = that._items;\r\n var lastVisibleItem = \"append\" === changeType && visibleItems.length > 0 ? visibleItems[visibleItems.length - 1] : null;\r\n var dataIndex = isDefined(null === lastVisibleItem || void 0 === lastVisibleItem ? void 0 : lastVisibleItem.dataIndex) ? lastVisibleItem.dataIndex + 1 : 0;\r\n var options = {\r\n visibleColumns: visibleColumns,\r\n dataIndex: dataIndex\r\n };\r\n var result = [];\r\n each(items, (function(index, item) {\r\n if (isDefined(item)) {\r\n options.rowIndex = index - rowIndexDelta;\r\n item = that._processItem(item, options);\r\n result.push(item)\r\n }\r\n }));\r\n return result\r\n },\r\n _processItem: function(item, options) {\r\n item = this._generateDataItem(item, options);\r\n item = this._processDataItem(item, options);\r\n item.dataIndex = options.dataIndex++;\r\n return item\r\n },\r\n _generateDataItem: function(data) {\r\n return {\r\n rowType: \"data\",\r\n data: data,\r\n key: this.keyOf(data)\r\n }\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n dataItem.values = this.generateDataValues(dataItem.data, options.visibleColumns);\r\n return dataItem\r\n },\r\n generateDataValues: function(data, columns, isModified) {\r\n var values = [];\r\n var value;\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n value = isModified ? void 0 : null;\r\n if (!column.command) {\r\n if (column.calculateCellValue) {\r\n value = column.calculateCellValue(data)\r\n } else if (column.dataField) {\r\n value = data[column.dataField]\r\n }\r\n }\r\n values.push(value)\r\n }\r\n return values\r\n },\r\n _applyChange: function(change) {\r\n if (\"update\" === change.changeType) {\r\n this._applyChangeUpdate(change)\r\n } else if (this.items().length && change.repaintChangesOnly && \"refresh\" === change.changeType) {\r\n this._applyChangesOnly(change)\r\n } else if (\"refresh\" === change.changeType) {\r\n this._applyChangeFull(change)\r\n }\r\n },\r\n _applyChangeFull: function(change) {\r\n this._items = change.items.slice(0)\r\n },\r\n _getRowIndices: function(change) {\r\n var rowIndices = change.rowIndices.slice(0);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n rowIndices.sort((function(a, b) {\r\n return a - b\r\n }));\r\n for (var i = 0; i < rowIndices.length; i++) {\r\n var correctedRowIndex = rowIndices[i];\r\n if (change.allowInvisibleRowIndices) {\r\n correctedRowIndex += rowIndexDelta\r\n }\r\n if (correctedRowIndex < 0) {\r\n rowIndices.splice(i, 1);\r\n i--\r\n }\r\n }\r\n return rowIndices\r\n },\r\n _applyChangeUpdate: function(change) {\r\n var that = this;\r\n var items = change.items;\r\n var rowIndices = that._getRowIndices(change);\r\n var rowIndexDelta = that.getRowIndexDelta();\r\n var repaintChangesOnly = that.option(\"repaintChangesOnly\");\r\n var prevIndex = -1;\r\n var rowIndexCorrection = 0;\r\n var changeType;\r\n change.items = [];\r\n change.rowIndices = [];\r\n change.columnIndices = [];\r\n change.changeTypes = [];\r\n var equalItems = function(item1, item2, strict) {\r\n var result = item1 && item2 && equalByValue(item1.key, item2.key);\r\n if (result && strict) {\r\n result = item1.rowType === item2.rowType && (\"detail\" !== item2.rowType || item1.isEditing === item2.isEditing)\r\n }\r\n return result\r\n };\r\n each(rowIndices, (function(index, rowIndex) {\r\n var columnIndices;\r\n rowIndex += rowIndexCorrection + rowIndexDelta;\r\n if (prevIndex === rowIndex) {\r\n return\r\n }\r\n prevIndex = rowIndex;\r\n var oldItem = that._items[rowIndex];\r\n var oldNextItem = that._items[rowIndex + 1];\r\n var newItem = items[rowIndex];\r\n var newNextItem = items[rowIndex + 1];\r\n var strict = equalItems(oldItem, oldNextItem) || equalItems(newItem, newNextItem);\r\n if (newItem) {\r\n newItem.rowIndex = rowIndex;\r\n change.items.push(newItem)\r\n }\r\n if (oldItem && newItem && equalItems(oldItem, newItem, strict)) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem;\r\n if (oldItem.visible !== newItem.visible) {\r\n change.items.splice(-1, 1, {\r\n visible: newItem.visible\r\n })\r\n } else if (repaintChangesOnly && !change.isFullUpdate) {\r\n columnIndices = that._partialUpdateRow(oldItem, newItem, rowIndex - rowIndexDelta)\r\n }\r\n } else if (newItem && !oldItem || newNextItem && equalItems(oldItem, newNextItem, strict)) {\r\n changeType = \"insert\";\r\n that._items.splice(rowIndex, 0, newItem);\r\n rowIndexCorrection++\r\n } else if (oldItem && !newItem || oldNextItem && equalItems(newItem, oldNextItem, strict)) {\r\n changeType = \"remove\";\r\n that._items.splice(rowIndex, 1);\r\n rowIndexCorrection--;\r\n prevIndex = -1\r\n } else if (newItem) {\r\n changeType = \"update\";\r\n that._items[rowIndex] = newItem\r\n } else {\r\n return\r\n }\r\n change.rowIndices.push(rowIndex - rowIndexDelta);\r\n change.changeTypes.push(changeType);\r\n change.columnIndices.push(columnIndices)\r\n }))\r\n },\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n if (JSON.stringify(oldRow.values[columnIndex]) !== JSON.stringify(newRow.values[columnIndex])) {\r\n return true\r\n }\r\n\r\n function isCellModified(row, columnIndex) {\r\n return row.modifiedValues ? void 0 !== row.modifiedValues[columnIndex] : false\r\n }\r\n if (isCellModified(oldRow, columnIndex) !== isCellModified(newRow, columnIndex)) {\r\n return true\r\n }\r\n return false\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var columnIndices;\r\n if (oldItem.rowType === newItem.rowType) {\r\n if (\"group\" !== newItem.rowType && \"groupFooter\" !== newItem.rowType) {\r\n columnIndices = [];\r\n if (\"detail\" !== newItem.rowType) {\r\n for (var columnIndex = 0; columnIndex < oldItem.values.length; columnIndex++) {\r\n if (this._isCellChanged(oldItem, newItem, visibleRowIndex, columnIndex, isLiveUpdate)) {\r\n columnIndices.push(columnIndex)\r\n }\r\n }\r\n }\r\n }\r\n if (\"group\" === newItem.rowType && newItem.isExpanded === oldItem.isExpanded && oldItem.cells) {\r\n columnIndices = oldItem.cells.map((cell, index) => {\r\n var _cell$column;\r\n return \"groupExpand\" !== (null === (_cell$column = cell.column) || void 0 === _cell$column ? void 0 : _cell$column.type) ? index : -1\r\n }).filter(index => index >= 0)\r\n }\r\n }\r\n return columnIndices\r\n },\r\n _partialUpdateRow: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n var _changedColumnIndices;\r\n var changedColumnIndices = this._getChangedColumnIndices(oldItem, newItem, visibleRowIndex, isLiveUpdate);\r\n if (null !== (_changedColumnIndices = changedColumnIndices) && void 0 !== _changedColumnIndices && _changedColumnIndices.length && this.option(\"dataRowTemplate\")) {\r\n changedColumnIndices = void 0\r\n }\r\n if (changedColumnIndices) {\r\n oldItem.cells && oldItem.cells.forEach((function(cell, columnIndex) {\r\n var isCellChanged = changedColumnIndices.indexOf(columnIndex) >= 0;\r\n if (!isCellChanged && cell && cell.update) {\r\n cell.update(newItem)\r\n }\r\n }));\r\n newItem.update = oldItem.update;\r\n newItem.watch = oldItem.watch;\r\n newItem.cells = oldItem.cells;\r\n if (isLiveUpdate) {\r\n newItem.oldValues = oldItem.values\r\n }\r\n oldItem.update && oldItem.update(newItem)\r\n }\r\n return changedColumnIndices\r\n },\r\n _isItemEquals: function(item1, item2) {\r\n if (JSON.stringify(item1.values) !== JSON.stringify(item2.values)) {\r\n return false\r\n }\r\n if ([\"modified\", \"isNewRow\", \"removed\", \"isEditing\"].some(field => item1[field] !== item2[field])) {\r\n return false\r\n }\r\n if (\"group\" === item1.rowType || \"groupFooter\" === item1.rowType) {\r\n var _item1$data, _item2$data, _item1$data2, _item2$data2;\r\n var expandedMatch = item1.isExpanded === item2.isExpanded;\r\n var summaryCellsMatch = JSON.stringify(item1.summaryCells) === JSON.stringify(item2.summaryCells);\r\n var continuationMatch = (null === (_item1$data = item1.data) || void 0 === _item1$data ? void 0 : _item1$data.isContinuation) === (null === (_item2$data = item2.data) || void 0 === _item2$data ? void 0 : _item2$data.isContinuation) && (null === (_item1$data2 = item1.data) || void 0 === _item1$data2 ? void 0 : _item1$data2.isContinuationOnNextPage) === (null === (_item2$data2 = item2.data) || void 0 === _item2$data2 ? void 0 : _item2$data2.isContinuationOnNextPage);\r\n if (!expandedMatch || !summaryCellsMatch || !continuationMatch) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _applyChangesOnly: function(change) {\r\n var _change$isLiveUpdate;\r\n var rowIndices = [];\r\n var columnIndices = [];\r\n var changeTypes = [];\r\n var items = [];\r\n var newIndexByKey = {};\r\n var isLiveUpdate = null !== (_change$isLiveUpdate = null === change || void 0 === change ? void 0 : change.isLiveUpdate) && void 0 !== _change$isLiveUpdate ? _change$isLiveUpdate : true;\r\n\r\n function getRowKey(row) {\r\n if (row) {\r\n return row.rowType + \",\" + JSON.stringify(row.key)\r\n }\r\n }\r\n var currentItems = this._items;\r\n var oldItems = currentItems.slice();\r\n change.items.forEach((function(item, index) {\r\n var key = getRowKey(item);\r\n newIndexByKey[key] = index;\r\n item.rowIndex = index\r\n }));\r\n var result = findChanges(oldItems, change.items, getRowKey, (item1, item2) => {\r\n if (!this._isItemEquals(item1, item2)) {\r\n return false\r\n }\r\n if (item1.cells) {\r\n item1.update && item1.update(item2);\r\n item1.cells.forEach((function(cell) {\r\n if (cell && cell.update) {\r\n cell.update(item2, true)\r\n }\r\n }))\r\n }\r\n return true\r\n });\r\n if (!result) {\r\n this._applyChangeFull(change);\r\n return\r\n }\r\n result.forEach(change => {\r\n switch (change.type) {\r\n case \"update\":\r\n var index = change.index;\r\n var newItem = change.data;\r\n var oldItem = change.oldItem;\r\n var changedColumnIndices = this._partialUpdateRow(oldItem, newItem, index, isLiveUpdate);\r\n rowIndices.push(index);\r\n changeTypes.push(\"update\");\r\n items.push(newItem);\r\n currentItems[index] = newItem;\r\n columnIndices.push(changedColumnIndices);\r\n break;\r\n case \"insert\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"insert\");\r\n items.push(change.data);\r\n columnIndices.push(void 0);\r\n currentItems.splice(change.index, 0, change.data);\r\n break;\r\n case \"remove\":\r\n rowIndices.push(change.index);\r\n changeTypes.push(\"remove\");\r\n currentItems.splice(change.index, 1);\r\n items.push(change.oldItem);\r\n columnIndices.push(void 0)\r\n }\r\n });\r\n change.repaintChangesOnly = true;\r\n change.changeType = \"update\";\r\n change.rowIndices = rowIndices;\r\n change.columnIndices = columnIndices;\r\n change.changeTypes = changeTypes;\r\n change.items = items;\r\n if (oldItems.length) {\r\n change.isLiveUpdate = true\r\n }\r\n this._correctRowIndices(rowIndex => {\r\n var oldRowIndexOffset = this._rowIndexOffset || 0;\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var oldItem = oldItems[rowIndex - oldRowIndexOffset];\r\n var key = getRowKey(oldItem);\r\n var newVisibleRowIndex = newIndexByKey[key];\r\n return newVisibleRowIndex >= 0 ? newVisibleRowIndex + rowIndexOffset - rowIndex : 0\r\n })\r\n },\r\n _correctRowIndices: noop,\r\n _afterProcessItems: function(items) {\r\n return items\r\n },\r\n _updateItemsCore: function(change) {\r\n var items;\r\n var dataSource = this._dataSource;\r\n var changeType = change.changeType || \"refresh\";\r\n change.changeType = changeType;\r\n if (dataSource) {\r\n var cachedProcessedItems = this._cachedProcessedItems;\r\n if (change.useProcessedItemsCache && cachedProcessedItems) {\r\n items = cachedProcessedItems\r\n } else {\r\n items = change.items || dataSource.items();\r\n items = this._beforeProcessItems(items);\r\n items = this._processItems(items, change);\r\n this._cachedProcessedItems = items\r\n }\r\n items = this._afterProcessItems(items, change);\r\n change.items = items;\r\n var oldItems = this._items.length === items.length && this._items;\r\n this._applyChange(change);\r\n var rowIndexDelta = this.getRowIndexDelta();\r\n each(this._items, (index, item) => {\r\n item.rowIndex = index - rowIndexDelta;\r\n if (oldItems) {\r\n item.cells = oldItems[index].cells || []\r\n }\r\n var newItem = items[index];\r\n if (newItem) {\r\n item.loadIndex = newItem.loadIndex\r\n }\r\n });\r\n this._rowIndexOffset = this.getRowIndexOffset()\r\n } else {\r\n this._items = []\r\n }\r\n },\r\n _handleChanging: function(e) {\r\n var rows = this.getVisibleRows();\r\n var dataSource = this.dataSource();\r\n if (dataSource) {\r\n e.changes.forEach((function(change) {\r\n if (\"insert\" === change.type && change.index >= 0) {\r\n var dataIndex = 0;\r\n for (var i = 0; i < change.index; i++) {\r\n var row = rows[i];\r\n if (row && (\"data\" === row.rowType || \"group\" === row.rowType)) {\r\n dataIndex++\r\n }\r\n }\r\n change.index = dataIndex\r\n }\r\n }))\r\n }\r\n },\r\n updateItems: function(change, isDataChanged) {\r\n change = change || {};\r\n if (void 0 !== this._repaintChangesOnly) {\r\n var _change$repaintChange;\r\n change.repaintChangesOnly = null !== (_change$repaintChange = change.repaintChangesOnly) && void 0 !== _change$repaintChange ? _change$repaintChange : this._repaintChangesOnly;\r\n change.needUpdateDimensions = change.needUpdateDimensions || this._needUpdateDimensions\r\n } else if (change.changes) {\r\n change.repaintChangesOnly = this.option(\"repaintChangesOnly\")\r\n } else if (isDataChanged) {\r\n var operationTypes = this.dataSource().operationTypes();\r\n change.repaintChangesOnly = operationTypes && !operationTypes.grouping && !operationTypes.filtering && this.option(\"repaintChangesOnly\");\r\n change.isDataChanged = true;\r\n if (operationTypes && (operationTypes.reload || operationTypes.paging || operationTypes.groupExpanding)) {\r\n change.needUpdateDimensions = true\r\n }\r\n }\r\n if (this._updateLockCount && !change.cancel) {\r\n this._changes.push(change);\r\n return\r\n }\r\n this._updateItemsCore(change);\r\n if (change.cancel) {\r\n return\r\n }\r\n this._fireChanged(change)\r\n },\r\n loadingOperationTypes: function() {\r\n var dataSource = this.dataSource();\r\n return dataSource && dataSource.loadingOperationTypes() || {}\r\n },\r\n _fireChanged: function(change) {\r\n if (this._currentOperationTypes) {\r\n change.operationTypes = this._currentOperationTypes;\r\n this._currentOperationTypes = null\r\n }\r\n deferRender(() => {\r\n this.changed.fire(change)\r\n })\r\n },\r\n isLoading: function() {\r\n return this._isLoading || this._isCustomLoading\r\n },\r\n _fireLoadingChanged: function() {\r\n this.loadingChanged.fire(this.isLoading(), this._loadingText)\r\n },\r\n _calculateAdditionalFilter: function() {\r\n return null\r\n },\r\n _applyFilter: function() {\r\n var dataSource = this._dataSource;\r\n if (dataSource) {\r\n dataSource.pageIndex(0);\r\n this._isFilterApplying = true;\r\n return this.reload().done(() => {\r\n if (this._isFilterApplying) {\r\n this.pageChanged.fire()\r\n }\r\n })\r\n }\r\n },\r\n resetFilterApplying: function() {\r\n this._isFilterApplying = false\r\n },\r\n filter: function(filterExpr) {\r\n var dataSource = this._dataSource;\r\n var filter = dataSource && dataSource.filter();\r\n if (0 === arguments.length) {\r\n return filter\r\n }\r\n filterExpr = arguments.length > 1 ? Array.prototype.slice.call(arguments, 0) : filterExpr;\r\n if (gridCoreUtils.equalFilterParameters(filter, filterExpr)) {\r\n return\r\n }\r\n if (dataSource) {\r\n dataSource.filter(filterExpr)\r\n }\r\n this._applyFilter()\r\n },\r\n clearFilter: function(filterName) {\r\n var that = this;\r\n var columnsController = that._columnsController;\r\n var clearColumnOption = function(optionName) {\r\n var columnCount = columnsController.columnCount();\r\n for (var index = 0; index < columnCount; index++) {\r\n columnsController.columnOption(index, optionName, void 0)\r\n }\r\n };\r\n that.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n switch (filterName) {\r\n case \"dataSource\":\r\n that.filter(null);\r\n break;\r\n case \"search\":\r\n that.searchByText(\"\");\r\n break;\r\n case \"header\":\r\n clearColumnOption(\"filterValues\");\r\n break;\r\n case \"row\":\r\n clearColumnOption(\"filterValue\")\r\n }\r\n } else {\r\n that.filter(null);\r\n that.searchByText(\"\");\r\n clearColumnOption(\"filterValue\");\r\n clearColumnOption(\"bufferedFilterValue\");\r\n clearColumnOption(\"filterValues\")\r\n }\r\n that.component.endUpdate()\r\n },\r\n _fireDataSourceChanged: function() {\r\n var that = this;\r\n that.changed.add((function changedHandler() {\r\n that.changed.remove(changedHandler);\r\n that.dataSourceChanged.fire()\r\n }))\r\n },\r\n _getDataSourceAdapter: noop,\r\n _createDataSourceAdapterCore: function(dataSource, remoteOperations) {\r\n var dataSourceAdapterProvider = this._getDataSourceAdapter();\r\n var dataSourceAdapter = dataSourceAdapterProvider.create(this.component);\r\n dataSourceAdapter.init(dataSource, remoteOperations);\r\n return dataSourceAdapter\r\n },\r\n isLocalStore: function(store) {\r\n store = store || this.store();\r\n return store instanceof ArrayStore\r\n },\r\n isCustomStore: function(store) {\r\n store = store || this.store();\r\n return store instanceof CustomStore\r\n },\r\n _createDataSourceAdapter: function(dataSource) {\r\n var remoteOperations = this.option(\"remoteOperations\");\r\n var store = dataSource.store();\r\n var enabledRemoteOperations = {\r\n filtering: true,\r\n sorting: true,\r\n paging: true,\r\n grouping: true,\r\n summary: true\r\n };\r\n if (remoteOperations && remoteOperations.groupPaging) {\r\n remoteOperations = extend({}, enabledRemoteOperations, remoteOperations)\r\n }\r\n if (\"auto\" === remoteOperations) {\r\n remoteOperations = this.isLocalStore(store) || this.isCustomStore(store) ? {} : {\r\n filtering: true,\r\n sorting: true,\r\n paging: true\r\n }\r\n }\r\n if (true === remoteOperations) {\r\n remoteOperations = enabledRemoteOperations\r\n }\r\n return this._createDataSourceAdapterCore(dataSource, remoteOperations)\r\n },\r\n setDataSource: function(dataSource) {\r\n var oldDataSource = this._dataSource;\r\n if (!dataSource && oldDataSource) {\r\n oldDataSource.cancelAll();\r\n oldDataSource.changed.remove(this._dataChangedHandler);\r\n oldDataSource.loadingChanged.remove(this._loadingChangedHandler);\r\n oldDataSource.loadError.remove(this._loadErrorHandler);\r\n oldDataSource.customizeStoreLoadOptions.remove(this._customizeStoreLoadOptionsHandler);\r\n oldDataSource.changing.remove(this._changingHandler);\r\n oldDataSource.pushed.remove(this._dataPushedHandler);\r\n oldDataSource.dispose(this._isSharedDataSource)\r\n }\r\n if (dataSource) {\r\n dataSource = this._createDataSourceAdapter(dataSource)\r\n }\r\n this._dataSource = dataSource;\r\n if (dataSource) {\r\n this._fireDataSourceChanged();\r\n this._isLoading = !dataSource.isLoaded();\r\n this._needApplyFilter = true;\r\n this._isAllDataTypesDefined = this._columnsController.isAllDataTypesDefined();\r\n dataSource.changed.add(this._dataChangedHandler);\r\n dataSource.loadingChanged.add(this._loadingChangedHandler);\r\n dataSource.loadError.add(this._loadErrorHandler);\r\n dataSource.customizeStoreLoadOptions.add(this._customizeStoreLoadOptionsHandler);\r\n dataSource.changing.add(this._changingHandler);\r\n dataSource.pushed.add(this._dataPushedHandler)\r\n }\r\n },\r\n items: function() {\r\n return this._items\r\n },\r\n isEmpty: function() {\r\n return !this.items().length\r\n },\r\n pageCount: function() {\r\n return this._dataSource ? this._dataSource.pageCount() : 1\r\n },\r\n dataSource: function() {\r\n return this._dataSource\r\n },\r\n store: function() {\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.store()\r\n },\r\n loadAll: function(data) {\r\n var that = this;\r\n var d = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (dataSource) {\r\n if (data) {\r\n var options = {\r\n data: data,\r\n isCustomLoading: true,\r\n storeLoadOptions: {\r\n isLoadingAll: true\r\n },\r\n loadOptions: {\r\n filter: that.getCombinedFilter(),\r\n group: dataSource.group(),\r\n sort: dataSource.sort()\r\n }\r\n };\r\n dataSource._handleDataLoaded(options);\r\n when(options.data).done((function(data) {\r\n data = that._beforeProcessItems(data);\r\n d.resolve(that._processItems(data, {\r\n changeType: \"loadingAll\"\r\n }), options.extra && options.extra.summary)\r\n })).fail(d.reject)\r\n } else if (!dataSource.isLoading()) {\r\n var loadOptions = extend({}, dataSource.loadOptions(), {\r\n isLoadingAll: true,\r\n requireTotalCount: false\r\n });\r\n dataSource.load(loadOptions).done((function(items, extra) {\r\n items = that._beforeProcessItems(items);\r\n items = that._processItems(items, {\r\n changeType: \"loadingAll\"\r\n });\r\n d.resolve(items, extra && extra.summary)\r\n })).fail(d.reject)\r\n } else {\r\n d.reject()\r\n }\r\n } else {\r\n d.resolve([])\r\n }\r\n return d\r\n },\r\n getKeyByRowIndex: function(rowIndex, byLoaded) {\r\n var item = this.items(byLoaded)[rowIndex];\r\n if (item) {\r\n return item.key\r\n }\r\n },\r\n getRowIndexByKey: function(key, byLoaded) {\r\n return gridCoreUtils.getIndexByKey(key, this.items(byLoaded))\r\n },\r\n keyOf: function(data) {\r\n var store = this.store();\r\n if (store) {\r\n return store.keyOf(data)\r\n }\r\n },\r\n byKey: function(key) {\r\n var store = this.store();\r\n var rowIndex = this.getRowIndexByKey(key);\r\n var result;\r\n if (!store) {\r\n return\r\n }\r\n if (rowIndex >= 0) {\r\n result = (new Deferred).resolve(this.items()[rowIndex].data)\r\n }\r\n return result || store.byKey(key)\r\n },\r\n key: function() {\r\n var store = this.store();\r\n if (store) {\r\n return store.key()\r\n }\r\n },\r\n getRowIndexOffset: function() {\r\n return 0\r\n },\r\n getDataByKeys: function(rowKeys) {\r\n var that = this;\r\n var result = new Deferred;\r\n var deferreds = [];\r\n var data = [];\r\n each(rowKeys, (function(index, key) {\r\n deferreds.push(that.byKey(key).done((function(keyData) {\r\n data[index] = keyData\r\n })))\r\n }));\r\n when.apply($, deferreds).always((function() {\r\n result.resolve(data)\r\n }));\r\n return result\r\n },\r\n pageIndex: function(value) {\r\n return changePaging(this, \"pageIndex\", value)\r\n },\r\n pageSize: function(value) {\r\n return changePaging(this, \"pageSize\", value)\r\n },\r\n beginCustomLoading: function(messageText) {\r\n this._isCustomLoading = true;\r\n this._loadingText = messageText || \"\";\r\n this._fireLoadingChanged()\r\n },\r\n endCustomLoading: function() {\r\n this._isCustomLoading = false;\r\n this._loadingText = void 0;\r\n this._fireLoadingChanged()\r\n },\r\n refresh: function(options) {\r\n if (true === options) {\r\n options = {\r\n reload: true,\r\n changesOnly: true\r\n }\r\n } else if (!options) {\r\n options = {\r\n lookup: true,\r\n selection: true,\r\n reload: true\r\n }\r\n }\r\n var that = this;\r\n var dataSource = that.getDataSource();\r\n var changesOnly = options.changesOnly;\r\n var d = new Deferred;\r\n var customizeLoadResult = function() {\r\n that._repaintChangesOnly = !!changesOnly\r\n };\r\n when(!options.lookup || that._columnsController.refresh()).always((function() {\r\n if (options.load || options.reload) {\r\n dataSource && dataSource.on(\"customizeLoadResult\", customizeLoadResult);\r\n when(that.reload(options.reload, changesOnly)).always((function() {\r\n dataSource && dataSource.off(\"customizeLoadResult\", customizeLoadResult);\r\n that._repaintChangesOnly = void 0\r\n })).done(d.resolve).fail(d.reject)\r\n } else {\r\n that.updateItems({\r\n repaintChangesOnly: options.changesOnly\r\n });\r\n d.resolve()\r\n }\r\n }));\r\n return d.promise()\r\n },\r\n getVisibleRows: function() {\r\n return this.items()\r\n },\r\n _disposeDataSource: function() {\r\n this.setDataSource(null)\r\n },\r\n dispose: function() {\r\n this._disposeDataSource();\r\n this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function(rowIndexes, changesOnly) {\r\n rowIndexes = Array.isArray(rowIndexes) ? rowIndexes : [rowIndexes];\r\n if (rowIndexes.length > 1 || isDefined(rowIndexes[0])) {\r\n this.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndexes,\r\n isFullUpdate: !changesOnly\r\n })\r\n }\r\n },\r\n skipProcessingPagingChange: function(fullName) {\r\n return this._skipProcessingPagingChange && (\"paging.pageIndex\" === fullName || \"paging.pageSize\" === fullName)\r\n },\r\n getUserState: function() {\r\n return {\r\n searchText: this.option(\"searchPanel.text\"),\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }\r\n },\r\n getCachedStoreData: function() {\r\n return this._dataSource && this._dataSource.getCachedStoreData()\r\n },\r\n isLastPageLoaded: function() {\r\n var pageIndex = this.pageIndex();\r\n var pageCount = this.pageCount();\r\n return pageIndex === pageCount - 1\r\n }\r\n };\r\n gridCoreUtils.proxyMethod(members, \"load\");\r\n gridCoreUtils.proxyMethod(members, \"reload\");\r\n gridCoreUtils.proxyMethod(members, \"push\");\r\n gridCoreUtils.proxyMethod(members, \"itemsCount\", 0);\r\n gridCoreUtils.proxyMethod(members, \"totalItemsCount\", 0);\r\n gridCoreUtils.proxyMethod(members, \"hasKnownLastPage\", true);\r\n gridCoreUtils.proxyMethod(members, \"isLoaded\", true);\r\n gridCoreUtils.proxyMethod(members, \"totalCount\", 0);\r\n return members\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.data_source_adapter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport gridCore from \"../data_grid/ui.data_grid.core\";\r\nimport {\r\n executeAsync,\r\n getKeyHash\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n applyBatch\r\n} from \"../../data/array_utils\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default gridCore.Controller.inherit(function() {\r\n function cloneItems(items, groupCount) {\r\n if (items) {\r\n items = items.slice(0);\r\n if (groupCount) {\r\n for (var i = 0; i < items.length; i++) {\r\n items[i] = extend({\r\n key: items[i].key\r\n }, items[i]);\r\n items[i].items = cloneItems(items[i].items, groupCount - 1)\r\n }\r\n }\r\n }\r\n return items\r\n }\r\n\r\n function calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload) {\r\n var operationTypes = {\r\n reload: true,\r\n fullReload: true\r\n };\r\n if (lastLoadOptions) {\r\n operationTypes = {\r\n sorting: !gridCore.equalSortParameters(loadOptions.sort, lastLoadOptions.sort),\r\n grouping: !gridCore.equalSortParameters(loadOptions.group, lastLoadOptions.group, true),\r\n groupExpanding: !gridCore.equalSortParameters(loadOptions.group, lastLoadOptions.group) || lastLoadOptions.groupExpand,\r\n filtering: !gridCore.equalFilterParameters(loadOptions.filter, lastLoadOptions.filter),\r\n pageIndex: loadOptions.pageIndex !== lastLoadOptions.pageIndex,\r\n skip: loadOptions.skip !== lastLoadOptions.skip,\r\n take: loadOptions.take !== lastLoadOptions.take,\r\n pageSize: loadOptions.pageSize !== lastLoadOptions.pageSize,\r\n fullReload: isFullReload\r\n };\r\n operationTypes.reload = isFullReload || operationTypes.sorting || operationTypes.grouping || operationTypes.filtering;\r\n operationTypes.paging = operationTypes.pageIndex || operationTypes.pageSize || operationTypes.take\r\n }\r\n return operationTypes\r\n }\r\n\r\n function getPageDataFromCache(options, updatePaging) {\r\n var groupCount = gridCore.normalizeSortingInfo(options.group || options.storeLoadOptions.group || options.loadOptions.group).length;\r\n var items = [];\r\n if (fillItemsFromCache(items, options, groupCount)) {\r\n return items\r\n } else if (updatePaging) {\r\n ! function(cacheItemsFromBegin, options, groupCount) {\r\n var cacheItemBeginCount = cacheItemsFromBegin.length;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n if (void 0 !== storeLoadOptions.skip && storeLoadOptions.take && !groupCount) {\r\n var cacheItemsFromEnd = [];\r\n fillItemsFromCache(cacheItemsFromEnd, options, groupCount, true);\r\n var cacheItemEndCount = cacheItemsFromEnd.length;\r\n if (cacheItemBeginCount || cacheItemEndCount) {\r\n var _options$skip2, _options$take2;\r\n options.skip = null !== (_options$skip2 = options.skip) && void 0 !== _options$skip2 ? _options$skip2 : storeLoadOptions.skip;\r\n options.take = null !== (_options$take2 = options.take) && void 0 !== _options$take2 ? _options$take2 : storeLoadOptions.take\r\n }\r\n if (cacheItemBeginCount) {\r\n storeLoadOptions.skip += cacheItemBeginCount;\r\n storeLoadOptions.take -= cacheItemBeginCount;\r\n options.cachedDataPartBegin = cacheItemsFromBegin\r\n }\r\n if (cacheItemEndCount) {\r\n storeLoadOptions.take -= cacheItemEndCount;\r\n options.cachedDataPartEnd = cacheItemsFromEnd.reverse()\r\n }\r\n }\r\n }(items, options, groupCount)\r\n }\r\n }\r\n\r\n function fillItemsFromCache(items, options, groupCount, fromEnd) {\r\n var _ref, _options$take, _options$cachedData;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var take = null !== (_ref = null !== (_options$take = options.take) && void 0 !== _options$take ? _options$take : storeLoadOptions.take) && void 0 !== _ref ? _ref : 0;\r\n var cachedItems = null === (_options$cachedData = options.cachedData) || void 0 === _options$cachedData ? void 0 : _options$cachedData.items;\r\n if (take && cachedItems) {\r\n var _ref2, _options$skip;\r\n var skip = null !== (_ref2 = null !== (_options$skip = options.skip) && void 0 !== _options$skip ? _options$skip : storeLoadOptions.skip) && void 0 !== _ref2 ? _ref2 : 0;\r\n for (var i = 0; i < take; i++) {\r\n var localIndex = fromEnd ? take - 1 - i : i;\r\n var cacheItemIndex = localIndex + skip;\r\n var cacheItem = cachedItems[cacheItemIndex];\r\n if (void 0 === cacheItem && cacheItemIndex in cachedItems) {\r\n return true\r\n }\r\n var item = getItemFromCache(options, cacheItem, groupCount, localIndex, take);\r\n if (item) {\r\n items.push(item)\r\n } else {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n }\r\n\r\n function getItemFromCache(options, cacheItem, groupCount, index, take) {\r\n if (groupCount && cacheItem) {\r\n var skips = 0 === index && options.skips || [];\r\n var takes = index === take - 1 && options.takes || [];\r\n return function getGroupItemFromCache(cacheItem, groupCount, skips, takes) {\r\n if (groupCount && cacheItem) {\r\n var result = _extends({}, cacheItem);\r\n var skip = skips[0] || 0;\r\n var take = takes[0];\r\n var items = cacheItem.items;\r\n if (items) {\r\n if (void 0 === take && !items[skip]) {\r\n return\r\n }\r\n result.items = [];\r\n if (skips.length) {\r\n result.isContinuation = true\r\n }\r\n if (takes.length) {\r\n result.isContinuationOnNextPage = true\r\n }\r\n for (var i = 0; void 0 === take ? items[i + skip] : i < take; i++) {\r\n var childCacheItem = items[i + skip];\r\n var isLast = i + 1 === take;\r\n var item = getGroupItemFromCache(childCacheItem, groupCount - 1, 0 === i ? skips.slice(1) : [], isLast ? takes.slice(1) : []);\r\n if (void 0 !== item) {\r\n result.items.push(item)\r\n } else {\r\n return\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n return cacheItem\r\n }(cacheItem, groupCount, skips, takes)\r\n } else {\r\n return cacheItem\r\n }\r\n }\r\n\r\n function getCacheItem(cacheItem, loadedItem, groupCount, skips) {\r\n if (groupCount && loadedItem) {\r\n var result = _extends({}, loadedItem);\r\n delete result.isContinuation;\r\n delete result.isContinuationOnNextPage;\r\n var skip = skips[0] || 0;\r\n if (loadedItem.items) {\r\n result.items = (null === cacheItem || void 0 === cacheItem ? void 0 : cacheItem.items) || {};\r\n loadedItem.items.forEach((item, index) => {\r\n var globalIndex = index + skip;\r\n var childSkips = 0 === index ? skips.slice(1) : [];\r\n result.items[globalIndex] = getCacheItem(result.items[globalIndex], item, groupCount - 1, childSkips)\r\n })\r\n }\r\n return result\r\n }\r\n return loadedItem\r\n }\r\n return {\r\n init: function(dataSource, remoteOperations) {\r\n var that = this;\r\n that._dataSource = dataSource;\r\n that._remoteOperations = remoteOperations || {};\r\n that._isLastPage = !dataSource.isLastPage();\r\n that._hasLastPage = false;\r\n that._currentTotalCount = 0;\r\n that._cachedData = {\r\n items: {}\r\n };\r\n that._lastOperationTypes = {};\r\n that._eventsStrategy = dataSource._eventsStrategy;\r\n that._totalCountCorrection = 0;\r\n that._isLoadingAll = false;\r\n that.changed = Callbacks();\r\n that.loadingChanged = Callbacks();\r\n that.loadError = Callbacks();\r\n that.customizeStoreLoadOptions = Callbacks();\r\n that.changing = Callbacks();\r\n that.pushed = Callbacks();\r\n that._dataChangedHandler = that._handleDataChanged.bind(that);\r\n that._customizeStoreLoadOptionsHandler = that._handleCustomizeStoreLoadOptions.bind(that);\r\n that._dataLoadedHandler = that._handleDataLoaded.bind(that);\r\n that._loadingChangedHandler = that._handleLoadingChanged.bind(that);\r\n that._loadErrorHandler = that._handleLoadError.bind(that);\r\n that._pushHandler = that._handlePush.bind(that);\r\n that._changingHandler = that._handleChanging.bind(that);\r\n dataSource.on(\"changed\", that._dataChangedHandler);\r\n dataSource.on(\"customizeStoreLoadOptions\", that._customizeStoreLoadOptionsHandler);\r\n dataSource.on(\"customizeLoadResult\", that._dataLoadedHandler);\r\n dataSource.on(\"loadingChanged\", that._loadingChangedHandler);\r\n dataSource.on(\"loadError\", that._loadErrorHandler);\r\n dataSource.on(\"changing\", that._changingHandler);\r\n dataSource.store().on(\"beforePush\", that._pushHandler);\r\n each(dataSource, (function(memberName, member) {\r\n if (!that[memberName] && isFunction(member)) {\r\n that[memberName] = function() {\r\n return this._dataSource[memberName].apply(this._dataSource, arguments)\r\n }\r\n }\r\n }))\r\n },\r\n remoteOperations: function() {\r\n return this._remoteOperations\r\n },\r\n dispose: function(isSharedDataSource) {\r\n var dataSource = this._dataSource;\r\n var store = dataSource.store();\r\n dataSource.off(\"changed\", this._dataChangedHandler);\r\n dataSource.off(\"customizeStoreLoadOptions\", this._customizeStoreLoadOptionsHandler);\r\n dataSource.off(\"customizeLoadResult\", this._dataLoadedHandler);\r\n dataSource.off(\"loadingChanged\", this._loadingChangedHandler);\r\n dataSource.off(\"loadError\", this._loadErrorHandler);\r\n dataSource.off(\"changing\", this._changingHandler);\r\n store && store.off(\"beforePush\", this._pushHandler);\r\n if (!isSharedDataSource) {\r\n dataSource.dispose()\r\n }\r\n },\r\n refresh: function(options, operationTypes) {\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this.resetCurrentTotalCount();\r\n this._isLastPage = !dataSource.paginate();\r\n this._hasLastPage = this._isLastPage\r\n }\r\n },\r\n resetCurrentTotalCount: function() {\r\n this._currentTotalCount = 0;\r\n this._totalCountCorrection = 0\r\n },\r\n resetCache: function() {\r\n this._cachedStoreData = void 0;\r\n this._cachedPagingData = void 0\r\n },\r\n resetPagesCache: function() {\r\n this._cachedData = {\r\n items: {}\r\n }\r\n },\r\n _needClearStoreDataCache: function() {\r\n var remoteOperations = this.remoteOperations();\r\n var operationTypes = calculateOperationTypes(this._lastLoadOptions || {}, {});\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !operationTypes[operationName] || !remoteOperations[operationName]);\r\n return !isLocalOperations\r\n },\r\n push: function(changes, fromStore) {\r\n var store = this.store();\r\n if (this._needClearStoreDataCache()) {\r\n this._cachedStoreData = void 0\r\n }\r\n this._cachedPagingData = void 0;\r\n this.resetPagesCache(true);\r\n if (this._cachedStoreData) {\r\n applyBatch({\r\n keyInfo: store,\r\n data: this._cachedStoreData,\r\n changes: changes\r\n })\r\n }\r\n if (!fromStore) {\r\n this._applyBatch(changes)\r\n }\r\n this.pushed.fire(changes)\r\n },\r\n getDataIndexGetter: function() {\r\n if (!this._dataIndexGetter) {\r\n var indexByKey;\r\n var storeData;\r\n var store = this.store();\r\n this._dataIndexGetter = data => {\r\n var isCacheUpdated = storeData && storeData !== this._cachedStoreData;\r\n if (!indexByKey || isCacheUpdated) {\r\n storeData = this._cachedStoreData || [];\r\n indexByKey = {};\r\n for (var i = 0; i < storeData.length; i++) {\r\n indexByKey[getKeyHash(store.keyOf(storeData[i]))] = i\r\n }\r\n }\r\n return indexByKey[getKeyHash(store.keyOf(data))]\r\n }\r\n }\r\n return this._dataIndexGetter\r\n },\r\n _getKeyInfo: function() {\r\n return this.store()\r\n },\r\n _needToCopyDataObject: () => true,\r\n _applyBatch: function(changes, fromStore) {\r\n var keyInfo = this._getKeyInfo();\r\n var dataSource = this._dataSource;\r\n var groupCount = gridCore.normalizeSortingInfo(this.group()).length;\r\n var isReshapeMode = \"reshape\" === this.option(\"editing.refreshMode\");\r\n var isVirtualMode = \"virtual\" === this.option(\"scrolling.mode\");\r\n changes = changes.filter((function(change) {\r\n return !dataSource.paginate() || \"insert\" !== change.type || void 0 !== change.index\r\n }));\r\n var getItemCount = () => groupCount ? this.itemsCount() : this.items().length;\r\n var oldItemCount = getItemCount();\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: this._items,\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n applyBatch({\r\n keyInfo: keyInfo,\r\n data: dataSource.items(),\r\n changes: changes,\r\n groupCount: groupCount,\r\n useInsertIndex: true,\r\n skipCopying: !this._needToCopyDataObject()\r\n });\r\n var needUpdateTotalCountCorrection = this._currentTotalCount > 0 || (fromStore || !isReshapeMode) && isVirtualMode;\r\n if (needUpdateTotalCountCorrection) {\r\n this._totalCountCorrection += getItemCount() - oldItemCount\r\n }\r\n changes.splice(0, changes.length)\r\n },\r\n _handlePush: function(_ref5) {\r\n var {\r\n changes: changes\r\n } = _ref5;\r\n this.push(changes, true)\r\n },\r\n _handleChanging: function(e) {\r\n this.changing.fire(e);\r\n this._applyBatch(e.changes, true)\r\n },\r\n _needCleanCacheByOperation: function(operationType, remoteOperations) {\r\n var operationTypesByOrder = [\"filtering\", \"sorting\", \"paging\"];\r\n var operationTypeIndex = operationTypesByOrder.indexOf(operationType);\r\n var currentOperationTypes = operationTypeIndex >= 0 ? operationTypesByOrder.slice(operationTypeIndex) : [operationType];\r\n return currentOperationTypes.some(operationType => remoteOperations[operationType])\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var cachedStoreData = this._cachedStoreData;\r\n var cachedPagingData = this._cachedPagingData;\r\n var cachedData = this._cachedData;\r\n if (options.storeLoadOptions.filter && !options.remoteOperations.filtering || options.storeLoadOptions.sort && !options.remoteOperations.sorting) {\r\n options.remoteOperations = {\r\n filtering: options.remoteOperations.filtering,\r\n summary: options.remoteOperations.summary\r\n }\r\n }\r\n if (operationTypes.fullReload) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else {\r\n if (operationTypes.reload) {\r\n cachedPagingData = void 0;\r\n cachedData = {\r\n items: {}\r\n }\r\n } else if (operationTypes.groupExpanding) {\r\n cachedData = {\r\n items: {}\r\n }\r\n }\r\n each(operationTypes, (operationType, value) => {\r\n if (value && this._needCleanCacheByOperation(operationType, options.remoteOperations)) {\r\n cachedStoreData = void 0;\r\n cachedPagingData = void 0\r\n }\r\n })\r\n }\r\n if (cachedPagingData) {\r\n options.remoteOperations.paging = false\r\n }\r\n options.cachedStoreData = cachedStoreData;\r\n options.cachedPagingData = cachedPagingData;\r\n options.cachedData = cachedData;\r\n if (!options.isCustomLoading) {\r\n this._cachedStoreData = cachedStoreData;\r\n this._cachedPagingData = cachedPagingData;\r\n this._cachedData = cachedData\r\n }\r\n },\r\n _handleCustomizeStoreLoadOptions(options) {\r\n var _options$data;\r\n this._handleDataLoading(options);\r\n if (!(0 === (null === (_options$data = options.data) || void 0 === _options$data ? void 0 : _options$data.length))) {\r\n options.data = getPageDataFromCache(options, true) || options.cachedStoreData\r\n }\r\n },\r\n _handleDataLoading: function(options) {\r\n var dataSource = this._dataSource;\r\n var lastLoadOptions = this._lastLoadOptions;\r\n this.customizeStoreLoadOptions.fire(options);\r\n options.delay = this.option(\"loadingTimeout\");\r\n options.originalStoreLoadOptions = options.storeLoadOptions;\r\n options.remoteOperations = extend({}, this.remoteOperations());\r\n var isFullReload = !this.isLoaded() && !this._isRefreshing;\r\n if (this.option(\"integrationOptions.renderedOnServer\") && !this.isLoaded()) {\r\n options.delay = void 0\r\n }\r\n var loadOptions = extend({\r\n pageIndex: this.pageIndex(),\r\n pageSize: this.pageSize()\r\n }, options.storeLoadOptions);\r\n var operationTypes = calculateOperationTypes(loadOptions, lastLoadOptions, isFullReload);\r\n this._customizeRemoteOperations(options, operationTypes);\r\n if (!options.isCustomLoading) {\r\n var isRefreshing = this._isRefreshing;\r\n options.pageIndex = dataSource.pageIndex();\r\n options.lastLoadOptions = loadOptions;\r\n options.operationTypes = operationTypes;\r\n this._loadingOperationTypes = operationTypes;\r\n this._isRefreshing = true;\r\n when(isRefreshing || this._isRefreshed || this.refresh(options, operationTypes)).done(() => {\r\n if (this._lastOperationId === options.operationId) {\r\n this._isRefreshed = true;\r\n this.load().always(() => {\r\n this._isRefreshed = false\r\n })\r\n }\r\n }).fail(() => {\r\n dataSource.cancel(options.operationId)\r\n }).always(() => {\r\n this._isRefreshing = false\r\n });\r\n dataSource.cancel(this._lastOperationId);\r\n this._lastOperationId = options.operationId;\r\n if (this._isRefreshing) {\r\n dataSource.cancel(this._lastOperationId)\r\n }\r\n }\r\n this._handleDataLoadingCore(options)\r\n },\r\n _handleDataLoadingCore: function(options) {\r\n var remoteOperations = options.remoteOperations;\r\n options.loadOptions = {};\r\n var cachedExtra = options.cachedData.extra;\r\n var localLoadOptionNames = {\r\n filter: !remoteOperations.filtering,\r\n sort: !remoteOperations.sorting,\r\n group: !remoteOperations.grouping,\r\n summary: !remoteOperations.summary,\r\n skip: !remoteOperations.paging,\r\n take: !remoteOperations.paging,\r\n requireTotalCount: cachedExtra && \"totalCount\" in cachedExtra || !remoteOperations.paging\r\n };\r\n each(options.storeLoadOptions, (function(optionName, optionValue) {\r\n if (localLoadOptionNames[optionName]) {\r\n options.loadOptions[optionName] = optionValue;\r\n delete options.storeLoadOptions[optionName]\r\n }\r\n }));\r\n if (cachedExtra) {\r\n options.extra = cachedExtra\r\n }\r\n },\r\n _handleDataLoaded: function(options) {\r\n var loadOptions = options.loadOptions;\r\n var localPaging = options.remoteOperations && !options.remoteOperations.paging;\r\n var cachedData = options.cachedData;\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var needCache = false !== this.option(\"cacheEnabled\") && storeLoadOptions;\r\n var needPageCache = needCache && !options.isCustomLoading && cachedData && (!localPaging || storeLoadOptions.group);\r\n var needPagingCache = needCache && localPaging;\r\n var needStoreCache = needPagingCache && !options.isCustomLoading;\r\n if (!loadOptions) {\r\n this._dataSource.cancel(options.operationId);\r\n return\r\n }\r\n if (localPaging) {\r\n options.skip = loadOptions.skip;\r\n options.take = loadOptions.take;\r\n delete loadOptions.skip;\r\n delete loadOptions.take\r\n }\r\n if (loadOptions.group) {\r\n loadOptions.group = options.group || loadOptions.group\r\n }\r\n var groupCount = gridCore.normalizeSortingInfo(options.group || storeLoadOptions.group || loadOptions.group).length;\r\n if (options.cachedDataPartBegin) {\r\n options.data = options.cachedDataPartBegin.concat(options.data)\r\n }\r\n if (options.cachedDataPartEnd) {\r\n options.data = options.data.concat(options.cachedDataPartEnd)\r\n }\r\n if (!needPageCache || !getPageDataFromCache(options)) {\r\n var _options$extra$totalC, _options$extra;\r\n if (needPagingCache && options.cachedPagingData) {\r\n options.data = cloneItems(options.cachedPagingData, groupCount)\r\n } else {\r\n if (needStoreCache) {\r\n if (!this._cachedStoreData) {\r\n this._cachedStoreData = cloneItems(options.data, gridCore.normalizeSortingInfo(storeLoadOptions.group).length)\r\n } else if (options.mergeStoreLoadData) {\r\n options.data = this._cachedStoreData = this._cachedStoreData.concat(options.data)\r\n }\r\n }\r\n new ArrayStore(options.data).load(loadOptions).done(data => {\r\n options.data = data;\r\n if (needStoreCache) {\r\n this._cachedPagingData = cloneItems(options.data, groupCount)\r\n }\r\n }).fail(error => {\r\n options.data = (new Deferred).reject(error)\r\n })\r\n }\r\n if (loadOptions.requireTotalCount && localPaging) {\r\n options.extra = isPlainObject(options.extra) ? options.extra : {};\r\n options.extra.totalCount = options.data.length\r\n }\r\n if (options.extra && options.extra.totalCount >= 0 && (false === storeLoadOptions.requireTotalCount || false === loadOptions.requireTotalCount)) {\r\n options.extra.totalCount = -1\r\n }\r\n if (!loadOptions.data && (storeLoadOptions.requireTotalCount || (null !== (_options$extra$totalC = null === (_options$extra = options.extra) || void 0 === _options$extra ? void 0 : _options$extra.totalCount) && void 0 !== _options$extra$totalC ? _options$extra$totalC : -1) >= 0)) {\r\n this._totalCountCorrection = 0\r\n }\r\n this._handleDataLoadedCore(options);\r\n if (needPageCache) {\r\n cachedData.extra = cachedData.extra || extend({}, options.extra);\r\n when(options.data).done(data => {\r\n ! function(options, data, groupCount) {\r\n var _ref3, _options$skip3, _ref4, _options$take3;\r\n var {\r\n storeLoadOptions: storeLoadOptions\r\n } = options;\r\n var skip = null !== (_ref3 = null !== (_options$skip3 = options.skip) && void 0 !== _options$skip3 ? _options$skip3 : storeLoadOptions.skip) && void 0 !== _ref3 ? _ref3 : 0;\r\n var take = null !== (_ref4 = null !== (_options$take3 = options.take) && void 0 !== _options$take3 ? _options$take3 : storeLoadOptions.take) && void 0 !== _ref4 ? _ref4 : 0;\r\n for (var i = 0; i < take; i++) {\r\n var globalIndex = i + skip;\r\n var cacheItems = options.cachedData.items;\r\n var skips = 0 === i && options.skips || [];\r\n cacheItems[globalIndex] = getCacheItem(cacheItems[globalIndex], data[i], groupCount, skips)\r\n }\r\n }(options, data, groupCount)\r\n })\r\n }\r\n }\r\n when(options.data).done(() => {\r\n if (options.lastLoadOptions) {\r\n this._lastLoadOptions = options.lastLoadOptions;\r\n Object.keys(options.operationTypes).forEach(operationType => {\r\n this._lastOperationTypes[operationType] = this._lastOperationTypes[operationType] || options.operationTypes[operationType]\r\n })\r\n }\r\n });\r\n options.storeLoadOptions = options.originalStoreLoadOptions\r\n },\r\n _handleDataLoadedCore: function(options) {\r\n if (options.remoteOperations && !options.remoteOperations.paging && Array.isArray(options.data)) {\r\n if (void 0 !== options.skip) {\r\n options.data = options.data.slice(options.skip)\r\n }\r\n if (void 0 !== options.take) {\r\n options.data = options.data.slice(0, options.take)\r\n }\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n this.loadingChanged.fire(isLoading)\r\n },\r\n _handleLoadError: function(error) {\r\n this.loadError.fire(error);\r\n this.changed.fire({\r\n changeType: \"loadError\",\r\n error: error\r\n })\r\n },\r\n _loadPageSize: function() {\r\n return this.pageSize()\r\n },\r\n _handleDataChanged: function(args) {\r\n var currentTotalCount;\r\n var dataSource = this._dataSource;\r\n var isLoading = false;\r\n var isDataLoading = !args || isDefined(args.changeType);\r\n var itemsCount = this.itemsCount();\r\n if (isDataLoading) {\r\n this._isLastPage = !itemsCount || !this._loadPageSize() || itemsCount < this._loadPageSize();\r\n if (this._isLastPage) {\r\n this._hasLastPage = true\r\n }\r\n }\r\n if (dataSource.totalCount() >= 0) {\r\n if (dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n this.pageIndex(dataSource.pageIndex());\r\n this.resetPagesCache();\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n } else if (isDataLoading) {\r\n currentTotalCount = dataSource.pageIndex() * this.pageSize() + itemsCount;\r\n if (currentTotalCount > this._currentTotalCount) {\r\n this._currentTotalCount = currentTotalCount;\r\n if (0 === dataSource.pageIndex() || !this.option(\"scrolling.legacyMode\")) {\r\n this._totalCountCorrection = 0\r\n }\r\n }\r\n if (0 === itemsCount && dataSource.pageIndex() >= this.pageCount()) {\r\n dataSource.pageIndex(this.pageCount() - 1);\r\n if (\"infinite\" !== this.option(\"scrolling.mode\")) {\r\n dataSource.load();\r\n isLoading = true\r\n }\r\n }\r\n }\r\n if (!isLoading) {\r\n this._operationTypes = this._lastOperationTypes;\r\n this._lastOperationTypes = {};\r\n this.component._optionCache = {};\r\n this.changed.fire(args);\r\n this.component._optionCache = void 0\r\n }\r\n },\r\n _scheduleCustomLoadCallbacks: function(deferred) {\r\n var that = this;\r\n that._isCustomLoading = true;\r\n deferred.always((function() {\r\n that._isCustomLoading = false\r\n }))\r\n },\r\n loadingOperationTypes: function() {\r\n return this._loadingOperationTypes\r\n },\r\n operationTypes: function() {\r\n return this._operationTypes\r\n },\r\n lastLoadOptions: function() {\r\n return this._lastLoadOptions || {}\r\n },\r\n isLastPage: function() {\r\n return this._isLastPage\r\n },\r\n _dataSourceTotalCount: function() {\r\n return this._dataSource.totalCount()\r\n },\r\n totalCount: function() {\r\n return parseInt((this._currentTotalCount || this._dataSourceTotalCount()) + this._totalCountCorrection)\r\n },\r\n totalCountCorrection: function() {\r\n return this._totalCountCorrection\r\n },\r\n itemsCount: function() {\r\n return this._dataSource.items().length\r\n },\r\n totalItemsCount: function() {\r\n return this.totalCount()\r\n },\r\n pageSize: function() {\r\n var dataSource = this._dataSource;\r\n if (!arguments.length && !dataSource.paginate()) {\r\n return 0\r\n }\r\n return dataSource.pageSize.apply(dataSource, arguments)\r\n },\r\n pageCount: function() {\r\n var count = this.totalItemsCount() - this._totalCountCorrection;\r\n var pageSize = this.pageSize();\r\n if (pageSize && count > 0) {\r\n return Math.max(1, Math.ceil(count / pageSize))\r\n }\r\n return 1\r\n },\r\n hasKnownLastPage: function() {\r\n return this._hasLastPage || this._dataSource.totalCount() >= 0\r\n },\r\n loadFromStore: function(loadOptions, store) {\r\n var dataSource = this._dataSource;\r\n var d = new Deferred;\r\n if (!dataSource) {\r\n return\r\n }\r\n store = store || dataSource.store();\r\n store.load(loadOptions).done((function(data, extra) {\r\n if (data && !Array.isArray(data) && Array.isArray(data.data)) {\r\n extra = data;\r\n data = data.data\r\n }\r\n d.resolve(data, extra)\r\n })).fail(d.reject);\r\n return d\r\n },\r\n isCustomLoading: function() {\r\n return !!this._isCustomLoading\r\n },\r\n load: function(options) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var d = new Deferred;\r\n if (options) {\r\n var store = dataSource.store();\r\n var dataSourceLoadOptions = dataSource.loadOptions();\r\n var loadResult = {\r\n storeLoadOptions: options,\r\n isCustomLoading: true\r\n };\r\n each(store._customLoadOptions() || [], (function(_, optionName) {\r\n if (!(optionName in loadResult.storeLoadOptions)) {\r\n loadResult.storeLoadOptions[optionName] = dataSourceLoadOptions[optionName]\r\n }\r\n }));\r\n this._isLoadingAll = options.isLoadingAll;\r\n that._scheduleCustomLoadCallbacks(d);\r\n dataSource._scheduleLoadCallbacks(d);\r\n that._handleCustomizeStoreLoadOptions(loadResult);\r\n ! function(action, timeout) {\r\n if (isDefined(timeout)) {\r\n executeAsync(action, timeout)\r\n } else {\r\n action()\r\n }\r\n }((function() {\r\n if (!dataSource.store()) {\r\n return d.reject(\"canceled\")\r\n }\r\n when(loadResult.data || that.loadFromStore(loadResult.storeLoadOptions)).done((function(data, extra) {\r\n loadResult.data = data;\r\n loadResult.extra = extra || {};\r\n that._handleDataLoaded(loadResult);\r\n if (options.requireTotalCount && void 0 === loadResult.extra.totalCount) {\r\n loadResult.extra.totalCount = store.totalCount(loadResult.storeLoadOptions)\r\n }\r\n when(loadResult.data, loadResult.extra.totalCount).done((function(data, totalCount) {\r\n loadResult.extra.totalCount = totalCount;\r\n d.resolve(data, loadResult.extra)\r\n })).fail(d.reject)\r\n })).fail(d.reject)\r\n }), that.option(\"loadingTimeout\"));\r\n return d.fail((function() {\r\n that._eventsStrategy.fireEvent(\"loadError\", arguments)\r\n })).always(() => {\r\n this._isLoadingAll = false\r\n }).promise()\r\n } else {\r\n return dataSource.load()\r\n }\r\n },\r\n reload: function(full) {\r\n return full ? this._dataSource.reload() : this._dataSource.load()\r\n },\r\n getCachedStoreData: function() {\r\n return this._cachedStoreData\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../data/array_utils\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n confirm\r\n} from \"../dialog\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n when,\r\n Deferred,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n equalByValue,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport * as iconUtils from \"../../core/utils/icon\";\r\nimport {\r\n EDITOR_CELL_CLASS,\r\n ROW_CLASS,\r\n EDIT_FORM_CLASS,\r\n DATA_EDIT_DATA_INSERT_TYPE,\r\n DATA_EDIT_DATA_REMOVE_TYPE,\r\n EDITING_POPUP_OPTION_NAME,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITING_EDITCOLUMNNAME_OPTION_NAME,\r\n TARGET_COMPONENT_NAME,\r\n EDITORS_INPUT_SELECTOR,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n EDIT_MODE_ROW,\r\n EDIT_MODES,\r\n ROW_BASED_MODES,\r\n FIRST_NEW_ROW_POSITION,\r\n LAST_NEW_ROW_POSITION,\r\n PAGE_BOTTOM_NEW_ROW_POSITION,\r\n PAGE_TOP_NEW_ROW_POSITION,\r\n VIEWPORT_BOTTOM_NEW_ROW_POSITION,\r\n VIEWPORT_TOP_NEW_ROW_POSITION\r\n} from \"./ui.grid_core.editing_constants\";\r\nvar READONLY_CLASS = \"readonly\";\r\nvar LINK_CLASS = \"dx-link\";\r\nvar ROW_SELECTED = \"dx-selection\";\r\nvar EDIT_BUTTON_CLASS = \"dx-edit-button\";\r\nvar COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nvar COMMAND_EDIT_WITH_ICONS_CLASS = COMMAND_EDIT_CLASS + \"-with-icons\";\r\nvar INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nvar ROW_INSERTED = \"dx-row-inserted\";\r\nvar ROW_MODIFIED = \"dx-row-modified\";\r\nvar CELL_MODIFIED = \"dx-cell-modified\";\r\nvar EDITING_NAMESPACE = \"dxDataGridEditing\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar DATA_EDIT_DATA_UPDATE_TYPE = \"update\";\r\nvar DEFAULT_START_EDIT_ACTION = \"click\";\r\nvar EDIT_LINK_CLASS = {\r\n save: \"dx-link-save\",\r\n cancel: \"dx-link-cancel\",\r\n edit: \"dx-link-edit\",\r\n undelete: \"dx-link-undelete\",\r\n delete: \"dx-link-delete\",\r\n add: \"dx-link-add\"\r\n};\r\nvar EDIT_ICON_CLASS = {\r\n save: \"save\",\r\n cancel: \"revert\",\r\n edit: \"edit\",\r\n undelete: \"revert\",\r\n delete: \"trash\",\r\n add: \"add\"\r\n};\r\nvar METHOD_NAMES = {\r\n edit: \"editRow\",\r\n delete: \"deleteRow\",\r\n undelete: \"undeleteRow\",\r\n save: \"saveEditData\",\r\n cancel: \"cancelEditData\",\r\n add: \"addRowByRowIndex\"\r\n};\r\nvar ACTION_OPTION_NAMES = {\r\n add: \"allowAdding\",\r\n edit: \"allowUpdating\",\r\n delete: \"allowDeleting\"\r\n};\r\nvar BUTTON_NAMES = [\"edit\", \"save\", \"cancel\", \"delete\", \"undelete\"];\r\nvar EDITING_CHANGES_OPTION_NAME = \"editing.changes\";\r\nvar createFailureHandler = function(deferred) {\r\n return function(arg) {\r\n var error = arg instanceof Error ? arg : new Error(arg && String(arg) || \"Unknown error\");\r\n deferred.reject(error)\r\n }\r\n};\r\nvar isEditingCell = function(isEditRow, cellOptions) {\r\n return cellOptions.isEditing || isEditRow && cellOptions.column.allowEditing\r\n};\r\nvar isEditingOrShowEditorAlwaysDataCell = function(isEditRow, cellOptions) {\r\n var isCommandCell = !!cellOptions.column.command;\r\n var isEditing = isEditingCell(isEditRow, cellOptions);\r\n var isEditorCell = !isCommandCell && (isEditing || cellOptions.column.showEditorAlways);\r\n return \"data\" === cellOptions.rowType && isEditorCell\r\n};\r\nvar EditingController = modules.ViewController.inherit(function() {\r\n var getButtonIndex = (buttons, name) => {\r\n var result = -1;\r\n buttons.some((button, index) => {\r\n if (getButtonName(button) === name) {\r\n result = index;\r\n return true\r\n }\r\n });\r\n return result\r\n };\r\n\r\n function getButtonName(button) {\r\n return isObject(button) ? button.name : button\r\n }\r\n return {\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._rowsView = this.getView(\"rowsView\");\r\n this._lastOperation = null;\r\n if (this._deferreds) {\r\n this._deferreds.forEach(d => d.reject(\"cancel\"))\r\n }\r\n this._deferreds = [];\r\n if (!this._dataChangedHandler) {\r\n this._dataChangedHandler = this._handleDataChanged.bind(this);\r\n this._dataController.changed.add(this._dataChangedHandler)\r\n }\r\n if (!this._saveEditorHandler) {\r\n this.createAction(\"onInitNewRow\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserting\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowInserted\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditingStart\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdating\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowUpdated\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onRowRemoved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaved\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onSaving\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceling\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onEditCanceled\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n }\r\n this._updateEditColumn();\r\n this._updateEditButtons();\r\n if (!this._internalState) {\r\n this._internalState = []\r\n }\r\n this.component._optionsByReference[EDITING_EDITROWKEY_OPTION_NAME] = true;\r\n this.component._optionsByReference[EDITING_CHANGES_OPTION_NAME] = true\r\n },\r\n getEditMode: function() {\r\n var editMode = this.option(\"editing.mode\");\r\n if (-1 !== EDIT_MODES.indexOf(editMode)) {\r\n return editMode\r\n }\r\n return EDIT_MODE_ROW\r\n },\r\n _getDefaultEditorTemplate: function() {\r\n return (container, options) => {\r\n var $editor = $(\"<div>\").appendTo(container);\r\n this.getController(\"editorFactory\").createEditor($editor, extend({}, options.column, {\r\n value: options.value,\r\n setValue: options.setValue,\r\n row: options.row,\r\n parentType: \"dataRow\",\r\n width: null,\r\n readOnly: !options.setValue,\r\n isOnForm: options.isOnForm,\r\n id: options.id\r\n }))\r\n }\r\n },\r\n _getNewRowPosition: function() {\r\n var newRowPosition = this.option(\"editing.newRowPosition\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" === scrollingMode) {\r\n switch (newRowPosition) {\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n return VIEWPORT_TOP_NEW_ROW_POSITION;\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n return VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n default:\r\n return newRowPosition\r\n }\r\n }\r\n return newRowPosition\r\n },\r\n getChanges: function() {\r\n return this.option(EDITING_CHANGES_OPTION_NAME)\r\n },\r\n getInsertRowCount: function() {\r\n var changes = this.option(EDITING_CHANGES_OPTION_NAME);\r\n return changes.filter(change => \"insert\" === change.type).length\r\n },\r\n resetChanges: function() {\r\n var changes = this.getChanges();\r\n var needReset = null === changes || void 0 === changes ? void 0 : changes.length;\r\n if (needReset) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, [])\r\n }\r\n },\r\n _getInternalData: function(key) {\r\n return this._internalState.filter(item => equalByValue(item.key, key))[0]\r\n },\r\n _addInternalData: function(params) {\r\n var internalData = this._getInternalData(params.key);\r\n if (internalData) {\r\n return extend(internalData, params)\r\n }\r\n this._internalState.push(params);\r\n return params\r\n },\r\n _getOldData: function(key) {\r\n var _this$_getInternalDat;\r\n return null === (_this$_getInternalDat = this._getInternalData(key)) || void 0 === _this$_getInternalDat ? void 0 : _this$_getInternalDat.oldData\r\n },\r\n getUpdatedData: function(data) {\r\n var key = this._dataController.keyOf(data);\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (changes[editIndex]) {\r\n return createObjectWithChanges(data, changes[editIndex].data)\r\n }\r\n return data\r\n },\r\n getInsertedData: function() {\r\n return this.getChanges().filter(change => change.data && change.type === DATA_EDIT_DATA_INSERT_TYPE).map(change => change.data)\r\n },\r\n getRemovedData: function() {\r\n return this.getChanges().filter(change => this._getOldData(change.key) && change.type === DATA_EDIT_DATA_REMOVE_TYPE).map(change => this._getOldData(change.key))\r\n },\r\n _fireDataErrorOccurred: function(arg) {\r\n if (\"cancel\" === arg) {\r\n return\r\n }\r\n var $popupContent = this.getPopupContent();\r\n this._dataController.dataErrorOccurred.fire(arg, $popupContent)\r\n },\r\n _needToCloseEditableCell: noop,\r\n _closeEditItem: noop,\r\n _handleDataChanged: noop,\r\n _isDefaultButtonVisible: function(button, options) {\r\n var result = true;\r\n switch (button.name) {\r\n case \"delete\":\r\n result = this.allowDeleting(options);\r\n break;\r\n case \"undelete\":\r\n result = false\r\n }\r\n return result\r\n },\r\n _isButtonVisible: function(button, options) {\r\n var visible = button.visible;\r\n if (!isDefined(visible)) {\r\n return this._isDefaultButtonVisible(button, options)\r\n }\r\n return isFunction(visible) ? visible.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : visible\r\n },\r\n _isButtonDisabled: function(button, options) {\r\n var disabled = button.disabled;\r\n return isFunction(disabled) ? disabled.call(button, {\r\n component: options.component,\r\n row: options.row,\r\n column: options.column\r\n }) : !!disabled\r\n },\r\n _getButtonConfig: function(button, options) {\r\n var config = isObject(button) ? button : {};\r\n var buttonName = getButtonName(button);\r\n var editingTexts = (options => {\r\n var editingTexts = options.component.option(\"editing.texts\") || {};\r\n return {\r\n save: editingTexts.saveRowChanges,\r\n cancel: editingTexts.cancelRowChanges,\r\n edit: editingTexts.editRow,\r\n undelete: editingTexts.undeleteRow,\r\n delete: editingTexts.deleteRow,\r\n add: editingTexts.addRowToNode\r\n }\r\n })(options);\r\n var methodName = METHOD_NAMES[buttonName];\r\n var editingOptions = this.option(\"editing\");\r\n var actionName = ACTION_OPTION_NAMES[buttonName];\r\n var allowAction = actionName ? editingOptions[actionName] : true;\r\n return extend({\r\n name: buttonName,\r\n text: editingTexts[buttonName],\r\n cssClass: EDIT_LINK_CLASS[buttonName]\r\n }, {\r\n onClick: methodName && (e => {\r\n var event = e.event;\r\n event.stopPropagation();\r\n event.preventDefault();\r\n setTimeout(() => {\r\n options.row && allowAction && this[methodName] && this[methodName](options.row.rowIndex)\r\n })\r\n })\r\n }, config)\r\n },\r\n _getEditingButtons: function(options) {\r\n var buttonIndex;\r\n var haveCustomButtons = !!options.column.buttons;\r\n var buttons = (options.column.buttons || []).slice();\r\n if (haveCustomButtons) {\r\n buttonIndex = getButtonIndex(buttons, \"edit\");\r\n if (buttonIndex >= 0) {\r\n if (getButtonIndex(buttons, \"save\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"save\")\r\n }\r\n if (getButtonIndex(buttons, \"cancel\") < 0) {\r\n buttons.splice(getButtonIndex(buttons, \"save\") + 1, 0, \"cancel\")\r\n }\r\n }\r\n buttonIndex = getButtonIndex(buttons, \"delete\");\r\n if (buttonIndex >= 0 && getButtonIndex(buttons, \"undelete\") < 0) {\r\n buttons.splice(buttonIndex + 1, 0, \"undelete\")\r\n }\r\n } else {\r\n buttons = BUTTON_NAMES.slice()\r\n }\r\n return buttons.map(button => this._getButtonConfig(button, options))\r\n },\r\n _renderEditingButtons: function($container, buttons, options, change) {\r\n buttons.forEach(button => {\r\n if (this._isButtonVisible(button, options)) {\r\n this._createButton($container, button, options, change)\r\n }\r\n })\r\n },\r\n _getEditCommandCellTemplate: function() {\r\n return (container, options, change) => {\r\n var $container = $(container);\r\n if (\"data\" === options.rowType) {\r\n var buttons = this._getEditingButtons(options);\r\n this._renderEditingButtons($container, buttons, options, change);\r\n options.watch && options.watch(() => buttons.map(button => this._isButtonVisible(button, options)), () => {\r\n $container.empty();\r\n this._renderEditingButtons($container, buttons, options)\r\n })\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n }\r\n },\r\n isRowBasedEditMode: function() {\r\n var editMode = this.getEditMode();\r\n return -1 !== ROW_BASED_MODES.indexOf(editMode)\r\n },\r\n getFirstEditableColumnIndex: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var columnIndex;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n each(visibleColumns, (function(index, column) {\r\n if (column.allowEditing) {\r\n columnIndex = index;\r\n return false\r\n }\r\n }));\r\n return columnIndex\r\n },\r\n getFirstEditableCellInRow: function(rowIndex) {\r\n var rowsView = this.getView(\"rowsView\");\r\n return rowsView && rowsView._getCellElement(rowIndex ? rowIndex : 0, this.getFirstEditableColumnIndex())\r\n },\r\n getFocusedCellInRow: function(rowIndex) {\r\n return this.getFirstEditableCellInRow(rowIndex)\r\n },\r\n getIndexByKey: function(key, items) {\r\n return gridCoreUtils.getIndexByKey(key, items)\r\n },\r\n hasChanges: function(rowIndex) {\r\n var changes = this.getChanges();\r\n var result = false;\r\n for (var i = 0; i < (null === changes || void 0 === changes ? void 0 : changes.length); i++) {\r\n if (changes[i].type && (!isDefined(rowIndex) || this._dataController.getRowIndexByKey(changes[i].key) === rowIndex)) {\r\n result = true;\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._inputFocusTimeoutID);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.up, this._pointerUpEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), pointerEvents.down, this._pointerDownEditorHandler);\r\n eventsEngine.off(domAdapter.getDocument(), clickEventName, this._saveEditorHandler)\r\n },\r\n optionChanged: function(args) {\r\n if (\"editing\" === args.name) {\r\n var fullName = args.fullName;\r\n if (fullName === EDITING_EDITROWKEY_OPTION_NAME) {\r\n this._handleEditRowKeyChange(args)\r\n } else if (fullName === EDITING_CHANGES_OPTION_NAME) {\r\n this._handleChangesChange(args)\r\n } else if (!args.handled) {\r\n this._columnsController.reinit();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _handleEditRowKeyChange: function(args) {\r\n var rowIndex = this._dataController.getRowIndexByKey(args.value);\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n if (isDefined(args.value)) {\r\n if (args.value !== args.previousValue) {\r\n this._editRowFromOptionChanged(rowIndex, oldRowIndex)\r\n }\r\n } else {\r\n this.cancelEditData()\r\n }\r\n },\r\n _handleChangesChange: function(args) {\r\n var dataController = this._dataController;\r\n var changes = args.value;\r\n if (!args.value.length && !args.previousValue.length) {\r\n return\r\n }\r\n changes.forEach(change => {\r\n if (\"insert\" === change.type) {\r\n this._addInsertInfo(change)\r\n } else {\r\n var _items$rowIndex;\r\n var items = dataController.items();\r\n var rowIndex = dataController.getRowIndexByKey(change.key);\r\n this._addInternalData({\r\n key: change.key,\r\n oldData: null === (_items$rowIndex = items[rowIndex]) || void 0 === _items$rowIndex ? void 0 : _items$rowIndex.data\r\n })\r\n }\r\n });\r\n dataController.updateItems({\r\n repaintChangesOnly: true,\r\n isLiveUpdate: false,\r\n isOptionChanged: true\r\n })\r\n },\r\n publicMethods: function() {\r\n return [\"addRow\", \"deleteRow\", \"undeleteRow\", \"editRow\", \"saveEditData\", \"cancelEditData\", \"hasEditData\"]\r\n },\r\n refresh: function() {\r\n if (!isDefined(this._pageIndex)) {\r\n return\r\n }\r\n this._refreshCore.apply(this, arguments)\r\n },\r\n _refreshCore: noop,\r\n isEditing: function() {\r\n var isEditRowKeyDefined = isDefined(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n return isEditRowKeyDefined\r\n },\r\n isEditRow: function() {\r\n return false\r\n },\r\n _setEditRowKey: function(value, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n } else {\r\n this.option(EDITING_EDITROWKEY_OPTION_NAME, value)\r\n }\r\n },\r\n _setEditRowKeyByIndex: function(rowIndex, silent) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n if (void 0 === key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n this._setEditRowKey(key, silent)\r\n },\r\n getEditRowIndex: function() {\r\n return this._getVisibleEditRowIndex()\r\n },\r\n getEditFormRowIndex: function() {\r\n return -1\r\n },\r\n isEditRowByIndex(rowIndex) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var isKeyEqual = isDefined(key) && equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key);\r\n if (isKeyEqual) {\r\n return this._getVisibleEditRowIndex() === rowIndex\r\n }\r\n return isKeyEqual\r\n },\r\n isEditCell: function(visibleRowIndex, columnIndex) {\r\n return this.isEditRowByIndex(visibleRowIndex) && this._getVisibleEditColumnIndex() === columnIndex\r\n },\r\n getPopupContent: noop,\r\n _isProcessedItem: function(item) {\r\n return false\r\n },\r\n _getInsertRowIndex: function(items, change, isProcessedItems) {\r\n var result = -1;\r\n var dataController = this._dataController;\r\n var key = this._getInsertAfterOrBeforeKey(change);\r\n if (!isDefined(key) && 0 === items.length) {\r\n result = 0\r\n } else if (isDefined(key)) {\r\n items.some((item, index) => {\r\n var isProcessedItem = isProcessedItems || this._isProcessedItem(item);\r\n if (isObject(item)) {\r\n if (isProcessedItem || isDefined(item[INSERT_INDEX])) {\r\n if (equalByValue(item.key, key)) {\r\n result = index\r\n }\r\n } else if (equalByValue(dataController.keyOf(item), key)) {\r\n result = index\r\n }\r\n }\r\n if (result >= 0) {\r\n var nextItem = items[result + 1];\r\n if (nextItem && (\"detail\" === nextItem.rowType || \"detailAdaptive\" === nextItem.rowType) && isDefined(change.insertAfterKey)) {\r\n return\r\n }\r\n if (isDefined(change.insertAfterKey)) {\r\n result += 1\r\n }\r\n return true\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n _generateNewItem: function(key) {\r\n var _this$_getInternalDat2;\r\n var item = {\r\n key: key\r\n };\r\n var insertInfo = null === (_this$_getInternalDat2 = this._getInternalData(key)) || void 0 === _this$_getInternalDat2 ? void 0 : _this$_getInternalDat2.insertInfo;\r\n if (null !== insertInfo && void 0 !== insertInfo && insertInfo[INSERT_INDEX]) {\r\n item[INSERT_INDEX] = insertInfo[INSERT_INDEX]\r\n }\r\n return item\r\n },\r\n _getLoadedRowIndex: function(items, change, isProcessedItems) {\r\n var loadedRowIndex = this._getInsertRowIndex(items, change, isProcessedItems);\r\n var dataController = this._dataController;\r\n if (loadedRowIndex < 0) {\r\n var newRowPosition = this._getNewRowPosition();\r\n var pageIndex = dataController.pageIndex();\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (newRowPosition !== LAST_NEW_ROW_POSITION && 0 === pageIndex && !isDefined(insertAfterOrBeforeKey)) {\r\n loadedRowIndex = 0\r\n } else if (newRowPosition === LAST_NEW_ROW_POSITION && dataController.isLastPageLoaded()) {\r\n loadedRowIndex = items.length\r\n }\r\n }\r\n return loadedRowIndex\r\n },\r\n processItems: function(items, e) {\r\n var changeType = e.changeType;\r\n this.update(changeType);\r\n var changes = this.getChanges();\r\n changes.forEach(change => {\r\n var _this$_getInternalDat3;\r\n var isInsert = change.type === DATA_EDIT_DATA_INSERT_TYPE;\r\n if (!isInsert) {\r\n return\r\n }\r\n var key = change.key;\r\n var insertInfo = null === (_this$_getInternalDat3 = this._getInternalData(key)) || void 0 === _this$_getInternalDat3 ? void 0 : _this$_getInternalDat3.insertInfo;\r\n if (!isDefined(key) || !isDefined(insertInfo)) {\r\n insertInfo = this._addInsertInfo(change);\r\n key = insertInfo.key\r\n }\r\n var loadedRowIndex = this._getLoadedRowIndex(items, change);\r\n var item = this._generateNewItem(key);\r\n if (loadedRowIndex >= 0) {\r\n items.splice(loadedRowIndex, 0, item)\r\n }\r\n });\r\n return items\r\n },\r\n processDataItem: function(item, options, generateDataValues) {\r\n var columns = options.visibleColumns;\r\n var key = item.data[INSERT_INDEX] ? item.data.key : item.key;\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n item.isEditing = false;\r\n if (editIndex >= 0) {\r\n this._processDataItemCore(item, changes[editIndex], key, columns, generateDataValues)\r\n }\r\n },\r\n _processDataItemCore: function(item, change, key, columns, generateDataValues) {\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n switch (type) {\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n item.isNewRow = true;\r\n item.key = key;\r\n item.data = data;\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n item.modified = true;\r\n item.oldData = item.data;\r\n item.data = createObjectWithChanges(item.data, data);\r\n item.modifiedValues = generateDataValues(data, columns, true);\r\n break;\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n item.removed = true\r\n }\r\n },\r\n _initNewRow: function(options) {\r\n this.executeAction(\"onInitNewRow\", options);\r\n if (options.promise) {\r\n var deferred = new Deferred;\r\n when(fromPromise(options.promise)).done(deferred.resolve).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n return deferred\r\n }\r\n },\r\n _createInsertInfo: function() {\r\n var insertInfo = {};\r\n insertInfo[INSERT_INDEX] = this._getInsertIndex();\r\n return insertInfo\r\n },\r\n _addInsertInfo: function(change, parentKey) {\r\n var _this$_getInternalDat4;\r\n var insertInfo;\r\n var {\r\n key: key\r\n } = change;\r\n if (!isDefined(key)) {\r\n key = String(new Guid);\r\n change.key = key\r\n }\r\n insertInfo = null === (_this$_getInternalDat4 = this._getInternalData(key)) || void 0 === _this$_getInternalDat4 ? void 0 : _this$_getInternalDat4.insertInfo;\r\n if (!isDefined(insertInfo)) {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n insertInfo = this._createInsertInfo();\r\n if (!isDefined(insertAfterOrBeforeKey)) {\r\n this._setInsertAfterOrBeforeKey(change, parentKey)\r\n }\r\n }\r\n this._addInternalData({\r\n insertInfo: insertInfo,\r\n key: key\r\n });\r\n return {\r\n insertInfo: insertInfo,\r\n key: key\r\n }\r\n },\r\n _setInsertAfterOrBeforeKey: function(change, parentKey) {\r\n var dataController = this._dataController;\r\n var allItems = dataController.items(true);\r\n var rowsView = this.getView(\"rowsView\");\r\n var newRowPosition = this._getNewRowPosition();\r\n switch (newRowPosition) {\r\n case FIRST_NEW_ROW_POSITION:\r\n case LAST_NEW_ROW_POSITION:\r\n break;\r\n case PAGE_TOP_NEW_ROW_POSITION:\r\n case PAGE_BOTTOM_NEW_ROW_POSITION:\r\n if (allItems.length) {\r\n var itemIndex = newRowPosition === PAGE_TOP_NEW_ROW_POSITION ? 0 : allItems.length - 1;\r\n change[0 === itemIndex ? \"insertBeforeKey\" : \"insertAfterKey\"] = allItems[itemIndex].key\r\n }\r\n break;\r\n default:\r\n var isViewportBottom = newRowPosition === VIEWPORT_BOTTOM_NEW_ROW_POSITION;\r\n var visibleItemIndex = isViewportBottom ? null === rowsView || void 0 === rowsView ? void 0 : rowsView.getBottomVisibleItemIndex() : null === rowsView || void 0 === rowsView ? void 0 : rowsView.getTopVisibleItemIndex();\r\n var row = dataController.getVisibleRows()[visibleItemIndex];\r\n if (row && (!row.isEditing && \"detail\" === row.rowType || \"detailAdaptive\" === row.rowType)) {\r\n visibleItemIndex++\r\n }\r\n var insertKey = dataController.getKeyByRowIndex(visibleItemIndex);\r\n if (isDefined(insertKey)) {\r\n change.insertBeforeKey = insertKey\r\n }\r\n }\r\n },\r\n _getInsertIndex: function() {\r\n var maxInsertIndex = 0;\r\n this.getChanges().forEach(editItem => {\r\n var _this$_getInternalDat5;\r\n var insertInfo = null === (_this$_getInternalDat5 = this._getInternalData(editItem.key)) || void 0 === _this$_getInternalDat5 ? void 0 : _this$_getInternalDat5.insertInfo;\r\n if (isDefined(insertInfo) && editItem.type === DATA_EDIT_DATA_INSERT_TYPE && insertInfo[INSERT_INDEX] > maxInsertIndex) {\r\n maxInsertIndex = insertInfo[INSERT_INDEX]\r\n }\r\n });\r\n return maxInsertIndex + 1\r\n },\r\n _getInsertAfterOrBeforeKey: function(insertChange) {\r\n var _insertChange$insertA;\r\n return null !== (_insertChange$insertA = insertChange.insertAfterKey) && void 0 !== _insertChange$insertA ? _insertChange$insertA : insertChange.insertBeforeKey\r\n },\r\n _getPageIndexToInsertRow: function() {\r\n var newRowPosition = this._getNewRowPosition();\r\n var dataController = this._dataController;\r\n var pageIndex = dataController.pageIndex();\r\n var lastPageIndex = dataController.pageCount() - 1;\r\n if (newRowPosition === FIRST_NEW_ROW_POSITION && 0 !== pageIndex) {\r\n return 0\r\n } else if (newRowPosition === LAST_NEW_ROW_POSITION && pageIndex !== lastPageIndex) {\r\n return lastPageIndex\r\n }\r\n return -1\r\n },\r\n addRow: function(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n if (!store) {\r\n dataController.fireError(\"E1052\", this.component.NAME);\r\n return (new Deferred).reject()\r\n }\r\n return this._addRow(parentKey)\r\n },\r\n _addRow: function(parentKey) {\r\n var dataController = this._dataController;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var param = {\r\n data: {}\r\n };\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var deferred = new Deferred;\r\n this.refresh({\r\n allowCancelEditing: true\r\n });\r\n if (!this._allowRowAdding()) {\r\n when(this._navigateToNewRow(oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject);\r\n return deferred.promise()\r\n }\r\n if (!key) {\r\n param.data.__KEY__ = String(new Guid)\r\n }\r\n when(this._initNewRow(param, parentKey)).done(() => {\r\n if (this._allowRowAdding()) {\r\n when(this._addRowCore(param.data, parentKey, oldEditRowIndex)).done(deferred.resolve).fail(deferred.reject)\r\n } else {\r\n deferred.reject(\"cancel\")\r\n }\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _allowRowAdding: function() {\r\n var insertIndex = this._getInsertIndex();\r\n if (insertIndex > 1) {\r\n return false\r\n }\r\n return true\r\n },\r\n _addRowCore: function(data, parentKey, initialOldEditRowIndex) {\r\n var change = {\r\n data: data,\r\n type: DATA_EDIT_DATA_INSERT_TYPE\r\n };\r\n var editRowIndex = this._getVisibleEditRowIndex();\r\n var insertInfo = this._addInsertInfo(change, parentKey);\r\n var key = insertInfo.key;\r\n this._setEditRowKey(key, true);\r\n this._addChange(change);\r\n return this._navigateToNewRow(initialOldEditRowIndex, change, editRowIndex)\r\n },\r\n _navigateToNewRow: function(oldEditRowIndex, change, editRowIndex) {\r\n var _editRowIndex, _change;\r\n var d = new Deferred;\r\n var dataController = this._dataController;\r\n var focusController = this.getController(\"focus\");\r\n editRowIndex = null !== (_editRowIndex = editRowIndex) && void 0 !== _editRowIndex ? _editRowIndex : -1;\r\n change = null !== (_change = change) && void 0 !== _change ? _change : this.getChanges().filter(c => c.type === DATA_EDIT_DATA_INSERT_TYPE)[0];\r\n if (!change) {\r\n return d.reject(\"cancel\").promise()\r\n }\r\n var pageIndexToInsertRow = this._getPageIndexToInsertRow();\r\n var rowIndex = this._getLoadedRowIndex(dataController.items(), change, true);\r\n var navigateToRowByKey = key => {\r\n when(null === focusController || void 0 === focusController ? void 0 : focusController.navigateToRow(key)).done(() => {\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n d.resolve()\r\n })\r\n };\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (pageIndexToInsertRow >= 0) {\r\n dataController.pageIndex(pageIndexToInsertRow).done(() => {\r\n navigateToRowByKey(change.key)\r\n }).fail(d.reject)\r\n } else if (rowIndex < 0 && isDefined(insertAfterOrBeforeKey)) {\r\n navigateToRowByKey(insertAfterOrBeforeKey)\r\n } else {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, editRowIndex, rowIndex]\r\n });\r\n rowIndex = dataController.getRowIndexByKey(change.key);\r\n if (rowIndex < 0) {\r\n navigateToRowByKey(change.key)\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n d.done(() => {\r\n this._showAddedRow(rowIndex);\r\n this._afterInsertRow(change.key)\r\n });\r\n return d.promise()\r\n },\r\n _showAddedRow: function(rowIndex) {\r\n this._focusFirstEditableCellInRow(rowIndex)\r\n },\r\n _beforeFocusElementInRow: noop,\r\n _focusFirstEditableCellInRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var key = dataController.getKeyByRowIndex(rowIndex);\r\n var $firstCell = this.getFirstEditableCellInRow(rowIndex);\r\n this._editCellInProgress = true;\r\n this._delayedInputFocus($firstCell, () => {\r\n rowIndex = dataController.getRowIndexByKey(key);\r\n this._editCellInProgress = false;\r\n this._beforeFocusElementInRow(rowIndex)\r\n })\r\n },\r\n _isEditingStart: function(options) {\r\n this.executeAction(\"onEditingStart\", options);\r\n return options.cancel\r\n },\r\n _beforeUpdateItems: noop,\r\n _getVisibleEditColumnIndex: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n if (!isDefined(editColumnName)) {\r\n return -1\r\n }\r\n return this._columnsController.getVisibleColumnIndex(editColumnName)\r\n },\r\n _setEditColumnNameByIndex: function(index, silent) {\r\n var _visibleColumns$index;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n this._setEditColumnName(null === (_visibleColumns$index = visibleColumns[index]) || void 0 === _visibleColumns$index ? void 0 : _visibleColumns$index.name, silent)\r\n },\r\n _setEditColumnName: function(name, silent) {\r\n if (silent) {\r\n this._silentOption(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n } else {\r\n this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME, name)\r\n }\r\n },\r\n _resetEditColumnName: function() {\r\n this._setEditColumnName(null, true)\r\n },\r\n _getEditColumn: function() {\r\n var editColumnName = this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME);\r\n return this._getColumnByName(editColumnName)\r\n },\r\n _getColumnByName: function(name) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var editColumn;\r\n isDefined(name) && visibleColumns.some(column => {\r\n if (column.name === name) {\r\n editColumn = column;\r\n return true\r\n }\r\n });\r\n return editColumn\r\n },\r\n _getVisibleEditRowIndex: function(columnName) {\r\n var dataController = this._dataController;\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var rowIndex = dataController.getRowIndexByKey(editRowKey);\r\n if (-1 === rowIndex) {\r\n return rowIndex\r\n }\r\n return rowIndex + this._getEditRowIndexCorrection(columnName)\r\n },\r\n _getEditRowIndexCorrection: function(columnName) {\r\n var editColumn = columnName ? this._getColumnByName(columnName) : this._getEditColumn();\r\n var isColumnHidden = \"adaptiveHidden\" === (null === editColumn || void 0 === editColumn ? void 0 : editColumn.visibleWidth);\r\n return isColumnHidden ? 1 : 0\r\n },\r\n _resetEditRowKey: function() {\r\n this._setEditRowKey(null, true)\r\n },\r\n _resetEditIndices: function() {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n },\r\n editRow: function(rowIndex) {\r\n var _item$oldData;\r\n var dataController = this._dataController;\r\n var items = dataController.items();\r\n var item = items[rowIndex];\r\n var params = {\r\n data: item && item.data,\r\n cancel: false\r\n };\r\n var oldRowIndex = this._getVisibleEditRowIndex();\r\n if (!item) {\r\n return\r\n }\r\n if (rowIndex === oldRowIndex) {\r\n return true\r\n }\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return\r\n }\r\n this.resetChanges();\r\n this.init();\r\n this._resetEditColumnName();\r\n this._pageIndex = dataController.pageIndex();\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: null !== (_item$oldData = item.oldData) && void 0 !== _item$oldData ? _item$oldData : item.data\r\n });\r\n this._setEditRowKey(item.key)\r\n },\r\n _editRowFromOptionChanged: function(rowIndex, oldRowIndex) {\r\n var rowIndices = [oldRowIndex, rowIndex];\r\n this._beforeUpdateItems(rowIndices, rowIndex, oldRowIndex);\r\n this._editRowFromOptionChangedCore(rowIndices, rowIndex)\r\n },\r\n _editRowFromOptionChangedCore: function(rowIndices, rowIndex, preventRendering) {\r\n this._needFocusEditor = true;\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices,\r\n cancel: preventRendering\r\n })\r\n },\r\n _focusEditorIfNeed: noop,\r\n _showEditPopup: noop,\r\n _repaintEditPopup: noop,\r\n _getEditPopupHiddenHandler: function() {\r\n return e => {\r\n if (this.isEditing()) {\r\n this.cancelEditData()\r\n }\r\n }\r\n },\r\n _getPopupEditFormTemplate: noop,\r\n _getSaveButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.saveRowChanges\"),\r\n onClick: this.saveEditData.bind(this)\r\n }\r\n },\r\n _getCancelButtonConfig: function() {\r\n return {\r\n text: this.option(\"editing.texts.cancelRowChanges\"),\r\n onClick: this.cancelEditData.bind(this)\r\n }\r\n },\r\n _removeInternalData: function(key) {\r\n var internalData = this._getInternalData(key);\r\n var index = this._internalState.indexOf(internalData);\r\n if (index > -1) {\r\n this._internalState.splice(index, 1)\r\n }\r\n },\r\n _updateInsertAfterOrBeforeKeys: function(changes, index) {\r\n var removeChange = changes[index];\r\n changes.forEach(change => {\r\n var insertAfterOrBeforeKey = this._getInsertAfterOrBeforeKey(change);\r\n if (equalByValue(insertAfterOrBeforeKey, removeChange.key)) {\r\n change[isDefined(change.insertAfterKey) ? \"insertAfterKey\" : \"insertBeforeKey\"] = this._getInsertAfterOrBeforeKey(removeChange)\r\n }\r\n })\r\n },\r\n _removeChange: function(index) {\r\n if (index >= 0) {\r\n var changes = [...this.getChanges()];\r\n var key = changes[index].key;\r\n this._removeInternalData(key);\r\n this._updateInsertAfterOrBeforeKeys(changes, index);\r\n changes.splice(index, 1);\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (equalByValue(this.option(EDITING_EDITROWKEY_OPTION_NAME), key)) {\r\n this._resetEditIndices()\r\n }\r\n }\r\n },\r\n executeOperation: function(deferred, func) {\r\n this._lastOperation && this._lastOperation.reject();\r\n this._lastOperation = deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (\"rejected\" === deferred.state()) {\r\n return\r\n }\r\n func();\r\n this._lastOperation = null\r\n }).fail(() => {\r\n deferred.reject();\r\n this._lastOperation = null\r\n })\r\n },\r\n waitForDeferredOperations: function() {\r\n return when(...this._deferreds)\r\n },\r\n _processCanceledEditingCell: noop,\r\n _repaintEditCell: function(column, oldColumn, oldEditRowIndex) {\r\n this._needFocusEditor = true;\r\n if (!column || !column.showEditorAlways || oldColumn && !oldColumn.showEditorAlways) {\r\n this._editCellInProgress = true;\r\n this.getController(\"editorFactory\").loseFocus();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, this._getVisibleEditRowIndex()]\r\n })\r\n } else if (column !== oldColumn) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: []\r\n })\r\n }\r\n },\r\n _delayedInputFocus: function($cell, beforeFocusCallback, callBeforeFocusCallbackAlways) {\r\n var inputFocus = () => {\r\n if (beforeFocusCallback) {\r\n beforeFocusCallback()\r\n }\r\n if ($cell) {\r\n var $focusableElement = $cell.find(FOCUSABLE_ELEMENT_SELECTOR).first();\r\n gridCoreUtils.focusAndSelectElement(this, $focusableElement)\r\n }\r\n this._beforeFocusCallback = null\r\n };\r\n if (devices.real().ios || devices.real().android) {\r\n inputFocus()\r\n } else {\r\n if (this._beforeFocusCallback) {\r\n this._beforeFocusCallback()\r\n }\r\n clearTimeout(this._inputFocusTimeoutID);\r\n if (callBeforeFocusCallbackAlways) {\r\n this._beforeFocusCallback = beforeFocusCallback\r\n }\r\n this._inputFocusTimeoutID = setTimeout(inputFocus)\r\n }\r\n },\r\n _focusEditingCell: function(beforeFocusCallback, $editCell, callBeforeFocusCallbackAlways) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n $editCell = $editCell || rowsView && rowsView._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n if ($editCell) {\r\n this._delayedInputFocus($editCell, beforeFocusCallback, callBeforeFocusCallbackAlways)\r\n }\r\n },\r\n deleteRow: function(rowIndex) {\r\n this._checkAndDeleteRow(rowIndex)\r\n },\r\n _checkAndDeleteRow: function(rowIndex) {\r\n var editingOptions = this.option(\"editing\");\r\n var editingTexts = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.texts;\r\n var confirmDelete = null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.confirmDelete;\r\n var confirmDeleteMessage = null === editingTexts || void 0 === editingTexts ? void 0 : editingTexts.confirmDeleteMessage;\r\n var item = this._dataController.items()[rowIndex];\r\n var allowDeleting = !this.isEditing() || item.isNewRow;\r\n if (item && allowDeleting) {\r\n if (!confirmDelete || !confirmDeleteMessage) {\r\n this._deleteRowCore(rowIndex)\r\n } else {\r\n var confirmDeleteTitle = editingTexts && editingTexts.confirmDeleteTitle;\r\n var showDialogTitle = isDefined(confirmDeleteTitle) && confirmDeleteTitle.length > 0;\r\n confirm(confirmDeleteMessage, confirmDeleteTitle, showDialogTitle).done(confirmResult => {\r\n if (confirmResult) {\r\n this._deleteRowCore(rowIndex)\r\n }\r\n })\r\n }\r\n }\r\n },\r\n _deleteRowCore: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var key = item && item.key;\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n this.refresh();\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n if (changes[editIndex].type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n } else {\r\n this._addChange({\r\n key: key,\r\n oldData: item.data,\r\n type: DATA_EDIT_DATA_REMOVE_TYPE\r\n })\r\n }\r\n return this._afterDeleteRow(rowIndex, oldEditRowIndex)\r\n },\r\n _afterDeleteRow: function(rowIndex, oldEditRowIndex) {\r\n return this.saveEditData()\r\n },\r\n undeleteRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var item = dataController.items()[rowIndex];\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n var key = item && item.key;\r\n var changes = this.getChanges();\r\n if (item) {\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var {\r\n data: data\r\n } = changes[editIndex];\r\n if (isEmptyObject(data)) {\r\n this._removeChange(editIndex)\r\n } else {\r\n this._addChange({\r\n key: key,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n }\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n })\r\n }\r\n }\r\n },\r\n _fireOnSaving: function() {\r\n var onSavingParams = {\r\n cancel: false,\r\n promise: null,\r\n changes: [...this.getChanges()]\r\n };\r\n this.executeAction(\"onSaving\", onSavingParams);\r\n var d = new Deferred;\r\n when(fromPromise(onSavingParams.promise)).done(() => {\r\n d.resolve(onSavingParams)\r\n }).fail(arg => {\r\n createFailureHandler(d);\r\n this._fireDataErrorOccurred(arg);\r\n d.resolve({\r\n cancel: true\r\n })\r\n });\r\n return d\r\n },\r\n _executeEditingAction: function(actionName, params, func) {\r\n if (this.component._disposed) {\r\n return null\r\n }\r\n var deferred = new Deferred;\r\n this.executeAction(actionName, params);\r\n when(fromPromise(params.cancel)).done((function(cancel) {\r\n if (cancel) {\r\n setTimeout((function() {\r\n deferred.resolve(\"cancel\")\r\n }))\r\n } else {\r\n func(params).done(deferred.resolve).fail(createFailureHandler(deferred))\r\n }\r\n })).fail(createFailureHandler(deferred));\r\n return deferred\r\n },\r\n _processChanges: function(deferreds, results, dataChanges, changes) {\r\n var store = this._dataController.store();\r\n each(changes, (index, change) => {\r\n var oldData = this._getOldData(change.key);\r\n var {\r\n data: data,\r\n type: type\r\n } = change;\r\n var changeCopy = _extends({}, change);\r\n var deferred;\r\n var params;\r\n if (this._beforeSaveEditData(change, index)) {\r\n return\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n params = {\r\n data: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowRemoving\", params, (function() {\r\n return store.remove(change.key).done((function(key) {\r\n dataChanges.push({\r\n type: \"remove\",\r\n key: key\r\n })\r\n }))\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n params = {\r\n data: data,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowInserting\", params, (function() {\r\n return store.insert(params.data).done((function(data, key) {\r\n if (isDefined(key)) {\r\n changeCopy.key = key\r\n }\r\n if (data && isObject(data) && data !== params.data) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"insert\",\r\n data: data,\r\n index: 0\r\n })\r\n }))\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n params = {\r\n newData: data,\r\n oldData: oldData,\r\n key: change.key,\r\n cancel: false\r\n };\r\n deferred = this._executeEditingAction(\"onRowUpdating\", params, (function() {\r\n return store.update(change.key, params.newData).done((function(data, key) {\r\n if (data && isObject(data) && data !== params.newData) {\r\n changeCopy.data = data\r\n }\r\n dataChanges.push({\r\n type: \"update\",\r\n key: key,\r\n data: data\r\n })\r\n }))\r\n }))\r\n }\r\n changes[index] = changeCopy;\r\n if (deferred) {\r\n var doneDeferred = new Deferred;\r\n deferred.always((function(data) {\r\n results.push({\r\n key: change.key,\r\n result: data\r\n })\r\n })).always(doneDeferred.resolve);\r\n deferreds.push(doneDeferred.promise())\r\n }\r\n })\r\n },\r\n _processRemoveIfError: function(changes, editIndex) {\r\n var change = changes[editIndex];\r\n if ((null === change || void 0 === change ? void 0 : change.type) === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n }\r\n return true\r\n },\r\n _processRemove: function(changes, editIndex, cancel) {\r\n var change = changes[editIndex];\r\n if (!cancel || !change || change.type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n return this._processRemoveCore(changes, editIndex, !cancel || !change)\r\n }\r\n },\r\n _processRemoveCore: function(changes, editIndex) {\r\n if (editIndex >= 0) {\r\n changes.splice(editIndex, 1)\r\n }\r\n return true\r\n },\r\n _processSaveEditDataResult: function(results) {\r\n var hasSavedData = false;\r\n var changes = [...this.getChanges()];\r\n var changesLength = changes.length;\r\n for (var i = 0; i < results.length; i++) {\r\n var arg = results[i].result;\r\n var cancel = \"cancel\" === arg;\r\n var editIndex = gridCoreUtils.getIndexByKey(results[i].key, changes);\r\n var change = changes[editIndex];\r\n var isError = arg && arg instanceof Error;\r\n if (isError) {\r\n if (change) {\r\n this._addInternalData({\r\n key: change.key,\r\n error: arg\r\n })\r\n }\r\n this._fireDataErrorOccurred(arg);\r\n if (this._processRemoveIfError(changes, editIndex)) {\r\n break\r\n }\r\n } else if (this._processRemove(changes, editIndex, cancel)) {\r\n hasSavedData = !cancel\r\n }\r\n }\r\n if (changes.length < changesLength) {\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes)\r\n }\r\n return hasSavedData\r\n },\r\n _fireSaveEditDataEvents: function(changes) {\r\n each(changes, (_, _ref) => {\r\n var {\r\n data: data,\r\n key: key,\r\n type: type\r\n } = _ref;\r\n var internalData = this._addInternalData({\r\n key: key\r\n });\r\n var params = {\r\n key: key,\r\n data: data\r\n };\r\n if (internalData.error) {\r\n params.error = internalData.error\r\n }\r\n switch (type) {\r\n case DATA_EDIT_DATA_REMOVE_TYPE:\r\n this.executeAction(\"onRowRemoved\", extend({}, params, {\r\n data: internalData.oldData\r\n }));\r\n break;\r\n case DATA_EDIT_DATA_INSERT_TYPE:\r\n this.executeAction(\"onRowInserted\", params);\r\n break;\r\n case DATA_EDIT_DATA_UPDATE_TYPE:\r\n this.executeAction(\"onRowUpdated\", params)\r\n }\r\n });\r\n this.executeAction(\"onSaved\", {\r\n changes: changes\r\n })\r\n },\r\n saveEditData: function() {\r\n var deferred = new Deferred;\r\n this.waitForDeferredOperations().done(() => {\r\n if (this.isSaving()) {\r\n this._resolveAfterSave(deferred);\r\n return\r\n }\r\n when(this._beforeSaveEditData()).done(cancel => {\r\n if (cancel) {\r\n this._resolveAfterSave(deferred, {\r\n cancel: cancel\r\n });\r\n return\r\n }\r\n this._saving = true;\r\n var options = {};\r\n this._saveEditDataInner(options).always(() => {\r\n this._saving = false;\r\n options.needFocusEditCell && this._focusEditingCell()\r\n }).done(deferred.resolve).fail(deferred.reject)\r\n }).fail(deferred.reject)\r\n }).fail(deferred.reject);\r\n return deferred.promise()\r\n },\r\n _resolveAfterSave: function(deferred) {\r\n var {\r\n cancel: cancel,\r\n error: error\r\n } = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n when(this._afterSaveEditData(cancel)).done((function() {\r\n deferred.resolve(error)\r\n })).fail(deferred.reject)\r\n },\r\n _saveEditDataInner: function(options) {\r\n var results = [];\r\n var deferreds = [];\r\n var dataChanges = [];\r\n var dataController = this._dataController;\r\n var dataSource = dataController.dataSource();\r\n var result = new Deferred;\r\n when(this._fireOnSaving()).done(_ref2 => {\r\n var {\r\n cancel: cancel,\r\n changes: changes\r\n } = _ref2;\r\n if (cancel) {\r\n return result.resolve().promise()\r\n }\r\n this._processChanges(deferreds, results, dataChanges, changes);\r\n if (deferreds.length) {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.beginLoading();\r\n when(...deferreds).done(() => {\r\n if (this._processSaveEditDataResult(results)) {\r\n this._endSaving(dataChanges, changes, result)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve()\r\n }\r\n }).fail(error => {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n result.resolve(error)\r\n });\r\n return result.always(() => {\r\n options.needFocusEditCell = true\r\n }).promise()\r\n }\r\n this._cancelSaving(result)\r\n }).fail(result.reject);\r\n return result.promise()\r\n },\r\n _beforeEndSaving: function(changes) {\r\n this._resetEditIndices()\r\n },\r\n _endSaving: function(dataChanges, changes, deferred) {\r\n var dataSource = this._dataController.dataSource();\r\n this._beforeEndSaving(changes);\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.endLoading();\r\n this._refreshDataAfterSave(dataChanges, changes, deferred)\r\n },\r\n _cancelSaving: function(result) {\r\n this.executeAction(\"onSaved\", {\r\n changes: []\r\n });\r\n this._resolveAfterSave(result)\r\n },\r\n _refreshDataAfterSave: function(dataChanges, changes, deferred) {\r\n var dataController = this._dataController;\r\n var refreshMode = this.option(\"editing.refreshMode\");\r\n var isFullRefresh = \"reshape\" !== refreshMode && \"repaint\" !== refreshMode;\r\n if (!isFullRefresh) {\r\n dataController.push(dataChanges)\r\n }\r\n when(dataController.refresh({\r\n selection: isFullRefresh,\r\n reload: isFullRefresh,\r\n load: \"reshape\" === refreshMode,\r\n changesOnly: this.option(\"repaintChangesOnly\")\r\n })).always(() => {\r\n this._fireSaveEditDataEvents(changes)\r\n }).done(() => {\r\n this._resolveAfterSave(deferred)\r\n }).fail(error => {\r\n this._resolveAfterSave(deferred, {\r\n error: error\r\n })\r\n })\r\n },\r\n isSaving: function() {\r\n return this._saving\r\n },\r\n _updateEditColumn: function() {\r\n var isEditColumnVisible = this._isEditColumnVisible();\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var cssClass = COMMAND_EDIT_CLASS + (useIcons ? \" \" + COMMAND_EDIT_WITH_ICONS_CLASS : \"\");\r\n this._columnsController.addCommandColumn({\r\n type: \"buttons\",\r\n command: \"edit\",\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass,\r\n width: \"auto\",\r\n alignment: \"center\",\r\n cellTemplate: this._getEditCommandCellTemplate(),\r\n fixedPosition: \"right\"\r\n });\r\n this._columnsController.columnOption(\"command:edit\", {\r\n visible: isEditColumnVisible,\r\n cssClass: cssClass\r\n })\r\n },\r\n _isEditColumnVisible: function() {\r\n var editingOptions = this.option(\"editing\");\r\n return editingOptions.allowDeleting\r\n },\r\n _isEditButtonDisabled: function() {\r\n var hasChanges = this.hasChanges();\r\n var isEditRowDefined = isDefined(this.option(\"editing.editRowKey\"));\r\n return !(isEditRowDefined || hasChanges)\r\n },\r\n _updateEditButtons: function() {\r\n var headerPanel = this.getView(\"headerPanel\");\r\n var isButtonDisabled = this._isEditButtonDisabled();\r\n if (headerPanel) {\r\n headerPanel.setToolbarItemDisabled(\"saveButton\", isButtonDisabled);\r\n headerPanel.setToolbarItemDisabled(\"revertButton\", isButtonDisabled)\r\n }\r\n },\r\n _applyModified: function($element) {\r\n $element && $element.addClass(CELL_MODIFIED)\r\n },\r\n _beforeCloseEditCellInBatchMode: noop,\r\n cancelEditData: function() {\r\n var changes = this.getChanges();\r\n var params = {\r\n cancel: false,\r\n changes: changes\r\n };\r\n this.executeAction(\"onEditCanceling\", params);\r\n if (!params.cancel) {\r\n this._cancelEditDataCore();\r\n this.executeAction(\"onEditCanceled\", {\r\n changes: changes\r\n })\r\n }\r\n },\r\n _cancelEditDataCore: function() {\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n this._beforeCancelEditData();\r\n this.init();\r\n this.resetChanges();\r\n this._resetEditColumnName();\r\n this._resetEditRowKey();\r\n this._afterCancelEditData(rowIndex)\r\n },\r\n _afterCancelEditData: function(rowIndex) {\r\n var dataController = this._dataController;\r\n dataController.updateItems({\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\")\r\n })\r\n },\r\n _hideEditPopup: noop,\r\n hasEditData: function() {\r\n return this.hasChanges()\r\n },\r\n update: function(changeType) {\r\n var dataController = this._dataController;\r\n if (dataController && this._pageIndex !== dataController.pageIndex()) {\r\n if (\"refresh\" === changeType) {\r\n this.refresh({\r\n isPageChanged: true\r\n })\r\n }\r\n this._pageIndex = dataController.pageIndex()\r\n }\r\n this._updateEditButtons()\r\n },\r\n _getRowIndicesForCascadeUpdating: function(row, skipCurrentRow) {\r\n return skipCurrentRow ? [] : [row.rowIndex]\r\n },\r\n addDeferred: function(deferred) {\r\n if (this._deferreds.indexOf(deferred) < 0) {\r\n this._deferreds.push(deferred);\r\n deferred.always(() => {\r\n var index = this._deferreds.indexOf(deferred);\r\n if (index >= 0) {\r\n this._deferreds.splice(index, 1)\r\n }\r\n })\r\n }\r\n },\r\n _prepareChange: function(options, value, text) {\r\n var _options$row;\r\n var newData = {};\r\n var oldData = null === (_options$row = options.row) || void 0 === _options$row ? void 0 : _options$row.data;\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 !== rowKey) {\r\n options.value = value;\r\n var setCellValueResult = fromPromise(options.column.setCellValue(newData, value, extend(true, {}, oldData), text));\r\n setCellValueResult.done((function() {\r\n deferred.resolve({\r\n data: newData,\r\n key: rowKey,\r\n oldData: oldData,\r\n type: DATA_EDIT_DATA_UPDATE_TYPE\r\n })\r\n })).fail(createFailureHandler(deferred)).fail(arg => this._fireDataErrorOccurred(arg));\r\n if (isDefined(text) && options.column.displayValueMap) {\r\n options.column.displayValueMap[value] = text\r\n }\r\n this._updateRowValues(options);\r\n this.addDeferred(deferred)\r\n }\r\n return deferred\r\n },\r\n _updateRowValues: function(options) {\r\n if (options.values) {\r\n var dataController = this._dataController;\r\n var rowIndex = dataController.getRowIndexByKey(options.key);\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n if (row) {\r\n options.row.values = row.values;\r\n options.values = row.values\r\n }\r\n options.values[options.columnIndex] = options.value\r\n }\r\n },\r\n updateFieldValue: function(options, value, text, forceUpdateRow) {\r\n var rowKey = options.key;\r\n var deferred = new Deferred;\r\n if (void 0 === rowKey) {\r\n this._dataController.fireError(\"E1043\")\r\n }\r\n if (options.column.setCellValue) {\r\n this._prepareChange(options, value, text).done(params => {\r\n when(this._applyChange(options, params, forceUpdateRow)).always(() => {\r\n deferred.resolve()\r\n })\r\n })\r\n } else {\r\n deferred.resolve()\r\n }\r\n return deferred.promise()\r\n },\r\n _focusPreviousEditingCellIfNeed: function(options) {\r\n if (this.hasEditData() && !this.isEditCell(options.rowIndex, options.columnIndex)) {\r\n this._focusEditingCell();\r\n this._updateEditRow(options.row, true);\r\n return true\r\n }\r\n },\r\n _needUpdateRow: function(column) {\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (!column) {\r\n column = this._getEditColumn()\r\n }\r\n var isCustomSetCellValue = column && column.setCellValue !== column.defaultSetCellValue;\r\n var isCustomCalculateCellValue = visibleColumns.some(visibleColumn => visibleColumn.calculateCellValue !== visibleColumn.defaultCalculateCellValue);\r\n return isCustomSetCellValue || isCustomCalculateCellValue\r\n },\r\n _applyChange: function(options, params, forceUpdateRow) {\r\n var changeOptions = _extends({}, options, {\r\n forceUpdateRow: forceUpdateRow\r\n });\r\n this._addChange(params, changeOptions);\r\n this._updateEditButtons();\r\n return this._applyChangeCore(options, changeOptions.forceUpdateRow)\r\n },\r\n _applyChangeCore: function(options, forceUpdateRow) {\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var row = options.row;\r\n if (row) {\r\n if (forceUpdateRow || isCustomSetCellValue) {\r\n this._updateEditRow(row, forceUpdateRow, isCustomSetCellValue)\r\n } else if (row.update) {\r\n row.update()\r\n }\r\n }\r\n },\r\n _updateEditRowCore: function(row, skipCurrentRow, isCustomSetCellValue) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: this._getRowIndicesForCascadeUpdating(row, skipCurrentRow)\r\n })\r\n },\r\n _updateEditRow: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n if (forceUpdateRow) {\r\n this._updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n this._updateRowWithDelay(row, isCustomSetCellValue)\r\n }\r\n },\r\n _updateRowImmediately: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n this._updateEditRowCore(row, !forceUpdateRow, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (!forceUpdateRow) {\r\n this._focusEditingCell()\r\n }\r\n },\r\n _updateRowWithDelay: function(row, isCustomSetCellValue) {\r\n var deferred = new Deferred;\r\n this.addDeferred(deferred);\r\n setTimeout(() => {\r\n var _this$_editForm;\r\n var elementContainer = (null === (_this$_editForm = this._editForm) || void 0 === _this$_editForm ? void 0 : _this$_editForm.element()) || this.component.$element().get(0);\r\n var $focusedElement = $(domAdapter.getActiveElement(elementContainer));\r\n var columnIndex = this._rowsView.getCellIndex($focusedElement, row.rowIndex);\r\n var focusedElement = $focusedElement.get(0);\r\n var selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._updateEditRowCore(row, false, isCustomSetCellValue);\r\n this._validateEditFormAfterUpdate(row, isCustomSetCellValue);\r\n if (columnIndex >= 0) {\r\n var $focusedItem = this._rowsView._getCellElement(row.rowIndex, columnIndex);\r\n this._delayedInputFocus($focusedItem, () => {\r\n setTimeout(() => {\r\n var _this$component$$elem;\r\n focusedElement = domAdapter.getActiveElement(null === (_this$component$$elem = this.component.$element()) || void 0 === _this$component$$elem ? void 0 : _this$component$$elem.get(0));\r\n if (selectionRange.selectionStart >= 0) {\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n }\r\n })\r\n })\r\n }\r\n deferred.resolve()\r\n })\r\n },\r\n _validateEditFormAfterUpdate: noop,\r\n _addChange: function(changeParams, options) {\r\n var _this$getChanges;\r\n var row = null === options || void 0 === options ? void 0 : options.row;\r\n var changes = [...this.getChanges()];\r\n var index = gridCoreUtils.getIndexByKey(changeParams.key, changes);\r\n if (index < 0) {\r\n index = changes.length;\r\n this._addInternalData({\r\n key: changeParams.key,\r\n oldData: changeParams.oldData\r\n });\r\n delete changeParams.oldData;\r\n changes.push(changeParams)\r\n }\r\n var change = _extends({}, changes[index]);\r\n if (change) {\r\n if (changeParams.data) {\r\n change.data = createObjectWithChanges(change.data, changeParams.data)\r\n }\r\n if ((!change.type || !changeParams.data) && changeParams.type) {\r\n change.type = changeParams.type\r\n }\r\n if (row) {\r\n row.oldData = this._getOldData(row.key);\r\n row.data = createObjectWithChanges(row.data, changeParams.data)\r\n }\r\n }\r\n changes[index] = change;\r\n this._silentOption(EDITING_CHANGES_OPTION_NAME, changes);\r\n if (options && change !== (null === (_this$getChanges = this.getChanges()) || void 0 === _this$getChanges ? void 0 : _this$getChanges[index])) {\r\n options.forceUpdateRow = true\r\n }\r\n return change\r\n },\r\n _getFormEditItemTemplate: function(cellOptions, column) {\r\n return column.editCellTemplate || this._getDefaultEditorTemplate()\r\n },\r\n getColumnTemplate: function(options) {\r\n var column = options.column;\r\n var rowIndex = options.row && options.row.rowIndex;\r\n var template;\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isRowEditing = this.isEditRow(rowIndex);\r\n var isCellEditing = this.isEditCell(rowIndex, options.columnIndex);\r\n var editingStartOptions;\r\n if ((column.showEditorAlways || column.setCellValue && (isRowEditing && column.allowEditing || isCellEditing)) && (\"data\" === options.rowType || \"detailAdaptive\" === options.rowType) && !column.command) {\r\n var allowUpdating = this.allowUpdating(options);\r\n if (((allowUpdating || isRowEditing) && column.allowEditing || isCellEditing) && (isRowEditing || !isRowMode)) {\r\n if (column.showEditorAlways && !isRowMode) {\r\n editingStartOptions = {\r\n cancel: false,\r\n key: options.row.isNewRow ? void 0 : options.row.key,\r\n data: options.row.data,\r\n column: column\r\n };\r\n this._isEditingStart(editingStartOptions)\r\n }\r\n if (!editingStartOptions || !editingStartOptions.cancel) {\r\n options.setValue = (value, text) => {\r\n this.updateFieldValue(options, value, text)\r\n }\r\n }\r\n }\r\n template = column.editCellTemplate || this._getDefaultEditorTemplate()\r\n } else if (\"detail\" === column.command && \"detail\" === options.rowType && isRowEditing) {\r\n template = null === this || void 0 === this ? void 0 : this.getEditFormTemplate(options)\r\n }\r\n return template\r\n },\r\n _createButton: function($container, button, options, change) {\r\n var icon = EDIT_ICON_CLASS[button.name];\r\n var useIcons = this.option(\"editing.useIcons\");\r\n var useLegacyColumnButtonTemplate = this.option(\"useLegacyColumnButtonTemplate\");\r\n var $button = $(\"<a>\").attr(\"href\", \"#\").addClass(LINK_CLASS).addClass(button.cssClass);\r\n if (button.template && useLegacyColumnButtonTemplate) {\r\n this._rowsView.renderTemplate($container, button.template, options, true)\r\n } else {\r\n if (button.template) {\r\n $button = $(\"<span>\").addClass(button.cssClass)\r\n } else if (useIcons && icon || button.icon) {\r\n icon = button.icon || icon;\r\n var iconType = iconUtils.getImageSourceType(icon);\r\n if (\"image\" === iconType || \"svg\" === iconType) {\r\n $button = iconUtils.getImageContainer(icon).addClass(button.cssClass)\r\n } else {\r\n $button.addClass(\"dx-icon\" + (\"dxIcon\" === iconType ? \"-\" : \" \") + icon).attr(\"title\", button.text)\r\n }\r\n $button.addClass(\"dx-link-icon\");\r\n $container.addClass(COMMAND_EDIT_WITH_ICONS_CLASS);\r\n var localizationName = this.getButtonLocalizationNames()[button.name];\r\n localizationName && $button.attr(\"aria-label\", messageLocalization.format(localizationName))\r\n } else {\r\n $button.text(button.text)\r\n }\r\n if (isDefined(button.hint)) {\r\n $button.attr(\"title\", button.hint)\r\n }\r\n if (this._isButtonDisabled(button, options)) {\r\n $button.addClass(\"dx-state-disabled\")\r\n } else if (!button.template || button.onClick) {\r\n eventsEngine.on($button, addNamespace(\"click\", EDITING_NAMESPACE), this.createAction((function(e) {\r\n var _button$onClick;\r\n null === (_button$onClick = button.onClick) || void 0 === _button$onClick ? void 0 : _button$onClick.call(button, extend({}, e, {\r\n row: options.row,\r\n column: options.column\r\n }));\r\n e.event.preventDefault();\r\n e.event.stopPropagation()\r\n })))\r\n }\r\n $container.append($button, \" \");\r\n if (button.template) {\r\n this._rowsView.renderTemplate($button, button.template, _extends({}, options, {\r\n column: void 0\r\n }), true, change)\r\n }\r\n }\r\n },\r\n getButtonLocalizationNames: () => ({\r\n edit: \"dxDataGrid-editingEditRow\",\r\n save: \"dxDataGrid-editingSaveRowChanges\",\r\n delete: \"dxDataGrid-editingDeleteRow\",\r\n undelete: \"dxDataGrid-editingUndeleteRow\",\r\n cancel: \"dxDataGrid-editingCancelRowChanges\"\r\n }),\r\n prepareButtonItem: function(headerPanel, name, methodName, sortIndex) {\r\n var editingTexts = this.option(\"editing.texts\") || {};\r\n var titleButtonTextByClassNames = {\r\n revert: editingTexts.cancelAllChanges,\r\n save: editingTexts.saveAllChanges,\r\n addRow: editingTexts.addRow\r\n };\r\n var className = {\r\n revert: \"cancel\",\r\n save: \"save\",\r\n addRow: \"addrow\"\r\n } [name];\r\n var hintText = titleButtonTextByClassNames[name];\r\n var isButtonDisabled = (\"save\" === className || \"cancel\" === className) && this._isEditButtonDisabled();\r\n return {\r\n widget: \"dxButton\",\r\n options: {\r\n onInitialized: e => {\r\n $(e.element).addClass(headerPanel._getToolbarButtonClass(EDIT_BUTTON_CLASS + \" \" + this.addWidgetPrefix(className) + \"-button\"))\r\n },\r\n icon: \"edit-button-\" + className,\r\n disabled: isButtonDisabled,\r\n onClick: () => {\r\n setTimeout(() => {\r\n this[methodName]()\r\n })\r\n },\r\n text: hintText,\r\n hint: hintText\r\n },\r\n showText: \"inMenu\",\r\n name: name + \"Button\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: sortIndex\r\n }\r\n },\r\n prepareEditButtons: function(headerPanel) {\r\n var editingOptions = this.option(\"editing\") || {};\r\n var buttonItems = [];\r\n if (editingOptions.allowAdding) {\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"addRow\", \"addRow\", 20))\r\n }\r\n return buttonItems\r\n },\r\n highlightDataCell: function($cell, params) {\r\n this.shouldHighlightCell(params) && $cell.addClass(CELL_MODIFIED)\r\n },\r\n _afterInsertRow: noop,\r\n _beforeSaveEditData: function(change) {\r\n if (change && !isDefined(change.key) && isDefined(change.type)) {\r\n return true\r\n }\r\n },\r\n _afterSaveEditData: noop,\r\n _beforeCancelEditData: noop,\r\n _allowEditAction: function(actionName, options) {\r\n var allowEditAction = this.option(\"editing.\" + actionName);\r\n if (isFunction(allowEditAction)) {\r\n allowEditAction = allowEditAction({\r\n component: this.component,\r\n row: options.row\r\n })\r\n }\r\n return allowEditAction\r\n },\r\n allowUpdating: function(options, eventName) {\r\n var startEditAction = this.option(\"editing.startEditAction\") || DEFAULT_START_EDIT_ACTION;\r\n var needCallback = arguments.length > 1 ? startEditAction === eventName || \"down\" === eventName : true;\r\n return needCallback && this._allowEditAction(\"allowUpdating\", options)\r\n },\r\n allowDeleting: function(options) {\r\n return this._allowEditAction(\"allowDeleting\", options)\r\n },\r\n isCellModified: function(parameters) {\r\n var columnIndex = parameters.columnIndex;\r\n var modifiedValues = parameters.row && (parameters.row.isNewRow ? parameters.row.values : parameters.row.modifiedValues);\r\n return !!modifiedValues && void 0 !== modifiedValues[columnIndex]\r\n },\r\n isNewRowInEditMode: function() {\r\n var visibleEditRowIndex = this._getVisibleEditRowIndex();\r\n var rows = this._dataController.items();\r\n return visibleEditRowIndex >= 0 ? rows[visibleEditRowIndex].isNewRow : false\r\n },\r\n shouldHighlightCell: function(parameters) {\r\n var cellModified = this.isCellModified(parameters);\r\n return cellModified && parameters.column.setCellValue && (this.getEditMode() !== EDIT_MODE_ROW || !parameters.row.isEditing)\r\n }\r\n }\r\n}());\r\nexport var editingModule = {\r\n defaultOptions: function() {\r\n return {\r\n editing: {\r\n mode: \"row\",\r\n refreshMode: \"full\",\r\n newRowPosition: VIEWPORT_TOP_NEW_ROW_POSITION,\r\n allowAdding: false,\r\n allowUpdating: false,\r\n allowDeleting: false,\r\n useIcons: false,\r\n selectTextOnEditStart: false,\r\n confirmDelete: true,\r\n texts: {\r\n editRow: messageLocalization.format(\"dxDataGrid-editingEditRow\"),\r\n saveAllChanges: messageLocalization.format(\"dxDataGrid-editingSaveAllChanges\"),\r\n saveRowChanges: messageLocalization.format(\"dxDataGrid-editingSaveRowChanges\"),\r\n cancelAllChanges: messageLocalization.format(\"dxDataGrid-editingCancelAllChanges\"),\r\n cancelRowChanges: messageLocalization.format(\"dxDataGrid-editingCancelRowChanges\"),\r\n addRow: messageLocalization.format(\"dxDataGrid-editingAddRow\"),\r\n deleteRow: messageLocalization.format(\"dxDataGrid-editingDeleteRow\"),\r\n undeleteRow: messageLocalization.format(\"dxDataGrid-editingUndeleteRow\"),\r\n confirmDeleteMessage: messageLocalization.format(\"dxDataGrid-editingConfirmDeleteMessage\"),\r\n confirmDeleteTitle: \"\"\r\n },\r\n form: {\r\n colCount: 2\r\n },\r\n popup: {},\r\n startEditAction: \"click\",\r\n editRowKey: null,\r\n editColumnName: null,\r\n changes: []\r\n },\r\n useLegacyColumnButtonTemplate: false\r\n }\r\n },\r\n controllers: {\r\n editing: EditingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n this._editingController = this.getController(\"editing\");\r\n this.callBase()\r\n },\r\n reload: function(full, repaintChangesOnly) {\r\n !repaintChangesOnly && this._editingController.refresh();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n repaintRows: function() {\r\n if (this.getController(\"editing\").isSaving()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateEditRow: function(items) {\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = gridCoreUtils.getIndexByKey(editRowKey, items);\r\n var editItem = items[editRowIndex];\r\n if (editItem) {\r\n var _this$_updateEditItem;\r\n editItem.isEditing = true;\r\n null === (_this$_updateEditItem = this._updateEditItem) || void 0 === _this$_updateEditItem ? void 0 : _this$_updateEditItem.call(this, editItem)\r\n }\r\n },\r\n _updateItemsCore: function(change) {\r\n this.callBase(change);\r\n this._updateEditRow(this.items(true))\r\n },\r\n _applyChangeUpdate: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _applyChangesOnly: function(change) {\r\n this._updateEditRow(change.items);\r\n this.callBase(change)\r\n },\r\n _processItems: function(items, change) {\r\n items = this._editingController.processItems(items, change);\r\n return this.callBase(items, change)\r\n },\r\n _processDataItem: function(dataItem, options) {\r\n this._editingController.processDataItem(dataItem, options, this.generateDataValues);\r\n return this.callBase(dataItem, options)\r\n },\r\n _processItem: function(item, options) {\r\n item = this.callBase(item, options);\r\n if (item.isNewRow) {\r\n options.dataIndex--;\r\n delete item.dataIndex\r\n }\r\n return item\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n if (oldItem.isNewRow !== newItem.isNewRow || oldItem.removed !== newItem.removed) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n var cell = oldRow.cells && oldRow.cells[columnIndex];\r\n var isEditing = editingController && editingController.isEditCell(visibleRowIndex, columnIndex);\r\n if (isLiveUpdate && isEditing) {\r\n return false\r\n }\r\n if (cell && cell.column && !cell.column.showEditorAlways && cell.isEditing !== isEditing) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n needToRefreshOnDataSourceChange: function(args) {\r\n var editingController = this.getController(\"editing\");\r\n var isParasiteChange = Array.isArray(args.value) && args.value === args.previousValue && editingController.isSaving();\r\n return !isParasiteChange\r\n },\r\n _handleDataSourceChange(args) {\r\n var result = this.callBase(args);\r\n var changes = this.option(\"editing.changes\");\r\n var dataSource = args.value;\r\n if (Array.isArray(dataSource) && changes.length) {\r\n var dataSourceKeys = dataSource.map(item => this.keyOf(item));\r\n var newChanges = changes.filter(change => \"insert\" === change.type || dataSourceKeys.some(key => equalByValue(change.key, key)));\r\n if (newChanges.length !== changes.length) {\r\n this.option(\"editing.changes\", newChanges)\r\n }\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n var isEditNewItem = newChanges.some(change => \"insert\" === change.type && equalByValue(editRowKey, change.key));\r\n if (!isEditNewItem && dataSourceKeys.every(key => !equalByValue(editRowKey, key))) {\r\n this.option(\"editing.editRowKey\", null)\r\n }\r\n }\r\n return result\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n this.callBase();\r\n this._editingController = this.getController(\"editing\")\r\n },\r\n getCellIndex: function($cell, rowIndex) {\r\n if (!$cell.is(\"td\") && rowIndex >= 0) {\r\n var $cellElements = this.getCellElements(rowIndex);\r\n var cellIndex = -1;\r\n each($cellElements, (function(index, cellElement) {\r\n if ($(cellElement).find($cell).length) {\r\n cellIndex = index\r\n }\r\n }));\r\n return cellIndex\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n publicMethods: function() {\r\n return this.callBase().concat([\"cellValue\"])\r\n },\r\n _getCellTemplate: function(options) {\r\n var template = this._editingController.getColumnTemplate(options);\r\n return template || this.callBase(options)\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isRowRemoved = !!row.removed;\r\n var isRowInserted = !!row.isNewRow;\r\n var isRowModified = !!row.modified;\r\n isRowInserted && $row.addClass(ROW_INSERTED);\r\n isRowModified && $row.addClass(ROW_MODIFIED);\r\n if (isRowInserted || isRowRemoved) {\r\n $row.removeClass(ROW_SELECTED)\r\n }\r\n }\r\n return $row\r\n },\r\n _getColumnIndexByElement: function($element) {\r\n var $tableElement = $element.closest(\"table\");\r\n var $tableElements = this.getTableElements();\r\n while ($tableElement.length && !$tableElements.filter($tableElement).length) {\r\n $element = $tableElement.closest(\"td\");\r\n $tableElement = $element.closest(\"table\")\r\n }\r\n return this._getColumnIndexByElementCore($element)\r\n },\r\n _getColumnIndexByElementCore: function($element) {\r\n var $targetElement = $element.closest(\".\" + ROW_CLASS + \"> td:not(.dx-master-detail-cell)\");\r\n return this.getCellIndex($targetElement)\r\n },\r\n _editCellByClick: function(e, eventName) {\r\n var editingController = this._editingController;\r\n var $targetElement = $(e.event.target);\r\n var columnIndex = this._getColumnIndexByElement($targetElement);\r\n var row = this._dataController.items()[e.rowIndex];\r\n var allowUpdating = editingController.allowUpdating({\r\n row: row\r\n }, eventName) || row && row.isNewRow;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n var isEditedCell = editingController.isEditCell(e.rowIndex, columnIndex);\r\n var allowEditing = allowUpdating && column && (column.allowEditing || isEditedCell);\r\n var startEditAction = this.option(\"editing.startEditAction\") || \"click\";\r\n if (\"down\" === eventName) {\r\n if ((devices.real().ios || devices.real().android) && !isEditedCell) {\r\n resetActiveElement()\r\n }\r\n return column && column.showEditorAlways && allowEditing && editingController.editCell(e.rowIndex, columnIndex)\r\n }\r\n if (\"click\" === eventName && \"dblClick\" === startEditAction && !isEditedCell) {\r\n var withoutSaveEditData = null === row || void 0 === row ? void 0 : row.isNewRow;\r\n editingController.closeEditCell(false, withoutSaveEditData)\r\n }\r\n if (allowEditing && eventName === startEditAction) {\r\n return editingController.editCell(e.rowIndex, columnIndex) || editingController.isEditRow(e.rowIndex)\r\n }\r\n },\r\n _rowPointerDown: function(e) {\r\n this._pointerDownTimeout = setTimeout(() => {\r\n this._editCellByClick(e, \"down\")\r\n })\r\n },\r\n _rowClick: function(e) {\r\n var isEditForm = $(e.rowElement).hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS));\r\n e.event[TARGET_COMPONENT_NAME] = this.component;\r\n if (!this._editCellByClick(e, \"click\") && !isEditForm) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _rowDblClick: function(e) {\r\n if (!this._editCellByClick(e, \"dblClick\")) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _cellPrepared: function($cell, parameters) {\r\n var _parameters$column;\r\n var editingController = this._editingController;\r\n var isCommandCell = !!parameters.column.command;\r\n var isEditableCell = parameters.setValue;\r\n var isEditRow = editingController.isEditRow(parameters.rowIndex);\r\n var isEditing = isEditingCell(isEditRow, parameters);\r\n if (isEditingOrShowEditorAlwaysDataCell(isEditRow, parameters)) {\r\n var alignment = parameters.column.alignment;\r\n $cell.toggleClass(this.addWidgetPrefix(READONLY_CLASS), !isEditableCell).toggleClass(CELL_FOCUS_DISABLED_CLASS, !isEditableCell);\r\n if (alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", alignment)\r\n }\r\n }\r\n if (isEditing) {\r\n this._editCellPrepared($cell)\r\n }\r\n var hasTemplate = !!(null !== (_parameters$column = parameters.column) && void 0 !== _parameters$column && _parameters$column.cellTemplate);\r\n if (parameters.column && !isCommandCell && (!hasTemplate || editingController.shouldHighlightCell(parameters))) {\r\n editingController.highlightDataCell($cell, parameters)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _editCellPrepared: noop,\r\n _formItemPrepared: noop,\r\n _getCellOptions: function(options) {\r\n var cellOptions = this.callBase(options);\r\n cellOptions.isEditing = this._editingController.isEditCell(cellOptions.rowIndex, cellOptions.columnIndex);\r\n return cellOptions\r\n },\r\n _createCell: function(options) {\r\n var $cell = this.callBase(options);\r\n var isEditRow = this._editingController.isEditRow(options.rowIndex);\r\n isEditingOrShowEditorAlwaysDataCell(isEditRow, options) && $cell.addClass(EDITOR_CELL_CLASS);\r\n return $cell\r\n },\r\n cellValue: function(rowIndex, columnIdentifier, value, text) {\r\n var cellOptions = this.getCellOptions(rowIndex, columnIdentifier);\r\n if (cellOptions) {\r\n if (void 0 === value) {\r\n return cellOptions.value\r\n } else {\r\n this._editingController.updateFieldValue(cellOptions, value, text, true)\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._pointerDownTimeout)\r\n },\r\n _renderCore: function(change) {\r\n this.callBase.apply(this, arguments);\r\n this._waitAsyncTemplates(change, true).done(() => {\r\n this._editingController._focusEditorIfNeed()\r\n })\r\n }\r\n },\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n var editButtonItems = this.getController(\"editing\").prepareEditButtons(this);\r\n return editButtonItems.concat(items)\r\n },\r\n optionChanged: function(args) {\r\n var fullName = args.fullName;\r\n switch (args.name) {\r\n case \"editing\":\r\n var excludedOptions = [EDITING_POPUP_OPTION_NAME, EDITING_CHANGES_OPTION_NAME, EDITING_EDITCOLUMNNAME_OPTION_NAME, EDITING_EDITROWKEY_OPTION_NAME];\r\n var shouldInvalidate = fullName && !excludedOptions.some(optionName => optionName === fullName);\r\n shouldInvalidate && this._invalidate();\r\n this.callBase(args);\r\n break;\r\n case \"useLegacyColumnButtonTemplate\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isVisible: function() {\r\n var editingOptions = this.getController(\"editing\").option(\"editing\");\r\n return this.callBase() || (null === editingOptions || void 0 === editingOptions ? void 0 : editingOptions.allowAdding)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing_cell_based.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n isElementInDom\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n deferRender\r\n} from \"../../core/utils/common\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../data/array_utils\";\r\nimport {\r\n EDIT_MODE_BATCH,\r\n EDIT_MODE_CELL,\r\n TARGET_COMPONENT_NAME\r\n} from \"./ui.grid_core.editing_constants\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar ADD_ROW_BUTTON_CLASS = \"addrow-button\";\r\nvar DROPDOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar CELL_MODIFIED_CLASS = \"dx-cell-modified\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar ROW_REMOVED = \"dx-row-removed\";\r\nvar EDITING_EDITROWKEY_OPTION_NAME = \"editing.editRowKey\";\r\nvar EDITING_EDITCOLUMNNAME_OPTION_NAME = \"editing.editColumnName\";\r\nvar DATA_EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nexport default {\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n init: function() {\r\n var needCreateHandlers = !this._saveEditorHandler;\r\n this.callBase.apply(this, arguments);\r\n if (needCreateHandlers) {\r\n var $pointerDownTarget;\r\n var isResizing;\r\n this._pointerUpEditorHandler = () => {\r\n var _this$getController;\r\n isResizing = null === (_this$getController = this.getController(\"columnsResizer\")) || void 0 === _this$getController ? void 0 : _this$getController.isResizing()\r\n };\r\n this._pointerDownEditorHandler = e => $pointerDownTarget = $(e.target);\r\n this._saveEditorHandler = this.createAction((function(e) {\r\n var event = e.event;\r\n var $target = $(event.target);\r\n var targetComponent = event[TARGET_COMPONENT_NAME];\r\n var component = this.component;\r\n if ($pointerDownTarget && $pointerDownTarget.is(\"input\") && !$pointerDownTarget.is($target)) {\r\n return\r\n }\r\n\r\n function checkEditorPopup($element) {\r\n if (!$element) {\r\n return false\r\n }\r\n var $dropDownEditorOverlay = $element.closest(\".\".concat(DROPDOWN_EDITOR_OVERLAY_CLASS));\r\n var $componentElement = component.$element();\r\n return $dropDownEditorOverlay.length > 0 && 0 === $componentElement.closest($dropDownEditorOverlay).length\r\n }\r\n if (this.isCellOrBatchEditMode() && !this._editCellInProgress) {\r\n var isEditorPopup = checkEditorPopup($target) || checkEditorPopup(null === targetComponent || void 0 === targetComponent ? void 0 : targetComponent.$element());\r\n var isAnotherComponent = targetComponent && !targetComponent._disposed && targetComponent !== this.component;\r\n var isAddRowButton = !!$target.closest(\".\".concat(this.addWidgetPrefix(ADD_ROW_BUTTON_CLASS))).length;\r\n var isFocusOverlay = $target.hasClass(this.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n var isCellEditMode = this.isCellEditMode();\r\n if (!isResizing && !isEditorPopup && !isFocusOverlay && !(isAddRowButton && isCellEditMode && this.isEditing()) && (isElementInDom($target) || isAnotherComponent)) {\r\n this._closeEditItem.bind(this)($target)\r\n }\r\n }\r\n }));\r\n eventsEngine.on(domAdapter.getDocument(), pointerEvents.up, this._pointerUpEditorHandler);\r\n eventsEngine.on(domAdapter.getDocument(), pointerEvents.down, this._pointerDownEditorHandler);\r\n eventsEngine.on(domAdapter.getDocument(), clickEventName, this._saveEditorHandler)\r\n }\r\n },\r\n isCellEditMode: function() {\r\n return this.option(\"editing.mode\") === EDIT_MODE_CELL\r\n },\r\n isBatchEditMode: function() {\r\n return this.option(\"editing.mode\") === EDIT_MODE_BATCH\r\n },\r\n isCellOrBatchEditMode: function() {\r\n return this.isCellEditMode() || this.isBatchEditMode()\r\n },\r\n _needToCloseEditableCell: function($targetElement) {\r\n var $element = this.component.$element();\r\n var result = this.isEditing();\r\n var isCurrentComponentElement = !$element || !!$targetElement.closest($element).length;\r\n if (isCurrentComponentElement) {\r\n var isDataRow = $targetElement.closest(\".\" + DATA_ROW_CLASS).length;\r\n if (isDataRow) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var $targetCell = $targetElement.closest(\".\" + ROW_CLASS + \"> td\");\r\n var rowIndex = rowsView.getRowIndex($targetCell.parent());\r\n var columnIndex = rowsView.getCellElements(rowIndex).index($targetCell);\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var allowEditing = visibleColumns[columnIndex] && visibleColumns[columnIndex].allowEditing;\r\n result = result && !allowEditing && !this.isEditCell(rowIndex, columnIndex)\r\n }\r\n }\r\n return result || this.callBase.apply(this, arguments)\r\n },\r\n _closeEditItem: function($targetElement) {\r\n if (this._needToCloseEditableCell($targetElement)) {\r\n this.closeEditCell()\r\n }\r\n },\r\n _focusEditorIfNeed: function() {\r\n if (this._needFocusEditor && this.isCellOrBatchEditMode()) {\r\n var _this$_rowsView;\r\n var editColumnIndex = this._getVisibleEditColumnIndex();\r\n var $cell = null === (_this$_rowsView = this._rowsView) || void 0 === _this$_rowsView ? void 0 : _this$_rowsView._getCellElement(this._getVisibleEditRowIndex(), editColumnIndex);\r\n if ($cell && !$cell.find(\":focus\").length) {\r\n this._focusEditingCell(() => {\r\n this._editCellInProgress = false\r\n }, $cell, true)\r\n } else {\r\n this._editCellInProgress = false\r\n }\r\n this._needFocusEditor = false\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n isEditing: function() {\r\n if (this.isCellOrBatchEditMode()) {\r\n var isEditRowKeyDefined = isDefined(this.option(EDITING_EDITROWKEY_OPTION_NAME));\r\n var isEditColumnNameDefined = isDefined(this.option(EDITING_EDITCOLUMNNAME_OPTION_NAME));\r\n return isEditRowKeyDefined && isEditColumnNameDefined\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _handleEditColumnNameChange: function(args) {\r\n var oldRowIndex = this._getVisibleEditRowIndex(args.previousValue);\r\n if (this.isCellOrBatchEditMode() && -1 !== oldRowIndex && isDefined(args.value) && args.value !== args.previousValue) {\r\n var columnIndex = this._columnsController.getVisibleColumnIndex(args.value);\r\n var oldColumnIndex = this._columnsController.getVisibleColumnIndex(args.previousValue);\r\n this._editCellFromOptionChanged(columnIndex, oldColumnIndex, oldRowIndex)\r\n }\r\n },\r\n _addRow: function(parentKey, deferred) {\r\n if (this.isCellEditMode() && this.hasChanges()) {\r\n var _deferred = new Deferred;\r\n this.saveEditData().done(() => {\r\n if (!this.hasChanges()) {\r\n this.addRow(parentKey).done(_deferred.resolve).fail(_deferred.reject)\r\n } else {\r\n _deferred.reject(\"cancel\")\r\n }\r\n });\r\n return _deferred.promise()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n editCell: function(rowIndex, columnIndex) {\r\n return this._editCell({\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n })\r\n },\r\n _editCell: function(options) {\r\n var d = new Deferred;\r\n var coreResult;\r\n this.executeOperation(d, () => {\r\n coreResult = this._editCellCore(options);\r\n when(coreResult).done(d.resolve).fail(d.reject)\r\n });\r\n return void 0 !== coreResult ? coreResult : d.promise()\r\n },\r\n _editCellCore: function(options) {\r\n var dataController = this._dataController;\r\n var isEditByOptionChanged = isDefined(options.oldColumnIndex) || isDefined(options.oldRowIndex);\r\n var {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex,\r\n column: column,\r\n item: item\r\n } = this._getNormalizedEditCellOptions(options);\r\n var params = {\r\n data: null === item || void 0 === item ? void 0 : item.data,\r\n cancel: false,\r\n column: column\r\n };\r\n if (void 0 === item.key) {\r\n this._dataController.fireError(\"E1043\");\r\n return\r\n }\r\n if (column && (\"data\" === item.rowType || \"detailAdaptive\" === item.rowType) && !item.removed && this.isCellOrBatchEditMode()) {\r\n if (!isEditByOptionChanged && this.isEditCell(rowIndex, columnIndex)) {\r\n return true\r\n }\r\n var editRowIndex = rowIndex + dataController.getRowIndexOffset();\r\n return when(this._beforeEditCell(rowIndex, columnIndex, item)).done(cancel => {\r\n if (cancel) {\r\n return\r\n }\r\n if (!this._prepareEditCell(params, item, columnIndex, editRowIndex)) {\r\n this._processCanceledEditingCell()\r\n }\r\n })\r\n }\r\n return false\r\n },\r\n _beforeEditCell: function(rowIndex, columnIndex, item) {\r\n if (this.isCellEditMode() && !item.isNewRow && this.hasChanges()) {\r\n var d = new Deferred;\r\n this.saveEditData().always(() => {\r\n d.resolve(this.hasChanges())\r\n });\r\n return d\r\n }\r\n },\r\n publicMethods: function() {\r\n var publicMethods = this.callBase.apply(this, arguments);\r\n return publicMethods.concat([\"editCell\", \"closeEditCell\"])\r\n },\r\n _getNormalizedEditCellOptions: function(_ref) {\r\n var {\r\n oldColumnIndex: oldColumnIndex,\r\n oldRowIndex: oldRowIndex,\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n } = _ref;\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var items = this._dataController.items();\r\n var item = items[rowIndex];\r\n var oldColumn;\r\n if (isDefined(oldColumnIndex)) {\r\n oldColumn = visibleColumns[oldColumnIndex]\r\n } else {\r\n oldColumn = this._getEditColumn()\r\n }\r\n if (!isDefined(oldRowIndex)) {\r\n oldRowIndex = this._getVisibleEditRowIndex()\r\n }\r\n if (isString(columnIndex)) {\r\n columnIndex = columnsController.columnOption(columnIndex, \"index\");\r\n columnIndex = columnsController.getVisibleIndex(columnIndex)\r\n }\r\n var column = visibleColumns[columnIndex];\r\n return {\r\n oldColumn: oldColumn,\r\n columnIndex: columnIndex,\r\n oldRowIndex: oldRowIndex,\r\n rowIndex: rowIndex,\r\n column: column,\r\n item: item\r\n }\r\n },\r\n _prepareEditCell: function(params, item, editColumnIndex, editRowIndex) {\r\n if (!item.isNewRow) {\r\n params.key = item.key\r\n }\r\n if (this._isEditingStart(params)) {\r\n return false\r\n }\r\n this._pageIndex = this._dataController.pageIndex();\r\n this._setEditRowKey(item.key);\r\n this._setEditColumnNameByIndex(editColumnIndex);\r\n if (!params.column.showEditorAlways) {\r\n var _item$oldData;\r\n this._addInternalData({\r\n key: item.key,\r\n oldData: null !== (_item$oldData = item.oldData) && void 0 !== _item$oldData ? _item$oldData : item.data\r\n })\r\n }\r\n return true\r\n },\r\n closeEditCell: function(isError, withoutSaveEditData) {\r\n var result = when();\r\n var oldEditRowIndex = this._getVisibleEditRowIndex();\r\n if (this.isCellOrBatchEditMode()) {\r\n var deferred = new Deferred;\r\n result = new Deferred;\r\n this.executeOperation(deferred, () => {\r\n this._closeEditCellCore(isError, oldEditRowIndex, withoutSaveEditData).always(result.resolve)\r\n })\r\n }\r\n return result.promise()\r\n },\r\n _closeEditCellCore: function(isError, oldEditRowIndex, withoutSaveEditData) {\r\n var dataController = this._dataController;\r\n var deferred = new Deferred;\r\n var promise = deferred.promise();\r\n if (this.isCellEditMode() && this.hasChanges()) {\r\n if (!withoutSaveEditData) {\r\n this.saveEditData().done(error => {\r\n if (!this.hasChanges()) {\r\n this.closeEditCell(!!error).always(deferred.resolve);\r\n return\r\n }\r\n deferred.resolve()\r\n });\r\n return promise\r\n }\r\n } else {\r\n this._resetEditRowKey();\r\n this._resetEditColumnName();\r\n if (oldEditRowIndex >= 0) {\r\n var rowIndices = [oldEditRowIndex];\r\n this._beforeCloseEditCellInBatchMode(rowIndices);\r\n if (!isError) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: rowIndices\r\n })\r\n }\r\n }\r\n }\r\n deferred.resolve();\r\n return promise\r\n },\r\n _resetModifiedClassCells: function(changes) {\r\n if (this.isBatchEditMode()) {\r\n var columnsCount = this._columnsController.getVisibleColumns().length;\r\n changes.forEach(_ref2 => {\r\n var {\r\n key: key\r\n } = _ref2;\r\n var rowIndex = this._dataController.getRowIndexByKey(key);\r\n if (-1 !== rowIndex) {\r\n for (var columnIndex = 0; columnIndex < columnsCount; columnIndex++) {\r\n this._rowsView._getCellElement(rowIndex, columnIndex).removeClass(CELL_MODIFIED_CLASS)\r\n }\r\n }\r\n })\r\n }\r\n },\r\n _prepareChange: function(options, value, text) {\r\n var $cellElement = $(options.cellElement);\r\n if (this.isBatchEditMode() && void 0 !== options.key) {\r\n this._applyModified($cellElement, options)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _cancelSaving: function() {\r\n var dataController = this._dataController;\r\n if (this.isCellOrBatchEditMode()) {\r\n if (this.isBatchEditMode()) {\r\n this._resetEditIndices()\r\n }\r\n dataController.updateItems()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n optionChanged: function(args) {\r\n var fullName = args.fullName;\r\n if (\"editing\" === args.name && fullName === EDITING_EDITCOLUMNNAME_OPTION_NAME) {\r\n this._handleEditColumnNameChange(args);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _editCellFromOptionChanged: function(columnIndex, oldColumnIndex, oldRowIndex) {\r\n var columns = this._columnsController.getVisibleColumns();\r\n if (columnIndex > -1) {\r\n deferRender(() => {\r\n this._repaintEditCell(columns[columnIndex], columns[oldColumnIndex], oldRowIndex)\r\n })\r\n }\r\n },\r\n _handleEditRowKeyChange: function(args) {\r\n if (this.isCellOrBatchEditMode()) {\r\n var columnIndex = this._getVisibleEditColumnIndex();\r\n var oldRowIndexCorrection = this._getEditRowIndexCorrection();\r\n var oldRowIndex = this._dataController.getRowIndexByKey(args.previousValue) + oldRowIndexCorrection;\r\n if (isDefined(args.value) && args.value !== args.previousValue) {\r\n var _this$_editCellFromOp;\r\n null === (_this$_editCellFromOp = this._editCellFromOptionChanged) || void 0 === _this$_editCellFromOp ? void 0 : _this$_editCellFromOp.call(this, columnIndex, columnIndex, oldRowIndex)\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n deleteRow: function(rowIndex) {\r\n if (this.isCellEditMode() && this.isEditing()) {\r\n var isNewRow = this._dataController.items()[rowIndex].isNewRow;\r\n var rowKey = this._dataController.getKeyByRowIndex(rowIndex);\r\n this.closeEditCell(null, isNewRow).always(() => {\r\n rowIndex = this._dataController.getRowIndexByKey(rowKey);\r\n this._checkAndDeleteRow(rowIndex)\r\n })\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _checkAndDeleteRow: function(rowIndex) {\r\n if (this.isBatchEditMode()) {\r\n this._deleteRowCore(rowIndex)\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _refreshCore: function(params) {\r\n var {\r\n isPageChanged: isPageChanged\r\n } = null !== params && void 0 !== params ? params : {};\r\n var needResetIndexes = this.isBatchEditMode() || isPageChanged && \"virtual\" !== this.option(\"scrolling.mode\");\r\n if (this.isCellOrBatchEditMode()) {\r\n if (needResetIndexes) {\r\n this._resetEditColumnName();\r\n this._resetEditRowKey()\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _allowRowAdding: function(params) {\r\n if (this.isBatchEditMode()) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _afterDeleteRow: function(rowIndex, oldEditRowIndex) {\r\n var dataController = this._dataController;\r\n if (this.isBatchEditMode()) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [oldEditRowIndex, rowIndex]\r\n });\r\n return (new Deferred).resolve()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _updateEditRow: function(row, forceUpdateRow, isCustomSetCellValue) {\r\n if (this.isCellOrBatchEditMode()) {\r\n this._updateRowImmediately(row, forceUpdateRow, isCustomSetCellValue)\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _isDefaultButtonVisible: function(button, options) {\r\n if (this.isCellOrBatchEditMode()) {\r\n var isBatchMode = this.isBatchEditMode();\r\n switch (button.name) {\r\n case \"save\":\r\n case \"cancel\":\r\n case \"edit\":\r\n return false;\r\n case \"delete\":\r\n return this.callBase.apply(this, arguments) && (!isBatchMode || !options.row.removed);\r\n case \"undelete\":\r\n return isBatchMode && this.allowDeleting(options) && options.row.removed;\r\n default:\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _isRowDeleteAllowed: function() {\r\n var callBase = this.callBase.apply(this, arguments);\r\n return callBase || this.isBatchEditMode()\r\n },\r\n _beforeEndSaving: function(changes) {\r\n if (this.isCellEditMode()) {\r\n var _changes$;\r\n if (\"update\" !== (null === (_changes$ = changes[0]) || void 0 === _changes$ ? void 0 : _changes$.type)) {\r\n this.callBase.apply(this, arguments)\r\n }\r\n } else {\r\n if (this.isBatchEditMode()) {\r\n this._resetModifiedClassCells(changes)\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n prepareEditButtons: function(headerPanel) {\r\n var editingOptions = this.option(\"editing\") || {};\r\n var buttonItems = this.callBase.apply(this, arguments);\r\n if ((editingOptions.allowUpdating || editingOptions.allowAdding || editingOptions.allowDeleting) && this.isBatchEditMode()) {\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"save\", \"saveEditData\", 21));\r\n buttonItems.push(this.prepareButtonItem(headerPanel, \"revert\", \"cancelEditData\", 22))\r\n }\r\n return buttonItems\r\n },\r\n _saveEditDataInner: function() {\r\n var _deferred2;\r\n var editRow = this._dataController.getVisibleRows()[this.getEditRowIndex()];\r\n var editColumn = this._getEditColumn();\r\n var showEditorAlways = null === editColumn || void 0 === editColumn ? void 0 : editColumn.showEditorAlways;\r\n var isUpdateInCellMode = this.isCellEditMode() && !(null !== editRow && void 0 !== editRow && editRow.isNewRow);\r\n var deferred;\r\n if (isUpdateInCellMode && showEditorAlways) {\r\n deferred = new Deferred;\r\n this.addDeferred(deferred)\r\n }\r\n return this.callBase.apply(this, arguments).always(null === (_deferred2 = deferred) || void 0 === _deferred2 ? void 0 : _deferred2.resolve)\r\n },\r\n _applyChange: function(options, params, forceUpdateRow) {\r\n var isUpdateInCellMode = this.isCellEditMode() && options.row && !options.row.isNewRow;\r\n var showEditorAlways = options.column.showEditorAlways;\r\n var isCustomSetCellValue = options.column.setCellValue !== options.column.defaultSetCellValue;\r\n var focusPreviousEditingCell = showEditorAlways && !forceUpdateRow && isUpdateInCellMode && this.hasEditData() && !this.isEditCell(options.rowIndex, options.columnIndex);\r\n if (focusPreviousEditingCell) {\r\n this._focusEditingCell();\r\n this._updateEditRow(options.row, true, isCustomSetCellValue);\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _applyChangeCore: function(options, forceUpdateRow) {\r\n var showEditorAlways = options.column.showEditorAlways;\r\n var isUpdateInCellMode = this.isCellEditMode() && options.row && !options.row.isNewRow;\r\n if (showEditorAlways && !forceUpdateRow) {\r\n if (isUpdateInCellMode) {\r\n this._setEditRowKey(options.row.key, true);\r\n this._setEditColumnNameByIndex(options.columnIndex, true);\r\n return this.saveEditData()\r\n } else if (this.isBatchEditMode()) {\r\n forceUpdateRow = this._needUpdateRow(options.column);\r\n return this.callBase(options, forceUpdateRow)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _processDataItemCore: function(item, _ref3) {\r\n var {\r\n data: data,\r\n type: type\r\n } = _ref3;\r\n if (this.isBatchEditMode() && type === DATA_EDIT_DATA_REMOVE_TYPE) {\r\n item.data = createObjectWithChanges(item.data, data)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _processRemoveCore: function(changes, editIndex, processIfBatch) {\r\n if (this.isBatchEditMode() && !processIfBatch) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _processRemoveIfError: function() {\r\n if (this.isBatchEditMode()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _beforeFocusElementInRow: function(rowIndex) {\r\n this.callBase.apply(this, arguments);\r\n var editRowIndex = rowIndex >= 0 ? rowIndex : 0;\r\n var columnIndex = this.getFirstEditableColumnIndex();\r\n columnIndex >= 0 && this.editCell(editRowIndex, columnIndex)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n var editingController = this._editingController;\r\n if (editingController.isCellOrBatchEditMode() && this.option(\"editing.allowUpdating\")) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \"td:not(.\" + EDITOR_CELL_CLASS + \")\", this.createAction(() => {\r\n if (editingController.isEditing()) {\r\n editingController.closeEditCell()\r\n }\r\n }))\r\n }\r\n return $table\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isRowRemoved = !!row.removed;\r\n if (editingController.isBatchEditMode()) {\r\n isRowRemoved && $row.addClass(ROW_REMOVED)\r\n }\r\n }\r\n return $row\r\n }\r\n },\r\n headerPanel: {\r\n isVisible: function() {\r\n var editingOptions = this.getController(\"editing\").option(\"editing\");\r\n return this.callBase() || editingOptions && (editingOptions.allowUpdating || editingOptions.allowDeleting) && editingOptions.mode === EDIT_MODE_BATCH\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing_constants.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nexport var ROW_CLASS = \"dx-row\";\r\nexport var CELL_MODIFIED_CLASS = \"dx-cell-modified\";\r\nexport var ROW_SELECTED_CLASS = \"dx-selection\";\r\nexport var EDIT_FORM_CLASS = \"edit-form\";\r\nexport var DATA_EDIT_DATA_INSERT_TYPE = \"insert\";\r\nexport var DATA_EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nexport var EDITING_POPUP_OPTION_NAME = \"editing.popup\";\r\nexport var EDITING_FORM_OPTION_NAME = \"editing.form\";\r\nexport var EDITING_EDITROWKEY_OPTION_NAME = \"editing.editRowKey\";\r\nexport var EDITING_EDITCOLUMNNAME_OPTION_NAME = \"editing.editColumnName\";\r\nexport var TARGET_COMPONENT_NAME = \"targetComponent\";\r\nexport var EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nexport var FOCUSABLE_ELEMENT_SELECTOR = \"[tabindex], \" + EDITORS_INPUT_SELECTOR;\r\nexport var EDIT_MODE_BATCH = \"batch\";\r\nexport var EDIT_MODE_ROW = \"row\";\r\nexport var EDIT_MODE_CELL = \"cell\";\r\nexport var EDIT_MODE_FORM = \"form\";\r\nexport var EDIT_MODE_POPUP = \"popup\";\r\nexport var FIRST_NEW_ROW_POSITION = \"first\";\r\nexport var LAST_NEW_ROW_POSITION = \"last\";\r\nexport var PAGE_BOTTOM_NEW_ROW_POSITION = \"pageBottom\";\r\nexport var PAGE_TOP_NEW_ROW_POSITION = \"pageTop\";\r\nexport var VIEWPORT_BOTTOM_NEW_ROW_POSITION = \"viewportBottom\";\r\nexport var VIEWPORT_TOP_NEW_ROW_POSITION = \"viewportTop\";\r\nexport var EDIT_MODES = [EDIT_MODE_BATCH, EDIT_MODE_ROW, EDIT_MODE_CELL, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var ROW_BASED_MODES = [EDIT_MODE_ROW, EDIT_MODE_FORM, EDIT_MODE_POPUP];\r\nexport var MODES_WITH_DELAYED_FOCUS = [EDIT_MODE_ROW, EDIT_MODE_FORM];\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing_form_based.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Button from \"../button\";\r\nimport devices from \"../../core/devices\";\r\nimport Form from \"../form\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isElementInDom\r\n} from \"../../core/utils/dom\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport {\r\n EDIT_MODE_FORM,\r\n EDIT_MODE_POPUP,\r\n FOCUSABLE_ELEMENT_SELECTOR,\r\n EDITING_EDITROWKEY_OPTION_NAME,\r\n EDITING_POPUP_OPTION_NAME,\r\n DATA_EDIT_DATA_INSERT_TYPE,\r\n EDITING_FORM_OPTION_NAME\r\n} from \"./ui.grid_core.editing_constants\";\r\nvar isRenovatedScrollable = !!Scrollable.IS_RENOVATED_WIDGET;\r\nvar EDIT_FORM_ITEM_CLASS = \"edit-form-item\";\r\nvar EDIT_POPUP_CLASS = \"edit-popup\";\r\nvar EDIT_POPUP_FORM_CLASS = \"edit-popup-form\";\r\nvar FOCUSABLE_ELEMENT_CLASS = isRenovatedScrollable ? \"dx-scrollable\" : \"dx-scrollable-container\";\r\nvar BUTTON_CLASS = \"dx-button\";\r\nvar FORM_BUTTONS_CONTAINER_CLASS = \"form-buttons-container\";\r\nvar getEditorType = item => {\r\n var _column$formItem;\r\n var column = item.column;\r\n return item.isCustomEditorType ? item.editorType : null === (_column$formItem = column.formItem) || void 0 === _column$formItem ? void 0 : _column$formItem.editorType\r\n};\r\nvar forEachFormItems = (items, callBack) => {\r\n items.forEach(item => {\r\n if (item.items || item.tabs) {\r\n forEachFormItems(item.items || item.tabs, callBack)\r\n } else {\r\n callBack(item)\r\n }\r\n })\r\n};\r\nexport var editingFormBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n init: function() {\r\n this._editForm = null;\r\n this._updateEditFormDeferred = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n isFormOrPopupEditMode: function() {\r\n return this.isPopupEditMode() || this.isFormEditMode()\r\n },\r\n isPopupEditMode: function() {\r\n var editMode = this.option(\"editing.mode\");\r\n return editMode === EDIT_MODE_POPUP\r\n },\r\n isFormEditMode: function() {\r\n var editMode = this.option(\"editing.mode\");\r\n return editMode === EDIT_MODE_FORM\r\n },\r\n getFirstEditableColumnIndex: function() {\r\n var firstFormItem = this._firstFormItem;\r\n if (this.isFormEditMode() && firstFormItem) {\r\n var editRowKey = this.option(EDITING_EDITROWKEY_OPTION_NAME);\r\n var editRowIndex = this._dataController.getRowIndexByKey(editRowKey);\r\n var $editFormElements = this._rowsView.getCellElements(editRowIndex);\r\n return this._rowsView._getEditFormEditorVisibleIndex($editFormElements, firstFormItem.column)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getEditFormRowIndex: function() {\r\n return this.isFormOrPopupEditMode() ? this._getVisibleEditRowIndex() : this.callBase.apply(this, arguments)\r\n },\r\n _isEditColumnVisible: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var editingOptions = this.option(\"editing\");\r\n return this.isFormOrPopupEditMode() ? editingOptions.allowUpdating || result : result\r\n },\r\n _handleDataChanged: function(args) {\r\n if (this.isPopupEditMode()) {\r\n var _args$items, _args$changeTypes;\r\n var editRowKey = this.option(\"editing.editRowKey\");\r\n var hasEditRow = null === args || void 0 === args ? void 0 : null === (_args$items = args.items) || void 0 === _args$items ? void 0 : _args$items.some(item => equalByValue(item.key, editRowKey));\r\n var onlyInsertChanges = (null === (_args$changeTypes = args.changeTypes) || void 0 === _args$changeTypes ? void 0 : _args$changeTypes.length) && args.changeTypes.every(item => \"insert\" === item);\r\n if ((\"refresh\" === args.changeType || hasEditRow && args.isOptionChanged) && !onlyInsertChanges) {\r\n this._repaintEditPopup()\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n getPopupContent: function() {\r\n var _this$_editPopup;\r\n var popupVisible = null === (_this$_editPopup = this._editPopup) || void 0 === _this$_editPopup ? void 0 : _this$_editPopup.option(\"visible\");\r\n if (this.isPopupEditMode() && popupVisible) {\r\n return this._$popupContent\r\n }\r\n },\r\n _showAddedRow: function(rowIndex) {\r\n if (this.isPopupEditMode()) {\r\n this._showEditPopup(rowIndex)\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _cancelEditDataCore: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this.isPopupEditMode()) {\r\n this._hideEditPopup()\r\n }\r\n },\r\n _updateEditRowCore: function(row, skipCurrentRow, isCustomSetCellValue) {\r\n var editForm = this._editForm;\r\n if (this.isPopupEditMode()) {\r\n if (this.option(\"repaintChangesOnly\")) {\r\n var _row$update;\r\n null === (_row$update = row.update) || void 0 === _row$update ? void 0 : _row$update.call(row, row);\r\n this._rowsView.renderDelayedTemplates()\r\n } else if (editForm) {\r\n this._updateEditFormDeferred = (new Deferred).done(() => editForm.repaint());\r\n if (!this._updateLockCount) {\r\n this._updateEditFormDeferred.resolve()\r\n }\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _showEditPopup: function(rowIndex, repaintForm) {\r\n var isMobileDevice = \"desktop\" !== devices.current().deviceType;\r\n var popupOptions = extend({\r\n showTitle: false,\r\n fullScreen: isMobileDevice,\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true,\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: this._getSaveButtonConfig()\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: this._getCancelButtonConfig()\r\n }],\r\n contentTemplate: this._getPopupEditFormTemplate(rowIndex)\r\n }, this.option(EDITING_POPUP_OPTION_NAME));\r\n if (!this._editPopup) {\r\n var $popupContainer = $(\"<div>\").appendTo(this.component.$element()).addClass(this.addWidgetPrefix(EDIT_POPUP_CLASS));\r\n this._editPopup = this._createComponent($popupContainer, Popup, {\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true\r\n });\r\n this._editPopup.on(\"hiding\", this._getEditPopupHiddenHandler());\r\n this._editPopup.on(\"shown\", e => {\r\n eventsEngine.trigger(e.component.$content().find(FOCUSABLE_ELEMENT_SELECTOR).not(\".\".concat(FOCUSABLE_ELEMENT_CLASS)).first(), \"focus\");\r\n if (repaintForm) {\r\n var _this$_editForm;\r\n null === (_this$_editForm = this._editForm) || void 0 === _this$_editForm ? void 0 : _this$_editForm.repaint()\r\n }\r\n })\r\n }\r\n this._editPopup.option(popupOptions);\r\n this._editPopup.show();\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getPopupEditFormTemplate: function(rowIndex) {\r\n var row = this.component.getVisibleRows()[rowIndex];\r\n var templateOptions = {\r\n row: row,\r\n values: row.values,\r\n rowType: row.rowType,\r\n key: row.key,\r\n rowIndex: rowIndex\r\n };\r\n this._rowsView._addWatchMethod(templateOptions, row);\r\n return container => {\r\n var formTemplate = this.getEditFormTemplate();\r\n var scrollable = this._createComponent($(\"<div>\").appendTo(container), Scrollable);\r\n this._$popupContent = $(scrollable.content());\r\n formTemplate(this._$popupContent, templateOptions, {\r\n isPopupForm: true\r\n });\r\n this._rowsView.renderDelayedTemplates()\r\n }\r\n },\r\n _repaintEditPopup: function() {\r\n var rowIndex = this._getVisibleEditRowIndex();\r\n if (rowIndex >= 0) {\r\n var _this$_editPopup2, _this$_editPopup3;\r\n var defaultAnimation = null === (_this$_editPopup2 = this._editPopup) || void 0 === _this$_editPopup2 ? void 0 : _this$_editPopup2.option(\"animation\");\r\n null === (_this$_editPopup3 = this._editPopup) || void 0 === _this$_editPopup3 ? void 0 : _this$_editPopup3.option(\"animation\", null);\r\n this._showEditPopup(rowIndex, true);\r\n if (void 0 !== defaultAnimation) {\r\n this._editPopup.option(\"animation\", defaultAnimation)\r\n }\r\n }\r\n },\r\n _hideEditPopup: function() {\r\n var _this$_editPopup4;\r\n null === (_this$_editPopup4 = this._editPopup) || void 0 === _this$_editPopup4 ? void 0 : _this$_editPopup4.option(\"visible\", false)\r\n },\r\n optionChanged: function(args) {\r\n if (\"editing\" === args.name && this.isFormOrPopupEditMode()) {\r\n var fullName = args.fullName;\r\n if (0 === fullName.indexOf(EDITING_FORM_OPTION_NAME)) {\r\n this._handleFormOptionChange(args);\r\n args.handled = true\r\n } else if (0 === fullName.indexOf(EDITING_POPUP_OPTION_NAME)) {\r\n this._handlePopupOptionChange(args);\r\n args.handled = true\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleFormOptionChange: function(args) {\r\n var _this$_editPopup5;\r\n if (this.isFormEditMode()) {\r\n var editRowIndex = this._getVisibleEditRowIndex();\r\n if (editRowIndex >= 0) {\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [editRowIndex]\r\n })\r\n }\r\n } else if (null !== (_this$_editPopup5 = this._editPopup) && void 0 !== _this$_editPopup5 && _this$_editPopup5.option(\"visible\") && 0 === args.fullName.indexOf(EDITING_FORM_OPTION_NAME)) {\r\n this._repaintEditPopup()\r\n }\r\n },\r\n _handlePopupOptionChange: function(args) {\r\n var editPopup = this._editPopup;\r\n if (editPopup) {\r\n var popupOptionName = args.fullName.slice(EDITING_POPUP_OPTION_NAME.length + 1);\r\n if (popupOptionName) {\r\n editPopup.option(popupOptionName, args.value)\r\n } else {\r\n editPopup.option(args.value)\r\n }\r\n }\r\n },\r\n renderFormEditTemplate: function(detailCellOptions, item, formTemplateOptions, container, isReadOnly) {\r\n var that = this;\r\n var $container = $(container);\r\n var column = item.column;\r\n var editorType = getEditorType(item);\r\n var rowData = null === detailCellOptions || void 0 === detailCellOptions ? void 0 : detailCellOptions.row.data;\r\n var form = formTemplateOptions.component;\r\n var {\r\n label: label,\r\n labelMark: labelMark,\r\n labelMode: labelMode\r\n } = formTemplateOptions.editorOptions || {};\r\n var cellOptions = extend({}, detailCellOptions, {\r\n data: rowData,\r\n cellElement: null,\r\n isOnForm: true,\r\n item: item,\r\n id: form.getItemID(item.name || item.dataField),\r\n column: extend({}, column, {\r\n editorType: editorType,\r\n editorOptions: extend({\r\n label: label,\r\n labelMark: labelMark,\r\n labelMode: labelMode\r\n }, column.editorOptions, item.editorOptions)\r\n }),\r\n columnIndex: column.index,\r\n setValue: !isReadOnly && column.allowEditing && function(value) {\r\n that.updateFieldValue(cellOptions, value)\r\n }\r\n });\r\n cellOptions.value = column.calculateCellValue(rowData);\r\n var template = this._getFormEditItemTemplate.bind(this)(cellOptions, column);\r\n this._rowsView.renderTemplate($container, template, cellOptions, !!isElementInDom($container)).done(() => {\r\n this._rowsView._updateCell($container, cellOptions)\r\n });\r\n return cellOptions\r\n },\r\n getFormEditorTemplate: function(cellOptions, item) {\r\n var column = this.component.columnOption(item.dataField);\r\n return (options, container) => {\r\n var _cellOptions$row$watc, _cellOptions$row;\r\n var $container = $(container);\r\n null === (_cellOptions$row$watc = (_cellOptions$row = cellOptions.row).watch) || void 0 === _cellOptions$row$watc ? void 0 : _cellOptions$row$watc.call(_cellOptions$row, (function() {\r\n return column.selector(cellOptions.row.data)\r\n }), () => {\r\n var _validator;\r\n var $editorElement = $container.find(\".dx-widget\").first();\r\n var validator = $editorElement.data(\"dxValidator\");\r\n var validatorOptions = null === (_validator = validator) || void 0 === _validator ? void 0 : _validator.option();\r\n $container.contents().remove();\r\n cellOptions = this.renderFormEditTemplate.bind(this)(cellOptions, item, options, $container);\r\n $editorElement = $container.find(\".dx-widget\").first();\r\n validator = $editorElement.data(\"dxValidator\");\r\n if (validatorOptions && !validator) {\r\n $editorElement.dxValidator({\r\n validationRules: validatorOptions.validationRules,\r\n validationGroup: validatorOptions.validationGroup,\r\n dataGetter: validatorOptions.dataGetter\r\n })\r\n }\r\n });\r\n cellOptions = this.renderFormEditTemplate.bind(this)(cellOptions, item, options, $container)\r\n }\r\n },\r\n getEditFormOptions: function(detailOptions) {\r\n var _this$_getValidationG;\r\n var editFormOptions = null === (_this$_getValidationG = this._getValidationGroupsInForm) || void 0 === _this$_getValidationG ? void 0 : _this$_getValidationG.call(this, detailOptions);\r\n var userCustomizeItem = this.option(\"editing.form.customizeItem\");\r\n var editFormItemClass = this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS);\r\n var items = this.option(\"editing.form.items\");\r\n var isCustomEditorType = {};\r\n if (!items) {\r\n var columns = this.getController(\"columns\").getColumns();\r\n items = [];\r\n each(columns, (function(_, column) {\r\n if (!column.isBand && !column.type) {\r\n items.push({\r\n column: column,\r\n name: column.name,\r\n dataField: column.dataField\r\n })\r\n }\r\n }))\r\n } else {\r\n forEachFormItems(items, item => {\r\n var itemId = (null === item || void 0 === item ? void 0 : item.name) || (null === item || void 0 === item ? void 0 : item.dataField);\r\n if (itemId) {\r\n isCustomEditorType[itemId] = !!item.editorType\r\n }\r\n })\r\n }\r\n return extend({}, editFormOptions, {\r\n items: items,\r\n formID: \"dx-\" + new Guid,\r\n customizeItem: item => {\r\n var column;\r\n var itemId = item.name || item.dataField;\r\n if (item.column || itemId) {\r\n column = item.column || this._columnsController.columnOption(item.name ? \"name:\" + item.name : \"dataField:\" + item.dataField)\r\n }\r\n if (column) {\r\n item.label = item.label || {};\r\n item.label.text = item.label.text || column.caption;\r\n if (\"boolean\" === column.dataType && void 0 === item.label.visible) {\r\n var labelMode = this.option(\"editing.form.labelMode\");\r\n if (\"floating\" === labelMode || \"static\" === labelMode) {\r\n item.label.visible = true\r\n }\r\n }\r\n item.template = item.template || this.getFormEditorTemplate(detailOptions, item);\r\n item.column = column;\r\n item.isCustomEditorType = isCustomEditorType[itemId];\r\n if (column.formItem) {\r\n extend(item, column.formItem)\r\n }\r\n if (void 0 === item.isRequired && column.validationRules) {\r\n item.isRequired = column.validationRules.some((function(rule) {\r\n return \"required\" === rule.type\r\n }));\r\n item.validationRules = []\r\n }\r\n var itemVisible = isDefined(item.visible) ? item.visible : true;\r\n if (!this._firstFormItem && itemVisible) {\r\n this._firstFormItem = item\r\n }\r\n }\r\n null === userCustomizeItem || void 0 === userCustomizeItem ? void 0 : userCustomizeItem.call(this, item);\r\n item.cssClass = isString(item.cssClass) ? item.cssClass + \" \" + editFormItemClass : editFormItemClass\r\n }\r\n })\r\n },\r\n getEditFormTemplate: function() {\r\n return ($container, detailOptions, options) => {\r\n var editFormOptions = this.option(EDITING_FORM_OPTION_NAME);\r\n var baseEditFormOptions = this.getEditFormOptions(detailOptions);\r\n var $formContainer = $(\"<div>\").appendTo($container);\r\n var isPopupForm = null === options || void 0 === options ? void 0 : options.isPopupForm;\r\n this._firstFormItem = void 0;\r\n if (isPopupForm) {\r\n $formContainer.addClass(this.addWidgetPrefix(EDIT_POPUP_FORM_CLASS))\r\n }\r\n this._editForm = this._createComponent($formContainer, Form, extend({}, editFormOptions, baseEditFormOptions));\r\n if (!isPopupForm) {\r\n var $buttonsContainer = $(\"<div>\").addClass(this.addWidgetPrefix(FORM_BUTTONS_CONTAINER_CLASS)).appendTo($container);\r\n this._createComponent($(\"<div>\").appendTo($buttonsContainer), Button, this._getSaveButtonConfig());\r\n this._createComponent($(\"<div>\").appendTo($buttonsContainer), Button, this._getCancelButtonConfig())\r\n }\r\n this._editForm.on(\"contentReady\", () => {\r\n var _this$_editPopup6;\r\n this._rowsView.renderDelayedTemplates();\r\n null === (_this$_editPopup6 = this._editPopup) || void 0 === _this$_editPopup6 ? void 0 : _this$_editPopup6.repaint()\r\n })\r\n }\r\n },\r\n getEditForm: function() {\r\n return this._editForm\r\n },\r\n _endUpdateCore: function() {\r\n var _this$_updateEditForm;\r\n null === (_this$_updateEditForm = this._updateEditFormDeferred) || void 0 === _this$_updateEditForm ? void 0 : _this$_updateEditForm.resolve()\r\n },\r\n _beforeEndSaving: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this.isPopupEditMode()) {\r\n var _this$_editPopup7;\r\n null === (_this$_editPopup7 = this._editPopup) || void 0 === _this$_editPopup7 ? void 0 : _this$_editPopup7.hide()\r\n }\r\n },\r\n _processDataItemCore: function(item, _ref) {\r\n var {\r\n type: type\r\n } = _ref;\r\n if (this.isPopupEditMode() && type === DATA_EDIT_DATA_INSERT_TYPE) {\r\n item.visible = false\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _editRowFromOptionChangedCore: function(rowIndices, rowIndex) {\r\n var isPopupEditMode = this.isPopupEditMode();\r\n this.callBase(rowIndices, rowIndex, isPopupEditMode);\r\n if (isPopupEditMode) {\r\n this._showEditPopup(rowIndex)\r\n }\r\n }\r\n },\r\n data: {\r\n _updateEditItem: function(item) {\r\n if (this._editingController.isFormEditMode()) {\r\n item.rowType = \"detail\"\r\n }\r\n },\r\n _getChangedColumnIndices: function(oldItem, newItem, visibleRowIndex, isLiveUpdate) {\r\n if (false === isLiveUpdate && newItem.isEditing && this._editingController.isFormEditMode()) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _renderCellContent: function($cell, options) {\r\n if (\"data\" === options.rowType && this._editingController.isPopupEditMode() && false === options.row.visible) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n getCellElements: function(rowIndex) {\r\n var $cellElements = this.callBase(rowIndex);\r\n var editingController = this._editingController;\r\n var editForm = editingController.getEditForm();\r\n var editFormRowIndex = editingController.getEditFormRowIndex();\r\n if (editFormRowIndex === rowIndex && $cellElements && editForm) {\r\n return editForm.$element().find(\".\" + this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS) + \", .\" + BUTTON_CLASS)\r\n }\r\n return $cellElements\r\n },\r\n _getVisibleColumnIndex: function($cells, rowIndex, columnIdentifier) {\r\n var editFormRowIndex = this._editingController.getEditFormRowIndex();\r\n if (editFormRowIndex === rowIndex && isString(columnIdentifier)) {\r\n var column = this._columnsController.columnOption(columnIdentifier);\r\n return this._getEditFormEditorVisibleIndex($cells, column)\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getEditFormEditorVisibleIndex: function($cells, column) {\r\n var visibleIndex = -1;\r\n each($cells, (function(index, cellElement) {\r\n var item = $(cellElement).find(\".dx-field-item-content\").data(\"dx-form-item\");\r\n if (null !== item && void 0 !== item && item.column && column && item.column.index === column.index) {\r\n visibleIndex = index;\r\n return false\r\n }\r\n }));\r\n return visibleIndex\r\n },\r\n _isFormItem: function(parameters) {\r\n var isDetailRow = \"detail\" === parameters.rowType || \"detailAdaptive\" === parameters.rowType;\r\n var isPopupEditing = \"data\" === parameters.rowType && this._editingController.isPopupEditMode();\r\n return (isDetailRow || isPopupEditing) && parameters.item\r\n },\r\n _updateCell: function($cell, parameters) {\r\n if (this._isFormItem(parameters)) {\r\n this._formItemPrepared(parameters, $cell)\r\n } else {\r\n this.callBase($cell, parameters)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editing_row_based.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n EDIT_MODE_ROW,\r\n MODES_WITH_DELAYED_FOCUS,\r\n ROW_SELECTED_CLASS,\r\n EDIT_FORM_CLASS\r\n} from \"./ui.grid_core.editing_constants\";\r\nvar EDIT_ROW = \"dx-edit-row\";\r\nexport var editingRowBasedModule = {\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n isRowEditMode: function() {\r\n return this.getEditMode() === EDIT_MODE_ROW\r\n },\r\n _afterCancelEditData: function(rowIndex) {\r\n var dataController = this._dataController;\r\n if (this.isRowBasedEditMode() && rowIndex >= 0) {\r\n dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [rowIndex, rowIndex + 1]\r\n })\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _isDefaultButtonVisible: function(button, options) {\r\n var isRowMode = this.isRowBasedEditMode();\r\n var isEditRow = options.row && options.row.rowIndex === this._getVisibleEditRowIndex();\r\n if (isRowMode) {\r\n switch (button.name) {\r\n case \"edit\":\r\n return !isEditRow && this.allowUpdating(options);\r\n case \"delete\":\r\n return this.callBase.apply(this, arguments) && !isEditRow;\r\n case \"save\":\r\n case \"cancel\":\r\n return isEditRow;\r\n default:\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n isEditRow: function(rowIndex) {\r\n return this.isRowBasedEditMode() && this.isEditRowByIndex(rowIndex)\r\n },\r\n _cancelSaving: function() {\r\n if (this.isRowBasedEditMode()) {\r\n if (!this.hasChanges()) {\r\n this._cancelEditDataCore()\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _refreshCore: function(params) {\r\n var {\r\n allowCancelEditing: allowCancelEditing\r\n } = null !== params && void 0 !== params ? params : {};\r\n if (this.isRowBasedEditMode()) {\r\n var hasUpdateChanges = this.getChanges().filter(it => \"update\" === it.type).length > 0;\r\n this.init();\r\n allowCancelEditing && hasUpdateChanges && this._cancelEditDataCore()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _isEditColumnVisible: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var editingOptions = this.option(\"editing\");\r\n var isRowEditMode = this.isRowEditMode();\r\n var isVisibleInRowEditMode = editingOptions.allowUpdating || editingOptions.allowAdding;\r\n return result || isRowEditMode && isVisibleInRowEditMode\r\n },\r\n _focusEditorIfNeed: function() {\r\n var editMode = this.getEditMode();\r\n if (this._needFocusEditor) {\r\n if (-1 !== MODES_WITH_DELAYED_FOCUS.indexOf(editMode)) {\r\n var $editingCell = this.getFocusedCellInRow(this._getVisibleEditRowIndex());\r\n this._delayedInputFocus($editingCell, () => {\r\n $editingCell && this.component.focus($editingCell)\r\n })\r\n }\r\n this._needFocusEditor = false\r\n }\r\n }\r\n },\r\n data: {\r\n _getChangedColumnIndices: function(oldItem, newItem, rowIndex, isLiveUpdate) {\r\n var editingController = this.getController(\"editing\");\r\n if (editingController.isRowBasedEditMode() && oldItem.isEditing !== newItem.isEditing) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var editingController = this._editingController;\r\n var isEditRow = editingController.isEditRow(row.rowIndex);\r\n if (isEditRow) {\r\n $row.addClass(EDIT_ROW);\r\n $row.removeClass(ROW_SELECTED_CLASS);\r\n if (\"detail\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(EDIT_FORM_CLASS))\r\n }\r\n }\r\n }\r\n return $row\r\n },\r\n _update: function(change) {\r\n this.callBase(change);\r\n if (\"updateSelection\" === change.changeType) {\r\n this.getTableElements().children(\"tbody\").children(\".\" + EDIT_ROW).removeClass(ROW_SELECTED_CLASS)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.editor_factory.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setOuterWidth,\r\n getOuterWidth,\r\n setOuterHeight,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport EditorFactoryMixin from \"../shared/ui.editor_factory_mixin\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUS_OVERLAY_CLASS = \"focus-overlay\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar FOCUSED_ELEMENT_CLASS = \"dx-focused\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar MODULE_NAMESPACE = \"dxDataGridEditorFactory\";\r\nvar UPDATE_FOCUS_EVENTS = addNamespace([pointerEvents.down, \"focusin\", clickEventName].join(\" \"), MODULE_NAMESPACE);\r\nvar DX_HIDDEN = \"dx-hidden\";\r\nvar EditorFactory = modules.ViewController.inherit({\r\n _getFocusedElement: function($dataGridElement) {\r\n var rowSelector = this.option(\"focusedRowEnabled\") ? \"tr[tabindex]:focus\" : \"tr[tabindex]:not(.dx-data-row):focus\";\r\n var focusedElementSelector = \"td[tabindex]:focus, \".concat(rowSelector, \", input:focus, textarea:focus, .dx-lookup-field:focus, .dx-checkbox:focus, .dx-switch:focus, .dx-dropdownbutton .dx-buttongroup:focus\");\r\n var $focusedElement = $dataGridElement.find(focusedElementSelector);\r\n return this.elementIsInsideGrid($focusedElement) && $focusedElement\r\n },\r\n _getFocusCellSelector: function() {\r\n return \".dx-row > td\"\r\n },\r\n _updateFocusCore: function() {\r\n var $dataGridElement = this.component && this.component.$element();\r\n var $focusCell;\r\n var hideBorders;\r\n if ($dataGridElement) {\r\n var $focus = this._getFocusedElement($dataGridElement);\r\n if ($focus && $focus.length) {\r\n if (!$focus.hasClass(CELL_FOCUS_DISABLED_CLASS) && !$focus.hasClass(ROW_CLASS)) {\r\n $focusCell = $focus.closest(this._getFocusCellSelector() + \", .\" + CELL_FOCUS_DISABLED_CLASS);\r\n hideBorders = $focusCell.get(0) !== $focus.get(0) && $focusCell.hasClass(EDITOR_INLINE_BLOCK);\r\n $focus = $focusCell\r\n }\r\n if ($focus.length && !$focus.hasClass(CELL_FOCUS_DISABLED_CLASS)) {\r\n this.focus($focus, hideBorders);\r\n return\r\n }\r\n }\r\n }\r\n this.loseFocus()\r\n },\r\n _updateFocus: function(e) {\r\n var that = this;\r\n var isFocusOverlay = e && e.event && $(e.event.target).hasClass(that.addWidgetPrefix(FOCUS_OVERLAY_CLASS));\r\n that._isFocusOverlay = that._isFocusOverlay || isFocusOverlay;\r\n clearTimeout(that._updateFocusTimeoutID);\r\n that._updateFocusTimeoutID = setTimeout((function() {\r\n delete that._updateFocusTimeoutID;\r\n if (!that._isFocusOverlay) {\r\n that._updateFocusCore()\r\n }\r\n that._isFocusOverlay = false\r\n }))\r\n },\r\n _updateFocusOverlaySize: function($element, position) {\r\n $element.hide();\r\n var location = positionUtils.calculate($element, extend({\r\n collision: \"fit\"\r\n }, position));\r\n if (location.h.oversize > 0) {\r\n setOuterWidth($element, getOuterWidth($element) - location.h.oversize)\r\n }\r\n if (location.v.oversize > 0) {\r\n setOuterHeight($element, getOuterHeight($element) - location.v.oversize)\r\n }\r\n $element.show()\r\n },\r\n callbackNames: function() {\r\n return [\"focused\"]\r\n },\r\n focus: function($element, hideBorder) {\r\n var that = this;\r\n if (void 0 === $element) {\r\n return that._$focusedElement\r\n } else if ($element) {\r\n if (!$element.is(that._$focusedElement)) {\r\n that._$focusedElement && that._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS)\r\n }\r\n that._$focusedElement = $element;\r\n clearTimeout(that._focusTimeoutID);\r\n that._focusTimeoutID = setTimeout((function() {\r\n delete that._focusTimeoutID;\r\n that.renderFocusOverlay($element, hideBorder);\r\n $element.addClass(FOCUSED_ELEMENT_CLASS);\r\n that.focused.fire($element)\r\n }))\r\n }\r\n },\r\n refocus: function() {\r\n var $focus = this.focus();\r\n this.focus($focus)\r\n },\r\n renderFocusOverlay: function($element, hideBorder) {\r\n if (!gridCoreUtils.isElementInCurrentGrid(this, $element)) {\r\n return\r\n }\r\n if (!this._$focusOverlay) {\r\n this._$focusOverlay = $(\"<div>\").addClass(this.addWidgetPrefix(FOCUS_OVERLAY_CLASS))\r\n }\r\n if (hideBorder) {\r\n this._$focusOverlay.addClass(DX_HIDDEN)\r\n } else if ($element.length) {\r\n var align = browser.mozilla ? \"right bottom\" : \"left top\";\r\n var $content = $element.closest(\".\" + this.addWidgetPrefix(CONTENT_CLASS));\r\n var elemCoord = getBoundingRect($element.get(0));\r\n this._$focusOverlay.removeClass(DX_HIDDEN).appendTo($content);\r\n setOuterHeight(this._$focusOverlay, elemCoord.bottom - elemCoord.top + 1);\r\n setOuterWidth(this._$focusOverlay, elemCoord.right - elemCoord.left + 1);\r\n var focusOverlayPosition = {\r\n precise: true,\r\n my: align,\r\n at: align,\r\n of: $element,\r\n boundary: $content.length && $content\r\n };\r\n this._updateFocusOverlaySize(this._$focusOverlay, focusOverlayPosition);\r\n positionUtils.setup(this._$focusOverlay, focusOverlayPosition);\r\n this._$focusOverlay.css(\"visibility\", \"visible\")\r\n }\r\n },\r\n resize: function() {\r\n var $focusedElement = this._$focusedElement;\r\n if ($focusedElement) {\r\n this.focus($focusedElement)\r\n }\r\n },\r\n loseFocus: function() {\r\n this._$focusedElement && this._$focusedElement.removeClass(FOCUSED_ELEMENT_CLASS);\r\n this._$focusedElement = null;\r\n this._$focusOverlay && this._$focusOverlay.addClass(DX_HIDDEN)\r\n },\r\n init: function() {\r\n this.createAction(\"onEditorPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this.createAction(\"onEditorPrepared\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n });\r\n this._updateFocusHandler = this._updateFocusHandler || this.createAction(this._updateFocus.bind(this));\r\n eventsEngine.on(this._getContainerRoot(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler);\r\n this._attachContainerEventHandlers()\r\n },\r\n _getContainerRoot: function() {\r\n var _this$component;\r\n var $container = null === (_this$component = this.component) || void 0 === _this$component ? void 0 : _this$component.$element();\r\n var root = domAdapter.getRootNode(null === $container || void 0 === $container ? void 0 : $container.get(0));\r\n if (root.nodeType === Node.DOCUMENT_FRAGMENT_NODE && !root.host) {\r\n return domAdapter.getDocument()\r\n }\r\n return root\r\n },\r\n _attachContainerEventHandlers: function() {\r\n var that = this;\r\n var $container = that.component && that.component.$element();\r\n if ($container) {\r\n eventsEngine.on($container, addNamespace(\"keydown\", MODULE_NAMESPACE), (function(e) {\r\n if (\"tab\" === normalizeKeyName(e)) {\r\n that._updateFocusHandler(e)\r\n }\r\n }))\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._focusTimeoutID);\r\n clearTimeout(this._updateFocusTimeoutID);\r\n eventsEngine.off(this._getContainerRoot(), UPDATE_FOCUS_EVENTS, this._updateFocusHandler)\r\n }\r\n}).include(EditorFactoryMixin);\r\nexport var editorFactoryModule = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n controllers: {\r\n editorFactory: EditorFactory\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.error_handling.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nvar ERROR_ROW_CLASS = \"dx-error-row\";\r\nvar ERROR_MESSAGE_CLASS = \"dx-error-message\";\r\nvar ERROR_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar ACTION_CLASS = \"action\";\r\nvar ErrorHandlingController = modules.ViewController.inherit({\r\n init: function() {\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n _createErrorRow: function(error, $tableElements) {\r\n var that = this;\r\n var $errorRow;\r\n var $closeButton;\r\n var $errorMessage = this._renderErrorMessage(error);\r\n if ($tableElements) {\r\n $errorRow = $(\"<tr>\").addClass(ERROR_ROW_CLASS);\r\n $closeButton = $(\"<div>\").addClass(ERROR_CLOSEBUTTON_CLASS).addClass(that.addWidgetPrefix(ACTION_CLASS));\r\n eventsEngine.on($closeButton, clickEventName, that.createAction((function(args) {\r\n var e = args.event;\r\n var $errorRow;\r\n var errorRowIndex = $(e.currentTarget).closest(\".\" + ERROR_ROW_CLASS).index();\r\n e.stopPropagation();\r\n each($tableElements, (function(_, tableElement) {\r\n $errorRow = $(tableElement).children(\"tbody\").children(\"tr\").eq(errorRowIndex);\r\n that.removeErrorRow($errorRow)\r\n }));\r\n that.getController(\"resizing\") && that.getController(\"resizing\").fireContentReadyAction()\r\n })));\r\n $(\"<td>\").attr({\r\n colSpan: that.getController(\"columns\").getVisibleColumns().length,\r\n role: \"presentation\"\r\n }).prepend($closeButton).append($errorMessage).appendTo($errorRow);\r\n return $errorRow\r\n }\r\n return $errorMessage\r\n },\r\n _renderErrorMessage: function(error) {\r\n var message = error.url ? error.message.replace(error.url, \"\") : error.message || error;\r\n var $message = $(\"<div>\").addClass(ERROR_MESSAGE_CLASS).text(message);\r\n if (error.url) {\r\n $(\"<a>\").attr(\"href\", error.url).text(error.url).appendTo($message)\r\n }\r\n return $message\r\n },\r\n renderErrorRow: function(error, rowIndex, $popupContent) {\r\n var that = this;\r\n var $errorMessageElement;\r\n var $firstErrorRow;\r\n if ($popupContent) {\r\n $popupContent.find(\".\" + ERROR_MESSAGE_CLASS).remove();\r\n $errorMessageElement = that._createErrorRow(error);\r\n $popupContent.prepend($errorMessageElement);\r\n return $errorMessageElement\r\n }\r\n var viewElement = rowIndex >= 0 || !that._columnHeadersView.isVisible() ? that._rowsView : that._columnHeadersView;\r\n var $tableElements = viewElement.getTableElements();\r\n each($tableElements, (function(_, tableElement) {\r\n $errorMessageElement = that._createErrorRow(error, $tableElements);\r\n $firstErrorRow = $firstErrorRow || $errorMessageElement;\r\n if (rowIndex >= 0) {\r\n var $row = viewElement._getRowElements($(tableElement)).eq(rowIndex);\r\n that.removeErrorRow($row.next());\r\n $errorMessageElement.insertAfter($row)\r\n } else {\r\n var $tbody = $(tableElement).children(\"tbody\");\r\n var rowElements = $tbody.children(\"tr\");\r\n if (that._columnHeadersView.isVisible()) {\r\n that.removeErrorRow(rowElements.last());\r\n $(tableElement).append($errorMessageElement)\r\n } else {\r\n that.removeErrorRow(rowElements.first());\r\n $tbody.first().prepend($errorMessageElement)\r\n }\r\n }\r\n }));\r\n var resizingController = that.getController(\"resizing\");\r\n resizingController && resizingController.fireContentReadyAction();\r\n return $firstErrorRow\r\n },\r\n removeErrorRow: function($row) {\r\n if (!$row) {\r\n var $columnHeaders = this._columnHeadersView && this._columnHeadersView.element();\r\n $row = $columnHeaders && $columnHeaders.find(\".\" + ERROR_ROW_CLASS);\r\n if (!$row || !$row.length) {\r\n var $rowsViewElement = this._rowsView.element();\r\n $row = $rowsViewElement && $rowsViewElement.find(\".\" + ERROR_ROW_CLASS)\r\n }\r\n }\r\n $row && $row.hasClass(ERROR_ROW_CLASS) && $row.remove()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"errorRowEnabled\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var errorHandlingModule = {\r\n defaultOptions: function() {\r\n return {\r\n errorRowEnabled: true\r\n }\r\n },\r\n controllers: {\r\n errorHandling: ErrorHandlingController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n var that = this;\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n that.callBase();\r\n that.dataErrorOccurred.add((function(error, $popupContent) {\r\n if (that.option(\"errorRowEnabled\")) {\r\n errorHandlingController.renderErrorRow(error, void 0, $popupContent)\r\n }\r\n }));\r\n that.changed.add((function(e) {\r\n if (e && \"loadError\" === e.changeType) {\r\n return\r\n }\r\n var errorHandlingController = that.getController(\"errorHandling\");\r\n var editingController = that.getController(\"editing\");\r\n if (editingController && !editingController.hasChanges()) {\r\n errorHandlingController && errorHandlingController.removeErrorRow()\r\n }\r\n }))\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder/filter_builder.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport Class from \"../../core/class\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport TreeView from \"../tree_view\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../overlay/utils\";\r\nimport EditorFactoryMixin from \"../shared/ui.editor_factory_mixin\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n renderValueText,\r\n getFilterExpression as _getFilterExpression,\r\n getNormalizedFilter,\r\n getNormalizedFields,\r\n getMergedOperations,\r\n convertToInnerStructure,\r\n getGroupCriteria,\r\n isGroup,\r\n isCondition,\r\n removeItem,\r\n createEmptyGroup,\r\n addItem,\r\n createCondition,\r\n getGroupMenuItem,\r\n setGroupValue,\r\n getCustomOperation,\r\n getAvailableOperations,\r\n getOperationFromAvailable,\r\n getOperationValue,\r\n updateConditionByOperation,\r\n getItems,\r\n getField,\r\n getCaptionWithParents,\r\n getDefaultOperation,\r\n getGroupValue,\r\n getCurrentLookupValueText,\r\n getCurrentValueText\r\n} from \"./utils\";\r\nvar FILTER_BUILDER_CLASS = \"dx-filterbuilder\";\r\nvar FILTER_BUILDER_GROUP_CLASS = FILTER_BUILDER_CLASS + \"-group\";\r\nvar FILTER_BUILDER_GROUP_ITEM_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-item\";\r\nvar FILTER_BUILDER_GROUP_CONTENT_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-content\";\r\nvar FILTER_BUILDER_GROUP_OPERATIONS_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-operations\";\r\nvar FILTER_BUILDER_GROUP_OPERATION_CLASS = FILTER_BUILDER_GROUP_CLASS + \"-operation\";\r\nvar FILTER_BUILDER_ACTION_CLASS = FILTER_BUILDER_CLASS + \"-action\";\r\nvar FILTER_BUILDER_IMAGE_CLASS = FILTER_BUILDER_ACTION_CLASS + \"-icon\";\r\nvar FILTER_BUILDER_IMAGE_ADD_CLASS = \"dx-icon-plus\";\r\nvar FILTER_BUILDER_IMAGE_REMOVE_CLASS = \"dx-icon-remove\";\r\nvar FILTER_BUILDER_ITEM_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-text\";\r\nvar FILTER_BUILDER_ITEM_FIELD_CLASS = FILTER_BUILDER_CLASS + \"-item-field\";\r\nvar FILTER_BUILDER_ITEM_OPERATION_CLASS = FILTER_BUILDER_CLASS + \"-item-operation\";\r\nvar FILTER_BUILDER_ITEM_VALUE_CLASS = FILTER_BUILDER_CLASS + \"-item-value\";\r\nvar FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS = FILTER_BUILDER_CLASS + \"-item-value-text\";\r\nvar FILTER_BUILDER_OVERLAY_CLASS = FILTER_BUILDER_CLASS + \"-overlay\";\r\nvar FILTER_BUILDER_FILTER_OPERATIONS_CLASS = FILTER_BUILDER_CLASS + \"-operations\";\r\nvar FILTER_BUILDER_FIELDS_CLASS = FILTER_BUILDER_CLASS + \"-fields\";\r\nvar FILTER_BUILDER_ADD_CONDITION_CLASS = FILTER_BUILDER_CLASS + \"-add-condition\";\r\nvar ACTIVE_CLASS = \"dx-state-active\";\r\nvar FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS = FILTER_BUILDER_CLASS + \"-menu-custom-operation\";\r\nvar SOURCE = \"filterBuilder\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar TAB_KEY = \"tab\";\r\nvar ENTER_KEY = \"enter\";\r\nvar ESCAPE_KEY = \"escape\";\r\nvar ACTIONS = [{\r\n name: \"onEditorPreparing\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onEditorPrepared\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"],\r\n category: \"rendering\"\r\n }\r\n}, {\r\n name: \"onValueChanged\",\r\n config: {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }\r\n}];\r\nvar OPERATORS = {\r\n and: \"and\",\r\n or: \"or\",\r\n notAnd: \"!and\",\r\n notOr: \"!or\"\r\n};\r\nvar EditorFactory = Class.inherit(EditorFactoryMixin);\r\nvar FilterBuilder = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n onEditorPreparing: null,\r\n onEditorPrepared: null,\r\n onValueChanged: null,\r\n fields: [],\r\n groupOperations: [\"and\", \"or\", \"notAnd\", \"notOr\"],\r\n maxGroupLevel: void 0,\r\n value: null,\r\n allowHierarchicalFields: false,\r\n groupOperationDescriptions: {\r\n and: messageLocalization.format(\"dxFilterBuilder-and\"),\r\n or: messageLocalization.format(\"dxFilterBuilder-or\"),\r\n notAnd: messageLocalization.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: messageLocalization.format(\"dxFilterBuilder-notOr\")\r\n },\r\n customOperations: [],\r\n closePopupOnTargetScroll: true,\r\n filterOperationDescriptions: {\r\n between: messageLocalization.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: messageLocalization.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: messageLocalization.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"closePopupOnTargetScroll\":\r\n break;\r\n case \"onEditorPreparing\":\r\n case \"onEditorPrepared\":\r\n case \"onValueChanged\":\r\n this._initActions();\r\n break;\r\n case \"customOperations\":\r\n this._initCustomOperations();\r\n this._invalidate();\r\n break;\r\n case \"fields\":\r\n case \"maxGroupLevel\":\r\n case \"groupOperations\":\r\n case \"allowHierarchicalFields\":\r\n case \"groupOperationDescriptions\":\r\n case \"filterOperationDescriptions\":\r\n this._invalidate();\r\n break;\r\n case \"value\":\r\n if (args.value !== args.previousValue) {\r\n var disableInvalidateForValue = this._disableInvalidateForValue;\r\n if (!disableInvalidateForValue) {\r\n this._initModel();\r\n this._invalidate()\r\n }\r\n this._disableInvalidateForValue = false;\r\n this.executeAction(\"onValueChanged\", {\r\n value: args.value,\r\n previousValue: args.previousValue\r\n });\r\n this._disableInvalidateForValue = disableInvalidateForValue\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n getFilterExpression: function() {\r\n var fields = this._getNormalizedFields();\r\n var value = extend(true, [], this._model);\r\n return _getFilterExpression(getNormalizedFilter(value), fields, this._customOperations, SOURCE)\r\n },\r\n _getNormalizedFields: function() {\r\n return getNormalizedFields(this.option(\"fields\"))\r\n },\r\n _updateFilter: function() {\r\n this._disableInvalidateForValue = true;\r\n var value = extend(true, [], this._model);\r\n var normalizedValue = getNormalizedFilter(value);\r\n var oldValue = getNormalizedFilter(this._getModel(this.option(\"value\")));\r\n if (JSON.stringify(oldValue) !== JSON.stringify(normalizedValue)) {\r\n this.option(\"value\", normalizedValue)\r\n }\r\n this._disableInvalidateForValue = false;\r\n this._fireContentReadyAction()\r\n },\r\n _init: function() {\r\n this._initCustomOperations();\r\n this._initModel();\r\n this._initEditorFactory();\r\n this._initActions();\r\n this.callBase()\r\n },\r\n _initEditorFactory: function() {\r\n this._editorFactory = new EditorFactory\r\n },\r\n _initCustomOperations: function() {\r\n this._customOperations = getMergedOperations(this.option(\"customOperations\"), this.option(\"filterOperationDescriptions.between\"), this)\r\n },\r\n _getDefaultGroupOperation: function() {\r\n var _this$option$, _this$option;\r\n return null !== (_this$option$ = null === (_this$option = this.option(\"groupOperations\")) || void 0 === _this$option ? void 0 : _this$option[0]) && void 0 !== _this$option$ ? _this$option$ : OPERATORS.and\r\n },\r\n _getModel: function(value) {\r\n return convertToInnerStructure(value, this._customOperations, this._getDefaultGroupOperation())\r\n },\r\n _initModel: function() {\r\n this._model = this._getModel(this.option(\"value\"))\r\n },\r\n _initActions: function() {\r\n var that = this;\r\n that._actions = {};\r\n ACTIONS.forEach((function(action) {\r\n var actionConfig = extend({}, action.config);\r\n that._actions[action.name] = that._createActionByOption(action.name, actionConfig)\r\n }))\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(FILTER_BUILDER_CLASS);\r\n this.callBase();\r\n this._createGroupElementByCriteria(this._model).appendTo(this.$element())\r\n },\r\n _createConditionElement: function(condition, parent) {\r\n return $(\"<div>\").addClass(FILTER_BUILDER_GROUP_CLASS).append(this._createConditionItem(condition, parent))\r\n },\r\n _createGroupElementByCriteria: function(criteria, parent) {\r\n var groupLevel = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : 0;\r\n var $group = this._createGroupElement(criteria, parent, groupLevel);\r\n var $groupContent = $group.find(\".\" + FILTER_BUILDER_GROUP_CONTENT_CLASS);\r\n var groupCriteria = getGroupCriteria(criteria);\r\n for (var i = 0; i < groupCriteria.length; i++) {\r\n var innerCriteria = groupCriteria[i];\r\n if (isGroup(innerCriteria)) {\r\n this._createGroupElementByCriteria(innerCriteria, criteria, groupLevel + 1).appendTo($groupContent)\r\n } else if (isCondition(innerCriteria)) {\r\n this._createConditionElement(innerCriteria, criteria).appendTo($groupContent)\r\n }\r\n }\r\n return $group\r\n },\r\n _createGroupElement: function(criteria, parent, groupLevel) {\r\n var $groupItem = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var $groupContent = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_CONTENT_CLASS);\r\n var $group = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_CLASS).append($groupItem).append($groupContent);\r\n if (null != parent) {\r\n this._createRemoveButton(() => {\r\n removeItem(parent, criteria);\r\n $group.remove();\r\n this._updateFilter()\r\n }).appendTo($groupItem)\r\n }\r\n this._createGroupOperationButton(criteria).appendTo($groupItem);\r\n this._createAddButton(() => {\r\n var newGroup = createEmptyGroup(this._getDefaultGroupOperation());\r\n addItem(newGroup, criteria);\r\n this._createGroupElement(newGroup, criteria, groupLevel + 1).appendTo($groupContent);\r\n this._updateFilter()\r\n }, () => {\r\n var field = this.option(\"fields\")[0];\r\n var newCondition = createCondition(field, this._customOperations);\r\n addItem(newCondition, criteria);\r\n this._createConditionElement(newCondition, criteria).appendTo($groupContent);\r\n this._updateFilter()\r\n }, groupLevel).appendTo($groupItem);\r\n return $group\r\n },\r\n _createButton: function(caption) {\r\n return $(\"<div>\").text(caption)\r\n },\r\n _createGroupOperationButton: function(criteria) {\r\n var groupOperations = this._getGroupOperations(criteria);\r\n var groupMenuItem = getGroupMenuItem(criteria, groupOperations);\r\n var caption = groupMenuItem.text;\r\n var $operationButton = groupOperations && groupOperations.length < 2 ? this._createButton(caption).addClass(DISABLED_STATE_CLASS) : this._createButtonWithMenu({\r\n caption: caption,\r\n menu: {\r\n items: groupOperations,\r\n displayExpr: \"text\",\r\n keyExpr: \"value\",\r\n onItemClick: e => {\r\n if (groupMenuItem !== e.itemData) {\r\n setGroupValue(criteria, e.itemData.value);\r\n $operationButton.text(e.itemData.text);\r\n groupMenuItem = e.itemData;\r\n this._updateFilter()\r\n }\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(groupMenuItem)\r\n },\r\n cssClass: FILTER_BUILDER_GROUP_OPERATIONS_CLASS\r\n }\r\n });\r\n return $operationButton.addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_GROUP_OPERATION_CLASS).attr(\"tabindex\", 0)\r\n },\r\n _createButtonWithMenu: function(options) {\r\n var that = this;\r\n var removeMenu = function() {\r\n that.$element().find(\".\" + ACTIVE_CLASS).removeClass(ACTIVE_CLASS);\r\n that.$element().find(\".dx-overlay .dx-treeview\").remove();\r\n that.$element().find(\".dx-overlay\").remove()\r\n };\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var position = rtlEnabled ? \"right\" : \"left\";\r\n var $button = this._createButton(options.caption);\r\n extend(options.menu, {\r\n focusStateEnabled: true,\r\n selectionMode: \"single\",\r\n onItemClick: (handler = options.menu.onItemClick, function(e) {\r\n handler(e);\r\n if (\"dxclick\" === e.event.type) {\r\n removeMenu()\r\n }\r\n }),\r\n onHiding: function(e) {\r\n $button.removeClass(ACTIVE_CLASS)\r\n },\r\n position: {\r\n my: position + \" top\",\r\n at: position + \" bottom\",\r\n offset: \"0 1\",\r\n of: $button,\r\n collision: \"flip\"\r\n },\r\n animation: null,\r\n onHidden: function() {\r\n removeMenu()\r\n },\r\n cssClass: FILTER_BUILDER_OVERLAY_CLASS + \" \" + options.menu.cssClass,\r\n rtlEnabled: rtlEnabled\r\n });\r\n var handler;\r\n options.popup = {\r\n onShown: function(info) {\r\n var treeViewElement = $(info.component.content()).find(\".dx-treeview\");\r\n var treeView = treeViewElement.dxTreeView(\"instance\");\r\n eventsEngine.on(treeViewElement, \"keyup keydown\", (function(e) {\r\n var keyName = normalizeKeyName(e);\r\n if (\"keydown\" === e.type && keyName === TAB_KEY || \"keyup\" === e.type && (keyName === ESCAPE_KEY || keyName === ENTER_KEY)) {\r\n info.component.hide();\r\n eventsEngine.trigger(options.menu.position.of, \"focus\")\r\n }\r\n }));\r\n treeView.focus();\r\n treeView.option(\"focusedElement\", null)\r\n }\r\n };\r\n this._subscribeOnClickAndEnterKey($button, (function() {\r\n removeMenu();\r\n that._createPopupWithTreeView(options, that.$element());\r\n $button.addClass(ACTIVE_CLASS)\r\n }));\r\n return $button\r\n },\r\n _hasValueButton: function(condition) {\r\n var customOperation = getCustomOperation(this._customOperations, condition[1]);\r\n return customOperation ? false !== customOperation.hasValue : null !== condition[2]\r\n },\r\n _createOperationButtonWithMenu: function(condition, field) {\r\n var that = this;\r\n var availableOperations = getAvailableOperations(field, this.option(\"filterOperationDescriptions\"), this._customOperations);\r\n var currentOperation = getOperationFromAvailable(getOperationValue(condition), availableOperations);\r\n var $operationButton = this._createButtonWithMenu({\r\n caption: currentOperation.text,\r\n menu: {\r\n items: availableOperations,\r\n displayExpr: \"text\",\r\n onItemRendered: function(e) {\r\n e.itemData.isCustom && $(e.itemElement).addClass(FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS)\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(currentOperation)\r\n },\r\n onItemClick: e => {\r\n if (currentOperation !== e.itemData) {\r\n currentOperation = e.itemData;\r\n updateConditionByOperation(condition, currentOperation.value, that._customOperations);\r\n var $valueButton = $operationButton.siblings().filter(\".\" + FILTER_BUILDER_ITEM_VALUE_CLASS);\r\n if (that._hasValueButton(condition)) {\r\n if (0 !== $valueButton.length) {\r\n $valueButton.remove()\r\n }\r\n that._createValueButton(condition, field).appendTo($operationButton.parent())\r\n } else {\r\n $valueButton.remove()\r\n }\r\n $operationButton.html(currentOperation.text);\r\n this._updateFilter()\r\n }\r\n },\r\n cssClass: FILTER_BUILDER_FILTER_OPERATIONS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_OPERATION_CLASS).attr(\"tabindex\", 0);\r\n return $operationButton\r\n },\r\n _createOperationAndValueButtons: function(condition, field, $item) {\r\n this._createOperationButtonWithMenu(condition, field).appendTo($item);\r\n if (this._hasValueButton(condition)) {\r\n this._createValueButton(condition, field).appendTo($item)\r\n }\r\n },\r\n _createFieldButtonWithMenu: function(fields, condition, field) {\r\n var that = this;\r\n var allowHierarchicalFields = this.option(\"allowHierarchicalFields\");\r\n var items = getItems(fields, allowHierarchicalFields);\r\n var item = getField(field.name || field.dataField, items);\r\n var getFullCaption = function(item, items) {\r\n return allowHierarchicalFields ? getCaptionWithParents(item, items) : item.caption\r\n };\r\n var $fieldButton = this._createButtonWithMenu({\r\n caption: getFullCaption(item, items),\r\n menu: {\r\n items: items,\r\n dataStructure: \"plain\",\r\n keyExpr: \"id\",\r\n parentId: \"parentId\",\r\n displayExpr: \"caption\",\r\n onItemClick: e => {\r\n if (item !== e.itemData) {\r\n item = e.itemData;\r\n condition[0] = item.name || item.dataField;\r\n condition[2] = \"object\" === item.dataType ? null : \"\";\r\n updateConditionByOperation(condition, getDefaultOperation(item), that._customOperations);\r\n $fieldButton.siblings().filter(\".\" + FILTER_BUILDER_ITEM_TEXT_CLASS).remove();\r\n that._createOperationAndValueButtons(condition, item, $fieldButton.parent());\r\n var caption = getFullCaption(item, e.component.option(\"items\"));\r\n $fieldButton.html(caption);\r\n this._updateFilter()\r\n }\r\n },\r\n onContentReady: function(e) {\r\n e.component.selectItem(item)\r\n },\r\n cssClass: FILTER_BUILDER_FIELDS_CLASS\r\n }\r\n }).addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_FIELD_CLASS).attr(\"tabindex\", 0);\r\n return $fieldButton\r\n },\r\n _createConditionItem: function(condition, parent) {\r\n var $item = $(\"<div>\").addClass(FILTER_BUILDER_GROUP_ITEM_CLASS);\r\n var fields = this._getNormalizedFields();\r\n var field = getField(condition[0], fields);\r\n this._createRemoveButton(() => {\r\n removeItem(parent, condition);\r\n var isSingleChild = 1 === $item.parent().children().length;\r\n if (isSingleChild) {\r\n $item.parent().remove()\r\n } else {\r\n $item.remove()\r\n }\r\n this._updateFilter()\r\n }).appendTo($item);\r\n this._createFieldButtonWithMenu(fields, condition, field).appendTo($item);\r\n this._createOperationAndValueButtons(condition, field, $item);\r\n return $item\r\n },\r\n _getGroupOperations: function(criteria) {\r\n var groupOperations = this.option(\"groupOperations\");\r\n var groupOperationDescriptions = this.option(\"groupOperationDescriptions\");\r\n if (!groupOperations || !groupOperations.length) {\r\n groupOperations = [getGroupValue(criteria).replace(\"!\", \"not\")]\r\n }\r\n return groupOperations.map(operation => ({\r\n text: groupOperationDescriptions[operation],\r\n value: OPERATORS[operation]\r\n }))\r\n },\r\n _createRemoveButton: function(handler) {\r\n var $removeButton = $(\"<div>\").addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_REMOVE_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0);\r\n this._subscribeOnClickAndEnterKey($removeButton, handler);\r\n return $removeButton\r\n },\r\n _createAddButton: function(addGroupHandler, addConditionHandler, groupLevel) {\r\n var $button;\r\n var maxGroupLevel = this.option(\"maxGroupLevel\");\r\n if (isDefined(maxGroupLevel) && groupLevel >= maxGroupLevel) {\r\n $button = this._createButton();\r\n this._subscribeOnClickAndEnterKey($button, addConditionHandler)\r\n } else {\r\n $button = this._createButtonWithMenu({\r\n menu: {\r\n items: [{\r\n caption: messageLocalization.format(\"dxFilterBuilder-addCondition\"),\r\n click: addConditionHandler\r\n }, {\r\n caption: messageLocalization.format(\"dxFilterBuilder-addGroup\"),\r\n click: addGroupHandler\r\n }],\r\n displayExpr: \"caption\",\r\n onItemClick: function(e) {\r\n e.itemData.click()\r\n },\r\n cssClass: FILTER_BUILDER_ADD_CONDITION_CLASS\r\n }\r\n })\r\n }\r\n return $button.addClass(FILTER_BUILDER_IMAGE_CLASS).addClass(FILTER_BUILDER_IMAGE_ADD_CLASS).addClass(FILTER_BUILDER_ACTION_CLASS).attr(\"tabindex\", 0)\r\n },\r\n _createValueText: function(item, field, $container) {\r\n var that = this;\r\n var $text = $(\"<div>\").html(\" \").addClass(FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS).attr(\"tabindex\", 0).appendTo($container);\r\n var value = item[2];\r\n var customOperation = getCustomOperation(that._customOperations, item[1]);\r\n if (!customOperation && field.lookup) {\r\n getCurrentLookupValueText(field, value, (function(result) {\r\n renderValueText($text, result)\r\n }))\r\n } else {\r\n when(getCurrentValueText(field, value, customOperation)).done(result => {\r\n renderValueText($text, result, customOperation)\r\n })\r\n }\r\n that._subscribeOnClickAndEnterKey($text, (function(e) {\r\n if (\"keyup\" === e.type) {\r\n e.stopPropagation()\r\n }\r\n that._createValueEditorWithEvents(item, field, $container)\r\n }));\r\n return $text\r\n },\r\n _updateConditionValue: function(item, value, callback) {\r\n var areValuesDifferent = item[2] !== value;\r\n if (areValuesDifferent) {\r\n item[2] = value\r\n }\r\n callback();\r\n this._updateFilter()\r\n },\r\n _addDocumentKeyUp: function($editor, handler) {\r\n var isComposing = false;\r\n var hasCompositionJustEnded = false;\r\n var document = domAdapter.getDocument();\r\n var documentKeyUpHandler = e => {\r\n if (isComposing || hasCompositionJustEnded) {\r\n hasCompositionJustEnded = false;\r\n return\r\n }\r\n handler(e)\r\n };\r\n eventsEngine.on(document, \"keyup\", documentKeyUpHandler);\r\n var input = $editor.find(\"input\");\r\n eventsEngine.on(input, \"compositionstart\", () => {\r\n isComposing = true\r\n });\r\n eventsEngine.on(input, \"compositionend\", () => {\r\n isComposing = false;\r\n hasCompositionJustEnded = true\r\n });\r\n eventsEngine.on(input, \"keydown\", event => {\r\n if (229 !== event.which) {\r\n hasCompositionJustEnded = false\r\n }\r\n });\r\n this._documentKeyUpHandler = documentKeyUpHandler\r\n },\r\n _addDocumentClick: function($editor, closeEditorFunc) {\r\n var document = domAdapter.getDocument();\r\n var documentClickHandler = e => {\r\n if (!this._isFocusOnEditorParts($editor, e.target)) {\r\n eventsEngine.trigger($editor.find(\"input\"), \"change\");\r\n closeEditorFunc()\r\n }\r\n };\r\n eventsEngine.on(document, \"dxpointerdown\", documentClickHandler);\r\n this._documentClickHandler = documentClickHandler\r\n },\r\n _isFocusOnEditorParts: function($editor, target) {\r\n var activeElement = target || domAdapter.getActiveElement();\r\n return $(activeElement).closest($editor.children()).length || $(activeElement).closest(\".dx-dropdowneditor-overlay\").length\r\n },\r\n _removeEvents: function() {\r\n var document = domAdapter.getDocument();\r\n isDefined(this._documentKeyUpHandler) && eventsEngine.off(document, \"keyup\", this._documentKeyUpHandler);\r\n isDefined(this._documentClickHandler) && eventsEngine.off(document, \"dxpointerdown\", this._documentClickHandler)\r\n },\r\n _dispose: function() {\r\n this._removeEvents();\r\n this.callBase()\r\n },\r\n _createValueEditorWithEvents: function(item, field, $container) {\r\n var value = item[2];\r\n var createValueText = () => {\r\n $container.empty();\r\n this._removeEvents();\r\n return this._createValueText(item, field, $container)\r\n };\r\n var closeEditor = () => {\r\n this._updateConditionValue(item, value, (function() {\r\n createValueText()\r\n }))\r\n };\r\n var options = {\r\n value: \"\" === value ? null : value,\r\n filterOperation: getOperationValue(item),\r\n setValue: function(data) {\r\n value = null === data ? \"\" : data\r\n },\r\n closeEditor: closeEditor,\r\n text: $container.text()\r\n };\r\n $container.empty();\r\n var $editor = this._createValueEditor($container, field, options);\r\n eventsEngine.trigger($editor.find(\"input\").not(\":hidden\").eq(0), \"focus\");\r\n this._removeEvents();\r\n this._addDocumentClick($editor, closeEditor);\r\n this._addDocumentKeyUp($editor, e => {\r\n var keyName = normalizeKeyName(e);\r\n if (keyName === TAB_KEY) {\r\n if (this._isFocusOnEditorParts($editor)) {\r\n return\r\n }\r\n this._updateConditionValue(item, value, (function() {\r\n createValueText();\r\n if (e.shiftKey) {\r\n eventsEngine.trigger($container.prev(), \"focus\")\r\n }\r\n }))\r\n }\r\n if (keyName === ESCAPE_KEY) {\r\n eventsEngine.trigger(createValueText(), \"focus\")\r\n }\r\n if (keyName === ENTER_KEY) {\r\n this._updateConditionValue(item, value, (function() {\r\n eventsEngine.trigger(createValueText(), \"focus\")\r\n }))\r\n }\r\n });\r\n this._fireContentReadyAction()\r\n },\r\n _createValueButton: function(item, field) {\r\n var $valueButton = $(\"<div>\").addClass(FILTER_BUILDER_ITEM_TEXT_CLASS).addClass(FILTER_BUILDER_ITEM_VALUE_CLASS);\r\n this._createValueText(item, field, $valueButton);\r\n return $valueButton\r\n },\r\n _createValueEditor: function($container, field, options) {\r\n var $editor = $(\"<div>\").attr(\"tabindex\", 0).appendTo($container);\r\n var customOperation = getCustomOperation(this._customOperations, options.filterOperation);\r\n var editorTemplate = customOperation && customOperation.editorTemplate ? customOperation.editorTemplate : field.editorTemplate;\r\n if (editorTemplate) {\r\n var template = this._getTemplate(editorTemplate);\r\n template.render({\r\n model: extend({\r\n field: field\r\n }, options),\r\n container: $editor\r\n })\r\n } else {\r\n this._editorFactory.createEditor.call(this, $editor, extend({}, field, options, {\r\n parentType: SOURCE\r\n }))\r\n }\r\n return $editor\r\n },\r\n _createPopupWithTreeView: function(options, $container) {\r\n var that = this;\r\n var $popup = $(\"<div>\").addClass(options.menu.cssClass).appendTo($container);\r\n this._createComponent($popup, Popup, {\r\n onHiding: options.menu.onHiding,\r\n onHidden: options.menu.onHidden,\r\n rtlEnabled: options.menu.rtlEnabled,\r\n position: options.menu.position,\r\n animation: options.menu.animation,\r\n contentTemplate: function(contentElement) {\r\n var $menuContainer = $(\"<div>\").appendTo(contentElement);\r\n that._createComponent($menuContainer, TreeView, options.menu);\r\n this.repaint()\r\n },\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: function() {\r\n return getElementMaxHeightByWindow(options.menu.position.of)\r\n },\r\n visible: true,\r\n focusStateEnabled: false,\r\n hideOnParentScroll: this.option(\"closePopupOnTargetScroll\"),\r\n hideOnOutsideClick: true,\r\n onShown: options.popup.onShown,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n showTitle: false,\r\n _wrapperClassExternal: options.menu.cssClass\r\n })\r\n },\r\n _subscribeOnClickAndEnterKey: function($button, handler) {\r\n eventsEngine.on($button, \"dxclick\", handler);\r\n eventsEngine.on($button, \"keyup\", (function(e) {\r\n if (normalizeKeyName(e) === ENTER_KEY) {\r\n handler(e)\r\n }\r\n }))\r\n }\r\n});\r\nregisterComponent(\"dxFilterBuilder\", FilterBuilder);\r\nexport default FilterBuilder;\r\n","/**\r\n * DevExtreme (esm/ui/filter_builder.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport FilterBuilder from \"./filter_builder/filter_builder\";\r\nexport default FilterBuilder;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.filter_builder.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport FilterBuilder from \"./../filter_builder\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport ScrollView from \"./../scroll_view\";\r\nimport Popup from \"./../popup/ui.popup\";\r\nimport {\r\n restoreFocus\r\n} from \"../shared/accessibility\";\r\nvar FilterBuilderView = modules.View.inherit({\r\n _renderCore: function() {\r\n this._updatePopupOptions()\r\n },\r\n _updatePopupOptions: function() {\r\n if (this.option(\"filterBuilderPopup.visible\")) {\r\n this._initPopup()\r\n } else if (this._filterBuilderPopup) {\r\n this._filterBuilderPopup.hide()\r\n }\r\n },\r\n _disposePopup: function() {\r\n if (this._filterBuilderPopup) {\r\n this._filterBuilderPopup.dispose();\r\n this._filterBuilderPopup = void 0\r\n }\r\n if (this._filterBuilder) {\r\n this._filterBuilder.dispose();\r\n this._filterBuilder = void 0\r\n }\r\n },\r\n _initPopup: function() {\r\n var that = this;\r\n that._disposePopup();\r\n that._filterBuilderPopup = that._createComponent(that.element(), Popup, extend({\r\n title: messageLocalization.format(\"dxDataGrid-filterBuilderPopupTitle\"),\r\n contentTemplate: function($contentElement) {\r\n return that._getPopupContentTemplate($contentElement)\r\n },\r\n onOptionChanged: function(args) {\r\n if (\"visible\" === args.name) {\r\n that.option(\"filterBuilderPopup.visible\", args.value)\r\n }\r\n },\r\n toolbarItems: that._getPopupToolbarItems()\r\n }, that.option(\"filterBuilderPopup\"), {\r\n onHidden: function(e) {\r\n restoreFocus(that);\r\n that._disposePopup()\r\n }\r\n }))\r\n },\r\n _getPopupContentTemplate: function(contentElement) {\r\n var $contentElement = $(contentElement);\r\n var $filterBuilderContainer = $(\"<div>\").appendTo($(contentElement));\r\n this._filterBuilder = this._createComponent($filterBuilderContainer, FilterBuilder, extend({\r\n value: this.option(\"filterValue\"),\r\n fields: this.getController(\"columns\").getFilteringColumns()\r\n }, this.option(\"filterBuilder\"), {\r\n customOperations: this.getController(\"filterSync\").getCustomFilterOperations()\r\n }));\r\n this._createComponent($contentElement, ScrollView, {\r\n direction: \"both\"\r\n })\r\n },\r\n _getPopupToolbarItems: function() {\r\n var that = this;\r\n return [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: messageLocalization.format(\"OK\"),\r\n onClick: function(e) {\r\n var filter = that._filterBuilder.option(\"value\");\r\n that.option(\"filterValue\", filter);\r\n that._filterBuilderPopup.hide()\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: messageLocalization.format(\"Cancel\"),\r\n onClick: function(e) {\r\n that._filterBuilderPopup.hide()\r\n }\r\n }\r\n }]\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterBuilder\":\r\n case \"filterBuilderPopup\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var filterBuilderModule = {\r\n defaultOptions: function() {\r\n return {\r\n filterBuilder: {\r\n groupOperationDescriptions: {\r\n and: messageLocalization.format(\"dxFilterBuilder-and\"),\r\n or: messageLocalization.format(\"dxFilterBuilder-or\"),\r\n notAnd: messageLocalization.format(\"dxFilterBuilder-notAnd\"),\r\n notOr: messageLocalization.format(\"dxFilterBuilder-notOr\")\r\n },\r\n filterOperationDescriptions: {\r\n between: messageLocalization.format(\"dxFilterBuilder-filterOperationBetween\"),\r\n equal: messageLocalization.format(\"dxFilterBuilder-filterOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxFilterBuilder-filterOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxFilterBuilder-filterOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxFilterBuilder-filterOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxFilterBuilder-filterOperationContains\"),\r\n notContains: messageLocalization.format(\"dxFilterBuilder-filterOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxFilterBuilder-filterOperationEndsWith\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n }\r\n },\r\n filterBuilderPopup: {}\r\n }\r\n },\r\n views: {\r\n filterBuilderView: FilterBuilderView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.filter_panel.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridUtils from \"./ui.grid_core.utils\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport CheckBox from \"../check_box\";\r\nimport {\r\n getCurrentLookupValueText,\r\n getCustomOperation,\r\n getCurrentValueText,\r\n getField,\r\n getCaptionByOperation,\r\n getGroupValue,\r\n isCondition,\r\n isGroup\r\n} from \"../filter_builder/utils\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n captionize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n registerKeyboardAction\r\n} from \"./ui.grid_core.accessibility\";\r\nvar FILTER_PANEL_CLASS = \"filter-panel\";\r\nvar FILTER_PANEL_TEXT_CLASS = FILTER_PANEL_CLASS + \"-text\";\r\nvar FILTER_PANEL_CHECKBOX_CLASS = FILTER_PANEL_CLASS + \"-checkbox\";\r\nvar FILTER_PANEL_CLEAR_FILTER_CLASS = FILTER_PANEL_CLASS + \"-clear-filter\";\r\nvar FILTER_PANEL_LEFT_CONTAINER = FILTER_PANEL_CLASS + \"-left\";\r\nvar FILTER_PANEL_TARGET = \"filterPanel\";\r\nvar FilterPanelView = modules.View.inherit({\r\n isVisible: function() {\r\n return this.option(\"filterPanel.visible\") && this.getController(\"data\").dataSource()\r\n },\r\n init: function() {\r\n this.getController(\"data\").dataSourceChanged.add(() => this.render())\r\n },\r\n _renderCore: function() {\r\n var $element = this.element();\r\n $element.empty().addClass(this.addWidgetPrefix(FILTER_PANEL_CLASS));\r\n var $leftContainer = $(\"<div>\").addClass(this.addWidgetPrefix(FILTER_PANEL_LEFT_CONTAINER)).appendTo($element);\r\n if (this.option(\"filterValue\") || this._filterValueBuffer) {\r\n $leftContainer.append(this._getCheckElement()).append(this._getFilterElement()).append(this._getTextElement());\r\n $element.append(this._getRemoveButtonElement())\r\n } else {\r\n $leftContainer.append(this._getFilterElement()).append(this._getTextElement())\r\n }\r\n },\r\n _getCheckElement: function() {\r\n var that = this;\r\n var $element = $(\"<div>\").addClass(this.addWidgetPrefix(FILTER_PANEL_CHECKBOX_CLASS));\r\n that._createComponent($element, CheckBox, {\r\n value: that.option(\"filterPanel.filterEnabled\"),\r\n onValueChanged: function(e) {\r\n that.option(\"filterPanel.filterEnabled\", e.value)\r\n }\r\n });\r\n $element.attr(\"title\", this.option(\"filterPanel.texts.filterEnabledHint\"));\r\n return $element\r\n },\r\n _getFilterElement: function() {\r\n var that = this;\r\n var $element = $(\"<div>\").addClass(\"dx-icon-filter\");\r\n eventsEngine.on($element, \"click\", () => that._showFilterBuilder());\r\n registerKeyboardAction(\"filterPanel\", that, $element, void 0, () => that._showFilterBuilder());\r\n that._addTabIndexToElement($element);\r\n return $element\r\n },\r\n _getTextElement: function() {\r\n var that = this;\r\n var $textElement = $(\"<div>\").addClass(that.addWidgetPrefix(FILTER_PANEL_TEXT_CLASS));\r\n var filterText;\r\n var filterValue = that.option(\"filterValue\");\r\n if (filterValue) {\r\n when(that.getFilterText(filterValue, that.getController(\"filterSync\").getCustomFilterOperations())).done((function(filterText) {\r\n var customizeText = that.option(\"filterPanel.customizeText\");\r\n if (customizeText) {\r\n var customText = customizeText({\r\n component: that.component,\r\n filterValue: filterValue,\r\n text: filterText\r\n });\r\n if (\"string\" === typeof customText) {\r\n filterText = customText\r\n }\r\n }\r\n $textElement.text(filterText)\r\n }))\r\n } else {\r\n filterText = that.option(\"filterPanel.texts.createFilter\");\r\n $textElement.text(filterText)\r\n }\r\n eventsEngine.on($textElement, \"click\", () => that._showFilterBuilder());\r\n registerKeyboardAction(\"filterPanel\", that, $textElement, void 0, () => that._showFilterBuilder());\r\n that._addTabIndexToElement($textElement);\r\n return $textElement\r\n },\r\n _showFilterBuilder: function() {\r\n this.option(\"filterBuilderPopup.visible\", true)\r\n },\r\n _getRemoveButtonElement: function() {\r\n var that = this;\r\n var clearFilterValue = () => that.option(\"filterValue\", null);\r\n var $element = $(\"<div>\").addClass(that.addWidgetPrefix(FILTER_PANEL_CLEAR_FILTER_CLASS)).text(that.option(\"filterPanel.texts.clearFilter\"));\r\n eventsEngine.on($element, \"click\", clearFilterValue);\r\n registerKeyboardAction(\"filterPanel\", this, $element, void 0, clearFilterValue);\r\n that._addTabIndexToElement($element);\r\n return $element\r\n },\r\n _addTabIndexToElement: function($element) {\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n var tabindex = this.option(\"tabindex\") || 0;\r\n $element.attr(\"tabindex\", tabindex)\r\n }\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterValue\":\r\n this._invalidate();\r\n this.option(\"filterPanel.filterEnabled\", true);\r\n args.handled = true;\r\n break;\r\n case \"filterPanel\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getConditionText: function(fieldText, operationText, valueText) {\r\n var result = \"[\".concat(fieldText, \"] \").concat(operationText);\r\n if (isDefined(valueText)) {\r\n result += valueText\r\n }\r\n return result\r\n },\r\n _getValueMaskedText: function(value) {\r\n return Array.isArray(value) ? \"('\".concat(value.join(\"', '\"), \"')\") : \" '\".concat(value, \"'\")\r\n },\r\n _getValueText: function(field, customOperation, value) {\r\n var deferred = new Deferred;\r\n var hasCustomOperation = customOperation && customOperation.customizeText;\r\n if (isDefined(value) || hasCustomOperation) {\r\n if (!hasCustomOperation && field.lookup) {\r\n getCurrentLookupValueText(field, value, data => {\r\n deferred.resolve(this._getValueMaskedText(data))\r\n })\r\n } else {\r\n var displayValue = Array.isArray(value) ? value : gridUtils.getDisplayValue(field, value);\r\n when(getCurrentValueText(field, displayValue, customOperation, FILTER_PANEL_TARGET)).done(data => {\r\n deferred.resolve(this._getValueMaskedText(data))\r\n })\r\n }\r\n } else {\r\n deferred.resolve(\"\")\r\n }\r\n return deferred.promise()\r\n },\r\n getConditionText: function(filterValue, options) {\r\n var that = this;\r\n var operation = filterValue[1];\r\n var deferred = new Deferred;\r\n var customOperation = getCustomOperation(options.customOperations, operation);\r\n var operationText;\r\n var field = getField(filterValue[0], options.columns);\r\n var fieldText = field.caption || \"\";\r\n var value = filterValue[2];\r\n if (customOperation) {\r\n operationText = customOperation.caption || captionize(customOperation.name)\r\n } else if (null === value) {\r\n operationText = getCaptionByOperation(\"=\" === operation ? \"isblank\" : \"isnotblank\", options.filterOperationDescriptions)\r\n } else {\r\n operationText = getCaptionByOperation(operation, options.filterOperationDescriptions)\r\n }\r\n this._getValueText(field, customOperation, value).done(valueText => {\r\n deferred.resolve(that._getConditionText(fieldText, operationText, valueText))\r\n });\r\n return deferred\r\n },\r\n getGroupText: function(filterValue, options, isInnerGroup) {\r\n var that = this;\r\n var result = new Deferred;\r\n var textParts = [];\r\n var groupValue = getGroupValue(filterValue);\r\n filterValue.forEach(item => {\r\n if (isCondition(item)) {\r\n textParts.push(that.getConditionText(item, options))\r\n } else if (isGroup(item)) {\r\n textParts.push(that.getGroupText(item, options, true))\r\n }\r\n });\r\n when.apply(this, textParts).done((function() {\r\n var text;\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n if (\"!\" === groupValue[0]) {\r\n var groupText = options.groupOperationDescriptions[\"not\" + groupValue.substring(1, 2).toUpperCase() + groupValue.substring(2)].split(\" \");\r\n text = \"\".concat(groupText[0], \" \").concat(args[0])\r\n } else {\r\n text = args.join(\" \".concat(options.groupOperationDescriptions[groupValue], \" \"))\r\n }\r\n if (isInnerGroup) {\r\n text = \"(\".concat(text, \")\")\r\n }\r\n result.resolve(text)\r\n }));\r\n return result\r\n },\r\n getFilterText: function(filterValue, customOperations) {\r\n var options = {\r\n customOperations: customOperations,\r\n columns: this.getController(\"columns\").getFilteringColumns(),\r\n filterOperationDescriptions: this.option(\"filterBuilder.filterOperationDescriptions\"),\r\n groupOperationDescriptions: this.option(\"filterBuilder.groupOperationDescriptions\")\r\n };\r\n return isCondition(filterValue) ? this.getConditionText(filterValue, options) : this.getGroupText(filterValue, options)\r\n }\r\n});\r\nexport var filterPanelModule = {\r\n defaultOptions: function() {\r\n return {\r\n filterPanel: {\r\n visible: false,\r\n filterEnabled: true,\r\n texts: {\r\n createFilter: messageLocalization.format(\"dxDataGrid-filterPanelCreateFilter\"),\r\n clearFilter: messageLocalization.format(\"dxDataGrid-filterPanelClearFilter\"),\r\n filterEnabledHint: messageLocalization.format(\"dxDataGrid-filterPanelFilterEnabledHint\")\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n filterPanelView: FilterPanelView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterPanel\":\r\n this._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/menu/ui.submenu.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight,\r\n setWidth,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport animationPosition from \"../../animation/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ContextMenu from \"../context_menu\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nclass Submenu extends ContextMenu {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n orientation: \"horizontal\",\r\n tabIndex: null,\r\n onHoverStart: noop\r\n })\r\n }\r\n _initDataAdapter() {\r\n this._dataAdapter = this.option(\"_dataAdapter\");\r\n if (!this._dataAdapter) {\r\n super._initDataAdapter()\r\n }\r\n }\r\n _renderContentImpl() {\r\n this._renderContextMenuOverlay();\r\n super._renderContentImpl();\r\n var node = this._dataAdapter.getNodeByKey(this.option(\"_parentKey\"));\r\n node && this._renderItems(this._getChildNodes(node));\r\n this._renderDelimiter()\r\n }\r\n _renderDelimiter() {\r\n this.$contentDelimiter = $(\"<div>\").appendTo(this._itemContainer()).addClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)\r\n }\r\n _getOverlayOptions() {\r\n return extend(super._getOverlayOptions(), {\r\n onPositioned: this._overlayPositionedActionHandler.bind(this)\r\n })\r\n }\r\n _overlayPositionedActionHandler(arg) {\r\n this._showDelimiter(arg)\r\n }\r\n _hoverEndHandler(e) {\r\n super._hoverEndHandler(e);\r\n this._toggleFocusClass(false, e.currentTarget)\r\n }\r\n _isMenuHorizontal() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _hoverStartHandler(e) {\r\n var hoverStartAction = this.option(\"onHoverStart\");\r\n hoverStartAction(e);\r\n super._hoverStartHandler(e);\r\n this._toggleFocusClass(true, e.currentTarget)\r\n }\r\n _drawSubmenu($rootItem) {\r\n this._actions.onShowing({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n });\r\n super._drawSubmenu($rootItem);\r\n this._actions.onShown({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n })\r\n }\r\n _hideSubmenu($rootItem) {\r\n this._actions.onHiding({\r\n cancel: true,\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n });\r\n super._hideSubmenu($rootItem);\r\n this._actions.onHidden({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: this\r\n })\r\n }\r\n _showDelimiter(arg) {\r\n if (!this.$contentDelimiter) {\r\n return\r\n }\r\n var $submenu = this._itemContainer().children(\".\".concat(DX_SUBMENU_CLASS)).eq(0);\r\n var $rootItem = this.option(\"position\").of;\r\n var position = {\r\n of: $submenu\r\n };\r\n var containerOffset = arg.position;\r\n var vLocation = containerOffset.v.location;\r\n var hLocation = containerOffset.h.location;\r\n var rootOffset = $rootItem.offset();\r\n var offsetLeft = Math.round(rootOffset.left);\r\n var offsetTop = Math.round(rootOffset.top);\r\n var rootWidth = getWidth($rootItem);\r\n var rootHeight = getHeight($rootItem);\r\n var submenuWidth = getWidth($submenu);\r\n var submenuHeight = getHeight($submenu);\r\n this.$contentDelimiter.css(\"display\", \"block\");\r\n setWidth(this.$contentDelimiter, this._isMenuHorizontal() ? rootWidth < submenuWidth ? rootWidth - 2 : submenuWidth : 2);\r\n setHeight(this.$contentDelimiter, this._isMenuHorizontal() ? 2 : rootHeight < submenuHeight ? rootHeight - 2 : submenuHeight);\r\n if (this._isMenuHorizontal()) {\r\n if (vLocation > offsetTop) {\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"right top\"\r\n }\r\n } else {\r\n setHeight(this.$contentDelimiter, 5);\r\n if (Math.round(hLocation) === offsetLeft) {\r\n position.offset = \"1 4\";\r\n position.at = position.my = \"left bottom\"\r\n } else {\r\n position.offset = \"-1 2\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n }\r\n } else if (hLocation > offsetLeft) {\r\n if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"-1 1\";\r\n position.at = position.my = \"left top\"\r\n } else {\r\n position.offset = \"-1 -1\";\r\n position.at = position.my = \"left bottom\"\r\n }\r\n } else if (Math.round(vLocation) === offsetTop) {\r\n position.offset = \"1 1\";\r\n position.at = position.my = \"right top\"\r\n } else {\r\n position.offset = \"1 -1\";\r\n position.at = position.my = \"right bottom\"\r\n }\r\n animationPosition.setup(this.$contentDelimiter, position)\r\n }\r\n _getContextMenuPosition() {\r\n return this.option(\"position\")\r\n }\r\n isOverlayVisible() {\r\n return this._overlay.option(\"visible\")\r\n }\r\n getOverlayContent() {\r\n return this._overlay.$content()\r\n }\r\n}\r\nexport default Submenu;\r\n","/**\r\n * DevExtreme (esm/ui/menu/ui.menu.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isPlainObject,\r\n isObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getElementMaxHeightByWindow\r\n} from \"../overlay/utils\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n end as hoverEventEnd\r\n} from \"../../events/hover\";\r\nimport MenuBase from \"../context_menu/ui.menu_base\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport Submenu from \"./ui.submenu\";\r\nimport Button from \"../button\";\r\nimport TreeView from \"../tree_view\";\r\nvar DX_MENU_CLASS = \"dx-menu\";\r\nvar DX_MENU_VERTICAL_CLASS = DX_MENU_CLASS + \"-vertical\";\r\nvar DX_MENU_HORIZONTAL_CLASS = DX_MENU_CLASS + \"-horizontal\";\r\nvar DX_MENU_ITEM_CLASS = DX_MENU_CLASS + \"-item\";\r\nvar DX_MENU_ITEMS_CONTAINER_CLASS = DX_MENU_CLASS + \"-items-container\";\r\nvar DX_MENU_ITEM_EXPANDED_CLASS = DX_MENU_ITEM_CLASS + \"-expanded\";\r\nvar DX_CONTEXT_MENU_CLASS = \"dx-context-menu\";\r\nvar DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS = DX_CONTEXT_MENU_CLASS + \"-container-border\";\r\nvar DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS = \"dx-context-menu-content-delimiter\";\r\nvar DX_SUBMENU_CLASS = \"dx-submenu\";\r\nvar DX_STATE_DISABLED_CLASS = \"dx-state-disabled\";\r\nvar DX_STATE_HOVER_CLASS = \"dx-state-hover\";\r\nvar DX_STATE_ACTIVE_CLASS = \"dx-state-active\";\r\nvar DX_ADAPTIVE_MODE_CLASS = DX_MENU_CLASS + \"-adaptive-mode\";\r\nvar DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS = DX_MENU_CLASS + \"-hamburger-button\";\r\nvar DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS = DX_ADAPTIVE_MODE_CLASS + \"-overlay-wrapper\";\r\nvar FOCUS_UP = \"up\";\r\nvar FOCUS_DOWN = \"down\";\r\nvar FOCUS_LEFT = \"left\";\r\nvar FOCUS_RIGHT = \"right\";\r\nvar SHOW_SUBMENU_OPERATION = \"showSubmenu\";\r\nvar NEXTITEM_OPERATION = \"nextItem\";\r\nvar PREVITEM_OPERATION = \"prevItem\";\r\nvar DEFAULT_DELAY = {\r\n show: 50,\r\n hide: 300\r\n};\r\nvar ACTIONS = [\"onSubmenuShowing\", \"onSubmenuShown\", \"onSubmenuHiding\", \"onSubmenuHidden\", \"onItemContextMenu\", \"onItemClick\", \"onSelectionChanged\", \"onItemRendered\"];\r\nclass Menu extends MenuBase {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n orientation: \"horizontal\",\r\n submenuDirection: \"auto\",\r\n showFirstSubmenuMode: {\r\n name: \"onClick\",\r\n delay: {\r\n show: 50,\r\n hide: 300\r\n }\r\n },\r\n hideSubmenuOnMouseLeave: false,\r\n onSubmenuShowing: null,\r\n onSubmenuShown: null,\r\n onSubmenuHiding: null,\r\n onSubmenuHidden: null,\r\n adaptivityEnabled: false\r\n })\r\n }\r\n _setOptionsByReference() {\r\n super._setOptionsByReference();\r\n extend(this._optionsByReference, {\r\n animation: true,\r\n selectedItem: true\r\n })\r\n }\r\n _itemElements() {\r\n var rootMenuElements = super._itemElements();\r\n var submenuElements = this._submenuItemElements();\r\n return rootMenuElements.add(submenuElements)\r\n }\r\n _submenuItemElements() {\r\n var elements = [];\r\n var itemSelector = \".\".concat(DX_MENU_ITEM_CLASS);\r\n var currentSubmenu = this._submenus.length && this._submenus[0];\r\n if (currentSubmenu && currentSubmenu.itemsContainer()) {\r\n elements = currentSubmenu.itemsContainer().find(itemSelector)\r\n }\r\n return elements\r\n }\r\n _focusTarget() {\r\n return this.$element()\r\n }\r\n _isMenuHorizontal() {\r\n return \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _moveFocus(location) {\r\n var $items = this._getAvailableItems();\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n var $activeItem = this._getActiveItem(true);\r\n var argument;\r\n var operation;\r\n var navigationAction;\r\n var $newTarget;\r\n switch (location) {\r\n case FOCUS_UP:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(PREVITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_DOWN:\r\n operation = isMenuHorizontal ? SHOW_SUBMENU_OPERATION : this._getItemsNavigationOperation(NEXTITEM_OPERATION);\r\n argument = isMenuHorizontal ? $activeItem : $items;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_RIGHT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(NEXTITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n case FOCUS_LEFT:\r\n operation = isMenuHorizontal ? this._getItemsNavigationOperation(PREVITEM_OPERATION) : SHOW_SUBMENU_OPERATION;\r\n argument = isMenuHorizontal ? $items : $activeItem;\r\n navigationAction = this._getKeyboardNavigationAction(operation, argument);\r\n $newTarget = navigationAction();\r\n break;\r\n default:\r\n return super._moveFocus(location)\r\n }\r\n if ($newTarget && 0 !== $newTarget.length) {\r\n this.option(\"focusedElement\", getPublicElement($newTarget))\r\n }\r\n }\r\n _getItemsNavigationOperation(operation) {\r\n var navOperation = operation;\r\n if (this.option(\"rtlEnabled\")) {\r\n navOperation = operation === PREVITEM_OPERATION ? NEXTITEM_OPERATION : PREVITEM_OPERATION\r\n }\r\n return navOperation\r\n }\r\n _getKeyboardNavigationAction(operation, argument) {\r\n var action = noop;\r\n switch (operation) {\r\n case SHOW_SUBMENU_OPERATION:\r\n if (!argument.hasClass(DX_STATE_DISABLED_CLASS)) {\r\n action = this._showSubmenu.bind(this, argument)\r\n }\r\n break;\r\n case NEXTITEM_OPERATION:\r\n action = this._nextItem.bind(this, argument);\r\n break;\r\n case PREVITEM_OPERATION:\r\n action = this._prevItem.bind(this, argument)\r\n }\r\n return action\r\n }\r\n _clean() {\r\n super._clean();\r\n this.option(\"templatesRenderAsynchronously\") && clearTimeout(this._resizeEventTimer)\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n if (!this._menuItemsWidth) {\r\n this._updateItemsWidthCache()\r\n }\r\n this._dimensionChanged()\r\n }\r\n }\r\n _isAdaptivityEnabled() {\r\n return this.option(\"adaptivityEnabled\") && \"horizontal\" === this.option(\"orientation\")\r\n }\r\n _updateItemsWidthCache() {\r\n var $menuItems = this.$element().find(\"ul\").first().children(\"li\").children(\".\".concat(DX_MENU_ITEM_CLASS));\r\n this._menuItemsWidth = this._getSummaryItemsWidth($menuItems, true)\r\n }\r\n _dimensionChanged() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n var containerWidth = getOuterWidth(this.$element());\r\n this._toggleAdaptiveMode(this._menuItemsWidth > containerWidth)\r\n }\r\n _init() {\r\n super._init();\r\n this._submenus = []\r\n }\r\n _initActions() {\r\n this._actions = {};\r\n each(ACTIONS, (index, action) => {\r\n this._actions[action] = this._createActionByOption(action)\r\n })\r\n }\r\n _initMarkup() {\r\n this._visibleSubmenu = null;\r\n this.$element().addClass(DX_MENU_CLASS);\r\n super._initMarkup();\r\n this._addCustomCssClass(this.$element());\r\n this.setAria(\"role\", \"menubar\")\r\n }\r\n _render() {\r\n super._render();\r\n this._initAdaptivity()\r\n }\r\n _renderHamburgerButton() {\r\n this._hamburger = new Button($(\"<div>\").addClass(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS), {\r\n icon: \"menu\",\r\n activeStateEnabled: false,\r\n onClick: this._toggleTreeView.bind(this)\r\n });\r\n return this._hamburger.$element()\r\n }\r\n _toggleTreeView(state) {\r\n if (isPlainObject(state)) {\r\n state = !this._overlay.option(\"visible\")\r\n }\r\n this._overlay.option(\"visible\", state);\r\n this._toggleHamburgerActiveState(state)\r\n }\r\n _toggleHamburgerActiveState(state) {\r\n this._hamburger && this._hamburger.$element().toggleClass(DX_STATE_ACTIVE_CLASS, state)\r\n }\r\n _toggleAdaptiveMode(state) {\r\n var $menuItemsContainer = this.$element().find(\".\".concat(DX_MENU_HORIZONTAL_CLASS));\r\n var $adaptiveElements = this.$element().find(\".\".concat(DX_ADAPTIVE_MODE_CLASS));\r\n if (state) {\r\n this._hideVisibleSubmenu()\r\n } else {\r\n this._treeView && this._treeView.collapseAll();\r\n this._overlay && this._toggleTreeView(state)\r\n }\r\n $menuItemsContainer.toggle(!state);\r\n $adaptiveElements.toggle(state)\r\n }\r\n _removeAdaptivity() {\r\n if (!this._$adaptiveContainer) {\r\n return\r\n }\r\n this._toggleAdaptiveMode(false);\r\n this._$adaptiveContainer.remove();\r\n this._$adaptiveContainer = null;\r\n this._treeView = null;\r\n this._hamburger = null;\r\n this._overlay = null\r\n }\r\n _treeviewItemClickHandler(e) {\r\n this._actions.onItemClick(e);\r\n if (!e.node.children.length) {\r\n this._toggleTreeView(false)\r\n }\r\n }\r\n _getAdaptiveOverlayOptions() {\r\n var rtl = this.option(\"rtlEnabled\");\r\n var position = rtl ? \"right\" : \"left\";\r\n return {\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => getElementMaxHeightByWindow(this.$element()),\r\n deferRendering: false,\r\n shading: false,\r\n animation: false,\r\n hideOnParentScroll: true,\r\n onHidden: () => {\r\n this._toggleHamburgerActiveState(false)\r\n },\r\n height: \"auto\",\r\n hideOnOutsideClick: e => !$(e.target).closest(\".\".concat(DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS)).length,\r\n position: {\r\n collision: \"flipfit\",\r\n at: \"bottom \" + position,\r\n my: \"top \" + position,\r\n of: this._hamburger.$element()\r\n }\r\n }\r\n }\r\n _getTreeViewOptions() {\r\n var menuOptions = {};\r\n each([\"rtlEnabled\", \"width\", \"accessKey\", \"activeStateEnabled\", \"animation\", \"dataSource\", \"disabled\", \"displayExpr\", \"displayExpr\", \"focusStateEnabled\", \"hint\", \"hoverStateEnabled\", \"itemsExpr\", \"items\", \"itemTemplate\", \"selectedExpr\", \"selectionMode\", \"tabIndex\", \"visible\"], (_, option) => {\r\n menuOptions[option] = this.option(option)\r\n });\r\n each([\"onItemContextMenu\", \"onSelectionChanged\", \"onItemRendered\"], (_, actionName) => {\r\n menuOptions[actionName] = e => {\r\n this._actions[actionName](e)\r\n }\r\n });\r\n return extend(menuOptions, {\r\n dataSource: this.getDataSource(),\r\n animationEnabled: !!this.option(\"animation\"),\r\n onItemClick: this._treeviewItemClickHandler.bind(this),\r\n onItemExpanded: e => {\r\n this._overlay.repaint();\r\n this._actions.onSubmenuShown(e)\r\n },\r\n onItemCollapsed: e => {\r\n this._overlay.repaint();\r\n this._actions.onSubmenuHidden(e)\r\n },\r\n selectNodesRecursive: false,\r\n selectByClick: this.option(\"selectByClick\"),\r\n expandEvent: \"click\"\r\n })\r\n }\r\n _initAdaptivity() {\r\n if (!this._isAdaptivityEnabled()) {\r\n return\r\n }\r\n this._$adaptiveContainer = $(\"<div>\").addClass(DX_ADAPTIVE_MODE_CLASS);\r\n var $hamburger = this._renderHamburgerButton();\r\n this._treeView = this._createComponent($(\"<div>\"), TreeView, this._getTreeViewOptions());\r\n this._overlay = this._createComponent($(\"<div>\"), Overlay, this._getAdaptiveOverlayOptions());\r\n this._overlay.$content().append(this._treeView.$element()).addClass(DX_ADAPTIVE_MODE_CLASS).addClass(this.option(\"cssClass\"));\r\n this._overlay.$wrapper().addClass(DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS);\r\n this._$adaptiveContainer.append($hamburger);\r\n this._$adaptiveContainer.append(this._overlay.$element());\r\n this.$element().append(this._$adaptiveContainer);\r\n this._updateItemsWidthCache();\r\n this._dimensionChanged()\r\n }\r\n _getDelay(delayType) {\r\n var delay = this.option(\"showFirstSubmenuMode\").delay;\r\n if (!isDefined(delay)) {\r\n return DEFAULT_DELAY[delayType]\r\n } else {\r\n return isObject(delay) ? delay[delayType] : delay\r\n }\r\n }\r\n _keyboardHandler(e) {\r\n return super._keyboardHandler(e, !!this._visibleSubmenu)\r\n }\r\n _renderContainer() {\r\n var $wrapper = $(\"<div>\");\r\n $wrapper.appendTo(this.$element()).addClass(this._isMenuHorizontal() ? DX_MENU_HORIZONTAL_CLASS : DX_MENU_VERTICAL_CLASS);\r\n return super._renderContainer($wrapper)\r\n }\r\n _renderSubmenuItems(node, $itemFrame) {\r\n var submenu = this._createSubmenu(node, $itemFrame);\r\n this._submenus.push(submenu);\r\n this._renderBorderElement($itemFrame);\r\n return submenu\r\n }\r\n _getKeyboardListeners() {\r\n return super._getKeyboardListeners().concat(this._visibleSubmenu)\r\n }\r\n _createSubmenu(node, $rootItem) {\r\n var $submenuContainer = $(\"<div>\").addClass(DX_CONTEXT_MENU_CLASS).appendTo($rootItem);\r\n var items = this._getChildNodes(node);\r\n var subMenu = this._createComponent($submenuContainer, Submenu, extend(this._getSubmenuOptions(), {\r\n _dataAdapter: this._dataAdapter,\r\n _parentKey: node.internalFields.key,\r\n items: items,\r\n onHoverStart: this._clearTimeouts.bind(this),\r\n position: this.getSubmenuPosition($rootItem)\r\n }));\r\n this._attachSubmenuHandlers($rootItem, subMenu);\r\n return subMenu\r\n }\r\n _getSubmenuOptions() {\r\n var $submenuTarget = $(\"<div>\");\r\n var isMenuHorizontal = this._isMenuHorizontal();\r\n return {\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n target: $submenuTarget,\r\n orientation: this.option(\"orientation\"),\r\n selectionMode: this.option(\"selectionMode\"),\r\n cssClass: this.option(\"cssClass\"),\r\n selectByClick: this.option(\"selectByClick\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n activeStateEnabled: this.option(\"activeStateEnabled\"),\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n animation: this.option(\"animation\"),\r\n showSubmenuMode: this.option(\"showSubmenuMode\"),\r\n displayExpr: this.option(\"displayExpr\"),\r\n disabledExpr: this.option(\"disabledExpr\"),\r\n selectedExpr: this.option(\"selectedExpr\"),\r\n itemsExpr: this.option(\"itemsExpr\"),\r\n onFocusedItemChanged: e => {\r\n if (!e.component.option(\"visible\")) {\r\n return\r\n }\r\n this.option(\"focusedElement\", e.component.option(\"focusedElement\"))\r\n },\r\n onSelectionChanged: this._nestedItemOnSelectionChangedHandler.bind(this),\r\n onItemClick: this._nestedItemOnItemClickHandler.bind(this),\r\n onItemRendered: this._nestedItemOnItemRenderedHandler.bind(this),\r\n onLeftFirstItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, PREVITEM_OPERATION),\r\n onLeftLastItem: isMenuHorizontal ? null : this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION),\r\n onCloseRootSubmenu: this._moveMainMenuFocus.bind(this, isMenuHorizontal ? PREVITEM_OPERATION : null),\r\n onExpandLastSubmenu: isMenuHorizontal ? this._moveMainMenuFocus.bind(this, NEXTITEM_OPERATION) : null\r\n }\r\n }\r\n _getShowFirstSubmenuMode() {\r\n if (!this._isDesktopDevice()) {\r\n return \"onClick\"\r\n }\r\n var optionValue = this.option(\"showFirstSubmenuMode\");\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n }\r\n _moveMainMenuFocus(direction) {\r\n var $items = this._getAvailableItems();\r\n var itemCount = $items.length;\r\n var $currentItem = $items.filter(\".\".concat(DX_MENU_ITEM_EXPANDED_CLASS)).eq(0);\r\n var itemIndex = $items.index($currentItem);\r\n this._hideSubmenu(this._visibleSubmenu);\r\n itemIndex += direction === PREVITEM_OPERATION ? -1 : 1;\r\n if (itemIndex >= itemCount) {\r\n itemIndex = 0\r\n } else if (itemIndex < 0) {\r\n itemIndex = itemCount - 1\r\n }\r\n var $newItem = $items.eq(itemIndex);\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n }\r\n _nestedItemOnSelectionChangedHandler(args) {\r\n var selectedItem = args.addedItems.length && args.addedItems[0];\r\n var submenu = Submenu.getInstance(args.element);\r\n var onSelectionChanged = this._actions.onSelectionChanged;\r\n onSelectionChanged(args);\r\n selectedItem && this._clearSelectionInSubmenus(selectedItem[0], submenu);\r\n this._clearRootSelection();\r\n this._setOptionWithoutOptionChange(\"selectedItem\", selectedItem)\r\n }\r\n _clearSelectionInSubmenus(item, targetSubmenu) {\r\n var cleanAllSubmenus = !arguments.length;\r\n each(this._submenus, (index, submenu) => {\r\n var $submenu = submenu._itemContainer();\r\n var isOtherItem = !$submenu.is(targetSubmenu && targetSubmenu._itemContainer());\r\n var $selectedItem = $submenu.find(\".\".concat(this._selectedItemClass()));\r\n if (isOtherItem && $selectedItem.length || cleanAllSubmenus) {\r\n $selectedItem.removeClass(this._selectedItemClass());\r\n var selectedItemData = this._getItemData($selectedItem);\r\n if (selectedItemData) {\r\n selectedItemData.selected = false\r\n }\r\n submenu._clearSelectedItems()\r\n }\r\n })\r\n }\r\n _clearRootSelection() {\r\n var $prevSelectedItem = this.$element().find(\".\".concat(DX_MENU_ITEMS_CONTAINER_CLASS)).first().children().children().filter(\".\".concat(this._selectedItemClass()));\r\n if ($prevSelectedItem.length) {\r\n var prevSelectedItemData = this._getItemData($prevSelectedItem);\r\n prevSelectedItemData.selected = false;\r\n $prevSelectedItem.removeClass(this._selectedItemClass())\r\n }\r\n }\r\n _nestedItemOnItemClickHandler(e) {\r\n this._actions.onItemClick(e)\r\n }\r\n _nestedItemOnItemRenderedHandler(e) {\r\n this._actions.onItemRendered(e)\r\n }\r\n _attachSubmenuHandlers($rootItem, submenu) {\r\n var $submenuOverlayContent = submenu.getOverlayContent();\r\n var submenus = $submenuOverlayContent.find(\".\".concat(DX_SUBMENU_CLASS));\r\n var submenuMouseLeaveName = addNamespace(hoverEventEnd, this.NAME + \"_submenu\");\r\n submenu.option({\r\n onShowing: this._submenuOnShowingHandler.bind(this, $rootItem, submenu),\r\n onShown: this._submenuOnShownHandler.bind(this, $rootItem, submenu),\r\n onHiding: this._submenuOnHidingHandler.bind(this, $rootItem, submenu),\r\n onHidden: this._submenuOnHiddenHandler.bind(this, $rootItem, submenu)\r\n });\r\n each(submenus, (index, submenu) => {\r\n eventsEngine.off(submenu, submenuMouseLeaveName);\r\n eventsEngine.on(submenu, submenuMouseLeaveName, null, this._submenuMouseLeaveHandler.bind(this, $rootItem))\r\n })\r\n }\r\n _submenuOnShowingHandler($rootItem, submenu) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n this._actions.onSubmenuShowing({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n });\r\n $border.show();\r\n $rootItem.addClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n _submenuOnShownHandler($rootItem, submenu) {\r\n this._actions.onSubmenuShown({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n })\r\n }\r\n _submenuOnHidingHandler($rootItem, submenu, eventArgs) {\r\n var $border = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS));\r\n var args = eventArgs;\r\n args.rootItem = getPublicElement($rootItem);\r\n args.submenu = submenu;\r\n this._actions.onSubmenuHiding(args);\r\n eventArgs = args;\r\n if (!eventArgs.cancel) {\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n $border.hide();\r\n $rootItem.removeClass(DX_MENU_ITEM_EXPANDED_CLASS)\r\n }\r\n }\r\n _submenuOnHiddenHandler($rootItem, submenu) {\r\n this._actions.onSubmenuHidden({\r\n rootItem: getPublicElement($rootItem),\r\n submenu: submenu\r\n })\r\n }\r\n _submenuMouseLeaveHandler($rootItem, eventArgs) {\r\n var target = $(eventArgs.relatedTarget).parents(\".\".concat(DX_CONTEXT_MENU_CLASS))[0];\r\n var contextMenu = this._getSubmenuByRootElement($rootItem).getOverlayContent()[0];\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && target !== contextMenu) {\r\n this._clearTimeouts();\r\n setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"))\r\n }\r\n }\r\n _hideSubmenuAfterTimeout() {\r\n if (!this._visibleSubmenu) {\r\n return\r\n }\r\n var isRootItemHovered = $(this._visibleSubmenu.$element().context).hasClass(DX_STATE_HOVER_CLASS);\r\n var isSubmenuItemHovered = this._visibleSubmenu.getOverlayContent().find(\".\".concat(DX_STATE_HOVER_CLASS)).length;\r\n var hoveredElementFromSubMenu = this._visibleSubmenu.getOverlayContent().get(0).querySelector(\":hover\");\r\n if (!hoveredElementFromSubMenu && !isSubmenuItemHovered && !isRootItemHovered) {\r\n this._visibleSubmenu.hide()\r\n }\r\n }\r\n _getSubmenuByRootElement($rootItem) {\r\n if (!$rootItem) {\r\n return false\r\n }\r\n var $submenu = $rootItem.children(\".\".concat(DX_CONTEXT_MENU_CLASS));\r\n return $submenu.length && Submenu.getInstance($submenu)\r\n }\r\n getSubmenuPosition($rootItem) {\r\n var isHorizontalMenu = this._isMenuHorizontal();\r\n var submenuDirection = this.option(\"submenuDirection\").toLowerCase();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var submenuPosition = {\r\n collision: \"flip\",\r\n of: $rootItem\r\n };\r\n switch (submenuDirection) {\r\n case \"leftortop\":\r\n submenuPosition.at = \"left top\";\r\n submenuPosition.my = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n break;\r\n case \"rightorbottom\":\r\n submenuPosition.at = isHorizontalMenu ? \"left bottom\" : \"right top\";\r\n submenuPosition.my = \"left top\";\r\n break;\r\n default:\r\n if (isHorizontalMenu) {\r\n submenuPosition.at = rtlEnabled ? \"right bottom\" : \"left bottom\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n } else {\r\n submenuPosition.at = rtlEnabled ? \"left top\" : \"right top\";\r\n submenuPosition.my = rtlEnabled ? \"right top\" : \"left top\"\r\n }\r\n }\r\n return submenuPosition\r\n }\r\n _renderBorderElement($item) {\r\n $(\"<div>\").appendTo($item).addClass(DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS).hide()\r\n }\r\n _itemPointerDownHandler(e) {\r\n var $target = $(e.target);\r\n var $closestItem = $target.closest(this._itemElements());\r\n if ($closestItem.hasClass(\"dx-menu-item-has-submenu\")) {\r\n this.option(\"focusedElement\", null);\r\n return\r\n }\r\n super._itemPointerDownHandler(e)\r\n }\r\n _hoverStartHandler(e) {\r\n var mouseMoveEventName = addNamespace(pointerEvents.move, this.NAME);\r\n var $item = this._getItemElementByEventArgs(e);\r\n var node = this._dataAdapter.getNodeByItem(this._getItemData($item));\r\n var isSelectionActive = isDefined(e.buttons) && 1 === e.buttons || !isDefined(e.buttons) && 1 === e.which;\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n eventsEngine.off($item, mouseMoveEventName);\r\n if (!this._hasChildren(node)) {\r\n this._showSubmenuTimer = setTimeout(this._hideSubmenuAfterTimeout.bind(this), this._getDelay(\"hide\"));\r\n return\r\n }\r\n if (\"onHover\" === this._getShowFirstSubmenuMode() && !isSelectionActive) {\r\n var submenu = this._getSubmenuByElement($item);\r\n this._clearTimeouts();\r\n if (!submenu.isOverlayVisible()) {\r\n eventsEngine.on($item, mouseMoveEventName, this._itemMouseMoveHandler.bind(this));\r\n this._showSubmenuTimer = this._getDelay(\"hide\")\r\n }\r\n }\r\n }\r\n _hoverEndHandler(eventArg) {\r\n var $item = this._getItemElementByEventArgs(eventArg);\r\n var relatedTarget = $(eventArg.relatedTarget);\r\n super._hoverEndHandler(eventArg);\r\n this._clearTimeouts();\r\n if (this._isItemDisabled($item)) {\r\n return\r\n }\r\n if (relatedTarget.hasClass(DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS)) {\r\n return\r\n }\r\n if (this.option(\"hideSubmenuOnMouseLeave\") && !relatedTarget.hasClass(DX_MENU_ITEMS_CONTAINER_CLASS)) {\r\n this._hideSubmenuTimer = setTimeout(() => {\r\n this._hideSubmenuAfterTimeout()\r\n }, this._getDelay(\"hide\"))\r\n }\r\n }\r\n _hideVisibleSubmenu() {\r\n if (!this._visibleSubmenu) {\r\n return false\r\n }\r\n this._hideSubmenu(this._visibleSubmenu);\r\n return true\r\n }\r\n _showSubmenu($itemElement) {\r\n var submenu = this._getSubmenuByElement($itemElement);\r\n if (this._visibleSubmenu !== submenu) {\r\n this._hideVisibleSubmenu()\r\n }\r\n if (submenu) {\r\n this._clearTimeouts();\r\n this.focus();\r\n submenu.show();\r\n this.option(\"focusedElement\", submenu.option(\"focusedElement\"))\r\n }\r\n this._visibleSubmenu = submenu;\r\n this._hoveredRootItem = $itemElement\r\n }\r\n _hideSubmenu(submenu) {\r\n submenu && submenu.hide();\r\n if (this._visibleSubmenu === submenu) {\r\n this._visibleSubmenu = null\r\n }\r\n this._hoveredRootItem = null\r\n }\r\n _itemMouseMoveHandler(e) {\r\n if (e.pointers && e.pointers.length) {\r\n return\r\n }\r\n var $item = $(e.currentTarget);\r\n if (!isDefined(this._showSubmenuTimer)) {\r\n return\r\n }\r\n this._clearTimeouts();\r\n this._showSubmenuTimer = setTimeout(() => {\r\n var submenu = this._getSubmenuByElement($item);\r\n if (submenu && !submenu.isOverlayVisible()) {\r\n this._showSubmenu($item)\r\n }\r\n }, this._getDelay(\"show\"))\r\n }\r\n _clearTimeouts() {\r\n clearTimeout(this._hideSubmenuTimer);\r\n clearTimeout(this._showSubmenuTimer)\r\n }\r\n _getSubmenuByElement($itemElement, itemData) {\r\n var submenu = this._getSubmenuByRootElement($itemElement);\r\n if (submenu) {\r\n return submenu\r\n } else {\r\n itemData = itemData || this._getItemData($itemElement);\r\n var node = this._dataAdapter.getNodeByItem(itemData);\r\n return this._hasChildren(node) && this._renderSubmenuItems(node, $itemElement)\r\n }\r\n }\r\n _updateSubmenuVisibilityOnClick(actionArgs) {\r\n var args = actionArgs.args.length && actionArgs.args[0];\r\n if (!args || this._disabledGetter(args.itemData)) {\r\n return\r\n }\r\n var $itemElement = $(args.itemElement);\r\n var currentSubmenu = this._getSubmenuByElement($itemElement, args.itemData);\r\n this._updateSelectedItemOnClick(actionArgs);\r\n if (this._visibleSubmenu) {\r\n if (this._visibleSubmenu === currentSubmenu) {\r\n if (\"onClick\" === this.option(\"showFirstSubmenuMode\")) {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n return\r\n } else {\r\n this._hideSubmenu(this._visibleSubmenu)\r\n }\r\n }\r\n if (!currentSubmenu) {\r\n return\r\n }\r\n if (!currentSubmenu.isOverlayVisible()) {\r\n this._showSubmenu($itemElement);\r\n return\r\n }\r\n }\r\n _optionChanged(args) {\r\n if (ACTIONS.indexOf(args.name) >= 0) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"orientation\":\r\n case \"submenuDirection\":\r\n this._invalidate();\r\n break;\r\n case \"showFirstSubmenuMode\":\r\n case \"hideSubmenuOnMouseLeave\":\r\n break;\r\n case \"showSubmenuMode\":\r\n this._changeSubmenusOption(args.name, args.value);\r\n break;\r\n case \"adaptivityEnabled\":\r\n args.value ? this._initAdaptivity() : this._removeAdaptivity();\r\n break;\r\n case \"width\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(args.name, args.value);\r\n this._overlay.option(args.name, args.value)\r\n }\r\n super._optionChanged(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"animation\":\r\n if (this._isAdaptivityEnabled()) {\r\n this._treeView.option(\"animationEnabled\", !!args.value)\r\n }\r\n super._optionChanged(args);\r\n break;\r\n default:\r\n if (this._isAdaptivityEnabled() && (args.name === args.fullName || \"items\" === args.name)) {\r\n this._treeView.option(args.fullName, args.value)\r\n }\r\n super._optionChanged(args)\r\n }\r\n }\r\n _changeSubmenusOption(name, value) {\r\n each(this._submenus, (index, submenu) => {\r\n submenu.option(name, value)\r\n })\r\n }\r\n selectItem(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n super.selectItem(itemElement)\r\n }\r\n unselectItem(itemElement) {\r\n this._hideSubmenu(this._visibleSubmenu);\r\n super.selectItem(itemElement)\r\n }\r\n}\r\nregisterComponent(\"dxMenu\", Menu);\r\nexport default Menu;\r\n","/**\r\n * DevExtreme (esm/ui/menu.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Menu from \"./menu/ui.menu\";\r\nexport default Menu;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.filter_row.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Editor from \"../editor/editor\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport Menu from \"../menu\";\r\nimport {\r\n selectView\r\n} from \"../shared/accessibility\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nvar OPERATION_ICONS = {\r\n \"=\": \"filter-operation-equals\",\r\n \"<>\": \"filter-operation-not-equals\",\r\n \"<\": \"filter-operation-less\",\r\n \"<=\": \"filter-operation-less-equal\",\r\n \">\": \"filter-operation-greater\",\r\n \">=\": \"filter-operation-greater-equal\",\r\n default: \"filter-operation-default\",\r\n notcontains: \"filter-operation-not-contains\",\r\n contains: \"filter-operation-contains\",\r\n startswith: \"filter-operation-starts-with\",\r\n endswith: \"filter-operation-ends-with\",\r\n between: \"filter-operation-between\"\r\n};\r\nvar OPERATION_DESCRIPTORS = {\r\n \"=\": \"equal\",\r\n \"<>\": \"notEqual\",\r\n \"<\": \"lessThan\",\r\n \"<=\": \"lessThanOrEqual\",\r\n \">\": \"greaterThan\",\r\n \">=\": \"greaterThanOrEqual\",\r\n startswith: \"startsWith\",\r\n contains: \"contains\",\r\n notcontains: \"notContains\",\r\n endswith: \"endsWith\",\r\n between: \"between\"\r\n};\r\nvar FILTERING_TIMEOUT = 700;\r\nvar CORRECT_FILTER_RANGE_OVERLAY_WIDTH = 1;\r\nvar FILTER_ROW_CLASS = \"filter-row\";\r\nvar FILTER_RANGE_OVERLAY_CLASS = \"filter-range-overlay\";\r\nvar FILTER_RANGE_START_CLASS = \"filter-range-start\";\r\nvar FILTER_RANGE_END_CLASS = \"filter-range-end\";\r\nvar MENU_CLASS = \"dx-menu\";\r\nvar EDITOR_WITH_MENU_CLASS = \"dx-editor-with-menu\";\r\nvar EDITOR_CONTAINER_CLASS = \"dx-editor-container\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar FILTER_MENU = \"dx-filter-menu\";\r\nvar APPLY_BUTTON_CLASS = \"dx-apply-button\";\r\nvar HIGHLIGHT_OUTLINE_CLASS = \"dx-highlight-outline\";\r\nvar FOCUSED_CLASS = \"dx-focused\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FILTER_RANGE_CONTENT_CLASS = \"dx-filter-range-content\";\r\nvar FILTER_MODIFIED_CLASS = \"dx-filter-modified\";\r\nvar EDITORS_INPUT_SELECTOR = \"input:not([type='hidden'])\";\r\nvar BETWEEN_OPERATION_DATA_TYPES = [\"date\", \"datetime\", \"number\"];\r\n\r\nfunction isOnClickApplyFilterMode(that) {\r\n return \"onClick\" === that.option(\"filterRow.applyFilter\")\r\n}\r\nvar getEditorInstance = function($editorContainer) {\r\n var $editor = $editorContainer && $editorContainer.children();\r\n var componentNames = $editor && $editor.data(\"dxComponents\");\r\n var editor = componentNames && componentNames.length && $editor.data(componentNames[0]);\r\n if (editor instanceof Editor) {\r\n return editor\r\n }\r\n};\r\nvar ColumnHeadersViewFilterRowExtender = function() {\r\n var getRangeTextByFilterValue = function(that, column) {\r\n var result = \"\";\r\n var rangeEnd = \"\";\r\n var filterValue = getColumnFilterValue(that, column);\r\n var formatOptions = gridCoreUtils.getFormatOptionsByColumn(column, \"filterRow\");\r\n if (Array.isArray(filterValue)) {\r\n result = gridCoreUtils.formatValue(filterValue[0], formatOptions);\r\n rangeEnd = gridCoreUtils.formatValue(filterValue[1], formatOptions);\r\n if (\"\" !== rangeEnd) {\r\n result += \" - \" + rangeEnd\r\n }\r\n } else if (isDefined(filterValue)) {\r\n result = gridCoreUtils.formatValue(filterValue, formatOptions)\r\n }\r\n return result\r\n };\r\n\r\n function getColumnFilterValue(that, column) {\r\n if (column) {\r\n return isOnClickApplyFilterMode(that) && void 0 !== column.bufferedFilterValue ? column.bufferedFilterValue : column.filterValue\r\n }\r\n }\r\n var getColumnSelectedFilterOperation = function(that, column) {\r\n if (column) {\r\n return isOnClickApplyFilterMode(that) && void 0 !== column.bufferedSelectedFilterOperation ? column.bufferedSelectedFilterOperation : column.selectedFilterOperation\r\n }\r\n };\r\n var getFilterValue = function(that, columnIndex, $editorContainer) {\r\n var column = that._columnsController.columnOption(columnIndex);\r\n var filterValue = getColumnFilterValue(that, column);\r\n var isFilterRange = $editorContainer.closest(\".\" + that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)).length;\r\n var isRangeStart = $editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS));\r\n if (filterValue && Array.isArray(filterValue) && \"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n if (isRangeStart) {\r\n return filterValue[0]\r\n } else {\r\n return filterValue[1]\r\n }\r\n }\r\n return !isFilterRange && function(filterValue, column) {\r\n if (column && BETWEEN_OPERATION_DATA_TYPES.indexOf(column.dataType) >= 0 && Array.isArray(filterValue)) {\r\n return false\r\n }\r\n return void 0 !== filterValue\r\n }(filterValue, column) ? filterValue : null\r\n };\r\n var updateFilterValue = function(that, options) {\r\n var value = \"\" === options.value ? null : options.value;\r\n var $editorContainer = options.container;\r\n var column = that._columnsController.columnOption(options.column.index);\r\n var filterValue = getFilterValue(that, column.index, $editorContainer);\r\n if (!isDefined(filterValue) && !isDefined(value)) {\r\n return\r\n }\r\n that._applyFilterViewController.setHighLight($editorContainer, filterValue !== value);\r\n var columnOptionName = isOnClickApplyFilterMode(that) ? \"bufferedFilterValue\" : \"filterValue\";\r\n var normalizedValue = function(that, filterValue, column, $editorContainer) {\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n var columnFilterValue = getColumnFilterValue(that, column);\r\n if ($editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))) {\r\n return [filterValue, Array.isArray(columnFilterValue) ? columnFilterValue[1] : void 0]\r\n } else {\r\n return [Array.isArray(columnFilterValue) ? columnFilterValue[0] : columnFilterValue, filterValue]\r\n }\r\n }\r\n return filterValue\r\n }(that, value, column, $editorContainer);\r\n var isBetween = \"between\" === getColumnSelectedFilterOperation(that, column);\r\n var notFireEvent = options.notFireEvent || isBetween && Array.isArray(normalizedValue) && normalizedValue.indexOf(void 0) >= 0;\r\n that._columnsController.columnOption(column.index, columnOptionName, normalizedValue, notFireEvent)\r\n };\r\n return {\r\n _updateEditorValue: function(column, $editorContainer) {\r\n var editor = getEditorInstance($editorContainer);\r\n editor && editor.option(\"value\", getFilterValue(this, column.index, $editorContainer))\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n var $cell;\r\n var $editorContainer;\r\n var $editorRangeElements;\r\n var $menu;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"filterValue\", \"bufferedFilterValue\", \"selectedFilterOperation\", \"bufferedSelectedFilterOperation\", \"filterValues\", \"filterType\"]) && void 0 !== e.columnIndex) {\r\n var visibleIndex = this._columnsController.getVisibleIndex(e.columnIndex);\r\n var column = this._columnsController.columnOption(e.columnIndex);\r\n $cell = this._getCellElement(this.element().find(\".\" + this.addWidgetPrefix(FILTER_ROW_CLASS)).index(), visibleIndex) || $();\r\n $editorContainer = $cell.find(\".\" + EDITOR_CONTAINER_CLASS).first();\r\n if (optionNames.filterValue || optionNames.bufferedFilterValue) {\r\n this._updateEditorValue(column, $editorContainer);\r\n var overlayInstance = $cell.find(\".\" + this.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)).data(\"dxOverlay\");\r\n if (overlayInstance) {\r\n $editorRangeElements = overlayInstance.$content().find(\".\" + EDITOR_CONTAINER_CLASS);\r\n this._updateEditorValue(column, $editorRangeElements.first());\r\n this._updateEditorValue(column, $editorRangeElements.last())\r\n }\r\n if (!overlayInstance || !overlayInstance.option(\"visible\")) {\r\n this._updateFilterRangeContent($cell, getRangeTextByFilterValue(this, column))\r\n }\r\n }\r\n if (optionNames.selectedFilterOperation || optionNames.bufferedSelectedFilterOperation) {\r\n if (visibleIndex >= 0 && column) {\r\n $menu = $cell.find(\".\" + MENU_CLASS);\r\n if ($menu.length) {\r\n this._updateFilterOperationChooser($menu, column, $editorContainer);\r\n if (\"between\" === getColumnSelectedFilterOperation(this, column)) {\r\n this._renderFilterRangeContent($cell, column)\r\n } else if ($editorContainer.find(\".\" + FILTER_RANGE_CONTENT_CLASS).length) {\r\n this._renderEditor($editorContainer, this._getEditorOptions($editorContainer, column));\r\n this._hideFilterRange()\r\n }\r\n }\r\n }\r\n }\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _renderCore: function() {\r\n this._filterRangeOverlayInstance = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.repaint()\r\n },\r\n isFilterRowVisible: function() {\r\n return this._isElementVisible(this.option(\"filterRow\"))\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this.isFilterRowVisible()\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._applyFilterViewController = this.getController(\"applyFilter\")\r\n },\r\n _initFilterRangeOverlay: function($cell, column) {\r\n var that = this;\r\n var sharedData = {};\r\n var $editorContainer = $cell.find(\".dx-editor-container\");\r\n var $overlay = $(\"<div>\").addClass(that.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS)).appendTo($cell);\r\n return that._createComponent($overlay, Overlay, {\r\n height: \"auto\",\r\n shading: false,\r\n showTitle: false,\r\n focusStateEnabled: false,\r\n hideOnOutsideClick: true,\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true,\r\n animation: false,\r\n position: {\r\n my: \"top\",\r\n at: \"top\",\r\n of: $editorContainer.length && $editorContainer || $cell,\r\n offset: \"0 -1\"\r\n },\r\n contentTemplate: function(contentElement) {\r\n var editorOptions;\r\n var $editor = $(\"<div>\").addClass(EDITOR_CONTAINER_CLASS + \" \" + that.addWidgetPrefix(FILTER_RANGE_START_CLASS)).appendTo(contentElement);\r\n column = that._columnsController.columnOption(column.index);\r\n editorOptions = that._getEditorOptions($editor, column);\r\n editorOptions.sharedData = sharedData;\r\n that._renderEditor($editor, editorOptions);\r\n eventsEngine.on($editor.find(EDITORS_INPUT_SELECTOR), \"keydown\", (function(e) {\r\n var $prevElement = $cell.find(\"[tabindex]\").not(e.target).first();\r\n if (\"tab\" === normalizeKeyName(e) && e.shiftKey) {\r\n e.preventDefault();\r\n that._hideFilterRange();\r\n if (!$prevElement.length) {\r\n $prevElement = $cell.prev().find(\"[tabindex]\").last()\r\n }\r\n eventsEngine.trigger($prevElement, \"focus\")\r\n }\r\n }));\r\n $editor = $(\"<div>\").addClass(EDITOR_CONTAINER_CLASS + \" \" + that.addWidgetPrefix(FILTER_RANGE_END_CLASS)).appendTo(contentElement);\r\n editorOptions = that._getEditorOptions($editor, column);\r\n editorOptions.sharedData = sharedData;\r\n that._renderEditor($editor, editorOptions);\r\n eventsEngine.on($editor.find(EDITORS_INPUT_SELECTOR), \"keydown\", (function(e) {\r\n if (\"tab\" === normalizeKeyName(e) && !e.shiftKey) {\r\n e.preventDefault();\r\n that._hideFilterRange();\r\n eventsEngine.trigger($cell.next().find(\"[tabindex]\").first(), \"focus\")\r\n }\r\n }));\r\n return $(contentElement).addClass(that.getWidgetContainerClass())\r\n },\r\n onShown: function(e) {\r\n var $editor = e.component.$content().find(\".\" + EDITOR_CONTAINER_CLASS).first();\r\n eventsEngine.trigger($editor.find(EDITORS_INPUT_SELECTOR), \"focus\")\r\n },\r\n onHidden: function() {\r\n column = that._columnsController.columnOption(column.index);\r\n $cell.find(\".\" + MENU_CLASS).parent().addClass(EDITOR_WITH_MENU_CLASS);\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column));\r\n that.component.updateDimensions()\r\n }\r\n }\r\n })\r\n },\r\n _updateFilterRangeOverlay: function(options) {\r\n var overlayInstance = this._filterRangeOverlayInstance;\r\n overlayInstance && overlayInstance.option(options)\r\n },\r\n _showFilterRange: function($cell, column) {\r\n var $overlay = $cell.children(\".\" + this.addWidgetPrefix(FILTER_RANGE_OVERLAY_CLASS));\r\n var overlayInstance = $overlay.length && $overlay.data(\"dxOverlay\");\r\n if (!overlayInstance && column) {\r\n overlayInstance = this._initFilterRangeOverlay($cell, column)\r\n }\r\n if (!overlayInstance.option(\"visible\")) {\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.hide();\r\n this._filterRangeOverlayInstance = overlayInstance;\r\n this._updateFilterRangeOverlay({\r\n width: getOuterWidth($cell, true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH\r\n });\r\n this._filterRangeOverlayInstance && this._filterRangeOverlayInstance.show()\r\n }\r\n },\r\n _hideFilterRange: function() {\r\n var overlayInstance = this._filterRangeOverlayInstance;\r\n overlayInstance && overlayInstance.hide()\r\n },\r\n getFilterRangeOverlayInstance: function() {\r\n return this._filterRangeOverlayInstance\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase(row);\r\n if (\"filter\" === row.rowType) {\r\n $row.addClass(this.addWidgetPrefix(FILTER_ROW_CLASS));\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n eventsEngine.on($row, \"keydown\", event => selectView(\"filterRow\", this, event))\r\n }\r\n }\r\n return $row\r\n },\r\n _getRows: function() {\r\n var result = this.callBase();\r\n if (this.isFilterRowVisible()) {\r\n result.push({\r\n rowType: \"filter\"\r\n })\r\n }\r\n return result\r\n },\r\n _renderFilterCell: function(cell, options) {\r\n var column = options.column;\r\n var $cell = $(cell);\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n this.setAria(\"describedby\", column.headerId, $cell)\r\n }\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaFilterCell\"), $cell);\r\n $cell.addClass(EDITOR_CELL_CLASS);\r\n var $container = $(\"<div>\").appendTo($cell);\r\n var $editorContainer = $(\"<div>\").addClass(EDITOR_CONTAINER_CLASS).appendTo($container);\r\n if (\"between\" === getColumnSelectedFilterOperation(this, column)) {\r\n this._renderFilterRangeContent($cell, column)\r\n } else {\r\n var editorOptions = this._getEditorOptions($editorContainer, column);\r\n this._renderEditor($editorContainer, editorOptions)\r\n }\r\n var alignment = column.alignment;\r\n if (alignment && \"center\" !== alignment) {\r\n $cell.find(EDITORS_INPUT_SELECTOR).first().css(\"textAlign\", column.alignment)\r\n }\r\n if (column.filterOperations && column.filterOperations.length) {\r\n this._renderFilterOperationChooser($container, column, $editorContainer)\r\n }\r\n },\r\n _renderCellContent: function($cell, options) {\r\n var that = this;\r\n var column = options.column;\r\n if (\"filter\" === options.rowType) {\r\n if (column.command) {\r\n $cell.html(\" \")\r\n } else if (column.allowFiltering) {\r\n that.renderTemplate($cell, that._renderFilterCell.bind(that), options).done(() => {\r\n that._updateCell($cell, options)\r\n });\r\n return\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getEditorOptions: function($editorContainer, column) {\r\n var that = this;\r\n var accessibilityOptions = {\r\n editorOptions: {\r\n inputAttr: that._getFilterInputAccessibilityAttributes(column)\r\n }\r\n };\r\n var result = extend(accessibilityOptions, column, {\r\n value: getFilterValue(that, column.index, $editorContainer),\r\n parentType: \"filterRow\",\r\n showAllText: that.option(\"filterRow.showAllText\"),\r\n updateValueTimeout: \"onClick\" === that.option(\"filterRow.applyFilter\") ? 0 : FILTERING_TIMEOUT,\r\n width: null,\r\n setValue: function(value, notFireEvent) {\r\n updateFilterValue(that, {\r\n column: column,\r\n value: value,\r\n container: $editorContainer,\r\n notFireEvent: notFireEvent\r\n })\r\n }\r\n });\r\n if (\"between\" === getColumnSelectedFilterOperation(that, column)) {\r\n if ($editorContainer.hasClass(that.addWidgetPrefix(FILTER_RANGE_START_CLASS))) {\r\n result.placeholder = that.option(\"filterRow.betweenStartText\")\r\n } else {\r\n result.placeholder = that.option(\"filterRow.betweenEndText\")\r\n }\r\n }\r\n return result\r\n },\r\n _getFilterInputAccessibilityAttributes: function(column) {\r\n var columnAriaLabel = messageLocalization.format(\"dxDataGrid-ariaFilterCell\");\r\n if (this.component.option(\"showColumnHeaders\")) {\r\n return {\r\n \"aria-label\": columnAriaLabel,\r\n \"aria-describedby\": column.headerId\r\n }\r\n }\r\n return {\r\n \"aria-label\": columnAriaLabel\r\n }\r\n },\r\n _renderEditor: function($editorContainer, options) {\r\n $editorContainer.empty();\r\n var $element = $(\"<div>\").appendTo($editorContainer);\r\n var editorController = this.getController(\"editorFactory\");\r\n var dataSource = this.getController(\"data\").dataSource();\r\n var filterRowController = this.getController(\"applyFilter\");\r\n if (options.lookup && this.option(\"syncLookupFilterValues\")) {\r\n filterRowController.setCurrentColumnForFiltering(options);\r\n var filter = this.getController(\"data\").getCombinedFilter();\r\n filterRowController.setCurrentColumnForFiltering(null);\r\n var lookupDataSource = gridCoreUtils.getWrappedLookupDataSource(options, dataSource, filter);\r\n var lookupOptions = _extends({}, options, {\r\n lookup: _extends({}, options.lookup, {\r\n dataSource: lookupDataSource\r\n })\r\n });\r\n return editorController.createEditor($element, lookupOptions)\r\n } else {\r\n return editorController.createEditor($element, options)\r\n }\r\n },\r\n _renderFilterRangeContent: function($cell, column) {\r\n var that = this;\r\n var $editorContainer = $cell.find(\".\" + EDITOR_CONTAINER_CLASS).first();\r\n $editorContainer.empty();\r\n var $filterRangeContent = $(\"<div>\").addClass(FILTER_RANGE_CONTENT_CLASS).attr(\"tabindex\", this.option(\"tabIndex\"));\r\n eventsEngine.on($filterRangeContent, \"focusin\", (function() {\r\n that._showFilterRange($cell, column)\r\n }));\r\n $filterRangeContent.appendTo($editorContainer);\r\n that._updateFilterRangeContent($cell, getRangeTextByFilterValue(that, column))\r\n },\r\n _updateFilterRangeContent: function($cell, value) {\r\n var $filterRangeContent = $cell.find(\".\" + FILTER_RANGE_CONTENT_CLASS);\r\n if ($filterRangeContent.length) {\r\n if (\"\" === value) {\r\n $filterRangeContent.html(\" \")\r\n } else {\r\n $filterRangeContent.text(value)\r\n }\r\n }\r\n },\r\n _updateFilterOperationChooser: function($menu, column, $editorContainer) {\r\n var that = this;\r\n var isCellWasFocused;\r\n var restoreFocus = function() {\r\n var menu = Menu.getInstance($menu);\r\n menu && menu.option(\"focusedElement\", null);\r\n isCellWasFocused && that._focusEditor($editorContainer)\r\n };\r\n that._createComponent($menu, Menu, {\r\n integrationOptions: {},\r\n activeStateEnabled: false,\r\n selectionMode: \"single\",\r\n cssClass: that.getWidgetContainerClass() + \" \" + CELL_FOCUS_DISABLED_CLASS + \" \" + FILTER_MENU,\r\n showFirstSubmenuMode: \"onHover\",\r\n hideSubmenuOnMouseLeave: true,\r\n items: [{\r\n disabled: column.filterOperations && column.filterOperations.length ? false : true,\r\n icon: OPERATION_ICONS[getColumnSelectedFilterOperation(that, column) || \"default\"],\r\n selectable: false,\r\n items: that._getFilterOperationMenuItems(column)\r\n }],\r\n onItemClick: function(properties) {\r\n var selectedFilterOperation = properties.itemData.name;\r\n var columnSelectedFilterOperation = getColumnSelectedFilterOperation(that, column);\r\n var notFocusEditor = false;\r\n var isOnClickMode = isOnClickApplyFilterMode(that);\r\n var options = {};\r\n if (properties.itemData.items || selectedFilterOperation && selectedFilterOperation === columnSelectedFilterOperation) {\r\n return\r\n }\r\n if (selectedFilterOperation) {\r\n options[isOnClickMode ? \"bufferedSelectedFilterOperation\" : \"selectedFilterOperation\"] = selectedFilterOperation;\r\n if (\"between\" === selectedFilterOperation || \"between\" === columnSelectedFilterOperation) {\r\n notFocusEditor = \"between\" === selectedFilterOperation;\r\n options[isOnClickMode ? \"bufferedFilterValue\" : \"filterValue\"] = null\r\n }\r\n } else {\r\n options[isOnClickMode ? \"bufferedFilterValue\" : \"filterValue\"] = null;\r\n options[isOnClickMode ? \"bufferedSelectedFilterOperation\" : \"selectedFilterOperation\"] = column.defaultSelectedFilterOperation || null\r\n }\r\n that._columnsController.columnOption(column.index, options);\r\n that._applyFilterViewController.setHighLight($editorContainer, true);\r\n if (!selectedFilterOperation) {\r\n var editor = getEditorInstance($editorContainer);\r\n if (editor && \"dxDateBox\" === editor.NAME && !editor.option(\"isValid\")) {\r\n editor.reset();\r\n editor.option(\"isValid\", true)\r\n }\r\n }\r\n if (!notFocusEditor) {\r\n that._focusEditor($editorContainer)\r\n } else {\r\n that._showFilterRange($editorContainer.closest(\".\" + EDITOR_CELL_CLASS), column)\r\n }\r\n },\r\n onSubmenuShowing: function() {\r\n isCellWasFocused = that._isEditorFocused($editorContainer);\r\n that.getController(\"editorFactory\").loseFocus()\r\n },\r\n onSubmenuHiding: function() {\r\n eventsEngine.trigger($menu, \"blur\");\r\n restoreFocus()\r\n },\r\n onContentReady: function(e) {\r\n eventsEngine.on($menu, \"blur\", () => {\r\n var menu = e.component;\r\n menu._hideSubmenuAfterTimeout();\r\n restoreFocus()\r\n })\r\n },\r\n rtlEnabled: that.option(\"rtlEnabled\")\r\n })\r\n },\r\n _isEditorFocused: function($container) {\r\n return $container.hasClass(FOCUSED_CLASS) || $container.parents(\".\" + FOCUSED_CLASS).length\r\n },\r\n _focusEditor: function($container) {\r\n this.getController(\"editorFactory\").focus($container);\r\n eventsEngine.trigger($container.find(EDITORS_INPUT_SELECTOR), \"focus\")\r\n },\r\n _renderFilterOperationChooser: function($container, column, $editorContainer) {\r\n var $menu;\r\n if (this.option(\"filterRow.showOperationChooser\")) {\r\n $container.addClass(EDITOR_WITH_MENU_CLASS);\r\n $menu = $(\"<div>\").prependTo($container);\r\n this._updateFilterOperationChooser($menu, column, $editorContainer)\r\n }\r\n },\r\n _getFilterOperationMenuItems: function(column) {\r\n var that = this;\r\n var result = [{}];\r\n var filterRowOptions = that.option(\"filterRow\");\r\n var operationDescriptions = filterRowOptions && filterRowOptions.operationDescriptions || {};\r\n if (column.filterOperations && column.filterOperations.length) {\r\n var availableFilterOperations = column.filterOperations.filter((function(value) {\r\n return isDefined(OPERATION_DESCRIPTORS[value])\r\n }));\r\n result = map(availableFilterOperations, (function(value) {\r\n var descriptionName = OPERATION_DESCRIPTORS[value];\r\n return {\r\n name: value,\r\n selected: (getColumnSelectedFilterOperation(that, column) || column.defaultFilterOperation) === value,\r\n text: operationDescriptions[descriptionName],\r\n icon: OPERATION_ICONS[value]\r\n }\r\n }));\r\n result.push({\r\n name: null,\r\n text: filterRowOptions && filterRowOptions.resetOperationText,\r\n icon: OPERATION_ICONS.default\r\n })\r\n }\r\n return result\r\n },\r\n _handleDataChanged: function(e) {\r\n var _e$operationTypes, _e$operationTypes2;\r\n this.callBase.apply(this, arguments);\r\n if (null !== (_e$operationTypes = e.operationTypes) && void 0 !== _e$operationTypes && _e$operationTypes.filtering || null !== (_e$operationTypes2 = e.operationTypes) && void 0 !== _e$operationTypes2 && _e$operationTypes2.fullReload) {\r\n var _e$operationTypes3;\r\n this.updateLookupDataSource(null === (_e$operationTypes3 = e.operationTypes) || void 0 === _e$operationTypes3 ? void 0 : _e$operationTypes3.filtering)\r\n }\r\n },\r\n updateLookupDataSource: function(filterChanged) {\r\n if (!this.option(\"syncLookupFilterValues\")) {\r\n return\r\n }\r\n if (!this.element()) {\r\n return\r\n }\r\n var columns = this._columnsController.getVisibleColumns();\r\n var dataSource = this._dataController.dataSource();\r\n var applyFilterViewController = this._applyFilterViewController;\r\n var rowIndex = this.element().find(\".\" + this.addWidgetPrefix(FILTER_ROW_CLASS)).index();\r\n if (-1 === rowIndex) {\r\n return\r\n }\r\n columns.forEach((column, index) => {\r\n if (!column.lookup || column.calculateCellValue !== column.defaultCalculateCellValue) {\r\n return\r\n }\r\n var $cell = this._getCellElement(rowIndex, index);\r\n var editor = getEditorInstance(null === $cell || void 0 === $cell ? void 0 : $cell.find(\".dx-editor-container\"));\r\n if (editor) {\r\n applyFilterViewController.setCurrentColumnForFiltering(column);\r\n var filter = this._dataController.getCombinedFilter() || null;\r\n applyFilterViewController.setCurrentColumnForFiltering(null);\r\n var editorDataSource = editor.option(\"dataSource\");\r\n var shouldUpdateFilter = !filterChanged || !equalByValue(editorDataSource.__dataGridSourceFilter, filter);\r\n if (shouldUpdateFilter) {\r\n var lookupDataSource = gridCoreUtils.getWrappedLookupDataSource(column, dataSource, filter);\r\n editor.option(\"dataSource\", lookupDataSource)\r\n }\r\n }\r\n })\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterRow\":\r\n case \"showColumnLines\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"syncLookupFilterValues\":\r\n if (args.value) {\r\n this.updateLookupDataSource()\r\n } else {\r\n this.render()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n}();\r\nvar DataControllerFilterRowExtender = {\r\n skipCalculateColumnFilters: function() {\r\n return false\r\n },\r\n _calculateAdditionalFilter: function() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return this.callBase()\r\n }\r\n var filters = [this.callBase()];\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var filterRowController = this.getController(\"applyFilter\");\r\n each(columns, (function() {\r\n var _filterRowController$;\r\n var shouldSkip = (null === (_filterRowController$ = filterRowController.getCurrentColumnForFiltering()) || void 0 === _filterRowController$ ? void 0 : _filterRowController$.index) === this.index;\r\n if (this.allowFiltering && this.calculateFilterExpression && isDefined(this.filterValue) && !shouldSkip) {\r\n var filter = this.createFilterExpression(this.filterValue, this.selectedFilterOperation || this.defaultFilterOperation, \"filterRow\");\r\n filters.push(filter)\r\n }\r\n }));\r\n return gridCoreUtils.combineFilters(filters)\r\n }\r\n};\r\nvar ApplyFilterViewController = modules.ViewController.inherit({\r\n _getHeaderPanel: function() {\r\n if (!this._headerPanel) {\r\n this._headerPanel = this.getView(\"headerPanel\")\r\n }\r\n return this._headerPanel\r\n },\r\n setHighLight: function($element, value) {\r\n if (isOnClickApplyFilterMode(this)) {\r\n $element && $element.toggleClass(HIGHLIGHT_OUTLINE_CLASS, value) && $element.closest(\".\" + EDITOR_CELL_CLASS).toggleClass(FILTER_MODIFIED_CLASS, value);\r\n this._getHeaderPanel().enableApplyButton(value)\r\n }\r\n },\r\n applyFilter: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var columns = columnsController.getColumns();\r\n columnsController.beginUpdate();\r\n for (var i = 0; i < columns.length; i++) {\r\n var column = columns[i];\r\n if (void 0 !== column.bufferedFilterValue) {\r\n columnsController.columnOption(i, \"filterValue\", column.bufferedFilterValue);\r\n column.bufferedFilterValue = void 0\r\n }\r\n if (void 0 !== column.bufferedSelectedFilterOperation) {\r\n columnsController.columnOption(i, \"selectedFilterOperation\", column.bufferedSelectedFilterOperation);\r\n column.bufferedSelectedFilterOperation = void 0\r\n }\r\n }\r\n columnsController.endUpdate();\r\n this.removeHighLights()\r\n },\r\n removeHighLights: function() {\r\n if (isOnClickApplyFilterMode(this)) {\r\n var columnHeadersViewElement = this.getView(\"columnHeadersView\").element();\r\n columnHeadersViewElement.find(\".\" + this.addWidgetPrefix(FILTER_ROW_CLASS) + \" .\" + HIGHLIGHT_OUTLINE_CLASS).removeClass(HIGHLIGHT_OUTLINE_CLASS);\r\n columnHeadersViewElement.find(\".\" + this.addWidgetPrefix(FILTER_ROW_CLASS) + \" .\" + FILTER_MODIFIED_CLASS).removeClass(FILTER_MODIFIED_CLASS);\r\n this._getHeaderPanel().enableApplyButton(false)\r\n }\r\n },\r\n setCurrentColumnForFiltering: function(column) {\r\n this._currentColumn = column\r\n },\r\n getCurrentColumnForFiltering: function() {\r\n return this._currentColumn\r\n }\r\n});\r\nexport var filterRowModule = {\r\n defaultOptions: function() {\r\n return {\r\n syncLookupFilterValues: true,\r\n filterRow: {\r\n visible: false,\r\n showOperationChooser: true,\r\n showAllText: messageLocalization.format(\"dxDataGrid-filterRowShowAllText\"),\r\n resetOperationText: messageLocalization.format(\"dxDataGrid-filterRowResetOperationText\"),\r\n applyFilter: \"auto\",\r\n applyFilterText: messageLocalization.format(\"dxDataGrid-applyFilterText\"),\r\n operationDescriptions: {\r\n equal: messageLocalization.format(\"dxDataGrid-filterRowOperationEquals\"),\r\n notEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationNotEquals\"),\r\n lessThan: messageLocalization.format(\"dxDataGrid-filterRowOperationLess\"),\r\n lessThanOrEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationLessOrEquals\"),\r\n greaterThan: messageLocalization.format(\"dxDataGrid-filterRowOperationGreater\"),\r\n greaterThanOrEqual: messageLocalization.format(\"dxDataGrid-filterRowOperationGreaterOrEquals\"),\r\n startsWith: messageLocalization.format(\"dxDataGrid-filterRowOperationStartsWith\"),\r\n contains: messageLocalization.format(\"dxDataGrid-filterRowOperationContains\"),\r\n notContains: messageLocalization.format(\"dxDataGrid-filterRowOperationNotContains\"),\r\n endsWith: messageLocalization.format(\"dxDataGrid-filterRowOperationEndsWith\"),\r\n between: messageLocalization.format(\"dxDataGrid-filterRowOperationBetween\"),\r\n isBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsBlank\"),\r\n isNotBlank: messageLocalization.format(\"dxFilterBuilder-filterOperationIsNotBlank\")\r\n },\r\n betweenStartText: messageLocalization.format(\"dxDataGrid-filterRowOperationBetweenStartText\"),\r\n betweenEndText: messageLocalization.format(\"dxDataGrid-filterRowOperationBetweenEndText\")\r\n }\r\n }\r\n },\r\n controllers: {\r\n applyFilter: ApplyFilterViewController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterRowExtender,\r\n columnsResizer: {\r\n _startResizing: function() {\r\n var that = this;\r\n that.callBase.apply(that, arguments);\r\n if (that.isResizing()) {\r\n var overlayInstance = that._columnHeadersView.getFilterRangeOverlayInstance();\r\n if (overlayInstance) {\r\n var cellIndex = overlayInstance.$element().closest(\"td\").index();\r\n if (cellIndex === that._targetPoint.columnIndex || cellIndex === that._targetPoint.columnIndex + 1) {\r\n overlayInstance.$content().hide()\r\n }\r\n }\r\n }\r\n },\r\n _endResizing: function() {\r\n var that = this;\r\n var $cell;\r\n if (that.isResizing()) {\r\n var overlayInstance = that._columnHeadersView.getFilterRangeOverlayInstance();\r\n if (overlayInstance) {\r\n $cell = overlayInstance.$element().closest(\"td\");\r\n that._columnHeadersView._updateFilterRangeOverlay({\r\n width: getOuterWidth($cell, true) + CORRECT_FILTER_RANGE_OVERLAY_WIDTH\r\n });\r\n overlayInstance.$content().show()\r\n }\r\n }\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n editing: {\r\n updateFieldValue(options) {\r\n if (options.column.lookup) {\r\n this._needUpdateLookupDataSource = true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _afterSaveEditData(cancel) {\r\n if (this._needUpdateLookupDataSource && !cancel) {\r\n var _this$getView;\r\n null === (_this$getView = this.getView(\"columnHeadersView\")) || void 0 === _this$getView ? void 0 : _this$getView.updateLookupDataSource()\r\n }\r\n this._needUpdateLookupDataSource = false;\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _afterCancelEditData() {\r\n this._needUpdateLookupDataSource = false;\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFilterRowExtender,\r\n headerPanel: {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n var filterItem = this._prepareFilterItem(items);\r\n return filterItem.concat(items)\r\n },\r\n _prepareFilterItem: function() {\r\n var that = this;\r\n var filterItem = [];\r\n if (that._isShowApplyFilterButton()) {\r\n var hintText = that.option(\"filterRow.applyFilterText\");\r\n var columns = that._columnsController.getColumns();\r\n var disabled = !columns.filter((function(column) {\r\n return void 0 !== column.bufferedFilterValue\r\n })).length;\r\n var toolbarItem = {\r\n widget: \"dxButton\",\r\n options: {\r\n icon: \"apply-filter\",\r\n disabled: disabled,\r\n onClick: function() {\r\n that._applyFilterViewController.applyFilter()\r\n },\r\n hint: hintText,\r\n text: hintText,\r\n onInitialized: function(e) {\r\n $(e.element).addClass(that._getToolbarButtonClass(APPLY_BUTTON_CLASS))\r\n }\r\n },\r\n showText: \"inMenu\",\r\n name: \"applyFilterButton\",\r\n location: \"after\",\r\n locateInMenu: \"auto\",\r\n sortIndex: 10\r\n };\r\n filterItem.push(toolbarItem)\r\n }\r\n return filterItem\r\n },\r\n _isShowApplyFilterButton: function() {\r\n var filterRowOptions = this.option(\"filterRow\");\r\n return filterRowOptions && filterRowOptions.visible && \"onClick\" === filterRowOptions.applyFilter\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._dataController = this.getController(\"data\");\r\n this._applyFilterViewController = this.getController(\"applyFilter\")\r\n },\r\n enableApplyButton: function(value) {\r\n this.setToolbarItemDisabled(\"applyFilterButton\", !value)\r\n },\r\n isVisible: function() {\r\n return this.callBase() || this._isShowApplyFilterButton()\r\n },\r\n optionChanged: function(args) {\r\n if (\"filterRow\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.filter_custom_operations.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n isGroup,\r\n isCondition,\r\n getFilterExpression,\r\n renderValueText\r\n} from \"../filter_builder/utils\";\r\nimport errors from \"../widget/ui.errors\";\r\n\r\nfunction baseOperation(grid) {\r\n var getFullText = function(itemText, parentText) {\r\n return parentText ? parentText + \"/\" + itemText : itemText\r\n };\r\n var headerFilterController = grid && grid.getController(\"headerFilter\");\r\n return {\r\n dataTypes: [\"string\", \"date\", \"datetime\", \"number\", \"boolean\", \"object\"],\r\n calculateFilterExpression: function(filterValue, field, fields) {\r\n var result = [];\r\n var lastIndex = filterValue.length - 1;\r\n filterValue && filterValue.forEach((function(value, index) {\r\n if (isCondition(value) || isGroup(value)) {\r\n var filterExpression = getFilterExpression(value, fields, [], \"headerFilter\");\r\n result.push(filterExpression)\r\n } else {\r\n result.push(getFilterExpression([field.dataField, \"=\", value], fields, [], \"headerFilter\"))\r\n }\r\n index !== lastIndex && result.push(\"or\")\r\n }));\r\n if (1 === result.length) {\r\n result = result[0]\r\n }\r\n return result\r\n },\r\n editorTemplate: function(conditionInfo, container) {\r\n var div = $(\"<div>\").addClass(\"dx-filterbuilder-item-value-text\").appendTo(container);\r\n var column = extend(true, {}, grid.columnOption(conditionInfo.field.dataField));\r\n renderValueText(div, conditionInfo.text && conditionInfo.text.split(\"|\"));\r\n column.filterType = \"include\";\r\n column.filterValues = conditionInfo.value ? conditionInfo.value.slice() : [];\r\n headerFilterController.showHeaderFilterMenuBase({\r\n columnElement: div,\r\n column: column,\r\n apply: function() {\r\n value = this.filterValues, void conditionInfo.setValue(value);\r\n var value;\r\n headerFilterController.hideHeaderFilterMenu();\r\n conditionInfo.closeEditor()\r\n },\r\n onHidden: function() {\r\n conditionInfo.closeEditor()\r\n },\r\n isFilterBuilder: true\r\n });\r\n return container\r\n },\r\n customizeText: function(fieldInfo, options) {\r\n options = options || {};\r\n var value = fieldInfo.value;\r\n var column = grid.columnOption(fieldInfo.field.dataField);\r\n var headerFilter = column && column.headerFilter;\r\n var lookup = column && column.lookup;\r\n var values = options.values || [value];\r\n if (headerFilter && headerFilter.dataSource || lookup && lookup.dataSource) {\r\n var result = new Deferred;\r\n var itemsDeferred = options.items || new Deferred;\r\n if (!options.items) {\r\n column = extend({}, column, {\r\n filterType: \"include\",\r\n filterValues: values\r\n });\r\n var dataSourceOptions = headerFilterController.getDataSource(column);\r\n dataSourceOptions.paginate = false;\r\n var dataSource = new DataSource(dataSourceOptions);\r\n var key = dataSource.store().key();\r\n if (key) {\r\n var {\r\n values: _values\r\n } = options;\r\n if (_values && _values.length > 1) {\r\n var filter = _values.reduce((result, value) => {\r\n if (result.length) {\r\n result.push(\"or\")\r\n }\r\n result.push([key, \"=\", value]);\r\n return result\r\n }, []);\r\n dataSource.filter(filter)\r\n } else {\r\n dataSource.filter([key, \"=\", fieldInfo.value])\r\n }\r\n } else if (fieldInfo.field.calculateDisplayValue) {\r\n errors.log(\"W1017\")\r\n }\r\n options.items = itemsDeferred;\r\n dataSource.load().done(itemsDeferred.resolve)\r\n }\r\n itemsDeferred.done(items => {\r\n var index = values.indexOf(fieldInfo.value);\r\n result.resolve(function getSelectedItemsTexts(items, parentText) {\r\n var result = [];\r\n items.forEach((function(item) {\r\n if (item.items) {\r\n var selectedItemsTexts = getSelectedItemsTexts(item.items, getFullText(item.text, parentText));\r\n result = result.concat(selectedItemsTexts)\r\n }\r\n item.selected && result.push(getFullText(item.text, parentText))\r\n }));\r\n return result\r\n }(items)[index])\r\n });\r\n return result\r\n } else {\r\n var text = headerFilterController.getHeaderItemText(value, column, 0, grid.option(\"headerFilter\"));\r\n return text\r\n }\r\n }\r\n }\r\n}\r\nexport function anyOf(grid) {\r\n return extend(baseOperation(grid), {\r\n name: \"anyof\",\r\n icon: \"selectall\",\r\n caption: messageLocalization.format(\"dxFilterBuilder-filterOperationAnyOf\")\r\n })\r\n}\r\nexport function noneOf(grid) {\r\n var baseOp = baseOperation(grid);\r\n return extend({}, baseOp, {\r\n calculateFilterExpression: function(filterValue, field, fields) {\r\n var baseFilter = baseOp.calculateFilterExpression(filterValue, field, fields);\r\n if (!baseFilter || 0 === baseFilter.length) {\r\n return null\r\n }\r\n return \"!\" === baseFilter[0] ? baseFilter : [\"!\", baseFilter]\r\n },\r\n name: \"noneof\",\r\n icon: \"unselectall\",\r\n caption: messageLocalization.format(\"dxFilterBuilder-filterOperationNoneOf\")\r\n })\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.filter_sync.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n getDefaultOperation,\r\n getMatchedConditions,\r\n syncFilters,\r\n removeFieldConditionsFromFilter,\r\n addItem,\r\n getNormalizedFilter,\r\n getFilterExpression,\r\n filterHasField\r\n} from \"../filter_builder/utils\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport filterUtils from \"../shared/filtering\";\r\nimport {\r\n anyOf,\r\n noneOf\r\n} from \"./ui.grid_core.filter_custom_operations\";\r\nvar FILTER_ROW_OPERATIONS = [\"=\", \"<>\", \"<\", \"<=\", \">\", \">=\", \"notcontains\", \"contains\", \"startswith\", \"endswith\", \"between\"];\r\nvar FILTER_TYPES_INCLUDE = \"include\";\r\nvar FILTER_TYPES_EXCLUDE = \"exclude\";\r\n\r\nfunction getColumnIdentifier(column) {\r\n return column.name || column.dataField\r\n}\r\n\r\nfunction checkForErrors(columns) {\r\n columns.forEach(column => {\r\n var identifier = getColumnIdentifier(column);\r\n if (!isDefined(identifier) && column.allowFiltering) {\r\n throw new errors.Error(\"E1049\", column.caption)\r\n }\r\n })\r\n}\r\nvar FilterSyncController = modules.Controller.inherit(function() {\r\n var getEmptyFilterValues = function() {\r\n return {\r\n filterType: FILTER_TYPES_INCLUDE,\r\n filterValues: void 0\r\n }\r\n };\r\n var canSyncHeaderFilterWithFilterRow = function(column) {\r\n var filterValues = column.filterValues || [];\r\n return !filterUtils.getGroupInterval(column) && !(column.headerFilter && column.headerFilter.dataSource) || 1 === filterValues.length && null === filterValues[0]\r\n };\r\n var getConditionFromFilterRow = function(column) {\r\n var value = column.filterValue;\r\n if (isDefined(value)) {\r\n var operation = column.selectedFilterOperation || column.defaultFilterOperation || getDefaultOperation(column);\r\n var filter = [getColumnIdentifier(column), operation, column.filterValue];\r\n return filter\r\n } else {\r\n return null\r\n }\r\n };\r\n var getConditionFromHeaderFilter = function(column) {\r\n var selectedOperation;\r\n var value;\r\n var filterValues = column.filterValues;\r\n if (!filterValues) {\r\n return null\r\n }\r\n if (1 === filterValues.length && canSyncHeaderFilterWithFilterRow(column) && !Array.isArray(filterValues[0])) {\r\n column.filterType === FILTER_TYPES_EXCLUDE ? selectedOperation = \"<>\" : selectedOperation = \"=\";\r\n value = filterValues[0]\r\n } else {\r\n column.filterType === FILTER_TYPES_EXCLUDE ? selectedOperation = \"noneof\" : selectedOperation = \"anyof\";\r\n value = filterValues\r\n }\r\n return [getColumnIdentifier(column), selectedOperation, value]\r\n };\r\n var updateHeaderFilterCondition = function(columnsController, column, headerFilterCondition) {\r\n var headerFilter = function(headerFilterCondition, column) {\r\n if (!headerFilterCondition) {\r\n return getEmptyFilterValues()\r\n }\r\n var filterType;\r\n var selectedFilterOperation = headerFilterCondition[1];\r\n var value = headerFilterCondition[2];\r\n var hasArrayValue = Array.isArray(value);\r\n if (!hasArrayValue) {\r\n if (!canSyncHeaderFilterWithFilterRow(column)) {\r\n return getEmptyFilterValues()\r\n }\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"anyof\":\r\n case \"=\":\r\n filterType = FILTER_TYPES_INCLUDE;\r\n break;\r\n case \"noneof\":\r\n case \"<>\":\r\n filterType = FILTER_TYPES_EXCLUDE;\r\n break;\r\n default:\r\n return getEmptyFilterValues()\r\n }\r\n return {\r\n filterType: filterType,\r\n filterValues: hasArrayValue ? value : [value]\r\n }\r\n }(headerFilterCondition, column);\r\n columnsController.columnOption(getColumnIdentifier(column), headerFilter)\r\n };\r\n var updateFilterRowCondition = function(columnsController, column, condition) {\r\n var filterRowOptions;\r\n var selectedFilterOperation = null === condition || void 0 === condition ? void 0 : condition[1];\r\n var filterValue = null === condition || void 0 === condition ? void 0 : condition[2];\r\n var filterOperations = column.filterOperations || column.defaultFilterOperations;\r\n if ((!filterOperations || filterOperations.indexOf(selectedFilterOperation) >= 0 || selectedFilterOperation === column.defaultFilterOperation) && FILTER_ROW_OPERATIONS.indexOf(selectedFilterOperation) >= 0 && null !== filterValue) {\r\n if (selectedFilterOperation === column.defaultFilterOperation && !isDefined(column.selectedFilterOperation)) {\r\n selectedFilterOperation = column.selectedFilterOperation\r\n }\r\n filterRowOptions = {\r\n filterValue: filterValue,\r\n selectedFilterOperation: selectedFilterOperation\r\n }\r\n } else {\r\n filterRowOptions = {\r\n filterValue: void 0,\r\n selectedFilterOperation: void 0\r\n }\r\n }\r\n columnsController.columnOption(getColumnIdentifier(column), filterRowOptions)\r\n };\r\n return {\r\n syncFilterValue: function() {\r\n var that = this;\r\n var columnsController = that.getController(\"columns\");\r\n var columns = columnsController.getFilteringColumns();\r\n this._skipSyncColumnOptions = true;\r\n columns.forEach((function(column) {\r\n var filterConditions = getMatchedConditions(that.option(\"filterValue\"), getColumnIdentifier(column));\r\n if (1 === filterConditions.length) {\r\n var filterCondition = filterConditions[0];\r\n updateHeaderFilterCondition(columnsController, column, filterCondition);\r\n updateFilterRowCondition(columnsController, column, filterCondition)\r\n } else {\r\n isDefined(column.filterValues) && updateHeaderFilterCondition(columnsController, column);\r\n isDefined(column.filterValue) && updateFilterRowCondition(columnsController, column)\r\n }\r\n }));\r\n this._skipSyncColumnOptions = false\r\n },\r\n _initSync: function() {\r\n var columns = this.getController(\"columns\").getColumns();\r\n var dataController = this.getController(\"data\");\r\n var pageIndex = dataController.pageIndex();\r\n checkForErrors(columns);\r\n if (!this.option(\"filterValue\")) {\r\n var filteringColumns = this.getController(\"columns\").getFilteringColumns();\r\n var filterValue = this.getFilterValueFromColumns(filteringColumns);\r\n this.option(\"filterValue\", filterValue)\r\n }\r\n this.syncFilterValue();\r\n dataController.pageIndex(pageIndex)\r\n },\r\n init: function() {\r\n var dataController = this.getController(\"data\");\r\n if (dataController.isFilterSyncActive()) {\r\n if (this.getController(\"columns\").isAllDataTypesDefined()) {\r\n this._initSync()\r\n } else {\r\n dataController.dataSourceChanged.add(() => this._initSync())\r\n }\r\n }\r\n },\r\n _getSyncFilterRow: function(filterValue, column) {\r\n var filter = getConditionFromFilterRow(column);\r\n if (isDefined(filter)) {\r\n return syncFilters(filterValue, filter)\r\n } else {\r\n return removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(column))\r\n }\r\n },\r\n _getSyncHeaderFilter: function(filterValue, column) {\r\n var filter = getConditionFromHeaderFilter(column);\r\n if (filter) {\r\n return syncFilters(filterValue, filter)\r\n } else {\r\n return removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(column))\r\n }\r\n },\r\n getFilterValueFromColumns: function(columns) {\r\n if (!this.getController(\"data\").isFilterSyncActive()) {\r\n return null\r\n }\r\n var filterValue = [\"and\"];\r\n columns && columns.forEach(column => {\r\n var headerFilter = getConditionFromHeaderFilter(column);\r\n var filterRow = getConditionFromFilterRow(column);\r\n headerFilter && addItem(headerFilter, filterValue);\r\n filterRow && addItem(filterRow, filterValue)\r\n });\r\n return getNormalizedFilter(filterValue)\r\n },\r\n syncFilterRow: function(column, value) {\r\n this.option(\"filterValue\", this._getSyncFilterRow(this.option(\"filterValue\"), column))\r\n },\r\n syncHeaderFilter: function(column) {\r\n this.option(\"filterValue\", this._getSyncHeaderFilter(this.option(\"filterValue\"), column))\r\n },\r\n getCustomFilterOperations: function() {\r\n var filterBuilderCustomOperations = this.option(\"filterBuilder.customOperations\") || [];\r\n return [anyOf(this.component), noneOf(this.component)].concat(filterBuilderCustomOperations)\r\n },\r\n publicMethods: function() {\r\n return [\"getCustomFilterOperations\"]\r\n }\r\n }\r\n}());\r\nvar DataControllerFilterSyncExtender = {\r\n isFilterSyncActive: function() {\r\n var filterSyncEnabledValue = this.option(\"filterSyncEnabled\");\r\n return \"auto\" === filterSyncEnabledValue ? this.option(\"filterPanel.visible\") : filterSyncEnabledValue\r\n },\r\n skipCalculateColumnFilters: function() {\r\n var filterSyncController = this.getController(\"filterSync\");\r\n return (isDefined(this.option(\"filterValue\")) || filterSyncController._skipSyncColumnOptions) && this.isFilterSyncActive()\r\n },\r\n _calculateAdditionalFilter: function() {\r\n if (false === this.option(\"filterPanel.filterEnabled\")) {\r\n return this.callBase()\r\n }\r\n var filters = [this.callBase()];\r\n var columns = this.getController(\"columns\").getFilteringColumns();\r\n var filterValue = this.option(\"filterValue\");\r\n if (this.isFilterSyncActive()) {\r\n var currentColumn = this.getController(\"headerFilter\").getCurrentColumn();\r\n if (currentColumn && filterValue) {\r\n filterValue = removeFieldConditionsFromFilter(filterValue, getColumnIdentifier(currentColumn))\r\n }\r\n }\r\n var customOperations = this.getController(\"filterSync\").getCustomFilterOperations();\r\n var calculatedFilterValue = getFilterExpression(filterValue, columns, customOperations, \"filterBuilder\");\r\n if (calculatedFilterValue) {\r\n filters.push(calculatedFilterValue)\r\n }\r\n return gridCoreUtils.combineFilters(filters)\r\n },\r\n _parseColumnPropertyName: function(fullName) {\r\n var matched = fullName.match(/.*\\.(.*)/);\r\n if (matched) {\r\n return matched[1]\r\n } else {\r\n return null\r\n }\r\n },\r\n clearFilter: function(filterName) {\r\n this.component.beginUpdate();\r\n if (arguments.length > 0) {\r\n if (\"filterValue\" === filterName) {\r\n this.option(\"filterValue\", null)\r\n }\r\n this.callBase(filterName)\r\n } else {\r\n this.option(\"filterValue\", null);\r\n this.callBase()\r\n }\r\n this.component.endUpdate()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"filterValue\":\r\n this._applyFilter();\r\n this.isFilterSyncActive() && this.getController(\"filterSync\").syncFilterValue();\r\n args.handled = true;\r\n break;\r\n case \"filterSyncEnabled\":\r\n args.handled = true;\r\n break;\r\n case \"columns\":\r\n if (this.isFilterSyncActive()) {\r\n var column = this.getController(\"columns\").getColumnByPath(args.fullName);\r\n var filterSyncController = this.getController(\"filterSync\");\r\n if (column && !filterSyncController._skipSyncColumnOptions) {\r\n var propertyName = this._parseColumnPropertyName(args.fullName);\r\n filterSyncController._skipSyncColumnOptions = true;\r\n if (\"filterType\" === propertyName) {\r\n if (FILTER_TYPES_EXCLUDE === args.value || FILTER_TYPES_EXCLUDE === args.previousValue) {\r\n filterSyncController.syncHeaderFilter(column)\r\n }\r\n } else if (\"filterValues\" === propertyName) {\r\n filterSyncController.syncHeaderFilter(column)\r\n } else if ([\"filterValue\", \"selectedFilterOperation\"].indexOf(propertyName) > -1) {\r\n filterSyncController.syncFilterRow(column, column.filterValue)\r\n }\r\n filterSyncController._skipSyncColumnOptions = false\r\n }\r\n }\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nvar ColumnHeadersViewFilterSyncExtender = {\r\n _isHeaderFilterEmpty: function(column) {\r\n if (this.getController(\"data\").isFilterSyncActive()) {\r\n return !filterHasField(this.option(\"filterValue\"), getColumnIdentifier(column))\r\n }\r\n return this.callBase(column)\r\n },\r\n _needUpdateFilterIndicators: function() {\r\n return !this.getController(\"data\").isFilterSyncActive()\r\n },\r\n optionChanged: function(args) {\r\n if (\"filterValue\" === args.name) {\r\n this._updateHeaderFilterIndicators()\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\nexport var filterSyncModule = {\r\n defaultOptions: function() {\r\n return {\r\n filterValue: null,\r\n filterSyncEnabled: \"auto\"\r\n }\r\n },\r\n controllers: {\r\n filterSync: FilterSyncController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterSyncExtender\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewFilterSyncExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.focus.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport core from \"./ui.grid_core.modules\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isBoolean\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nvar ROW_FOCUSED_CLASS = \"dx-row-focused\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row.\" + ROW_FOCUSED_CLASS;\r\nvar TABLE_POSTFIX_CLASS = \"table\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FocusController = core.ViewController.inherit({\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._keyboardController = this.getController(\"keyboardNavigation\");\r\n this.component._optionsByReference.focusedRowKey = true\r\n },\r\n optionChanged: function(args) {\r\n if (\"focusedRowIndex\" === args.name) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n this._focusRowByIndex(args.value);\r\n this._triggerFocusedRowChangedIfNeed(focusedRowKey, args.value);\r\n args.handled = true\r\n } else if (\"focusedRowKey\" === args.name) {\r\n args.handled = true;\r\n if (Array.isArray(args.value) && JSON.stringify(args.value) === JSON.stringify(args.previousValue)) {\r\n return\r\n }\r\n var focusedRowIndex = this.option(\"focusedRowIndex\");\r\n this._focusRowByKey(args.value);\r\n this._triggerFocusedRowChangedIfNeed(args.value, focusedRowIndex)\r\n } else if (\"focusedColumnIndex\" === args.name) {\r\n args.handled = true\r\n } else if (\"focusedRowEnabled\" === args.name) {\r\n args.handled = true\r\n } else if (\"autoNavigateToFocusedRow\" === args.name) {\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _triggerFocusedRowChangedIfNeed: function(focusedRowKey, focusedRowIndex) {\r\n var focusedRowIndexByKey = this.getFocusedRowIndexByKey(focusedRowKey);\r\n if (focusedRowIndex === focusedRowIndexByKey) {\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n if (rowIndex >= 0) {\r\n var $rowElement = $(this.getView(\"rowsView\").getRowElement(rowIndex));\r\n this.getController(\"keyboardNavigation\")._fireFocusedRowChanged($rowElement, focusedRowIndex)\r\n }\r\n }\r\n },\r\n isAutoNavigateToFocusedRow: function() {\r\n return \"infinite\" !== this.option(\"scrolling.mode\") && this.option(\"autoNavigateToFocusedRow\")\r\n },\r\n _focusRowByIndex: function(index, operationTypes) {\r\n if (!this.option(\"focusedRowEnabled\")) {\r\n return\r\n }\r\n index = void 0 !== index ? index : this.option(\"focusedRowIndex\");\r\n if (index < 0) {\r\n if (this.isAutoNavigateToFocusedRow()) {\r\n this._resetFocusedRow()\r\n }\r\n } else {\r\n this._focusRowByIndexCore(index, operationTypes)\r\n }\r\n },\r\n _focusRowByIndexCore: function(index, operationTypes) {\r\n var dataController = this.getController(\"data\");\r\n var pageSize = dataController.pageSize();\r\n var setKeyByIndex = () => {\r\n if (this._isValidFocusedRowIndex(index)) {\r\n var rowIndex = index - dataController.getRowIndexOffset(true);\r\n if (!operationTypes || operationTypes.paging && !operationTypes.filtering) {\r\n var lastItemIndex = dataController._getLastItemIndex();\r\n rowIndex = Math.min(rowIndex, lastItemIndex)\r\n }\r\n var focusedRowKey = dataController.getKeyByRowIndex(rowIndex, true);\r\n if (isDefined(focusedRowKey) && !this.isRowFocused(focusedRowKey)) {\r\n this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n };\r\n if (pageSize >= 0) {\r\n if (!this._isLocalRowIndex(index)) {\r\n var pageIndex = Math.floor(index / dataController.pageSize());\r\n when(dataController.pageIndex(pageIndex), dataController.waitReady()).done(() => {\r\n setKeyByIndex()\r\n })\r\n } else {\r\n setKeyByIndex()\r\n }\r\n }\r\n },\r\n _isLocalRowIndex(index) {\r\n var dataController = this.getController(\"data\");\r\n var isVirtualScrolling = this.getController(\"keyboardNavigation\")._isVirtualScrolling();\r\n if (isVirtualScrolling) {\r\n var pageIndex = Math.floor(index / dataController.pageSize());\r\n var virtualItems = dataController.virtualItemsCount();\r\n var virtualItemsBegin = virtualItems ? virtualItems.begin : -1;\r\n var visibleRowsCount = dataController.getVisibleRows().length + dataController.getRowIndexOffset();\r\n var visiblePagesCount = Math.ceil(visibleRowsCount / dataController.pageSize());\r\n return virtualItemsBegin <= index && visiblePagesCount > pageIndex\r\n }\r\n return true\r\n },\r\n _setFocusedRowKeyByIndex: function(index) {\r\n var dataController = this.getController(\"data\");\r\n if (this._isValidFocusedRowIndex(index)) {\r\n var rowIndex = Math.min(index - dataController.getRowIndexOffset(), dataController.items().length - 1);\r\n var focusedRowKey = dataController.getKeyByRowIndex(rowIndex);\r\n if (isDefined(focusedRowKey) && !this.isRowFocused(focusedRowKey)) {\r\n this.option(\"focusedRowKey\", focusedRowKey)\r\n }\r\n }\r\n },\r\n _focusRowByKey: function(key) {\r\n if (!isDefined(key)) {\r\n this._resetFocusedRow()\r\n } else {\r\n this._navigateToRow(key, true)\r\n }\r\n },\r\n _resetFocusedRow: function() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isFocusedRowKeyDefined = isDefined(focusedRowKey);\r\n if (!isFocusedRowKeyDefined && this.option(\"focusedRowIndex\") < 0) {\r\n return\r\n }\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (isFocusedRowKeyDefined) {\r\n this.option(\"focusedRowKey\", null)\r\n }\r\n keyboardController.setFocusedRowIndex(-1);\r\n this.option(\"focusedRowIndex\", -1);\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: null\r\n });\r\n keyboardController._fireFocusedRowChanged(void 0, -1)\r\n },\r\n _isValidFocusedRowIndex: function(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n var row = dataController.getVisibleRows()[rowIndex];\r\n return !row || \"data\" === row.rowType || \"group\" === row.rowType\r\n },\r\n publicMethods: function() {\r\n return [\"navigateToRow\", \"isRowFocused\"]\r\n },\r\n navigateToRow: function(key) {\r\n if (!this.isAutoNavigateToFocusedRow()) {\r\n this.option(\"focusedRowIndex\", -1)\r\n }\r\n return this._navigateToRow(key)\r\n },\r\n _navigateToRow: function(key, needFocusRow) {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var isAutoNavigate = that.isAutoNavigateToFocusedRow();\r\n var d = new Deferred;\r\n if (void 0 === key || !dataController.dataSource()) {\r\n return d.reject().promise()\r\n }\r\n var rowIndexByKey = that.getFocusedRowIndexByKey(key);\r\n if (!isAutoNavigate && needFocusRow || rowIndexByKey >= 0) {\r\n that._navigateTo(key, d, needFocusRow)\r\n } else {\r\n dataController.getPageIndexByKey(key).done((function(pageIndex) {\r\n if (pageIndex < 0) {\r\n d.resolve(-1);\r\n return\r\n }\r\n if (pageIndex === dataController.pageIndex()) {\r\n dataController.reload().done((function() {\r\n if (that.isRowFocused(key) && dataController.getRowIndexByKey(key) >= 0) {\r\n d.resolve(that.getFocusedRowIndexByKey(key))\r\n } else {\r\n that._navigateTo(key, d, needFocusRow)\r\n }\r\n })).fail(d.reject)\r\n } else {\r\n dataController.pageIndex(pageIndex).done((function() {\r\n that._navigateTo(key, d, needFocusRow)\r\n })).fail(d.reject)\r\n }\r\n })).fail(d.reject)\r\n }\r\n return d.promise()\r\n },\r\n _navigateTo: function(key, deferred, needFocusRow) {\r\n var visibleRowIndex = this.getController(\"data\").getRowIndexByKey(key);\r\n var isVirtualRowRenderingMode = gridCoreUtils.isVirtualRowRendering(this);\r\n var isAutoNavigate = this.isAutoNavigateToFocusedRow();\r\n if (isAutoNavigate && isVirtualRowRenderingMode && visibleRowIndex < 0) {\r\n this._navigateToVirtualRow(key, deferred, needFocusRow)\r\n } else {\r\n this._navigateToVisibleRow(key, deferred, needFocusRow)\r\n }\r\n },\r\n _navigateToVisibleRow: function(key, deferred, needFocusRow) {\r\n if (needFocusRow) {\r\n this._triggerUpdateFocusedRow(key, deferred)\r\n } else {\r\n var focusedRowIndex = this.getFocusedRowIndexByKey(key);\r\n this.getView(\"rowsView\").scrollToRowElement(key, deferred).done((function() {\r\n deferred.resolve(focusedRowIndex)\r\n }))\r\n }\r\n },\r\n _navigateToVirtualRow: function(key, deferred, needFocusRow) {\r\n var that = this;\r\n var dataController = this.getController(\"data\");\r\n var rowsScrollController = dataController._rowsScrollController;\r\n var rowIndex = gridCoreUtils.getIndexByKey(key, dataController.items(true));\r\n var scrollable = that.getView(\"rowsView\").getScrollable();\r\n if (rowsScrollController && scrollable && rowIndex >= 0) {\r\n var focusedRowIndex = rowIndex + dataController.getRowIndexOffset(true);\r\n var offset = rowsScrollController.getItemOffset(focusedRowIndex);\r\n that.component.on(\"contentReady\", (function triggerUpdateFocusedRow() {\r\n that.component.off(\"contentReady\", triggerUpdateFocusedRow);\r\n if (needFocusRow) {\r\n that._triggerUpdateFocusedRow(key, deferred)\r\n } else {\r\n deferred.resolve(focusedRowIndex)\r\n }\r\n }));\r\n this.getView(\"rowsView\").scrollTopPosition(offset)\r\n } else {\r\n deferred.resolve(-1)\r\n }\r\n },\r\n _triggerUpdateFocusedRow: function(key, deferred) {\r\n var dataController = this.getController(\"data\");\r\n var focusedRowIndex = this.getFocusedRowIndexByKey(key);\r\n if (this._isValidFocusedRowIndex(focusedRowIndex)) {\r\n var d;\r\n if (this.option(\"focusedRowEnabled\")) {\r\n dataController.updateItems({\r\n changeType: \"updateFocusedRow\",\r\n focusedRowKey: key\r\n })\r\n } else {\r\n d = this.getView(\"rowsView\").scrollToRowElement(key)\r\n }\r\n when(d).done(() => {\r\n this.getController(\"keyboardNavigation\").setFocusedRowIndex(focusedRowIndex);\r\n deferred && deferred.resolve(focusedRowIndex)\r\n })\r\n } else {\r\n deferred && deferred.resolve(-1)\r\n }\r\n },\r\n getFocusedRowIndexByKey: function(key) {\r\n var dataController = this.getController(\"data\");\r\n var loadedRowIndex = dataController.getRowIndexByKey(key, true);\r\n return loadedRowIndex >= 0 ? loadedRowIndex + dataController.getRowIndexOffset(true) : -1\r\n },\r\n _focusRowByKeyOrIndex: function() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var currentFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var dataController = this.getController(\"data\");\r\n if (isDefined(focusedRowKey)) {\r\n var visibleRowIndex = dataController.getRowIndexByKey(focusedRowKey);\r\n if (visibleRowIndex >= 0) {\r\n if (keyboardController._isVirtualScrolling()) {\r\n currentFocusedRowIndex = visibleRowIndex + dataController.getRowIndexOffset()\r\n }\r\n keyboardController.setFocusedRowIndex(currentFocusedRowIndex);\r\n this._triggerUpdateFocusedRow(focusedRowKey)\r\n } else {\r\n this._navigateToRow(focusedRowKey, true).done(focusedRowIndex => {\r\n if (currentFocusedRowIndex >= 0 && focusedRowIndex < 0) {\r\n this._focusRowByIndex()\r\n } else if (currentFocusedRowIndex < 0 && focusedRowIndex >= 0) {\r\n keyboardController.setFocusedRowIndex(focusedRowIndex)\r\n }\r\n })\r\n }\r\n } else if (currentFocusedRowIndex >= 0) {\r\n this.getController(\"focus\")._focusRowByIndex(currentFocusedRowIndex)\r\n }\r\n },\r\n isRowFocused: function(key) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n if (isDefined(focusedRowKey)) {\r\n return equalByValue(key, this.option(\"focusedRowKey\"))\r\n }\r\n },\r\n updateFocusedRow: function(change) {\r\n var that = this;\r\n var focusedRowIndex = that._dataController.getRowIndexByKey(change.focusedRowKey);\r\n var rowsView = that.getView(\"rowsView\");\r\n var $tableElement;\r\n var $mainRow;\r\n each(rowsView.getTableElements(), (function(index, element) {\r\n var isMainTable = 0 === index;\r\n $tableElement = $(element);\r\n that._clearPreviousFocusedRow($tableElement, focusedRowIndex);\r\n var $row = that._prepareFocusedRow({\r\n changedItem: that._dataController.getVisibleRows()[focusedRowIndex],\r\n $tableElement: $tableElement,\r\n focusedRowIndex: focusedRowIndex\r\n });\r\n if (isMainTable) {\r\n $mainRow = $row\r\n }\r\n }));\r\n $mainRow && rowsView.scrollToElementVertically($mainRow)\r\n },\r\n _clearPreviousFocusedRow: function($tableElement, focusedRowIndex) {\r\n var $prevRowFocusedElement = $tableElement.find(FOCUSED_ROW_SELECTOR).filter((_, focusedRow) => {\r\n var $focusedRowTable = $(focusedRow).closest(\".\".concat(this.addWidgetPrefix(TABLE_POSTFIX_CLASS)));\r\n return $tableElement.is($focusedRowTable)\r\n });\r\n $prevRowFocusedElement.removeClass(ROW_FOCUSED_CLASS).removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabindex\");\r\n $prevRowFocusedElement.children(\"td\").removeAttr(\"tabindex\");\r\n if (0 !== focusedRowIndex) {\r\n var $firstRow = $(this.getView(\"rowsView\").getRowElement(0));\r\n $firstRow.removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _prepareFocusedRow: function(options) {\r\n var $row;\r\n var changedItem = options.changedItem;\r\n if (changedItem && (\"data\" === changedItem.rowType || \"group\" === changedItem.rowType)) {\r\n var focusedRowIndex = options.focusedRowIndex;\r\n var $tableElement = options.$tableElement;\r\n var tabIndex = this.option(\"tabindex\") || 0;\r\n var rowsView = this.getView(\"rowsView\");\r\n $row = $(rowsView._getRowElements($tableElement).eq(focusedRowIndex));\r\n $row.addClass(ROW_FOCUSED_CLASS).attr(\"tabindex\", tabIndex)\r\n }\r\n return $row\r\n }\r\n});\r\nexport var focusModule = {\r\n defaultOptions: function() {\r\n return {\r\n focusedRowEnabled: false,\r\n autoNavigateToFocusedRow: true,\r\n focusedRowKey: null,\r\n focusedRowIndex: -1,\r\n focusedColumnIndex: -1\r\n }\r\n },\r\n controllers: {\r\n focus: FocusController\r\n },\r\n extenders: {\r\n controllers: {\r\n keyboardNavigation: {\r\n init: function() {\r\n var rowIndex = this.option(\"focusedRowIndex\");\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n this.createAction(\"onFocusedRowChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedRowChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanging\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.createAction(\"onFocusedCellChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this.callBase();\r\n this.setRowFocusType();\r\n this._focusedCellPosition = {};\r\n if (isDefined(rowIndex) && rowIndex >= 0) {\r\n this._focusedCellPosition.rowIndex = rowIndex\r\n }\r\n if (isDefined(columnIndex) && columnIndex >= 0) {\r\n this._focusedCellPosition.columnIndex = columnIndex\r\n }\r\n },\r\n setFocusedRowIndex: function(rowIndex) {\r\n var dataController = this.getController(\"data\");\r\n this.callBase(rowIndex);\r\n var visibleRowIndex = rowIndex - dataController.getRowIndexOffset();\r\n var visibleRow = dataController.getVisibleRows()[visibleRowIndex];\r\n if (!visibleRow || !visibleRow.isNewRow) {\r\n this.option(\"focusedRowIndex\", rowIndex)\r\n }\r\n },\r\n setFocusedColumnIndex: function(columnIndex) {\r\n this.callBase(columnIndex);\r\n this.option(\"focusedColumnIndex\", columnIndex)\r\n },\r\n _escapeKeyHandler: function(eventArgs, isEditing) {\r\n if (isEditing || !this.option(\"focusedRowEnabled\")) {\r\n this.callBase(eventArgs, isEditing);\r\n return\r\n }\r\n if (this.isCellFocusType()) {\r\n this.setRowFocusType();\r\n this._focus(this._getCellElementFromTarget(eventArgs.originalEvent.target), true)\r\n }\r\n },\r\n _updateFocusedCellPosition: function($cell, direction) {\r\n var prevRowIndex = this.option(\"focusedRowIndex\");\r\n var prevColumnIndex = this.option(\"focusedColumnIndex\");\r\n var position = this.callBase($cell, direction);\r\n if (position && position.columnIndex >= 0) {\r\n this._fireFocusedCellChanged($cell, prevColumnIndex, prevRowIndex)\r\n }\r\n }\r\n },\r\n editorFactory: {\r\n renderFocusOverlay: function($element, hideBorder) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var editingController = this.getController(\"editing\");\r\n var $cell;\r\n if (!focusedRowEnabled || !(null !== keyboardController && void 0 !== keyboardController && keyboardController.isRowFocusType()) || editingController.isEditing()) {\r\n this.callBase($element, hideBorder)\r\n } else if (focusedRowEnabled) {\r\n var isRowElement = \"row\" === keyboardController._getElementType($element);\r\n if (isRowElement && !$element.hasClass(ROW_FOCUSED_CLASS)) {\r\n $cell = keyboardController.getFirstValidCellInRow($element);\r\n keyboardController.focus($cell)\r\n }\r\n }\r\n }\r\n },\r\n columns: {\r\n getSortDataSourceParameters: function(_, sortByKey) {\r\n var result = this.callBase.apply(this, arguments);\r\n var dataController = this.getController(\"data\");\r\n var dataSource = dataController._dataSource;\r\n var store = dataController.store();\r\n var key = store && store.key();\r\n var remoteOperations = dataSource && dataSource.remoteOperations() || {};\r\n var isLocalOperations = Object.keys(remoteOperations).every(operationName => !remoteOperations[operationName]);\r\n if (key && (this.option(\"focusedRowEnabled\") && false !== this.getController(\"focus\").isAutoNavigateToFocusedRow() || sortByKey)) {\r\n key = Array.isArray(key) ? key : [key];\r\n var notSortedKeys = key.filter(key => !this.columnOption(key, \"sortOrder\"));\r\n if (notSortedKeys.length) {\r\n result = result || [];\r\n if (isLocalOperations) {\r\n result.push({\r\n selector: dataSource.getDataIndexGetter(),\r\n desc: false\r\n })\r\n } else {\r\n notSortedKeys.forEach(notSortedKey => result.push({\r\n selector: notSortedKey,\r\n desc: false\r\n }))\r\n }\r\n }\r\n }\r\n return result\r\n }\r\n },\r\n data: {\r\n _applyChange: function(change) {\r\n if (change && \"updateFocusedRow\" === change.changeType) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireChanged: function(e) {\r\n this.callBase(e);\r\n if (this.option(\"focusedRowEnabled\") && this._dataSource) {\r\n var isPartialUpdate = \"update\" === e.changeType && e.repaintChangesOnly;\r\n var isPartialUpdateWithDeleting = isPartialUpdate && e.changeTypes && e.changeTypes.indexOf(\"remove\") >= 0;\r\n if (\"refresh\" === e.changeType && e.items.length || isPartialUpdateWithDeleting) {\r\n this._updatePageIndexes();\r\n this.processUpdateFocusedRow(e)\r\n } else if (\"append\" === e.changeType || \"prepend\" === e.changeType) {\r\n this._updatePageIndexes()\r\n } else if (\"update\" === e.changeType && e.repaintChangesOnly) {\r\n this.processUpdateFocusedRow(e)\r\n }\r\n }\r\n },\r\n _updatePageIndexes: function() {\r\n var prevRenderingPageIndex = this._lastRenderingPageIndex || 0;\r\n var renderingPageIndex = this._rowsScrollController ? this._rowsScrollController.pageIndex() : 0;\r\n this._lastRenderingPageIndex = renderingPageIndex;\r\n this._isPagingByRendering = renderingPageIndex !== prevRenderingPageIndex\r\n },\r\n isPagingByRendering: function() {\r\n return this._isPagingByRendering\r\n },\r\n processUpdateFocusedRow: function(e) {\r\n var operationTypes = e.operationTypes || {};\r\n var focusController = this.getController(\"focus\");\r\n var {\r\n reload: reload,\r\n fullReload: fullReload\r\n } = operationTypes;\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var isVirtualScrolling = keyboardController._isVirtualScrolling();\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var isAutoNavigate = focusController.isAutoNavigateToFocusedRow();\r\n if (reload && !fullReload && isDefined(focusedRowKey)) {\r\n focusController._navigateToRow(focusedRowKey, true).done((function(focusedRowIndex) {\r\n if (focusedRowIndex < 0) {\r\n focusController._focusRowByIndex(void 0, operationTypes)\r\n }\r\n }))\r\n } else if (operationTypes.paging && !isVirtualScrolling) {\r\n if (isAutoNavigate) {\r\n var rowIndexByKey = this.getRowIndexByKey(focusedRowKey);\r\n var isValidRowIndexByKey = rowIndexByKey >= 0;\r\n var focusedRowIndex = this.option(\"focusedRowIndex\");\r\n var needFocusRowByIndex = focusedRowIndex >= 0 && (focusedRowIndex === rowIndexByKey || !isValidRowIndexByKey);\r\n if (needFocusRowByIndex) {\r\n focusController._focusRowByIndex(void 0, operationTypes)\r\n }\r\n } else if (this.getRowIndexByKey(focusedRowKey) < 0) {\r\n this.option(\"focusedRowIndex\", -1)\r\n }\r\n } else if (operationTypes.fullReload) {\r\n focusController._focusRowByKeyOrIndex()\r\n }\r\n },\r\n getPageIndexByKey: function(key) {\r\n var that = this;\r\n var d = new Deferred;\r\n that.getGlobalRowIndexByKey(key).done((function(globalIndex) {\r\n d.resolve(globalIndex >= 0 ? Math.floor(globalIndex / that.pageSize()) : -1)\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n getGlobalRowIndexByKey: function(key) {\r\n if (this._dataSource.group()) {\r\n return this._calculateGlobalRowIndexByGroupedData(key)\r\n }\r\n return this._calculateGlobalRowIndexByFlatData(key)\r\n },\r\n _calculateGlobalRowIndexByFlatData: function(key, groupFilter, useGroup) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var dataSource = that._dataSource;\r\n if (Array.isArray(key)) {\r\n return deferred.resolve(-1).promise()\r\n }\r\n var filter = that._generateFilterByKey(key);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter),\r\n skip: 0,\r\n take: 1\r\n }).done((function(data) {\r\n if (data.length > 0) {\r\n filter = that._generateOperationFilterByKey(key, data[0], useGroup);\r\n dataSource.load({\r\n filter: that._concatWithCombinedFilter(filter, groupFilter),\r\n skip: 0,\r\n take: 1,\r\n requireTotalCount: true\r\n }).done((function(_, extra) {\r\n deferred.resolve(extra.totalCount)\r\n }))\r\n } else {\r\n deferred.resolve(-1)\r\n }\r\n }));\r\n return deferred.promise()\r\n },\r\n _concatWithCombinedFilter: function(filter, groupFilter) {\r\n var combinedFilter = this.getCombinedFilter();\r\n return gridCoreUtils.combineFilters([filter, combinedFilter, groupFilter])\r\n },\r\n _generateBooleanFilter: function(selector, value, sortInfo) {\r\n var result;\r\n if (false === value) {\r\n result = [selector, \"=\", sortInfo.desc ? true : null]\r\n } else if (true === value ? !sortInfo.desc : sortInfo.desc) {\r\n result = [selector, \"<>\", value]\r\n }\r\n return result\r\n },\r\n _generateOperationFilterByKey: function(key, rowData, useGroup) {\r\n var that = this;\r\n var dataSource = that._dataSource;\r\n var filter = that._generateFilterByKey(key, \"<\");\r\n var sort = that._columnsController.getSortDataSourceParameters(!dataSource.remoteOperations().filtering, true);\r\n if (useGroup) {\r\n var group = that._columnsController.getGroupDataSourceParameters(!dataSource.remoteOperations().filtering);\r\n if (group) {\r\n sort = sort ? group.concat(sort) : group\r\n }\r\n }\r\n if (sort) {\r\n sort.slice().reverse().forEach((function(sortInfo) {\r\n var selector = sortInfo.selector;\r\n var getter;\r\n if (\"function\" === typeof selector) {\r\n getter = selector\r\n } else {\r\n getter = that._columnsController.columnOption(selector, \"selector\")\r\n }\r\n var value = getter ? getter(rowData) : rowData[selector];\r\n filter = [\r\n [selector, \"=\", value], \"and\", filter\r\n ];\r\n if (null === value || isBoolean(value)) {\r\n var booleanFilter = that._generateBooleanFilter(selector, value, sortInfo);\r\n if (booleanFilter) {\r\n filter = [booleanFilter, \"or\", filter]\r\n }\r\n } else {\r\n var filterOperation = sortInfo.desc ? \">\" : \"<\";\r\n var sortFilter;\r\n if (sortInfo.compare) {\r\n sortFilter = data => {\r\n if (\"<\" === filterOperation) {\r\n return sortInfo.compare(value, getter(data)) >= 1\r\n } else {\r\n return sortInfo.compare(value, getter(data)) <= -1\r\n }\r\n }\r\n } else {\r\n sortFilter = [selector, filterOperation, value];\r\n if (!sortInfo.desc) {\r\n sortFilter = [sortFilter, \"or\", [selector, \"=\", null]]\r\n }\r\n }\r\n filter = [sortFilter, \"or\", filter]\r\n }\r\n }))\r\n }\r\n return filter\r\n },\r\n _generateFilterByKey: function(key, operation) {\r\n var dataSourceKey = this._dataSource.key();\r\n var filter = [];\r\n if (!operation) {\r\n operation = \"=\"\r\n }\r\n if (Array.isArray(dataSourceKey)) {\r\n for (var i = 0; i < dataSourceKey.length; ++i) {\r\n var keyPart = key[dataSourceKey[i]];\r\n if (keyPart) {\r\n if (filter.length > 0) {\r\n filter.push(\"and\")\r\n }\r\n filter.push([dataSourceKey[i], operation, keyPart])\r\n }\r\n }\r\n } else {\r\n filter = [dataSourceKey, operation, key]\r\n }\r\n return filter\r\n },\r\n _getLastItemIndex: function() {\r\n return this.items(true).length - 1\r\n }\r\n },\r\n editing: {\r\n _deleteRowCore: function(rowIndex) {\r\n var deferred = this.callBase.apply(this, arguments);\r\n var dataController = this.getController(\"data\");\r\n var rowKey = dataController.getKeyByRowIndex(rowIndex);\r\n deferred.done(() => {\r\n var rowIndex = dataController.getRowIndexByKey(rowKey);\r\n var visibleRows = dataController.getVisibleRows();\r\n if (-1 === rowIndex && !visibleRows.length) {\r\n this.getController(\"focus\")._resetFocusedRow()\r\n }\r\n })\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (this.option(\"focusedRowEnabled\") && row) {\r\n if (this.getController(\"focus\").isRowFocused(row.key)) {\r\n $row.addClass(ROW_FOCUSED_CLASS)\r\n }\r\n }\r\n return $row\r\n },\r\n _checkRowKeys: function(options) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"focusedRowEnabled\") && this.option(\"dataSource\")) {\r\n var store = this._dataController.store();\r\n if (store && !store.key()) {\r\n this._dataController.fireError(\"E1042\", \"Row focusing\")\r\n }\r\n }\r\n },\r\n _update: function(change) {\r\n if (\"updateFocusedRow\" === change.changeType) {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.getController(\"focus\").updateFocusedRow(change)\r\n }\r\n } else {\r\n this.callBase(change)\r\n }\r\n },\r\n updateFocusElementTabIndex: function($cellElements, preventScroll) {\r\n var rowIndex = this.getController(\"keyboardNavigation\").getVisibleRowIndex();\r\n var row = this._dataController.getVisibleRows()[rowIndex];\r\n if (this.option(\"focusedRowEnabled\") && !(null !== row && void 0 !== row && row.isNewRow)) {\r\n this._setFocusedRowElementTabIndex(preventScroll)\r\n } else {\r\n this.callBase($cellElements)\r\n }\r\n },\r\n _setFocusedRowElementTabIndex: function(preventScroll) {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var tabIndex = this.option(\"tabIndex\") || 0;\r\n var dataController = this._dataController;\r\n var columnsController = this._columnsController;\r\n var rowIndex = dataController.getRowIndexByKey(focusedRowKey);\r\n var columnIndex = this.option(\"focusedColumnIndex\");\r\n var $row = this._findRowElementForTabIndex();\r\n if (!isDefined(this._scrollToFocusOnResize)) {\r\n this._scrollToFocusOnResize = () => {\r\n this.scrollToElementVertically(this._findRowElementForTabIndex());\r\n this.resizeCompleted.remove(this._scrollToFocusOnResize)\r\n }\r\n }\r\n $row.attr(\"tabIndex\", tabIndex);\r\n if (rowIndex >= 0 && !preventScroll) {\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n rowIndex += dataController.getRowIndexOffset();\r\n columnIndex += columnsController.getColumnIndexOffset();\r\n this.getController(\"keyboardNavigation\").setFocusedCellPosition(rowIndex, columnIndex);\r\n if (this.getController(\"focus\").isAutoNavigateToFocusedRow()) {\r\n var dataSource = dataController.dataSource();\r\n var operationTypes = dataSource && dataSource.operationTypes();\r\n if (operationTypes && !operationTypes.paging && !dataController.isPagingByRendering()) {\r\n this.resizeCompleted.remove(this._scrollToFocusOnResize);\r\n this.resizeCompleted.add(this._scrollToFocusOnResize)\r\n }\r\n }\r\n }\r\n },\r\n _findRowElementForTabIndex: function() {\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var rowIndex = this._dataController.getRowIndexByKey(focusedRowKey);\r\n return $(this.getRowElement(rowIndex >= 0 ? rowIndex : 0))\r\n },\r\n scrollToRowElement: function(key) {\r\n var rowIndex = this.getController(\"data\").getRowIndexByKey(key);\r\n var $row = $(this.getRow(rowIndex));\r\n return this.scrollToElementVertically($row)\r\n },\r\n scrollToElementVertically: function($row) {\r\n var scrollable = this.getScrollable();\r\n if (scrollable && $row.length) {\r\n var position = scrollable.getScrollElementPosition($row, \"vertical\");\r\n return this.scrollTopPosition(position)\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n scrollTopPosition: function(scrollTop) {\r\n var d = new Deferred;\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n var currentScrollTop = scrollable.scrollTop();\r\n var scrollHandler = () => {\r\n scrollable.off(\"scroll\", scrollHandler);\r\n d.resolve()\r\n };\r\n if (scrollTop !== currentScrollTop) {\r\n scrollable.on(\"scroll\", scrollHandler);\r\n this._dataController.resetFilterApplying();\r\n scrollable.scrollTo({\r\n top: scrollTop\r\n });\r\n return d.promise()\r\n }\r\n }\r\n return d.resolve()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.grid_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getInnerWidth,\r\n getWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow,\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isString,\r\n isDefined,\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport * as accessibility from \"../shared/accessibility\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar BORDERS_CLASS = \"borders\";\r\nvar TABLE_FIXED_CLASS = \"table-fixed\";\r\nvar IMPORTANT_MARGIN_CLASS = \"important-margin\";\r\nvar GRIDBASE_CONTAINER_CLASS = \"dx-gridbase-container\";\r\nvar HIDDEN_COLUMNS_WIDTH = \"adaptiveHidden\";\r\nvar VIEW_NAMES = [\"columnsSeparatorView\", \"blockSeparatorView\", \"trackerView\", \"headerPanel\", \"columnHeadersView\", \"rowsView\", \"footerView\", \"columnChooserView\", \"filterPanelView\", \"pagerView\", \"draggingHeaderView\", \"contextMenuView\", \"errorView\", \"headerFilterView\", \"filterBuilderView\"];\r\nvar isPercentWidth = function(width) {\r\n return isString(width) && \"%\" === width.slice(-1)\r\n};\r\nvar isPixelWidth = function(width) {\r\n return isString(width) && \"px\" === width.slice(-2)\r\n};\r\nvar getContainerHeight = function($container) {\r\n var clientHeight = $container.get(0).clientHeight;\r\n var paddingTop = parseFloat($container.css(\"paddingTop\"));\r\n var paddingBottom = parseFloat($container.css(\"paddingBottom\"));\r\n return clientHeight - paddingTop - paddingBottom\r\n};\r\nvar calculateFreeWidth = function(that, widths) {\r\n var contentWidth = that._rowsView.contentWidth();\r\n var totalWidth = that._getTotalWidth(widths, contentWidth);\r\n return contentWidth - totalWidth\r\n};\r\nvar calculateFreeWidthWithCurrentMinWidth = function(that, columnIndex, currentMinWidth, widths) {\r\n return calculateFreeWidth(that, widths.map((function(width, index) {\r\n return index === columnIndex ? currentMinWidth : width\r\n })))\r\n};\r\nvar restoreFocus = function(focusedElement, selectionRange) {\r\n accessibility.hiddenFocus(focusedElement);\r\n gridCoreUtils.setSelectionRange(focusedElement, selectionRange)\r\n};\r\nvar ResizingController = modules.ViewController.inherit({\r\n _initPostRenderHandlers: function() {\r\n var dataController = this._dataController;\r\n if (!this._refreshSizesHandler) {\r\n this._refreshSizesHandler = e => {\r\n dataController.changed.remove(this._refreshSizesHandler);\r\n var templateDeferreds = e && e.templateDeferreds || [];\r\n when.apply(this, templateDeferreds).done(() => {\r\n this._refreshSizes(e)\r\n })\r\n };\r\n dataController.changed.add(() => {\r\n dataController.changed.add(this._refreshSizesHandler)\r\n })\r\n }\r\n },\r\n _refreshSizes: function(e) {\r\n var resizeDeferred;\r\n var that = this;\r\n var changeType = e && e.changeType;\r\n var isDelayed = e && e.isDelayed;\r\n var items = that._dataController.items();\r\n if (!e || \"refresh\" === changeType || \"prepend\" === changeType || \"append\" === changeType) {\r\n if (!isDelayed) {\r\n resizeDeferred = that.resize()\r\n }\r\n } else if (\"update\" === changeType) {\r\n var _e$changeTypes;\r\n if (0 === (null === (_e$changeTypes = e.changeTypes) || void 0 === _e$changeTypes ? void 0 : _e$changeTypes.length)) {\r\n return\r\n }\r\n if ((items.length > 1 || \"insert\" !== e.changeTypes[0]) && !(0 === items.length && \"remove\" === e.changeTypes[0]) && !e.needUpdateDimensions) {\r\n deferUpdate(() => deferRender(() => deferUpdate(() => {\r\n that._setScrollerSpacing(that._hasHeight);\r\n that._rowsView.resize()\r\n })))\r\n } else {\r\n resizeDeferred = that.resize()\r\n }\r\n }\r\n if (changeType && \"updateSelection\" !== changeType && \"updateFocusedRow\" !== changeType && \"pageIndex\" !== changeType && !isDelayed) {\r\n when(resizeDeferred).done((function() {\r\n that._setAriaRowColCount();\r\n that.fireContentReadyAction()\r\n }))\r\n }\r\n },\r\n fireContentReadyAction: function() {\r\n this.component._fireContentReadyAction()\r\n },\r\n _setAriaRowColCount: function() {\r\n var component = this.component;\r\n component.setAria({\r\n rowCount: this._dataController.totalItemsCount(),\r\n colCount: component.columnCount()\r\n }, component.$element().children(\".\" + GRIDBASE_CONTAINER_CLASS))\r\n },\r\n _getBestFitWidths: function() {\r\n var _widths;\r\n var rowsView = this._rowsView;\r\n var columnHeadersView = this._columnHeadersView;\r\n var widths = rowsView.getColumnWidths();\r\n if (!(null !== (_widths = widths) && void 0 !== _widths && _widths.length)) {\r\n var _rowsView$getTableEle;\r\n var headersTableElement = columnHeadersView.getTableElement();\r\n columnHeadersView.setTableElement(null === (_rowsView$getTableEle = rowsView.getTableElement()) || void 0 === _rowsView$getTableEle ? void 0 : _rowsView$getTableEle.children(\".dx-header\"));\r\n widths = columnHeadersView.getColumnWidths();\r\n columnHeadersView.setTableElement(headersTableElement)\r\n }\r\n return widths\r\n },\r\n _setVisibleWidths: function(visibleColumns, widths) {\r\n var columnsController = this._columnsController;\r\n columnsController.beginUpdate();\r\n each(visibleColumns, (function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"visibleWidth\", widths[index])\r\n }));\r\n columnsController.endUpdate()\r\n },\r\n _toggleBestFitModeForView: function(view, className, isBestFit) {\r\n if (!view || !view.isVisible()) {\r\n return\r\n }\r\n var $rowsTables = this._rowsView.getTableElements();\r\n var $viewTables = view.getTableElements();\r\n each($rowsTables, (index, tableElement) => {\r\n var $tableBody;\r\n var $rowsTable = $(tableElement);\r\n var $viewTable = $viewTables.eq(index);\r\n if ($viewTable && $viewTable.length) {\r\n if (isBestFit) {\r\n $tableBody = $viewTable.children(\"tbody\").appendTo($rowsTable)\r\n } else {\r\n $tableBody = $rowsTable.children(\".\" + className).appendTo($viewTable)\r\n }\r\n $tableBody.toggleClass(className, isBestFit);\r\n $tableBody.toggleClass(this.addWidgetPrefix(\"best-fit\"), isBestFit)\r\n }\r\n })\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n var $rowsFixedTable = this._rowsView.getTableElements().eq(1);\r\n if (!$rowsTable) {\r\n return\r\n }\r\n $rowsTable.css(\"tableLayout\", isBestFit ? \"auto\" : \"fixed\");\r\n $rowsTable.children(\"colgroup\").css(\"display\", isBestFit ? \"none\" : \"\");\r\n $rowsFixedTable.toggleClass(this.addWidgetPrefix(TABLE_FIXED_CLASS), !isBestFit);\r\n this._toggleBestFitModeForView(this._columnHeadersView, \"dx-header\", isBestFit);\r\n this._toggleBestFitModeForView(this._footerView, \"dx-footer\", isBestFit);\r\n this._toggleContentMinHeight(isBestFit);\r\n if (this._needStretch()) {\r\n $rowsTable.get(0).style.width = isBestFit ? \"auto\" : \"\"\r\n }\r\n },\r\n _toggleContentMinHeight: function(isBestFit) {\r\n if (this.option(\"wordWrapEnabled\")) {\r\n var scrollable = this._rowsView.getScrollable();\r\n var $contentElement = this._rowsView._findContentElement();\r\n if (false === (null === scrollable || void 0 === scrollable ? void 0 : scrollable.option(\"useNative\"))) {\r\n $contentElement.css({\r\n minHeight: isBestFit ? gridCoreUtils.getContentHeightLimit(browser) : \"\"\r\n })\r\n }\r\n }\r\n },\r\n _synchronizeColumns: function() {\r\n var columnsController = this._columnsController;\r\n var visibleColumns = columnsController.getVisibleColumns();\r\n var columnAutoWidth = this.option(\"columnAutoWidth\");\r\n var needBestFit = this._needBestFit();\r\n var hasMinWidth = false;\r\n var resetBestFitMode;\r\n var isColumnWidthsCorrected = false;\r\n var resultWidths = [];\r\n var focusedElement;\r\n var selectionRange;\r\n !needBestFit && each(visibleColumns, (function(index, column) {\r\n if (\"auto\" === column.width) {\r\n needBestFit = true;\r\n return false\r\n }\r\n }));\r\n each(visibleColumns, (function(index, column) {\r\n if (column.minWidth) {\r\n hasMinWidth = true;\r\n return false\r\n }\r\n }));\r\n this._setVisibleWidths(visibleColumns, []);\r\n var $element = this.component.$element();\r\n if (needBestFit) {\r\n focusedElement = domAdapter.getActiveElement($element.get(0));\r\n selectionRange = gridCoreUtils.getSelectionRange(focusedElement);\r\n this._toggleBestFitMode(true);\r\n resetBestFitMode = true\r\n }\r\n if ($element && $element.get(0) && this._maxWidth) {\r\n delete this._maxWidth;\r\n $element[0].style.maxWidth = \"\"\r\n }\r\n deferUpdate(() => {\r\n if (needBestFit) {\r\n resultWidths = this._getBestFitWidths();\r\n each(visibleColumns, (function(index, column) {\r\n var columnId = columnsController.getColumnId(column);\r\n columnsController.columnOption(columnId, \"bestFitWidth\", resultWidths[index], true)\r\n }))\r\n } else if (hasMinWidth) {\r\n resultWidths = this._getBestFitWidths()\r\n }\r\n each(visibleColumns, (function(index) {\r\n var width = this.width;\r\n if (\"auto\" !== width) {\r\n if (isDefined(width)) {\r\n resultWidths[index] = isNumeric(width) || isPixelWidth(width) ? parseFloat(width) : width\r\n } else if (!columnAutoWidth) {\r\n resultWidths[index] = void 0\r\n }\r\n }\r\n }));\r\n if (resetBestFitMode) {\r\n this._toggleBestFitMode(false);\r\n resetBestFitMode = false;\r\n if (focusedElement && focusedElement !== domAdapter.getActiveElement()) {\r\n var isFocusOutsideWindow = getBoundingRect(focusedElement).bottom < 0;\r\n if (!isFocusOutsideWindow) {\r\n restoreFocus(focusedElement, selectionRange)\r\n }\r\n }\r\n }\r\n isColumnWidthsCorrected = this._correctColumnWidths(resultWidths, visibleColumns);\r\n if (columnAutoWidth) {\r\n ! function() {\r\n var expandColumnWidth;\r\n each(visibleColumns, (function(index, column) {\r\n if (\"groupExpand\" === column.type) {\r\n expandColumnWidth = resultWidths[index]\r\n }\r\n }));\r\n each(visibleColumns, (function(index, column) {\r\n if (\"groupExpand\" === column.type && expandColumnWidth) {\r\n resultWidths[index] = expandColumnWidth\r\n }\r\n }))\r\n }();\r\n if (this._needStretch()) {\r\n this._processStretch(resultWidths, visibleColumns)\r\n }\r\n }\r\n deferRender(() => {\r\n if (needBestFit || isColumnWidthsCorrected) {\r\n this._setVisibleWidths(visibleColumns, resultWidths)\r\n }\r\n })\r\n })\r\n },\r\n _needBestFit: function() {\r\n return this.option(\"columnAutoWidth\")\r\n },\r\n _needStretch: function() {\r\n return this._columnsController.getVisibleColumns().some(c => \"auto\" === c.width && !c.command)\r\n },\r\n _getAverageColumnsWidth: function(resultWidths) {\r\n var freeWidth = calculateFreeWidth(this, resultWidths);\r\n var columnCountWithoutWidth = resultWidths.filter((function(width) {\r\n return void 0 === width\r\n })).length;\r\n return freeWidth / columnCountWithoutWidth\r\n },\r\n _correctColumnWidths: function(resultWidths, visibleColumns) {\r\n var that = this;\r\n var i;\r\n var hasPercentWidth = false;\r\n var hasAutoWidth = false;\r\n var isColumnWidthsCorrected = false;\r\n var $element = that.component.$element();\r\n var hasWidth = that._hasWidth;\r\n var _loop = function() {\r\n var index = i;\r\n var column = visibleColumns[index];\r\n var isHiddenColumn = resultWidths[index] === HIDDEN_COLUMNS_WIDTH;\r\n var width = resultWidths[index];\r\n var minWidth = column.minWidth;\r\n if (minWidth) {\r\n if (void 0 === width) {\r\n var averageColumnsWidth = that._getAverageColumnsWidth(resultWidths);\r\n width = averageColumnsWidth\r\n } else if (isPercentWidth(width)) {\r\n var freeWidth = calculateFreeWidthWithCurrentMinWidth(that, index, minWidth, resultWidths);\r\n if (freeWidth < 0) {\r\n width = -1\r\n }\r\n }\r\n }\r\n var realColumnWidth = that._getRealColumnWidth(index, resultWidths.map((function(columnWidth, columnIndex) {\r\n return index === columnIndex ? width : columnWidth\r\n })));\r\n if (minWidth && !isHiddenColumn && realColumnWidth < minWidth) {\r\n resultWidths[index] = minWidth;\r\n isColumnWidthsCorrected = true;\r\n i = -1\r\n }\r\n if (!isDefined(column.width)) {\r\n hasAutoWidth = true\r\n }\r\n if (isPercentWidth(column.width)) {\r\n hasPercentWidth = true\r\n }\r\n };\r\n for (i = 0; i < visibleColumns.length; i++) {\r\n _loop()\r\n }\r\n if (!hasAutoWidth && resultWidths.length) {\r\n var $rowsViewElement = that._rowsView.element();\r\n var contentWidth = that._rowsView.contentWidth();\r\n var scrollbarWidth = that._rowsView.getScrollbarWidth();\r\n var totalWidth = that._getTotalWidth(resultWidths, contentWidth);\r\n if (totalWidth < contentWidth) {\r\n var lastColumnIndex = gridCoreUtils.getLastResizableColumnIndex(visibleColumns, resultWidths);\r\n if (lastColumnIndex >= 0) {\r\n resultWidths[lastColumnIndex] = \"auto\";\r\n isColumnWidthsCorrected = true;\r\n if (false === hasWidth && !hasPercentWidth) {\r\n var borderWidth = that.option(\"showBorders\") ? Math.ceil(getOuterWidth($rowsViewElement) - getInnerWidth($rowsViewElement)) : 0;\r\n that._maxWidth = totalWidth + scrollbarWidth + borderWidth;\r\n $element.css(\"maxWidth\", that._maxWidth)\r\n }\r\n }\r\n }\r\n }\r\n return isColumnWidthsCorrected\r\n },\r\n _processStretch: function(resultSizes, visibleColumns) {\r\n var groupSize = this._rowsView.contentWidth();\r\n var tableSize = this._getTotalWidth(resultSizes, groupSize);\r\n var unusedIndexes = {\r\n length: 0\r\n };\r\n if (!resultSizes.length) {\r\n return\r\n }\r\n each(visibleColumns, (function(index) {\r\n if (this.width || resultSizes[index] === HIDDEN_COLUMNS_WIDTH) {\r\n unusedIndexes[index] = true;\r\n unusedIndexes.length++\r\n }\r\n }));\r\n var diff = groupSize - tableSize;\r\n var diffElement = Math.floor(diff / (resultSizes.length - unusedIndexes.length));\r\n var onePixelElementsCount = diff - diffElement * (resultSizes.length - unusedIndexes.length);\r\n if (diff >= 0) {\r\n for (var i = 0; i < resultSizes.length; i++) {\r\n if (unusedIndexes[i]) {\r\n continue\r\n }\r\n resultSizes[i] += diffElement;\r\n if (onePixelElementsCount > 0) {\r\n if (onePixelElementsCount < 1) {\r\n resultSizes[i] += onePixelElementsCount;\r\n onePixelElementsCount = 0\r\n } else {\r\n resultSizes[i]++;\r\n onePixelElementsCount--\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _getRealColumnWidth: function(columnIndex, columnWidths, groupWidth) {\r\n var ratio = 1;\r\n var width = columnWidths[columnIndex];\r\n if (!isPercentWidth(width)) {\r\n return parseFloat(width)\r\n }\r\n var percentTotalWidth = columnWidths.reduce((sum, width, index) => {\r\n if (!isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n var pixelTotalWidth = columnWidths.reduce((sum, width) => {\r\n if (!width || width === HIDDEN_COLUMNS_WIDTH || isPercentWidth(width)) {\r\n return sum\r\n }\r\n return sum + parseFloat(width)\r\n }, 0);\r\n groupWidth = groupWidth || this._rowsView.contentWidth();\r\n var freeSpace = groupWidth - pixelTotalWidth;\r\n var percentTotalWidthInPixel = percentTotalWidth * groupWidth / 100;\r\n if (pixelTotalWidth > 0 && percentTotalWidthInPixel + pixelTotalWidth >= groupWidth) {\r\n ratio = percentTotalWidthInPixel > freeSpace ? freeSpace / percentTotalWidthInPixel : 1\r\n }\r\n return parseFloat(width) * groupWidth * ratio / 100\r\n },\r\n _getTotalWidth: function(widths, groupWidth) {\r\n var result = 0;\r\n for (var i = 0; i < widths.length; i++) {\r\n var width = widths[i];\r\n if (width && width !== HIDDEN_COLUMNS_WIDTH) {\r\n result += this._getRealColumnWidth(i, widths, groupWidth)\r\n }\r\n }\r\n return Math.ceil(result)\r\n },\r\n updateSize: function(rootElement) {\r\n var $groupElement;\r\n var width;\r\n var $rootElement = $(rootElement);\r\n var importantMarginClass = this.addWidgetPrefix(IMPORTANT_MARGIN_CLASS);\r\n if (void 0 === this._hasHeight && $rootElement && $rootElement.is(\":visible\") && getWidth($rootElement)) {\r\n $groupElement = $rootElement.children(\".\" + this.getWidgetContainerClass());\r\n if ($groupElement.length) {\r\n $groupElement.detach()\r\n }\r\n this._hasHeight = !!getContainerHeight($rootElement);\r\n width = getWidth($rootElement);\r\n $rootElement.addClass(importantMarginClass);\r\n this._hasWidth = getWidth($rootElement) === width;\r\n $rootElement.removeClass(importantMarginClass);\r\n if ($groupElement.length) {\r\n $groupElement.appendTo($rootElement)\r\n }\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"resize\", \"updateDimensions\"]\r\n },\r\n resize: function() {\r\n return !this.component._requireResize && this.updateDimensions()\r\n },\r\n updateDimensions: function(checkSize) {\r\n var that = this;\r\n that._initPostRenderHandlers();\r\n if (!that._checkSize(checkSize)) {\r\n return\r\n }\r\n var prevResult = that._resizeDeferred;\r\n var result = that._resizeDeferred = new Deferred;\r\n when(prevResult).always((function() {\r\n deferRender((function() {\r\n if (that._dataController.isLoaded()) {\r\n that._synchronizeColumns()\r\n }\r\n that._resetGroupElementHeight();\r\n deferUpdate((function() {\r\n deferRender((function() {\r\n deferUpdate((function() {\r\n that._updateDimensionsCore()\r\n }))\r\n }))\r\n }))\r\n })).done(result.resolve).fail(result.reject)\r\n }));\r\n return result.promise()\r\n },\r\n _resetGroupElementHeight: function() {\r\n var groupElement = this.component.$element().children().get(0);\r\n var scrollable = this._rowsView.getScrollable();\r\n if (groupElement && groupElement.style.height && (!scrollable || !scrollable.scrollTop())) {\r\n groupElement.style.height = \"\"\r\n }\r\n },\r\n _checkSize: function(checkSize) {\r\n var $rootElement = this.component.$element();\r\n if (checkSize && (this._lastWidth === getWidth($rootElement) && this._lastHeight === getHeight($rootElement) && this._devicePixelRatio === getWindow().devicePixelRatio || !$rootElement.is(\":visible\"))) {\r\n return false\r\n }\r\n return true\r\n },\r\n _setScrollerSpacingCore: function(hasHeight) {\r\n var that = this;\r\n var vScrollbarWidth = hasHeight ? that._rowsView.getScrollbarWidth() : 0;\r\n var hScrollbarWidth = that._rowsView.getScrollbarWidth(true);\r\n deferRender((function() {\r\n that._columnHeadersView && that._columnHeadersView.setScrollerSpacing(vScrollbarWidth);\r\n that._footerView && that._footerView.setScrollerSpacing(vScrollbarWidth);\r\n that._rowsView.setScrollerSpacing(vScrollbarWidth, hScrollbarWidth)\r\n }))\r\n },\r\n _setScrollerSpacing: function(hasHeight) {\r\n if (true === this.option(\"scrolling.useNative\")) {\r\n deferRender(() => {\r\n deferUpdate(() => {\r\n this._setScrollerSpacingCore(hasHeight)\r\n })\r\n })\r\n } else {\r\n this._setScrollerSpacingCore(hasHeight)\r\n }\r\n },\r\n _updateDimensionsCore: function() {\r\n var that = this;\r\n var dataController = that._dataController;\r\n var rowsView = that._rowsView;\r\n var $rootElement = that.component.$element();\r\n var groupElement = $rootElement.children().get(0);\r\n var rootElementHeight = $rootElement && ($rootElement.get(0).clientHeight || getHeight($rootElement));\r\n var maxHeight = parseInt($rootElement.css(\"maxHeight\"));\r\n var maxHeightHappened = maxHeight && rootElementHeight >= maxHeight;\r\n var height = that.option(\"height\") || $rootElement.get(0).style.height;\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var isMaxHeightApplied = maxHeightHappened && groupElement.scrollHeight === groupElement.offsetHeight;\r\n var $testDiv;\r\n that.updateSize($rootElement);\r\n var hasHeight = that._hasHeight || maxHeightHappened;\r\n if (height && that._hasHeight ^ \"auto\" !== height) {\r\n $testDiv = $(\"<div>\");\r\n setHeight($testDiv, height);\r\n $testDiv.appendTo($rootElement);\r\n that._hasHeight = !!getHeight($testDiv);\r\n $testDiv.remove()\r\n }\r\n deferRender((function() {\r\n rowsView.height(null, hasHeight);\r\n if (maxHeightHappened && !isMaxHeightApplied) {\r\n $(groupElement).css(\"height\", maxHeight)\r\n }\r\n if (!dataController.isLoaded()) {\r\n rowsView.setLoading(dataController.isLoading());\r\n return\r\n }\r\n deferUpdate((function() {\r\n that._updateLastSizes($rootElement);\r\n that._setScrollerSpacing(hasHeight);\r\n each(VIEW_NAMES, (function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.resize()\r\n }\r\n }));\r\n editorFactory && editorFactory.resize()\r\n }))\r\n }))\r\n },\r\n _updateLastSizes: function($rootElement) {\r\n this._lastWidth = getWidth($rootElement);\r\n this._lastHeight = getHeight($rootElement);\r\n this._devicePixelRatio = getWindow().devicePixelRatio\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"width\":\r\n case \"height\":\r\n this.component._renderDimensions();\r\n this.resize();\r\n case \"renderAsync\":\r\n args.handled = true;\r\n return;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._columnHeadersView = this.getView(\"columnHeadersView\");\r\n this._footerView = this.getView(\"footerView\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n }\r\n});\r\nvar SynchronizeScrollingController = modules.ViewController.inherit({\r\n _scrollChangedHandler: function(views, pos, viewName) {\r\n for (var j = 0; j < views.length; j++) {\r\n if (views[j] && views[j].name !== viewName) {\r\n views[j].scrollTo({\r\n left: pos.left,\r\n top: pos.top\r\n })\r\n }\r\n }\r\n },\r\n init: function() {\r\n var views = [this.getView(\"columnHeadersView\"), this.getView(\"footerView\"), this.getView(\"rowsView\")];\r\n for (var i = 0; i < views.length; i++) {\r\n var view = views[i];\r\n if (view) {\r\n view.scrollChanged.add(this._scrollChangedHandler.bind(this, views))\r\n }\r\n }\r\n }\r\n});\r\nvar GridView = modules.View.inherit({\r\n _endUpdateCore: function() {\r\n if (this.component._requireResize) {\r\n this.component._requireResize = false;\r\n this._resizingController.resize()\r\n }\r\n },\r\n _getWidgetAriaLabel: function() {\r\n return \"dxDataGrid-ariaDataGrid\"\r\n },\r\n init: function() {\r\n this._resizingController = this.getController(\"resizing\");\r\n this._dataController = this.getController(\"data\")\r\n },\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n element: function() {\r\n return this._groupElement\r\n },\r\n optionChanged: function(args) {\r\n if (isDefined(this._groupElement) && \"showBorders\" === args.name) {\r\n this._groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!args.value);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n },\r\n _renderViews: function($groupElement) {\r\n var that = this;\r\n each(VIEW_NAMES, (function(index, viewName) {\r\n var view = that.getView(viewName);\r\n if (view) {\r\n view.render($groupElement)\r\n }\r\n }))\r\n },\r\n _getTableRoleName: function() {\r\n return \"grid\"\r\n },\r\n render: function($rootElement) {\r\n var isFirstRender = !this._groupElement;\r\n var $groupElement = this._groupElement || $(\"<div>\").addClass(this.getWidgetContainerClass());\r\n $groupElement.addClass(GRIDBASE_CONTAINER_CLASS);\r\n $groupElement.toggleClass(this.addWidgetPrefix(BORDERS_CLASS), !!this.option(\"showBorders\"));\r\n this.setAria(\"role\", \"presentation\", $rootElement);\r\n this.component.setAria({\r\n role: this._getTableRoleName(),\r\n label: messageLocalization.format(this._getWidgetAriaLabel())\r\n }, $groupElement);\r\n this._rootElement = $rootElement || this._rootElement;\r\n if (isFirstRender) {\r\n this._groupElement = $groupElement;\r\n hasWindow() && this.getController(\"resizing\").updateSize($rootElement);\r\n $groupElement.appendTo($rootElement)\r\n }\r\n this._renderViews($groupElement)\r\n },\r\n update: function() {\r\n var $rootElement = this._rootElement;\r\n var $groupElement = this._groupElement;\r\n var resizingController = this.getController(\"resizing\");\r\n if ($rootElement && $groupElement) {\r\n resizingController.resize();\r\n if (this._dataController.isLoaded()) {\r\n this._resizingController.fireContentReadyAction()\r\n }\r\n }\r\n }\r\n});\r\nexport var gridViewModule = {\r\n defaultOptions: function() {\r\n return {\r\n showBorders: false,\r\n renderAsync: false\r\n }\r\n },\r\n controllers: {\r\n resizing: ResizingController,\r\n synchronizeScrolling: SynchronizeScrollingController\r\n },\r\n views: {\r\n gridView: GridView\r\n },\r\n VIEW_NAMES: VIEW_NAMES\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.header_filter_core.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n isDefined,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport TreeView from \"../tree_view\";\r\nimport List from \"../list_light\";\r\nimport \"../list/modules/search\";\r\nimport \"../list/modules/selection\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar HEADER_FILTER_CLASS = \"dx-header-filter\";\r\nvar HEADER_FILTER_MENU_CLASS = \"dx-header-filter-menu\";\r\nvar DEFAULT_SEARCH_EXPRESSION = \"text\";\r\n\r\nfunction resetChildrenItemSelection(items) {\r\n items = items || [];\r\n for (var i = 0; i < items.length; i++) {\r\n items[i].selected = false;\r\n resetChildrenItemSelection(items[i].items)\r\n }\r\n}\r\n\r\nfunction updateSelectAllState(e, filterValues) {\r\n if (e.component.option(\"searchValue\")) {\r\n return\r\n }\r\n var selectAllCheckBox = $(e.element).find(\".dx-list-select-all-checkbox\").data(\"dxCheckBox\");\r\n if (selectAllCheckBox && filterValues && filterValues.length) {\r\n selectAllCheckBox.option(\"value\", void 0)\r\n }\r\n}\r\n\r\nfunction isSearchEnabled(that, options) {\r\n var headerFilter = options.headerFilter;\r\n if (headerFilter && isDefined(headerFilter.allowSearch)) {\r\n return headerFilter.allowSearch\r\n }\r\n return that.option(\"headerFilter.allowSearch\")\r\n}\r\nexport function updateHeaderFilterItemSelectionState(item, filterValuesMatch, isExcludeFilter) {\r\n if (filterValuesMatch ^ isExcludeFilter) {\r\n item.selected = true;\r\n if (isExcludeFilter && item.items) {\r\n for (var j = 0; j < item.items.length; j++) {\r\n if (!item.items[j].selected) {\r\n item.selected = void 0;\r\n break\r\n }\r\n }\r\n }\r\n } else if (isExcludeFilter || item.selected) {\r\n item.selected = false;\r\n resetChildrenItemSelection(item.items)\r\n }\r\n}\r\nexport var HeaderFilterView = modules.View.inherit({\r\n getPopupContainer: function() {\r\n return this._popupContainer\r\n },\r\n getListContainer: function() {\r\n return this._listContainer\r\n },\r\n applyHeaderFilter: function(options) {\r\n var list = this.getListContainer();\r\n var searchValue = list.option(\"searchValue\");\r\n var isSelectAll = !searchValue && !options.isFilterBuilder && list.$element().find(\".dx-checkbox\").eq(0).hasClass(\"dx-checkbox-checked\");\r\n var filterValues = [];\r\n if (!isSelectAll) {\r\n if (\"tree\" === options.type) {\r\n if (options.filterType) {\r\n options.filterType = \"include\"\r\n }! function fillSelectedItemKeys(filterValues, items, isExclude) {\r\n each(items, (function(_, item) {\r\n if (void 0 !== item.selected && !!item.selected ^ isExclude) {\r\n var node = list._getNode(item);\r\n var hasChildren = list._hasChildren(node);\r\n var hasChildrenWithSelection = hasChildren && item.items && item.items.some(item => item.selected);\r\n if (!searchValue || !hasChildrenWithSelection) {\r\n filterValues.push(item.value);\r\n return\r\n }\r\n }\r\n if (item.items && item.items.length) {\r\n fillSelectedItemKeys(filterValues, item.items, isExclude)\r\n }\r\n }))\r\n }(filterValues, list.option(\"items\"), false);\r\n options.filterValues = filterValues\r\n }\r\n } else {\r\n if (\"tree\" === options.type) {\r\n options.filterType = \"exclude\"\r\n }\r\n if (Array.isArray(options.filterValues)) {\r\n options.filterValues = []\r\n }\r\n }\r\n if (options.filterValues && !options.filterValues.length) {\r\n options.filterValues = null\r\n }\r\n options.apply();\r\n this.hideHeaderFilterMenu()\r\n },\r\n showHeaderFilterMenu: function($columnElement, options) {\r\n if (options) {\r\n this._initializePopupContainer(options);\r\n var popupContainer = this.getPopupContainer();\r\n this.hideHeaderFilterMenu();\r\n this.updatePopup($columnElement, options);\r\n popupContainer.show()\r\n }\r\n },\r\n hideHeaderFilterMenu: function() {\r\n var headerFilterMenu = this.getPopupContainer();\r\n headerFilterMenu && headerFilterMenu.hide()\r\n },\r\n updatePopup: function($element, options) {\r\n var showColumnLines = this.option(\"showColumnLines\");\r\n var alignment = \"right\" === options.alignment ^ !showColumnLines ? \"left\" : \"right\";\r\n this._popupContainer.setAria({\r\n role: \"dialog\",\r\n label: messageLocalization.format(\"dxDataGrid-headerFilterLabel\")\r\n });\r\n if (this._popupContainer) {\r\n this._cleanPopupContent();\r\n this._popupContainer.option(\"position\", {\r\n my: alignment + \" top\",\r\n at: alignment + \" bottom\",\r\n of: $element,\r\n collision: \"flip fit\"\r\n })\r\n }\r\n },\r\n _getSearchExpr: function(options) {\r\n var lookup = options.lookup;\r\n var useDefaultSearchExpr = options.useDefaultSearchExpr;\r\n var headerFilterDataSource = options.headerFilter && options.headerFilter.dataSource;\r\n if (useDefaultSearchExpr || isDefined(headerFilterDataSource) && !isFunction(headerFilterDataSource)) {\r\n return DEFAULT_SEARCH_EXPRESSION\r\n }\r\n if (lookup) {\r\n return lookup.displayExpr || \"this\"\r\n }\r\n if (options.dataSource) {\r\n var group = options.dataSource.group;\r\n if (Array.isArray(group) && group.length > 0) {\r\n return group[0].selector\r\n } else if (isFunction(group) && !options.remoteFiltering) {\r\n return group\r\n }\r\n }\r\n return options.dataField || options.selector\r\n },\r\n _cleanPopupContent: function() {\r\n this._popupContainer && this._popupContainer.$content().empty()\r\n },\r\n _initializePopupContainer: function(options) {\r\n var that = this;\r\n var $element = that.element();\r\n var headerFilterOptions = that.option(\"headerFilter\");\r\n var width = options.headerFilter && options.headerFilter.width || headerFilterOptions && headerFilterOptions.width;\r\n var height = options.headerFilter && options.headerFilter.height || headerFilterOptions && headerFilterOptions.height;\r\n var dxPopupOptions = {\r\n width: width,\r\n height: height,\r\n visible: false,\r\n shading: false,\r\n showTitle: false,\r\n showCloseButton: false,\r\n hideOnParentScroll: false,\r\n dragEnabled: false,\r\n hideOnOutsideClick: true,\r\n focusStateEnabled: false,\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true,\r\n toolbarItems: [{\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: headerFilterOptions.texts.ok,\r\n onClick: function() {\r\n that.applyHeaderFilter(options)\r\n }\r\n }\r\n }, {\r\n toolbar: \"bottom\",\r\n location: \"after\",\r\n widget: \"dxButton\",\r\n options: {\r\n text: headerFilterOptions.texts.cancel,\r\n onClick: function() {\r\n that.hideHeaderFilterMenu()\r\n }\r\n }\r\n }],\r\n resizeEnabled: true,\r\n onShowing: function(e) {\r\n e.component.$content().parent().addClass(\"dx-dropdowneditor-overlay\");\r\n that._initializeListContainer(options);\r\n options.onShowing && options.onShowing(e)\r\n },\r\n onShown: function() {\r\n that.getListContainer().focus()\r\n },\r\n onHidden: options.onHidden,\r\n onInitialized: function(e) {\r\n var component = e.component;\r\n component.option(\"animation\", component._getDefaultOptions().animation)\r\n }\r\n };\r\n if (!isDefined(that._popupContainer)) {\r\n that._popupContainer = that._createComponent($element, Popup, dxPopupOptions)\r\n } else {\r\n that._popupContainer.option(dxPopupOptions)\r\n }\r\n },\r\n _initializeListContainer: function(options) {\r\n var that = this;\r\n var $content = that._popupContainer.$content();\r\n var widgetOptions = {\r\n searchEnabled: isSearchEnabled(that, options),\r\n searchTimeout: that.option(\"headerFilter.searchTimeout\"),\r\n searchMode: options.headerFilter && options.headerFilter.searchMode || \"\",\r\n dataSource: options.dataSource,\r\n onContentReady: function() {\r\n that.renderCompleted.fire()\r\n },\r\n itemTemplate: function(data, _, element) {\r\n var $element = $(element);\r\n if (options.encodeHtml) {\r\n return $element.text(data.text)\r\n }\r\n return $element.html(data.text)\r\n }\r\n };\r\n\r\n function onOptionChanged(e) {\r\n if (\"searchValue\" === e.fullName && !options.isFilterBuilder && false !== that.option(\"headerFilter.hideSelectAllOnSearch\")) {\r\n if (\"tree\" === options.type) {\r\n e.component.option(\"showCheckBoxesMode\", e.value ? \"normal\" : \"selectAll\")\r\n } else {\r\n e.component.option(\"selectionMode\", e.value ? \"multiple\" : \"all\")\r\n }\r\n }\r\n }\r\n if (\"tree\" === options.type) {\r\n that._listContainer = that._createComponent($(\"<div>\").appendTo($content), TreeView, extend(widgetOptions, {\r\n showCheckBoxesMode: options.isFilterBuilder ? \"normal\" : \"selectAll\",\r\n onOptionChanged: onOptionChanged,\r\n keyExpr: \"id\"\r\n }))\r\n } else {\r\n that._listContainer = that._createComponent($(\"<div>\").appendTo($content), List, extend(widgetOptions, {\r\n searchExpr: that._getSearchExpr(options),\r\n pageLoadMode: \"scrollBottom\",\r\n showSelectionControls: true,\r\n selectionMode: options.isFilterBuilder ? \"multiple\" : \"all\",\r\n onOptionChanged: onOptionChanged,\r\n onSelectionChanged: function(e) {\r\n var items = e.component.option(\"items\");\r\n var selectedItems = e.component.option(\"selectedItems\");\r\n if (!e.component._selectedItemsUpdating && !e.component.option(\"searchValue\") && !options.isFilterBuilder) {\r\n var filterValues = options.filterValues || [];\r\n var isExclude = \"exclude\" === options.filterType;\r\n if (0 === selectedItems.length && items.length && (filterValues.length <= 1 || isExclude && filterValues.length === items.length - 1)) {\r\n options.filterType = \"include\";\r\n options.filterValues = []\r\n } else if (selectedItems.length === items.length) {\r\n options.filterType = \"exclude\";\r\n options.filterValues = []\r\n }\r\n }\r\n each(items, (function(index, item) {\r\n var selected = gridCoreUtils.getIndexByKey(item, selectedItems, null) >= 0;\r\n var oldSelected = !!item.selected;\r\n if (oldSelected !== selected) {\r\n item.selected = selected;\r\n options.filterValues = options.filterValues || [];\r\n var filterValueIndex = gridCoreUtils.getIndexByKey(item.value, options.filterValues, null);\r\n if (filterValueIndex >= 0) {\r\n options.filterValues.splice(filterValueIndex, 1)\r\n }\r\n if (selected ^ \"exclude\" === options.filterType) {\r\n options.filterValues.push(item.value)\r\n }\r\n }\r\n }));\r\n updateSelectAllState(e, options.filterValues)\r\n },\r\n onContentReady: function(e) {\r\n var component = e.component;\r\n var items = component.option(\"items\");\r\n var selectedItems = [];\r\n each(items, (function() {\r\n if (this.selected) {\r\n selectedItems.push(this)\r\n }\r\n }));\r\n component._selectedItemsUpdating = true;\r\n component.option(\"selectedItems\", selectedItems);\r\n component._selectedItemsUpdating = false;\r\n updateSelectAllState(e, options.filterValues)\r\n }\r\n }))\r\n }\r\n },\r\n _renderCore: function() {\r\n this.element().addClass(HEADER_FILTER_MENU_CLASS)\r\n }\r\n});\r\nexport var allowHeaderFiltering = function(column) {\r\n return isDefined(column.allowHeaderFiltering) ? column.allowHeaderFiltering : column.allowFiltering\r\n};\r\nexport var headerFilterMixin = {\r\n _applyColumnState: function(options) {\r\n var $headerFilterIndicator;\r\n var rootElement = options.rootElement;\r\n var column = options.column;\r\n if (\"headerFilter\" === options.name) {\r\n rootElement.find(\".\" + HEADER_FILTER_CLASS).remove();\r\n if (allowHeaderFiltering(column)) {\r\n $headerFilterIndicator = this.callBase(options).toggleClass(\"dx-header-filter-empty\", this._isHeaderFilterEmpty(column));\r\n if (!this.option(\"useLegacyKeyboardNavigation\")) {\r\n $headerFilterIndicator.attr(\"tabindex\", this.option(\"tabindex\") || 0)\r\n }\r\n var indicatorLabel = messageLocalization.format(\"dxDataGrid-headerFilterIndicatorLabel\", column.caption);\r\n $headerFilterIndicator.attr(\"aria-label\", indicatorLabel);\r\n $headerFilterIndicator.attr(\"aria-haspopup\", \"dialog\");\r\n $headerFilterIndicator.attr(\"role\", \"button\")\r\n }\r\n return $headerFilterIndicator\r\n }\r\n return this.callBase(options)\r\n },\r\n _isHeaderFilterEmpty: function(column) {\r\n return !column.filterValues || !column.filterValues.length\r\n },\r\n _getIndicatorClassName: function(name) {\r\n if (\"headerFilter\" === name) {\r\n return HEADER_FILTER_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator: function(options) {\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"headerFilter\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if ($container.children().length && (!rtlEnabled && \"right\" === options.columnAlignment || rtlEnabled && \"left\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n optionChanged: function(args) {\r\n if (\"headerFilter\" === args.name) {\r\n var requireReady = \"columnHeadersView\" === this.name;\r\n this._invalidate(requireReady, requireReady);\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.header_filter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport filterUtils from \"../shared/filtering\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n headerFilterMixin,\r\n HeaderFilterView,\r\n updateHeaderFilterItemSelectionState,\r\n allowHeaderFiltering\r\n} from \"./ui.grid_core.header_filter_core\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport dateLocalization from \"../../localization/date\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n restoreFocus\r\n} from \"../shared/accessibility\";\r\nimport dataQuery from \"../../data/query\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nvar DATE_INTERVAL_FORMATS = {\r\n month: function(value) {\r\n return dateLocalization.getMonthNames()[value - 1]\r\n },\r\n quarter: function(value) {\r\n return dateLocalization.format(new Date(2e3, 3 * value - 1), \"quarter\")\r\n }\r\n};\r\n\r\nfunction ungroupUTCDates(items, dateParts, dates) {\r\n dateParts = dateParts || [];\r\n dates = dates || [];\r\n items.forEach(item => {\r\n if (isDefined(item.key)) {\r\n var isMonthPart = 1 === dateParts.length;\r\n dateParts.push(isMonthPart ? item.key - 1 : item.key);\r\n if (item.items) {\r\n ungroupUTCDates(item.items, dateParts, dates)\r\n } else {\r\n var date = new Date(Date.UTC.apply(Date, dateParts));\r\n dates.push(date)\r\n }\r\n dateParts.pop()\r\n } else {\r\n dates.push(null)\r\n }\r\n });\r\n return dates\r\n}\r\n\r\nfunction convertDataFromUTCToLocal(data, column) {\r\n var dates = ungroupUTCDates(data);\r\n var query = dataQuery(dates);\r\n var group = gridCoreUtils.getHeaderFilterGroupParameters(_extends({}, column, {\r\n calculateCellValue: date => date\r\n }));\r\n return storeHelper.queryByOptions(query, {\r\n group: group\r\n }).toArray()\r\n}\r\n\r\nfunction isUTCFormat(format) {\r\n return \"Z\" === (null === format || void 0 === format ? void 0 : format.slice(-1)) || \"'Z'\" === (null === format || void 0 === format ? void 0 : format.slice(-3))\r\n}\r\nvar HeaderFilterController = modules.ViewController.inherit({\r\n init: function() {\r\n this._columnsController = this.getController(\"columns\");\r\n this._dataController = this.getController(\"data\");\r\n this._headerFilterView = this.getView(\"headerFilterView\")\r\n },\r\n _updateSelectedState: function(items, column) {\r\n var i = items.length;\r\n var isExclude = \"exclude\" === column.filterType;\r\n while (i--) {\r\n var item = items[i];\r\n if (\"items\" in items[i]) {\r\n this._updateSelectedState(items[i].items, column)\r\n }\r\n updateHeaderFilterItemSelectionState(item, gridCoreUtils.getIndexByKey(items[i].value, column.filterValues, null) > -1, isExclude)\r\n }\r\n },\r\n _normalizeGroupItem: function(item, currentLevel, options) {\r\n var value;\r\n var displayValue;\r\n var path = options.path;\r\n var valueSelector = options.valueSelector;\r\n var displaySelector = options.displaySelector;\r\n var column = options.column;\r\n if (valueSelector && displaySelector) {\r\n value = valueSelector(item);\r\n displayValue = displaySelector(item)\r\n } else {\r\n value = item.key;\r\n displayValue = value\r\n }\r\n if (!isObject(item)) {\r\n item = {}\r\n } else {\r\n item = extend({}, item)\r\n }\r\n path.push(value);\r\n if (1 === path.length) {\r\n item.value = path[0]\r\n } else {\r\n item.value = path.join(\"/\")\r\n }\r\n item.text = this.getHeaderItemText(displayValue, column, currentLevel, options.headerFilterOptions);\r\n return item\r\n },\r\n getHeaderItemText: function(displayValue, column, currentLevel, headerFilterOptions) {\r\n var text = gridCoreUtils.formatValue(displayValue, function(value, column, currentLevel) {\r\n var groupInterval = filterUtils.getGroupInterval(column);\r\n var result = gridCoreUtils.getFormatOptionsByColumn(column, \"headerFilter\");\r\n if (groupInterval) {\r\n result.groupInterval = groupInterval[currentLevel];\r\n if (gridCoreUtils.isDateType(column.dataType)) {\r\n result.format = DATE_INTERVAL_FORMATS[groupInterval[currentLevel]]\r\n } else if (\"number\" === column.dataType) {\r\n result.getDisplayFormat = function() {\r\n var formatOptions = {\r\n format: column.format,\r\n target: \"headerFilter\"\r\n };\r\n var firstValueText = gridCoreUtils.formatValue(value, formatOptions);\r\n var secondValue = value + groupInterval[currentLevel];\r\n var secondValueText = gridCoreUtils.formatValue(secondValue, formatOptions);\r\n return firstValueText && secondValueText ? firstValueText + \" - \" + secondValueText : \"\"\r\n }\r\n }\r\n }\r\n return result\r\n }(displayValue, column, currentLevel));\r\n if (!text) {\r\n text = headerFilterOptions.texts.emptyValue\r\n }\r\n return text\r\n },\r\n _processGroupItems: function(groupItems, currentLevel, path, options) {\r\n var displaySelector;\r\n var valueSelector;\r\n var column = options.column;\r\n var lookup = column.lookup;\r\n var level = options.level;\r\n path = path || [];\r\n currentLevel = currentLevel || 0;\r\n if (lookup) {\r\n displaySelector = compileGetter(lookup.displayExpr);\r\n valueSelector = compileGetter(lookup.valueExpr)\r\n }\r\n for (var i = 0; i < groupItems.length; i++) {\r\n groupItems[i] = this._normalizeGroupItem(groupItems[i], currentLevel, {\r\n column: options.column,\r\n headerFilterOptions: options.headerFilterOptions,\r\n displaySelector: displaySelector,\r\n valueSelector: valueSelector,\r\n path: path\r\n });\r\n if (\"items\" in groupItems[i]) {\r\n if (currentLevel === level || !isDefined(groupItems[i].value)) {\r\n delete groupItems[i].items\r\n } else {\r\n this._processGroupItems(groupItems[i].items, currentLevel + 1, path, options)\r\n }\r\n }\r\n path.pop()\r\n }\r\n },\r\n getDataSource: function(column) {\r\n var _column$headerFilter;\r\n var dataSource = this._dataController.dataSource();\r\n var remoteGrouping = null === dataSource || void 0 === dataSource ? void 0 : dataSource.remoteOperations().grouping;\r\n var group = gridCoreUtils.getHeaderFilterGroupParameters(column, remoteGrouping);\r\n var headerFilterDataSource = null === (_column$headerFilter = column.headerFilter) || void 0 === _column$headerFilter ? void 0 : _column$headerFilter.dataSource;\r\n var headerFilterOptions = this.option(\"headerFilter\");\r\n var isLookup = false;\r\n var options = {\r\n component: this.component\r\n };\r\n if (!dataSource) {\r\n return\r\n }\r\n if (isDefined(headerFilterDataSource) && !isFunction(headerFilterDataSource)) {\r\n options.dataSource = normalizeDataSourceOptions(headerFilterDataSource)\r\n } else if (column.lookup) {\r\n isLookup = true;\r\n if (this.option(\"syncLookupFilterValues\")) {\r\n this._currentColumn = column;\r\n var filter = this._dataController.getCombinedFilter();\r\n this._currentColumn = null;\r\n options.dataSource = gridCoreUtils.getWrappedLookupDataSource(column, dataSource, filter)\r\n } else {\r\n options.dataSource = gridCoreUtils.normalizeLookupDataSource(column.lookup)\r\n }\r\n } else {\r\n var cutoffLevel = Array.isArray(group) ? group.length - 1 : 0;\r\n this._currentColumn = column;\r\n var _filter = this._dataController.getCombinedFilter();\r\n this._currentColumn = null;\r\n options.dataSource = {\r\n filter: _filter,\r\n group: group,\r\n useDefaultSearch: true,\r\n load: options => {\r\n var d = new Deferred;\r\n options.dataField = column.dataField || column.name;\r\n dataSource.load(options).done((function(data) {\r\n var convertUTCDates = remoteGrouping && isUTCFormat(column.serializationFormat) && cutoffLevel > 3;\r\n if (convertUTCDates) {\r\n data = convertDataFromUTCToLocal(data, column)\r\n }\r\n that._processGroupItems(data, null, null, {\r\n level: cutoffLevel,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n });\r\n d.resolve(data)\r\n })).fail(d.reject);\r\n return d\r\n }\r\n }\r\n }\r\n if (isFunction(headerFilterDataSource)) {\r\n headerFilterDataSource.call(column, options)\r\n }\r\n var origPostProcess = options.dataSource.postProcess;\r\n var that = this;\r\n options.dataSource.postProcess = function(data) {\r\n var items = data;\r\n if (isLookup) {\r\n if (0 === this.pageIndex() && !this.searchValue()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n that._processGroupItems(items, null, null, {\r\n level: 0,\r\n column: column,\r\n headerFilterOptions: headerFilterOptions\r\n })\r\n }\r\n items = origPostProcess && origPostProcess.call(this, items) || items;\r\n that._updateSelectedState(items, column);\r\n return items\r\n };\r\n return options.dataSource\r\n },\r\n getCurrentColumn: function() {\r\n return this._currentColumn\r\n },\r\n showHeaderFilterMenu: function(columnIndex, isGroupPanel) {\r\n var columnsController = this._columnsController;\r\n var column = extend(true, {}, this._columnsController.getColumns()[columnIndex]);\r\n if (column) {\r\n var visibleIndex = columnsController.getVisibleIndex(columnIndex);\r\n var view = isGroupPanel ? this.getView(\"headerPanel\") : this.getView(\"columnHeadersView\");\r\n var $columnElement = $columnElement || view.getColumnElements().eq(isGroupPanel ? column.groupIndex : visibleIndex);\r\n this.showHeaderFilterMenuBase({\r\n columnElement: $columnElement,\r\n column: column,\r\n applyFilter: true,\r\n apply: function() {\r\n columnsController.columnOption(columnIndex, {\r\n filterValues: this.filterValues,\r\n filterType: this.filterType\r\n })\r\n }\r\n })\r\n }\r\n },\r\n showHeaderFilterMenuBase: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n if (column) {\r\n var groupInterval = filterUtils.getGroupInterval(column);\r\n var dataSource = that._dataController.dataSource();\r\n var remoteFiltering = dataSource && dataSource.remoteOperations().filtering;\r\n extend(options, column, {\r\n type: groupInterval && groupInterval.length > 1 ? \"tree\" : \"list\",\r\n remoteFiltering: remoteFiltering,\r\n onShowing: function(e) {\r\n var dxResizableInstance = e.component.$overlayContent().dxResizable(\"instance\");\r\n dxResizableInstance && dxResizableInstance.option(\"onResizeEnd\", (function(e) {\r\n var columnsController = that.getController(\"columns\");\r\n var headerFilterByColumn = columnsController.columnOption(options.dataField, \"headerFilter\");\r\n headerFilterByColumn = headerFilterByColumn || {};\r\n headerFilterByColumn.width = e.width;\r\n headerFilterByColumn.height = e.height;\r\n columnsController.columnOption(options.dataField, \"headerFilter\", headerFilterByColumn, true)\r\n }))\r\n },\r\n onHidden: () => restoreFocus(this)\r\n });\r\n options.dataSource = that.getDataSource(options);\r\n if (options.isFilterBuilder) {\r\n options.dataSource.filter = null;\r\n options.alignment = \"right\"\r\n }\r\n that._headerFilterView.showHeaderFilterMenu(options.columnElement, options)\r\n }\r\n },\r\n hideHeaderFilterMenu: function() {\r\n this._headerFilterView.hideHeaderFilterMenu()\r\n }\r\n});\r\nvar ColumnHeadersViewHeaderFilterExtender = extend({}, headerFilterMixin, {\r\n _renderCellContent: function($cell, options) {\r\n var that = this;\r\n var $headerFilterIndicator;\r\n var column = options.column;\r\n if (!column.command && allowHeaderFiltering(column) && that.option(\"headerFilter.visible\") && \"header\" === options.rowType) {\r\n $headerFilterIndicator = that._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: that.option(\"showColumnLines\")\r\n });\r\n $headerFilterIndicator && that._subscribeToIndicatorEvent($headerFilterIndicator, column, \"headerFilter\")\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _subscribeToIndicatorEvent: function($indicator, column, indicatorName) {\r\n var that = this;\r\n if (\"headerFilter\" === indicatorName) {\r\n eventsEngine.on($indicator, clickEventName, that.createAction((function(e) {\r\n e.event.stopPropagation();\r\n that.getController(\"headerFilter\").showHeaderFilterMenu(column.index, false)\r\n })))\r\n }\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n var $indicator = this.callBase($cell, column, indicatorName);\r\n $indicator && this._subscribeToIndicatorEvent($indicator, column, indicatorName)\r\n },\r\n _updateHeaderFilterIndicators: function() {\r\n if (this.option(\"headerFilter.visible\")) {\r\n this._updateIndicators(\"headerFilter\")\r\n }\r\n },\r\n _needUpdateFilterIndicators: function() {\r\n return true\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (gridCoreUtils.checkChanges(optionNames, [\"filterValues\", \"filterType\"])) {\r\n if (this._needUpdateFilterIndicators()) {\r\n this._updateHeaderFilterIndicators()\r\n }\r\n return\r\n }\r\n this.callBase(e)\r\n }\r\n});\r\nvar HeaderPanelHeaderFilterExtender = extend({}, headerFilterMixin, {\r\n _createGroupPanelItem: function($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase.apply(that, arguments);\r\n var $headerFilterIndicator;\r\n if (!groupColumn.command && allowHeaderFiltering(groupColumn) && that.option(\"headerFilter.visible\")) {\r\n $headerFilterIndicator = that._applyColumnState({\r\n name: \"headerFilter\",\r\n rootElement: $item,\r\n column: {\r\n alignment: getDefaultAlignment(that.option(\"rtlEnabled\")),\r\n filterValues: groupColumn.filterValues,\r\n allowHeaderFiltering: true\r\n },\r\n showColumnLines: true\r\n });\r\n $headerFilterIndicator && eventsEngine.on($headerFilterIndicator, clickEventName, that.createAction((function(e) {\r\n var event = e.event;\r\n event.stopPropagation();\r\n that.getController(\"headerFilter\").showHeaderFilterMenu(groupColumn.index, true)\r\n })))\r\n }\r\n return $item\r\n }\r\n});\r\nexport function invertFilterExpression(filter) {\r\n return [\"!\", filter]\r\n}\r\nvar DataControllerFilterRowExtender = {\r\n skipCalculateColumnFilters: function() {\r\n return false\r\n },\r\n _calculateAdditionalFilter: function() {\r\n if (this.skipCalculateColumnFilters()) {\r\n return this.callBase()\r\n }\r\n var filters = [this.callBase()];\r\n var columns = this._columnsController.getVisibleColumns(null, true);\r\n var headerFilterController = this.getController(\"headerFilter\");\r\n var currentColumn = headerFilterController.getCurrentColumn();\r\n each(columns, (function(_, column) {\r\n var filter;\r\n if (currentColumn && currentColumn.index === column.index) {\r\n return\r\n }\r\n if (allowHeaderFiltering(column) && column.calculateFilterExpression && Array.isArray(column.filterValues) && column.filterValues.length) {\r\n var filterValues = [];\r\n each(column.filterValues, (function(_, filterValue) {\r\n if (Array.isArray(filterValue)) {\r\n filter = filterValue\r\n } else {\r\n if (column.deserializeValue && !gridCoreUtils.isDateType(column.dataType) && \"number\" !== column.dataType) {\r\n filterValue = column.deserializeValue(filterValue)\r\n }\r\n filter = column.createFilterExpression(filterValue, \"=\", \"headerFilter\")\r\n }\r\n if (filter) {\r\n filter.columnIndex = column.index\r\n }\r\n filterValues.push(filter)\r\n }));\r\n filterValues = gridCoreUtils.combineFilters(filterValues, \"or\");\r\n filters.push(\"exclude\" === column.filterType ? [\"!\", filterValues] : filterValues)\r\n }\r\n }));\r\n return gridCoreUtils.combineFilters(filters)\r\n }\r\n};\r\nexport var headerFilterModule = {\r\n defaultOptions: function() {\r\n return {\r\n syncLookupFilterValues: true,\r\n headerFilter: {\r\n visible: false,\r\n width: 252,\r\n height: 325,\r\n allowSearch: false,\r\n searchTimeout: 500,\r\n texts: {\r\n emptyValue: messageLocalization.format(\"dxDataGrid-headerFilterEmptyValue\"),\r\n ok: messageLocalization.format(\"dxDataGrid-headerFilterOK\"),\r\n cancel: messageLocalization.format(\"dxDataGrid-headerFilterCancel\")\r\n }\r\n }\r\n }\r\n },\r\n controllers: {\r\n headerFilter: HeaderFilterController\r\n },\r\n views: {\r\n headerFilterView: HeaderFilterView\r\n },\r\n extenders: {\r\n controllers: {\r\n data: DataControllerFilterRowExtender\r\n },\r\n views: {\r\n columnHeadersView: ColumnHeadersViewHeaderFilterExtender,\r\n headerPanel: HeaderPanelHeaderFilterExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.header_panel.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport $ from \"../../core/renderer\";\r\nimport Toolbar from \"../toolbar\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPathParts\r\n} from \"../../core/utils/data\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar TOOLBAR_BUTTON_CLASS = \"toolbar-button\";\r\nvar TOOLBAR_ARIA_LABEL = \"-ariaToolbar\";\r\nvar DEFAULT_TOOLBAR_ITEM_NAMES = [\"addRowButton\", \"applyFilterButton\", \"columnChooserButton\", \"exportButton\", \"groupPanel\", \"revertButton\", \"saveButton\", \"searchPanel\"];\r\nvar HeaderPanel = ColumnsView.inherit({\r\n _getToolbarItems: function() {\r\n return []\r\n },\r\n _getButtonContainer: function() {\r\n return $(\"<div>\").addClass(this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS))\r\n },\r\n _getToolbarButtonClass: function(specificClass) {\r\n var secondClass = specificClass ? \" \" + specificClass : \"\";\r\n return this.addWidgetPrefix(TOOLBAR_BUTTON_CLASS) + secondClass\r\n },\r\n _getToolbarOptions: function() {\r\n var userToolbarOptions = this.option(\"toolbar\");\r\n var options = {\r\n toolbarOptions: {\r\n items: this._getToolbarItems(),\r\n visible: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.visible,\r\n disabled: null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.disabled,\r\n onItemRendered: function(e) {\r\n var itemRenderedCallback = e.itemData.onItemRendered;\r\n if (itemRenderedCallback) {\r\n itemRenderedCallback(e)\r\n }\r\n }\r\n }\r\n };\r\n var userItems = null === userToolbarOptions || void 0 === userToolbarOptions ? void 0 : userToolbarOptions.items;\r\n options.toolbarOptions.items = this._normalizeToolbarItems(options.toolbarOptions.items, userItems);\r\n this.executeAction(\"onToolbarPreparing\", options);\r\n if (options.toolbarOptions && !isDefined(options.toolbarOptions.visible)) {\r\n var toolbarItems = options.toolbarOptions.items;\r\n options.toolbarOptions.visible = !!(null !== toolbarItems && void 0 !== toolbarItems && toolbarItems.length)\r\n }\r\n return options.toolbarOptions\r\n },\r\n _normalizeToolbarItems(defaultItems, userItems) {\r\n defaultItems.forEach(button => {\r\n if (!DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n throw new Error(\"Default toolbar item '\".concat(button.name, \"' is not added to DEFAULT_TOOLBAR_ITEM_NAMES\"))\r\n }\r\n });\r\n var defaultProps = {\r\n location: \"after\"\r\n };\r\n var isArray = Array.isArray(userItems);\r\n if (!isDefined(userItems)) {\r\n return defaultItems\r\n }\r\n if (!isArray) {\r\n userItems = [userItems]\r\n }\r\n var defaultButtonsByNames = {};\r\n defaultItems.forEach(button => {\r\n defaultButtonsByNames[button.name] = button\r\n });\r\n var normalizedItems = userItems.map(button => {\r\n if (isString(button)) {\r\n button = {\r\n name: button\r\n }\r\n }\r\n if (isDefined(button.name)) {\r\n if (isDefined(defaultButtonsByNames[button.name])) {\r\n button = extend(true, {}, defaultButtonsByNames[button.name], button)\r\n } else if (DEFAULT_TOOLBAR_ITEM_NAMES.includes(button.name)) {\r\n button = _extends({}, button, {\r\n visible: false\r\n })\r\n }\r\n }\r\n return extend(true, {}, defaultProps, button)\r\n });\r\n return isArray ? normalizedItems : normalizedItems[0]\r\n },\r\n _renderCore: function() {\r\n if (!this._toolbar) {\r\n var $headerPanel = this.element();\r\n $headerPanel.addClass(this.addWidgetPrefix(HEADER_PANEL_CLASS));\r\n var label = messageLocalization.format(this.component.NAME + TOOLBAR_ARIA_LABEL);\r\n var $toolbar = $(\"<div>\").attr(\"aria-label\", label).appendTo($headerPanel);\r\n this._toolbar = this._createComponent($toolbar, Toolbar, this._toolbarOptions)\r\n } else {\r\n this._toolbar.option(this._toolbarOptions)\r\n }\r\n },\r\n _columnOptionChanged: noop,\r\n _handleDataChanged: function() {\r\n if (this._requireReady) {\r\n this.render()\r\n }\r\n },\r\n init: function() {\r\n this.callBase();\r\n this.createAction(\"onToolbarPreparing\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n render: function() {\r\n this._toolbarOptions = this._getToolbarOptions();\r\n this.callBase.apply(this, arguments)\r\n },\r\n setToolbarItemDisabled: function(name, optionValue) {\r\n var toolbarInstance = this._toolbar;\r\n if (toolbarInstance) {\r\n var items = toolbarInstance.option(\"items\") || [];\r\n var itemIndex = items.indexOf(items.filter((function(item) {\r\n return item.name === name\r\n }))[0]);\r\n if (itemIndex >= 0) {\r\n var itemOptionPrefix = \"items[\" + itemIndex + \"]\";\r\n if (toolbarInstance.option(itemOptionPrefix + \".options\")) {\r\n toolbarInstance.option(itemOptionPrefix + \".options.disabled\", optionValue)\r\n } else {\r\n toolbarInstance.option(itemOptionPrefix + \".disabled\", optionValue)\r\n }\r\n }\r\n }\r\n },\r\n updateToolbarDimensions: function() {\r\n var _this$_toolbar;\r\n null === (_this$_toolbar = this._toolbar) || void 0 === _this$_toolbar ? void 0 : _this$_toolbar.updateDimensions()\r\n },\r\n getHeaderPanel: function() {\r\n return this.element()\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged: function(args) {\r\n if (\"onToolbarPreparing\" === args.name) {\r\n this._invalidate();\r\n args.handled = true\r\n }\r\n if (\"toolbar\" === args.name) {\r\n args.handled = true;\r\n if (this._toolbar) {\r\n var parts = getPathParts(args.fullName);\r\n var optionName = args.fullName.replace(/^toolbar\\./, \"\");\r\n if (1 === parts.length) {\r\n var toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(toolbarOptions)\r\n } else if (\"items\" === parts[1]) {\r\n if (2 === parts.length) {\r\n var _toolbarOptions = this._getToolbarOptions();\r\n this._toolbar.option(\"items\", _toolbarOptions.items)\r\n } else if (3 === parts.length) {\r\n var normalizedItem = this._normalizeToolbarItems(this._getToolbarItems(), args.value);\r\n this._toolbar.option(optionName, normalizedItem)\r\n } else if (parts.length >= 4) {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n } else {\r\n this._toolbar.option(optionName, args.value)\r\n }\r\n }\r\n }\r\n this.callBase(args)\r\n },\r\n isVisible: function() {\r\n return this._toolbarOptions && this._toolbarOptions.visible\r\n },\r\n allowDragging: noop\r\n});\r\nexport var headerPanelModule = {\r\n defaultOptions: function() {\r\n return {}\r\n },\r\n views: {\r\n headerPanel: HeaderPanel\r\n },\r\n extenders: {\r\n controllers: {\r\n resizing: {\r\n _updateDimensionsCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this.getView(\"headerPanel\").updateToolbarDimensions()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.keyboard_navigation.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight,\r\n getHeight,\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport core from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n isDefined,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport * as accessibility from \"../shared/accessibility\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n keyboard\r\n} from \"../../events/short\";\r\nimport devices from \"../../core/devices\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar EDIT_FORM_CLASS = \"edit-form\";\r\nvar GROUP_FOOTER_CLASS = \"group-footer\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar HEADER_ROW_CLASS = \"dx-header-row\";\r\nvar EDIT_FORM_ITEM_CLASS = \"edit-form-item\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar FREESPACE_ROW_CLASS = \"dx-freespace-row\";\r\nvar VIRTUAL_ROW_CLASS = \"dx-virtual-row\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar DROPDOWN_EDITOR_OVERLAY_CLASS = \"dx-dropdowneditor-overlay\";\r\nvar COMMAND_EXPAND_CLASS = \"dx-command-expand\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar COMMAND_EDIT_CLASS = \"dx-command-edit\";\r\nvar COMMAND_CELL_SELECTOR = \"[class^=dx-command]\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar DATEBOX_WIDGET_NAME = \"dxDateBox\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar WIDGET_CLASS = \"dx-widget\";\r\nvar REVERT_BUTTON_CLASS = \"dx-revert-button\";\r\nvar FAST_EDITING_DELETE_KEY = \"delete\";\r\nvar INTERACTIVE_ELEMENTS_SELECTOR = \"input:not([type='hidden']), textarea, a, select, button, [tabindex], .dx-checkbox\";\r\nvar NON_FOCUSABLE_ELEMENTS_SELECTOR = \"\".concat(INTERACTIVE_ELEMENTS_SELECTOR, \", .dx-dropdowneditor-icon\");\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_CELL = \"cell\";\r\nvar FOCUS_TYPE_ROW = \"row\";\r\nvar FOCUS_TYPE_CELL = \"cell\";\r\nvar COLUMN_HEADERS_VIEW = \"columnHeadersView\";\r\nvar FUNCTIONAL_KEYS = [\"shift\", \"control\", \"alt\"];\r\n\r\nfunction isGroupRow($row) {\r\n return $row && $row.hasClass(GROUP_ROW_CLASS)\r\n}\r\n\r\nfunction isDetailRow($row) {\r\n return $row && $row.hasClass(MASTER_DETAIL_ROW_CLASS)\r\n}\r\n\r\nfunction isDataRow($row) {\r\n return $row && !isGroupRow($row) && !isDetailRow($row)\r\n}\r\n\r\nfunction isNotFocusedRow($row) {\r\n return !$row || $row.hasClass(FREESPACE_ROW_CLASS) || $row.hasClass(VIRTUAL_ROW_CLASS)\r\n}\r\n\r\nfunction isCellElement($element) {\r\n return $element.length && \"TD\" === $element[0].tagName\r\n}\r\n\r\nfunction isEditorCell(that, $cell) {\r\n return !that._isRowEditMode() && $cell && !$cell.hasClass(COMMAND_SELECT_CLASS) && $cell.hasClass(EDITOR_CELL_CLASS)\r\n}\r\n\r\nfunction isElementDefined($element) {\r\n return isDefined($element) && $element.length > 0\r\n}\r\n\r\nfunction isMobile() {\r\n return \"desktop\" !== devices.current().deviceType\r\n}\r\n\r\nfunction isCellInHeaderRow($cell) {\r\n return !!$cell.parent(\".\".concat(HEADER_ROW_CLASS)).length\r\n}\r\n\r\nfunction isFixedColumnIndexOffsetRequired(that, column) {\r\n var rtlEnabled = that.option(\"rtlEnabled\");\r\n var result = false;\r\n if (rtlEnabled) {\r\n result = !(\"right\" === column.fixedPosition || isDefined(column.command) && !isDefined(column.fixedPosition))\r\n } else {\r\n result = !(!isDefined(column.fixedPosition) || \"left\" === column.fixedPosition)\r\n }\r\n return result\r\n}\r\n\r\nfunction shouldPreventScroll(that) {\r\n var keyboardController = that.getController(\"keyboardNavigation\");\r\n return keyboardController._isVirtualScrolling() ? that.option(\"focusedRowIndex\") === keyboardController.getRowIndex() : false\r\n}\r\nvar KeyboardNavigationController = core.ViewController.inherit({\r\n init: function() {\r\n this._dataController = this.getController(\"data\");\r\n this._selectionController = this.getController(\"selection\");\r\n this._editingController = this.getController(\"editing\");\r\n this._headerPanel = this.getView(\"headerPanel\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._editorFactory = this.getController(\"editorFactory\");\r\n if (this.isKeyboardEnabled()) {\r\n accessibility.subscribeVisibilityChange();\r\n this._updateFocusTimeout = null;\r\n this._fastEditingStarted = false;\r\n this._focusedCellPosition = {};\r\n this._canceledCellPosition = null;\r\n this._editorFactory.focused.add($element => {\r\n this.setupFocusedView();\r\n if (this._isNeedScroll) {\r\n if ($element.is(\":visible\") && this._focusedView && this._focusedView.getScrollable) {\r\n this._focusedView._scrollToElement($element);\r\n this._isNeedScroll = false\r\n }\r\n }\r\n });\r\n this._initViewHandlers();\r\n this._initDocumentHandlers();\r\n this.createAction(\"onKeyDown\")\r\n }\r\n },\r\n _initViewHandlers: function() {\r\n var rowsView = this.getView(\"rowsView\");\r\n var rowsViewFocusHandler = event => {\r\n var $element = $(event.target);\r\n var isRelatedTargetInRowsView = $(event.relatedTarget).closest(rowsView.element()).length;\r\n if (event.relatedTarget && this._isEventInCurrentGrid(event) && !isRelatedTargetInRowsView) {\r\n var $focusedCell = this._getFocusedCell();\r\n $focusedCell = !isElementDefined($focusedCell) ? rowsView.getCellElements(0).filter(\"[tabindex]\").eq(0) : $focusedCell;\r\n if (!$element.closest($focusedCell).length) {\r\n event.preventDefault();\r\n eventsEngine.trigger($focusedCell, \"focus\")\r\n }\r\n }\r\n };\r\n rowsView.renderCompleted.add(e => {\r\n var $rowsView = rowsView.element();\r\n var isFullUpdate = !e || \"refresh\" === e.changeType;\r\n var isFocusedViewCorrect = this._focusedView && this._focusedView.name === rowsView.name;\r\n var needUpdateFocus = false;\r\n var isAppend = e && (\"append\" === e.changeType || \"prepend\" === e.changeType);\r\n var root = $(domAdapter.getRootNode($rowsView.get && $rowsView.get(0)));\r\n var $focusedElement = root.find(\":focus\");\r\n var isFocusedElementCorrect = !$focusedElement.length || $focusedElement.closest($rowsView).length;\r\n eventsEngine.off($rowsView, \"focusin\", rowsViewFocusHandler);\r\n eventsEngine.on($rowsView, \"focusin\", rowsViewFocusHandler);\r\n this._initPointerEventHandler();\r\n this._initKeyDownHandler();\r\n this._setRowsViewAttributes();\r\n if (isFocusedViewCorrect && isFocusedElementCorrect) {\r\n needUpdateFocus = this._isNeedFocus ? !isAppend : this._isHiddenFocus && isFullUpdate && !(null !== e && void 0 !== e && e.virtualColumnsScrolling);\r\n needUpdateFocus && this._updateFocus(true)\r\n }\r\n })\r\n },\r\n _initDocumentHandlers: function() {\r\n var document = domAdapter.getDocument();\r\n this._documentClickHandler = this.createAction(e => {\r\n var $target = $(e.event.target);\r\n var isCurrentRowsViewClick = this._isEventInCurrentGrid(e.event) && $target.closest(\".\".concat(this.addWidgetPrefix(ROWS_VIEW_CLASS))).length;\r\n var isEditorOverlay = $target.closest(\".\".concat(DROPDOWN_EDITOR_OVERLAY_CLASS)).length;\r\n var columnsResizerController = this.getController(\"columnsResizer\");\r\n var isColumnResizing = !!columnsResizerController && columnsResizerController.isResizing();\r\n if (!isCurrentRowsViewClick && !isEditorOverlay && !isColumnResizing) {\r\n var targetInsideFocusedView = this._focusedView ? $target.parents().filter(this._focusedView.element()).length > 0 : false;\r\n !targetInsideFocusedView && this._resetFocusedCell(true);\r\n this._resetFocusedView()\r\n }\r\n });\r\n eventsEngine.on(document, addNamespace(pointerEvents.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler)\r\n },\r\n _setRowsViewAttributes: function() {\r\n var $rowsView = this._getRowsViewElement();\r\n var isGridEmpty = !this._dataController.getVisibleRows().length;\r\n if (isGridEmpty) {\r\n this._applyTabIndexToElement($rowsView)\r\n }\r\n },\r\n _initPointerEventHandler: function() {\r\n var pointerEventName = !isMobile() ? pointerEvents.down : clickEventName;\r\n var clickSelector = \".\".concat(ROW_CLASS, \" > td, .\").concat(ROW_CLASS);\r\n var $rowsView = this._getRowsViewElement();\r\n if (!isDefined(this._pointerEventAction)) {\r\n this._pointerEventAction = this.createAction(this._pointerEventHandler)\r\n }\r\n eventsEngine.off($rowsView, addNamespace(pointerEventName, \"dxDataGridKeyboardNavigation\"), this._pointerEventAction);\r\n eventsEngine.on($rowsView, addNamespace(pointerEventName, \"dxDataGridKeyboardNavigation\"), clickSelector, this._pointerEventAction)\r\n },\r\n _initKeyDownHandler: function() {\r\n var $rowsView = this._getRowsViewElement();\r\n keyboard.off(this._keyDownListener);\r\n this._keyDownListener = keyboard.on($rowsView, null, e => this._keyDownHandler(e))\r\n },\r\n dispose: function() {\r\n this.callBase();\r\n this._resetFocusedView();\r\n keyboard.off(this._keyDownListener);\r\n eventsEngine.off(domAdapter.getDocument(), addNamespace(pointerEvents.down, \"dxDataGridKeyboardNavigation\"), this._documentClickHandler);\r\n clearTimeout(this._updateFocusTimeout);\r\n accessibility.unsubscribeVisibilityChange()\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"keyboardNavigation\":\r\n case \"useLegacyKeyboardNavigation\":\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n isRowFocusType: function() {\r\n return this.focusType === FOCUS_TYPE_ROW\r\n },\r\n isCellFocusType: function() {\r\n return this.focusType === FOCUS_TYPE_CELL\r\n },\r\n setRowFocusType: function() {\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.focusType = FOCUS_TYPE_ROW\r\n }\r\n },\r\n setCellFocusType: function() {\r\n this.focusType = FOCUS_TYPE_CELL\r\n },\r\n _keyDownHandler: function(e) {\r\n var _this$_editingControl;\r\n var needStopPropagation = true;\r\n this._isNeedFocus = true;\r\n this._isNeedScroll = true;\r\n var isHandled = this._processOnKeyDown(e);\r\n var isEditing = null === (_this$_editingControl = this._editingController) || void 0 === _this$_editingControl ? void 0 : _this$_editingControl.isEditing();\r\n var originalEvent = e.originalEvent;\r\n if (originalEvent.isDefaultPrevented()) {\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n return\r\n }\r\n FUNCTIONAL_KEYS.indexOf(e.keyName) < 0 && this._updateFocusedCellPositionByTarget(originalEvent.target);\r\n if (!isHandled) {\r\n switch (e.keyName) {\r\n case \"leftArrow\":\r\n case \"rightArrow\":\r\n this._leftRightKeysHandler(e, isEditing);\r\n isHandled = true;\r\n break;\r\n case \"upArrow\":\r\n case \"downArrow\":\r\n if (e.ctrl) {\r\n accessibility.selectView(\"rowsView\", this, originalEvent)\r\n } else {\r\n this._upDownKeysHandler(e, isEditing)\r\n }\r\n isHandled = true;\r\n break;\r\n case \"pageUp\":\r\n case \"pageDown\":\r\n this._pageUpDownKeyHandler(e);\r\n isHandled = true;\r\n break;\r\n case \"space\":\r\n isHandled = this._spaceKeyHandler(e, isEditing);\r\n break;\r\n case \"A\":\r\n if (isCommandKeyPressed(e.originalEvent)) {\r\n this._ctrlAKeyHandler(e, isEditing);\r\n isHandled = true\r\n } else {\r\n isHandled = this._beginFastEditing(e.originalEvent)\r\n }\r\n break;\r\n case \"tab\":\r\n this._tabKeyHandler(e, isEditing);\r\n isHandled = true;\r\n break;\r\n case \"enter\":\r\n this._enterKeyHandler(e, isEditing);\r\n isHandled = true;\r\n break;\r\n case \"escape\":\r\n this._escapeKeyHandler(e, isEditing);\r\n isHandled = true;\r\n break;\r\n case \"F\":\r\n if (isCommandKeyPressed(e.originalEvent)) {\r\n this._ctrlFKeyHandler(e);\r\n isHandled = true\r\n } else {\r\n isHandled = this._beginFastEditing(e.originalEvent)\r\n }\r\n break;\r\n case \"F2\":\r\n this._f2KeyHandler();\r\n isHandled = true;\r\n break;\r\n case \"del\":\r\n case \"backspace\":\r\n if (this._isFastEditingAllowed() && !this._isFastEditingStarted()) {\r\n isHandled = this._beginFastEditing(originalEvent, true)\r\n }\r\n }\r\n if (!isHandled && !this._beginFastEditing(originalEvent)) {\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n needStopPropagation = false\r\n }\r\n if (needStopPropagation) {\r\n originalEvent.stopPropagation()\r\n }\r\n }\r\n },\r\n _processOnKeyDown: function(eventArgs) {\r\n var originalEvent = eventArgs.originalEvent;\r\n var args = {\r\n handled: false,\r\n event: originalEvent\r\n };\r\n this.executeAction(\"onKeyDown\", args);\r\n eventArgs.ctrl = originalEvent.ctrlKey;\r\n eventArgs.alt = originalEvent.altKey;\r\n eventArgs.shift = originalEvent.shiftKey;\r\n return !!args.handled\r\n },\r\n _closeEditCell: function() {\r\n setTimeout(() => {\r\n this._editingController.closeEditCell()\r\n })\r\n },\r\n _leftRightKeysHandler: function(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $event = eventArgs.originalEvent;\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n var directionCode = this._getDirectionCodeByKey(eventArgs.keyName);\r\n var isEditingNavigationMode = this._isFastEditingStarted();\r\n var allowNavigate = (!isEditing || isEditingNavigationMode) && isDataRow($row);\r\n if (allowNavigate) {\r\n this.setCellFocusType();\r\n isEditingNavigationMode && this._closeEditCell();\r\n if (this._isVirtualColumnRender()) {\r\n this._processVirtualHorizontalPosition(directionCode)\r\n }\r\n var $cell = this._getNextCell(directionCode);\r\n if (isElementDefined($cell)) {\r\n this._arrowKeysHandlerFocusCell($event, $cell, directionCode)\r\n }\r\n $event && $event.preventDefault()\r\n }\r\n },\r\n _upDownKeysHandler: function(eventArgs, isEditing) {\r\n var _this$_editingControl2, _this$_editingControl3;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(visibleRowIndex);\r\n var $event = eventArgs.originalEvent;\r\n var isUpArrow = \"upArrow\" === eventArgs.keyName;\r\n var dataSource = this._dataController.dataSource();\r\n var isRowEditingInCurrentRow = null === (_this$_editingControl2 = this._editingController) || void 0 === _this$_editingControl2 ? void 0 : null === (_this$_editingControl3 = _this$_editingControl2.isEditRowByIndex) || void 0 === _this$_editingControl3 ? void 0 : _this$_editingControl3.call(_this$_editingControl2, visibleRowIndex);\r\n var isEditingNavigationMode = this._isFastEditingStarted();\r\n var allowNavigate = (!isRowEditingInCurrentRow || !isEditing || isEditingNavigationMode) && $row && !isDetailRow($row);\r\n if (allowNavigate) {\r\n isEditingNavigationMode && this._closeEditCell();\r\n if (!this._navigateNextCell($event, eventArgs.keyName)) {\r\n if (this._isVirtualRowRender() && isUpArrow && dataSource && !dataSource.isLoading()) {\r\n var rowHeight = getOuterHeight($row);\r\n var rowIndex = this._focusedCellPosition.rowIndex - 1;\r\n this._scrollBy(0, -rowHeight, rowIndex, $event)\r\n }\r\n }\r\n $event && $event.preventDefault()\r\n }\r\n },\r\n _pageUpDownKeyHandler: function(eventArgs) {\r\n var pageIndex = this._dataController.pageIndex();\r\n var pageCount = this._dataController.pageCount();\r\n var pagingEnabled = this.option(\"paging.enabled\");\r\n var isPageUp = \"pageUp\" === eventArgs.keyName;\r\n var pageStep = isPageUp ? -1 : 1;\r\n var scrollable = this.getView(\"rowsView\").getScrollable();\r\n if (pagingEnabled && !this._isVirtualScrolling()) {\r\n if ((isPageUp ? pageIndex > 0 : pageIndex < pageCount - 1) && !this._isVirtualScrolling()) {\r\n this._dataController.pageIndex(pageIndex + pageStep);\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n } else if (scrollable && getHeight(scrollable.container()) < getHeight(scrollable.$content())) {\r\n this._scrollBy(0, getHeight(scrollable.container()) * pageStep);\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _spaceKeyHandler: function(eventArgs, isEditing) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $target = $(eventArgs.originalEvent && eventArgs.originalEvent.target);\r\n if (this.option(\"selection\") && \"none\" !== this.option(\"selection\").mode && !isEditing) {\r\n var isFocusedRowElement = \"row\" === this._getElementType($target) && this.isRowFocusType() && isDataRow($target);\r\n var isFocusedSelectionCell = $target.hasClass(COMMAND_SELECT_CLASS);\r\n if (isFocusedSelectionCell && \"onClick\" === this.option(\"selection.showCheckBoxesMode\")) {\r\n this._selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (isFocusedRowElement || $target.parent().hasClass(DATA_ROW_CLASS) || $target.hasClass(this.addWidgetPrefix(ROWS_VIEW_CLASS))) {\r\n this._selectionController.changeItemSelection(rowIndex, {\r\n shift: eventArgs.shift,\r\n control: eventArgs.ctrl\r\n });\r\n eventArgs.originalEvent.preventDefault();\r\n return true\r\n }\r\n return false\r\n } else {\r\n return this._beginFastEditing(eventArgs.originalEvent)\r\n }\r\n },\r\n _ctrlAKeyHandler: function(eventArgs, isEditing) {\r\n if (!isEditing && !eventArgs.alt && \"multiple\" === this.option(\"selection.mode\") && this.option(\"selection.allowSelectAll\")) {\r\n this._selectionController.selectAll();\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _tabKeyHandler: function(eventArgs, isEditing) {\r\n var editingOptions = this.option(\"editing\");\r\n var direction = eventArgs.shift ? \"previous\" : \"next\";\r\n var isCellPositionDefined = isDefined(this._focusedCellPosition) && !isEmptyObject(this._focusedCellPosition);\r\n var isOriginalHandlerRequired = !isCellPositionDefined || !eventArgs.shift && this._isLastValidCell(this._focusedCellPosition) || eventArgs.shift && this._isFirstValidCell(this._focusedCellPosition);\r\n var eventTarget = eventArgs.originalEvent.target;\r\n var focusedViewElement = this._focusedView && this._focusedView.element();\r\n if (this._handleTabKeyOnMasterDetailCell(eventTarget, direction)) {\r\n return\r\n }\r\n $(focusedViewElement).addClass(FOCUS_STATE_CLASS);\r\n if (editingOptions && eventTarget && !isOriginalHandlerRequired) {\r\n if ($(eventTarget).hasClass(this.addWidgetPrefix(ROWS_VIEW_CLASS))) {\r\n this._resetFocusedCell()\r\n }\r\n if (this._isVirtualColumnRender()) {\r\n this._processVirtualHorizontalPosition(direction)\r\n }\r\n if (isEditing) {\r\n if (!this._editingCellTabHandler(eventArgs, direction)) {\r\n return\r\n }\r\n } else if (this._targetCellTabHandler(eventArgs, direction)) {\r\n isOriginalHandlerRequired = true\r\n }\r\n }\r\n if (isOriginalHandlerRequired) {\r\n this._editorFactory.loseFocus();\r\n if (this._editingController.isEditing() && !this._isRowEditMode()) {\r\n this._resetFocusedCell(true);\r\n this._resetFocusedView();\r\n this._closeEditCell()\r\n }\r\n } else {\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _getMaxHorizontalOffset: function() {\r\n var scrollable = this.component.getScrollable();\r\n var rowsView = this.getView(\"rowsView\");\r\n var offset = scrollable ? scrollable.scrollWidth() - getWidth(rowsView.element()) : 0;\r\n return offset\r\n },\r\n _isColumnRendered: function(columnIndex) {\r\n var allVisibleColumns = this._columnsController.getVisibleColumns(null, true);\r\n var renderedVisibleColumns = this._columnsController.getVisibleColumns();\r\n var column = allVisibleColumns[columnIndex];\r\n var result = false;\r\n if (column) {\r\n result = renderedVisibleColumns.indexOf(column) >= 0\r\n }\r\n return result\r\n },\r\n _isFixedColumn: function(columnIndex) {\r\n var allVisibleColumns = this._columnsController.getVisibleColumns(null, true);\r\n var column = allVisibleColumns[columnIndex];\r\n return !!column && !!column.fixed\r\n },\r\n _isColumnVirtual: function(columnIndex) {\r\n var localColumnIndex = columnIndex - this._columnsController.getColumnIndexOffset();\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n var column = visibleColumns[localColumnIndex];\r\n return !!column && \"virtual\" === column.command\r\n },\r\n _processVirtualHorizontalPosition: function(direction) {\r\n var scrollable = this.component.getScrollable();\r\n var columnIndex = this.getColumnIndex();\r\n var nextColumnIndex;\r\n var horizontalScrollPosition = 0;\r\n var needToScroll = false;\r\n switch (direction) {\r\n case \"next\":\r\n case \"nextInRow\":\r\n var columnsCount = this._getVisibleColumnCount();\r\n nextColumnIndex = columnIndex + 1;\r\n horizontalScrollPosition = this.option(\"rtlEnabled\") ? this._getMaxHorizontalOffset() : 0;\r\n if (\"next\" === direction) {\r\n needToScroll = columnsCount === nextColumnIndex || this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n } else {\r\n needToScroll = columnsCount > nextColumnIndex && this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n }\r\n break;\r\n case \"previous\":\r\n case \"previousInRow\":\r\n nextColumnIndex = columnIndex - 1;\r\n horizontalScrollPosition = this.option(\"rtlEnabled\") ? 0 : this._getMaxHorizontalOffset();\r\n if (\"previous\" === direction) {\r\n var columnIndexOffset = this._columnsController.getColumnIndexOffset();\r\n var leftEdgePosition = nextColumnIndex < 0 && 0 === columnIndexOffset;\r\n needToScroll = leftEdgePosition || this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n } else {\r\n needToScroll = nextColumnIndex >= 0 && this._isFixedColumn(columnIndex) && !this._isColumnRendered(nextColumnIndex)\r\n }\r\n }\r\n if (needToScroll) {\r\n scrollable.scrollTo({\r\n left: horizontalScrollPosition\r\n })\r\n } else if (isDefined(nextColumnIndex) && isDefined(direction) && this._isColumnVirtual(nextColumnIndex)) {\r\n horizontalScrollPosition = this._getHorizontalScrollPositionOffset(direction);\r\n 0 !== horizontalScrollPosition && scrollable.scrollBy({\r\n left: horizontalScrollPosition,\r\n top: 0\r\n })\r\n }\r\n },\r\n _getHorizontalScrollPositionOffset: function(direction) {\r\n var positionOffset = 0;\r\n var $currentCell = this._getCell(this._focusedCellPosition);\r\n var currentCellWidth = $currentCell && getOuterWidth($currentCell);\r\n if (currentCellWidth > 0) {\r\n var rtlMultiplier = this.option(\"rtlEnabled\") ? -1 : 1;\r\n positionOffset = \"nextInRow\" === direction || \"next\" === direction ? currentCellWidth * rtlMultiplier : currentCellWidth * rtlMultiplier * -1\r\n }\r\n return positionOffset\r\n },\r\n _editingCellTabHandler: function(eventArgs, direction) {\r\n var eventTarget = eventArgs.originalEvent.target;\r\n var $cell = this._getCellElementFromTarget(eventTarget);\r\n var isEditingAllowed;\r\n var $event = eventArgs.originalEvent;\r\n var elementType = this._getElementType(eventTarget);\r\n if ($cell.is(COMMAND_CELL_SELECTOR)) {\r\n return !this._targetCellTabHandler(eventArgs, direction)\r\n }\r\n this._updateFocusedCellPosition($cell);\r\n var nextCellInfo = this._getNextCellByTabKey($event, direction, elementType);\r\n $cell = nextCellInfo.$cell;\r\n if (!$cell || this._handleTabKeyOnMasterDetailCell($cell, direction)) {\r\n return false\r\n }\r\n var columnsController = this._columnsController;\r\n var cellIndex = this.getView(\"rowsView\").getCellIndex($cell);\r\n var columnIndex = cellIndex + columnsController.getColumnIndexOffset();\r\n var column = columnsController.getVisibleColumns(null, true)[columnIndex];\r\n var $row = $cell.parent();\r\n var rowIndex = this._getRowIndex($row);\r\n var row = this._dataController.items()[rowIndex];\r\n var editingController = this._editingController;\r\n if (column && column.allowEditing) {\r\n var _isDataRow = !row || \"data\" === row.rowType;\r\n isEditingAllowed = editingController.allowUpdating({\r\n row: row\r\n }) ? _isDataRow : row && row.isNewRow\r\n }\r\n if (!isEditingAllowed) {\r\n this._closeEditCell()\r\n }\r\n if (this._focusCell($cell, !nextCellInfo.isHighlighted)) {\r\n if (!this._isRowEditMode() && isEditingAllowed) {\r\n this._editFocusedCell()\r\n } else {\r\n this._focusInteractiveElement($cell, eventArgs.shift)\r\n }\r\n }\r\n return true\r\n },\r\n _targetCellTabHandler: function(eventArgs, direction) {\r\n var $event = eventArgs.originalEvent;\r\n var eventTarget = $event.target;\r\n var $cell = this._getCellElementFromTarget(eventTarget);\r\n var $lastInteractiveElement = this._getInteractiveElement($cell, !eventArgs.shift);\r\n var isOriginalHandlerRequired = false;\r\n var elementType;\r\n if (!isEditorCell(this, $cell) && $lastInteractiveElement.length && eventTarget !== $lastInteractiveElement.get(0)) {\r\n isOriginalHandlerRequired = true\r\n } else {\r\n if (void 0 === this._focusedCellPosition.rowIndex && $(eventTarget).hasClass(ROW_CLASS)) {\r\n this._updateFocusedCellPosition($cell)\r\n }\r\n elementType = this._getElementType(eventTarget);\r\n if (this.isRowFocusType()) {\r\n this.setCellFocusType();\r\n if (\"row\" === elementType && isDataRow($(eventTarget))) {\r\n eventTarget = this.getFirstValidCellInRow($(eventTarget));\r\n elementType = this._getElementType(eventTarget)\r\n }\r\n }\r\n var nextCellInfo = this._getNextCellByTabKey($event, direction, elementType);\r\n $cell = nextCellInfo.$cell;\r\n if (!$cell) {\r\n return false\r\n }\r\n $cell = this._checkNewLineTransition($event, $cell);\r\n if (!$cell) {\r\n return false\r\n }\r\n this._focusCell($cell, !nextCellInfo.isHighlighted);\r\n if (!isEditorCell(this, $cell)) {\r\n this._focusInteractiveElement($cell, eventArgs.shift)\r\n }\r\n }\r\n return isOriginalHandlerRequired\r\n },\r\n _getNextCellByTabKey: function($event, direction, elementType) {\r\n var $cell = this._getNextCell(direction, elementType);\r\n var args = $cell && this._fireFocusedCellChanging($event, $cell, true);\r\n if (!args || args.cancel) {\r\n return {}\r\n }\r\n if (args.$newCellElement) {\r\n $cell = args.$newCellElement\r\n }\r\n return {\r\n $cell: $cell,\r\n isHighlighted: args.isHighlighted\r\n }\r\n },\r\n _checkNewLineTransition: function($event, $cell) {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = $cell.parent();\r\n if (rowIndex !== this._getRowIndex($row)) {\r\n var cellPosition = this._getCellPosition($cell);\r\n var args = this._fireFocusedRowChanging($event, $row);\r\n if (args.cancel) {\r\n return\r\n }\r\n if (args.rowIndexChanged) {\r\n this.setFocusedColumnIndex(cellPosition.columnIndex);\r\n $cell = this._getFocusedCell()\r\n }\r\n }\r\n return $cell\r\n },\r\n _enterKeyHandler: function(eventArgs, isEditing) {\r\n var $cell = this._getFocusedCell();\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n if (this.option(\"grouping.allowCollapsing\") && isGroupRow($row) || this.option(\"masterDetail.enabled\") && $cell && $cell.hasClass(COMMAND_EXPAND_CLASS)) {\r\n var key = this._dataController.getKeyByRowIndex(rowIndex);\r\n var item = this._dataController.items()[rowIndex];\r\n if (void 0 !== key && item && item.data && !item.data.isContinuation) {\r\n this._dataController.changeRowExpand(key)\r\n }\r\n } else {\r\n this._processEnterKeyForDataCell(eventArgs, isEditing)\r\n }\r\n },\r\n _processEnterKeyForDataCell: function(eventArgs, isEditing) {\r\n var direction = this._getEnterKeyDirection(eventArgs);\r\n var allowEditingOnEnterKey = this._allowEditingOnEnterKey();\r\n if (isEditing || !allowEditingOnEnterKey && direction) {\r\n this._handleEnterKeyEditingCell(eventArgs.originalEvent);\r\n if (\"next\" === direction || \"previous\" === direction) {\r\n this._targetCellTabHandler(eventArgs, direction)\r\n } else if (\"upArrow\" === direction || \"downArrow\" === direction) {\r\n this._navigateNextCell(eventArgs.originalEvent, direction)\r\n }\r\n } else if (allowEditingOnEnterKey) {\r\n this._startEditing(eventArgs)\r\n }\r\n },\r\n _getEnterKeyDirection: function(eventArgs) {\r\n var enterKeyDirection = this.option(\"keyboardNavigation.enterKeyDirection\");\r\n var isShift = eventArgs.shift;\r\n if (\"column\" === enterKeyDirection) {\r\n return isShift ? \"upArrow\" : \"downArrow\"\r\n }\r\n if (\"row\" === enterKeyDirection) {\r\n return isShift ? \"previous\" : \"next\"\r\n }\r\n },\r\n _handleEnterKeyEditingCell: function(event) {\r\n var target = event.target;\r\n var $cell = this._getCellElementFromTarget(target);\r\n var isRowEditMode = this._isRowEditMode();\r\n this._updateFocusedCellPosition($cell);\r\n if (isRowEditMode) {\r\n this._focusEditFormCell($cell);\r\n setTimeout(this._editingController.saveEditData.bind(this._editingController))\r\n } else {\r\n eventsEngine.trigger($(target), \"change\");\r\n this._closeEditCell();\r\n event.preventDefault()\r\n }\r\n },\r\n _escapeKeyHandler: function(eventArgs, isEditing) {\r\n var $cell = this._getCellElementFromTarget(eventArgs.originalEvent.target);\r\n if (isEditing) {\r\n this._updateFocusedCellPosition($cell);\r\n if (!this._isRowEditMode()) {\r\n if (\"cell\" === this._editingController.getEditMode()) {\r\n this._editingController.cancelEditData()\r\n } else {\r\n this._closeEditCell()\r\n }\r\n } else {\r\n this._focusEditFormCell($cell);\r\n this._editingController.cancelEditData();\r\n if (0 === this._dataController.items().length) {\r\n this._resetFocusedCell();\r\n this._editorFactory.loseFocus()\r\n }\r\n }\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n },\r\n _ctrlFKeyHandler: function(eventArgs) {\r\n if (this.option(\"searchPanel.visible\")) {\r\n var searchTextEditor = this._headerPanel.getSearchTextEditor();\r\n if (searchTextEditor) {\r\n searchTextEditor.focus();\r\n eventArgs.originalEvent.preventDefault()\r\n }\r\n }\r\n },\r\n _f2KeyHandler: function() {\r\n var isEditing = this._editingController.isEditing();\r\n var rowIndex = this.getVisibleRowIndex();\r\n var $row = this._focusedView && this._focusedView.getRow(rowIndex);\r\n if (!isEditing && isDataRow($row)) {\r\n this._startEditing()\r\n }\r\n },\r\n _navigateNextCell: function($event, keyCode) {\r\n var $cell = this._getNextCell(keyCode);\r\n var directionCode = this._getDirectionCodeByKey(keyCode);\r\n var isCellValid = $cell && this._isCellValid($cell);\r\n var result = isCellValid ? this._arrowKeysHandlerFocusCell($event, $cell, directionCode) : false;\r\n return result\r\n },\r\n _arrowKeysHandlerFocusCell: function($event, $nextCell, direction) {\r\n var isVerticalDirection = \"prevRow\" === direction || \"nextRow\" === direction;\r\n var args = this._fireFocusChangingEvents($event, $nextCell, isVerticalDirection, true);\r\n $nextCell = args.$newCellElement;\r\n if (!args.cancel && this._isCellValid($nextCell)) {\r\n this._focus($nextCell, !args.isHighlighted);\r\n return true\r\n }\r\n return false\r\n },\r\n _beginFastEditing: function(originalEvent, isDeleting) {\r\n if (!this._isFastEditingAllowed() || originalEvent.altKey || originalEvent.ctrlKey || this._editingController.isEditing()) {\r\n return false\r\n }\r\n if (isDeleting) {\r\n this._startEditing(originalEvent, FAST_EDITING_DELETE_KEY)\r\n } else {\r\n var key = originalEvent.key;\r\n var keyCode = originalEvent.keyCode || originalEvent.which;\r\n var fastEditingKey = key || keyCode && String.fromCharCode(keyCode);\r\n if (fastEditingKey && (1 === fastEditingKey.length || fastEditingKey === FAST_EDITING_DELETE_KEY)) {\r\n this._startEditing(originalEvent, fastEditingKey)\r\n }\r\n }\r\n return true\r\n },\r\n _pointerEventHandler: function(e) {\r\n var event = e.event || e;\r\n var $target = $(event.currentTarget);\r\n var rowsView = this.getView(\"rowsView\");\r\n var focusedViewElement = rowsView && rowsView.element();\r\n var $parent = $target.parent();\r\n var isInteractiveElement = $(event.target).is(INTERACTIVE_ELEMENTS_SELECTOR);\r\n var isRevertButton = !!$(event.target).closest(\".\".concat(REVERT_BUTTON_CLASS)).length;\r\n var isExpandCommandCell = $target.hasClass(COMMAND_EXPAND_CLASS);\r\n if (!this._isEventInCurrentGrid(event)) {\r\n return\r\n }\r\n if (!isRevertButton && (this._isCellValid($target, !isInteractiveElement) || isExpandCommandCell)) {\r\n $target = this._isInsideEditForm($target) ? $(event.target) : $target;\r\n this._focusView();\r\n $(focusedViewElement).removeClass(FOCUS_STATE_CLASS);\r\n if ($parent.hasClass(FREESPACE_ROW_CLASS)) {\r\n this._updateFocusedCellPosition($target);\r\n this._applyTabIndexToElement(this._focusedView.element());\r\n this._focusedView.focus(true)\r\n } else if (!this._isMasterDetailCell($target)) {\r\n this._clickTargetCellHandler(event, $target)\r\n } else {\r\n this._updateFocusedCellPosition($target)\r\n }\r\n } else if ($target.is(\"td\")) {\r\n this._resetFocusedCell()\r\n }\r\n },\r\n _clickTargetCellHandler: function(event, $cell) {\r\n var columnIndex = this.getView(\"rowsView\").getCellIndex($cell);\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n var isCellEditMode = this._isCellEditMode();\r\n this.setCellFocusType();\r\n var args = this._fireFocusChangingEvents(event, $cell, true);\r\n $cell = args.$newCellElement;\r\n if (!args.cancel) {\r\n if (args.resetFocusedRow) {\r\n this.getController(\"focus\")._resetFocusedRow();\r\n return\r\n }\r\n if (args.rowIndexChanged) {\r\n $cell = this._getFocusedCell()\r\n }\r\n if (!args.isHighlighted && !isCellEditMode) {\r\n this.setRowFocusType()\r\n }\r\n this._updateFocusedCellPosition($cell);\r\n if (this._allowRowUpdating() && isCellEditMode && column && column.allowEditing) {\r\n this._isNeedFocus = false;\r\n this._isHiddenFocus = false\r\n } else {\r\n $cell = this._getFocusedCell();\r\n var $target = event && $(event.target).closest(NON_FOCUSABLE_ELEMENTS_SELECTOR + \", td\");\r\n var skipFocusEvent = $target && $target.not($cell).is(NON_FOCUSABLE_ELEMENTS_SELECTOR);\r\n var isEditor = !!column && !column.command && $cell.hasClass(EDITOR_CELL_CLASS);\r\n var isDisabled = !isEditor && (!args.isHighlighted || skipFocusEvent);\r\n this._focus($cell, isDisabled, skipFocusEvent)\r\n }\r\n } else {\r\n this.setRowFocusType();\r\n this.setFocusedRowIndex(args.prevRowIndex);\r\n if (this._editingController.isEditing() && isCellEditMode) {\r\n this._closeEditCell()\r\n }\r\n }\r\n },\r\n _allowRowUpdating: function() {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var row = this._dataController.items()[rowIndex];\r\n return this._editingController.allowUpdating({\r\n row: row\r\n }, \"click\")\r\n },\r\n focus: function(element) {\r\n var activeElementSelector;\r\n var focusedRowEnabled = this.option(\"focusedRowEnabled\");\r\n var isHighlighted = isCellElement($(element));\r\n if (!element) {\r\n activeElementSelector = \".dx-datagrid-rowsview .dx-row[tabindex]\";\r\n if (!focusedRowEnabled) {\r\n activeElementSelector += \", .dx-datagrid-rowsview .dx-row > td[tabindex]\"\r\n }\r\n element = this.component.$element().find(activeElementSelector).first()\r\n }\r\n element && this._focusElement($(element), isHighlighted)\r\n },\r\n getFocusedView: function() {\r\n return this._focusedView\r\n },\r\n setupFocusedView: function() {\r\n if (this.isKeyboardEnabled() && !isDefined(this._focusedView)) {\r\n this._focusView()\r\n }\r\n },\r\n _focusElement: function($element, isHighlighted) {\r\n var rowsViewElement = $(this._getRowsViewElement());\r\n var $focusedView = $element.closest(rowsViewElement);\r\n var isRowFocusType = this.isRowFocusType();\r\n var args = {};\r\n if (!$focusedView.length || isCellElement($element) && !this._isCellValid($element)) {\r\n return\r\n }\r\n this._focusView();\r\n this._isNeedFocus = true;\r\n this._isNeedScroll = true;\r\n if (isCellElement($element) || isGroupRow($element)) {\r\n this.setCellFocusType();\r\n args = this._fireFocusChangingEvents(null, $element, false, isHighlighted);\r\n $element = args.$newCellElement;\r\n if (isRowFocusType && !args.isHighlighted) {\r\n this.setRowFocusType()\r\n }\r\n }\r\n if (!args.cancel) {\r\n this._focus($element, !args.isHighlighted);\r\n this._focusInteractiveElement($element)\r\n }\r\n },\r\n _getFocusedViewByElement: function($element) {\r\n var view = this.getFocusedView();\r\n var $view = view && $(view.element());\r\n return $element && 0 !== $element.closest($view).length\r\n },\r\n _focusView: function() {\r\n this._focusedView = this.getView(\"rowsView\")\r\n },\r\n _resetFocusedView: function() {\r\n this.setRowFocusType();\r\n this._focusedView = null\r\n },\r\n _focusInteractiveElement: function($cell, isLast) {\r\n if (!$cell) {\r\n return\r\n }\r\n var $focusedElement = this._getInteractiveElement($cell, isLast);\r\n gridCoreUtils.focusAndSelectElement(this, $focusedElement)\r\n },\r\n _focus: function($cell, disableFocus, skipFocusEvent) {\r\n var $row = $cell && !$cell.hasClass(ROW_CLASS) ? $cell.closest(\".\".concat(ROW_CLASS)) : $cell;\r\n if ($row && isNotFocusedRow($row)) {\r\n return\r\n }\r\n var focusedView = this._focusedView;\r\n var $focusViewElement = focusedView && focusedView.element();\r\n var $focusElement;\r\n this._isHiddenFocus = disableFocus;\r\n var isRowFocus = isGroupRow($row) || this.isRowFocusType();\r\n if (isRowFocus) {\r\n $focusElement = $row;\r\n if (focusedView) {\r\n this.setFocusedRowIndex(this._getRowIndex($row))\r\n }\r\n } else if (isCellElement($cell)) {\r\n $focusElement = $cell;\r\n this._updateFocusedCellPosition($cell)\r\n }\r\n if ($focusElement) {\r\n if ($focusViewElement) {\r\n $focusViewElement.find(\".dx-row[tabindex], .dx-row > td[tabindex]\").not($focusElement).removeClass(CELL_FOCUS_DISABLED_CLASS).removeAttr(\"tabindex\")\r\n }\r\n eventsEngine.one($focusElement, \"blur\", e => {\r\n if (e.relatedTarget) {\r\n $focusElement.removeClass(CELL_FOCUS_DISABLED_CLASS)\r\n }\r\n });\r\n if (!skipFocusEvent) {\r\n this._applyTabIndexToElement($focusElement);\r\n eventsEngine.trigger($focusElement, \"focus\")\r\n }\r\n if (disableFocus) {\r\n $focusElement.addClass(CELL_FOCUS_DISABLED_CLASS);\r\n if (isRowFocus) {\r\n $cell.addClass(CELL_FOCUS_DISABLED_CLASS)\r\n }\r\n } else {\r\n this._editorFactory.focus($focusElement)\r\n }\r\n }\r\n },\r\n _updateFocus: function(isRenderView) {\r\n this._updateFocusTimeout = setTimeout(() => {\r\n var editingController = this._editingController;\r\n var isCellEditMode = editingController.getEditMode() === EDIT_MODE_CELL;\r\n var isBatchEditMode = editingController.getEditMode() === EDIT_MODE_BATCH;\r\n if (isCellEditMode && editingController.hasChanges() || isBatchEditMode && editingController.isNewRowInEditMode()) {\r\n editingController._focusEditingCell();\r\n return\r\n }\r\n var $cell = this._getFocusedCell();\r\n var isEditing = editingController.isEditing();\r\n if ($cell && !(this._isMasterDetailCell($cell) && !this._isRowEditMode())) {\r\n if (this._hasSkipRow($cell.parent())) {\r\n var direction = this._focusedCellPosition && this._focusedCellPosition.rowIndex > 0 ? \"upArrow\" : \"downArrow\";\r\n $cell = this._getNextCell(direction)\r\n }\r\n if (isElementDefined($cell)) {\r\n if ($cell.is(\"td\") || $cell.hasClass(this.addWidgetPrefix(EDIT_FORM_ITEM_CLASS))) {\r\n var isCommandCell = $cell.is(COMMAND_CELL_SELECTOR);\r\n var $focusedElementInsideCell = $cell.find(\":focus\");\r\n var isFocusedElementDefined = isElementDefined($focusedElementInsideCell);\r\n if ((isRenderView || !isCommandCell) && this._editorFactory.focus()) {\r\n if (isCommandCell && isFocusedElementDefined) {\r\n gridCoreUtils.focusAndSelectElement(this, $focusedElementInsideCell);\r\n return\r\n }!isFocusedElementDefined && this._focus($cell)\r\n } else if (!isFocusedElementDefined && (this._isNeedFocus || this._isHiddenFocus)) {\r\n this._focus($cell, this._isHiddenFocus)\r\n }\r\n if (isEditing) {\r\n this._focusInteractiveElement.bind(this)($cell)\r\n }\r\n } else {\r\n eventsEngine.trigger($cell, \"focus\")\r\n }\r\n }\r\n }\r\n })\r\n },\r\n _getFocusedCell: function() {\r\n return $(this._getCell(this._focusedCellPosition))\r\n },\r\n _updateFocusedCellPositionByTarget: function(target) {\r\n var _this$_focusedCellPos;\r\n var elementType = this._getElementType(target);\r\n if (\"row\" === elementType && isDefined(null === (_this$_focusedCellPos = this._focusedCellPosition) || void 0 === _this$_focusedCellPos ? void 0 : _this$_focusedCellPos.columnIndex)) {\r\n var $row = $(target);\r\n this._focusedView && isGroupRow($row) && this.setFocusedRowIndex(this._getRowIndex($row))\r\n } else {\r\n this._updateFocusedCellPosition(this._getCellElementFromTarget(target))\r\n }\r\n },\r\n _updateFocusedCellPosition: function($cell, direction) {\r\n var position = this._getCellPosition($cell, direction);\r\n if (position) {\r\n if (!$cell.length || position.rowIndex >= 0 && position.columnIndex >= 0) {\r\n this.setFocusedCellPosition(position.rowIndex, position.columnIndex)\r\n }\r\n }\r\n return position\r\n },\r\n _getFocusedColumnIndexOffset: function(columnIndex) {\r\n var offset = 0;\r\n var column = this._columnsController.getVisibleColumns()[columnIndex];\r\n if (column && column.fixed) {\r\n offset = this._getFixedColumnIndexOffset(column)\r\n } else if (columnIndex >= 0) {\r\n offset = this._columnsController.getColumnIndexOffset()\r\n }\r\n return offset\r\n },\r\n _getFixedColumnIndexOffset: function(column) {\r\n var offset = isFixedColumnIndexOffsetRequired(this, column) ? this._getVisibleColumnCount() - this._columnsController.getVisibleColumns().length : 0;\r\n return offset\r\n },\r\n _getCellPosition: function($cell, direction) {\r\n var columnIndex;\r\n var $row = isElementDefined($cell) && $cell.closest(\"tr\");\r\n var rowsView = this.getView(\"rowsView\");\r\n if (isElementDefined($row)) {\r\n var rowIndex = this._getRowIndex($row);\r\n columnIndex = rowsView.getCellIndex($cell, rowIndex);\r\n columnIndex += this._getFocusedColumnIndexOffset(columnIndex);\r\n if (direction) {\r\n columnIndex = \"previous\" === direction ? columnIndex - 1 : columnIndex + 1;\r\n columnIndex = this._applyColumnIndexBoundaries(columnIndex)\r\n }\r\n return {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n },\r\n _focusCell: function($cell, isDisabled) {\r\n if (this._isCellValid($cell)) {\r\n this._focus($cell, isDisabled);\r\n return true\r\n }\r\n },\r\n _focusEditFormCell: function($cell) {\r\n if ($cell.hasClass(MASTER_DETAIL_CELL_CLASS)) {\r\n this._editorFactory.focus($cell, true)\r\n }\r\n },\r\n _resetFocusedCell: function(preventScroll) {\r\n var _this$_focusedView;\r\n var $cell = this._getFocusedCell();\r\n isElementDefined($cell) && $cell.removeAttr(\"tabindex\");\r\n this._isNeedFocus = false;\r\n this._isNeedScroll = false;\r\n this._focusedCellPosition = {};\r\n clearTimeout(this._updateFocusTimeout);\r\n null === (_this$_focusedView = this._focusedView) || void 0 === _this$_focusedView ? void 0 : _this$_focusedView.renderFocusState({\r\n preventScroll: preventScroll\r\n })\r\n },\r\n restoreFocusableElement: function(rowIndex, $event) {\r\n var args;\r\n var $rowElement;\r\n var isUpArrow = isDefined(rowIndex);\r\n var rowsView = this.getView(\"rowsView\");\r\n var $rowsViewElement = rowsView.element();\r\n var columnIndex = this._focusedCellPosition.columnIndex;\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n rowIndex = isUpArrow ? rowIndex : rowsView.getTopVisibleItemIndex() + rowIndexOffset;\r\n if (!isUpArrow) {\r\n this._editorFactory.loseFocus();\r\n this._applyTabIndexToElement($rowsViewElement);\r\n eventsEngine.trigger($rowsViewElement, \"focus\")\r\n } else {\r\n $rowElement = rowsView.getRow(rowIndex - rowIndexOffset);\r\n args = this._fireFocusedRowChanging($event, $rowElement);\r\n if (!args.cancel && args.rowIndexChanged) {\r\n rowIndex = args.newRowIndex\r\n }\r\n }\r\n if (!isUpArrow || !args.cancel) {\r\n this.setFocusedCellPosition(rowIndex, columnIndex)\r\n }\r\n isUpArrow && this._updateFocus()\r\n },\r\n _getNewPositionByCode: function(cellPosition, elementType, code) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var rowIndex = cellPosition.rowIndex;\r\n var visibleColumnsCount;\r\n if (void 0 === cellPosition.rowIndex && \"next\" === code) {\r\n return {\r\n columnIndex: 0,\r\n rowIndex: 0\r\n }\r\n }\r\n switch (code) {\r\n case \"nextInRow\":\r\n case \"next\":\r\n visibleColumnsCount = this._getVisibleColumnCount();\r\n if (columnIndex < visibleColumnsCount - 1 && \"row\" !== elementType && this._hasValidCellAfterPosition({\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n })) {\r\n columnIndex++\r\n } else if (!this._isLastRow(rowIndex) && \"next\" === code) {\r\n columnIndex = 0;\r\n rowIndex++\r\n }\r\n break;\r\n case \"previousInRow\":\r\n case \"previous\":\r\n if (columnIndex > 0 && \"row\" !== elementType && this._hasValidCellBeforePosition({\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n })) {\r\n columnIndex--\r\n } else if (rowIndex > 0 && \"previous\" === code) {\r\n rowIndex--;\r\n visibleColumnsCount = this._getVisibleColumnCount();\r\n columnIndex = visibleColumnsCount - 1\r\n }\r\n break;\r\n case \"upArrow\":\r\n rowIndex = rowIndex > 0 ? rowIndex - 1 : rowIndex;\r\n break;\r\n case \"downArrow\":\r\n rowIndex = !this._isLastRow(rowIndex) ? rowIndex + 1 : rowIndex\r\n }\r\n return {\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex\r\n }\r\n },\r\n setFocusedCellPosition: function(rowIndex, columnIndex) {\r\n this.setFocusedRowIndex(rowIndex);\r\n this.setFocusedColumnIndex(columnIndex)\r\n },\r\n setFocusedRowIndex: function(rowIndex) {\r\n if (!this._focusedCellPosition) {\r\n this._focusedCellPosition = {}\r\n }\r\n this._focusedCellPosition.rowIndex = rowIndex\r\n },\r\n setFocusedColumnIndex: function(columnIndex) {\r\n if (!this._focusedCellPosition) {\r\n this._focusedCellPosition = {}\r\n }\r\n this._focusedCellPosition.columnIndex = columnIndex\r\n },\r\n getRowIndex: function() {\r\n return this._focusedCellPosition ? this._focusedCellPosition.rowIndex : -1\r\n },\r\n getColumnIndex: function() {\r\n return this._focusedCellPosition ? this._focusedCellPosition.columnIndex : -1\r\n },\r\n getVisibleRowIndex: function() {\r\n var rowIndex = this._focusedCellPosition && this._focusedCellPosition.rowIndex;\r\n if (!isDefined(rowIndex) || rowIndex < 0) {\r\n return -1\r\n }\r\n return rowIndex - this._dataController.getRowIndexOffset()\r\n },\r\n getVisibleColumnIndex: function() {\r\n var columnIndex = this._focusedCellPosition && this._focusedCellPosition.columnIndex;\r\n if (!isDefined(columnIndex)) {\r\n return -1\r\n }\r\n return columnIndex - this._columnsController.getColumnIndexOffset()\r\n },\r\n _applyColumnIndexBoundaries: function(columnIndex) {\r\n var visibleColumnsCount = this._getVisibleColumnCount();\r\n if (columnIndex < 0) {\r\n columnIndex = 0\r\n } else if (columnIndex >= visibleColumnsCount) {\r\n columnIndex = visibleColumnsCount - 1\r\n }\r\n return columnIndex\r\n },\r\n _isCellByPositionValid: function(cellPosition) {\r\n var $cell = $(this._getCell(cellPosition));\r\n return this._isCellValid($cell)\r\n },\r\n _isLastRow: function(rowIndex) {\r\n var dataController = this._dataController;\r\n var visibleItems = dataController.items().filter(item => false !== item.visible);\r\n if (this._isVirtualRowRender()) {\r\n return rowIndex >= dataController.getMaxRowIndex()\r\n }\r\n return rowIndex === visibleItems.length - 1\r\n },\r\n _isFirstValidCell: function(cellPosition) {\r\n var isFirstValidCell = false;\r\n if (0 === cellPosition.rowIndex && cellPosition.columnIndex >= 0) {\r\n isFirstValidCell = isFirstValidCell || !this._hasValidCellBeforePosition(cellPosition)\r\n }\r\n return isFirstValidCell\r\n },\r\n _hasValidCellBeforePosition: function(cellPosition) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var hasValidCells = false;\r\n while (columnIndex > 0 && !hasValidCells) {\r\n var checkingPosition = {\r\n columnIndex: --columnIndex,\r\n rowIndex: cellPosition.rowIndex\r\n };\r\n hasValidCells = this._isCellByPositionValid(checkingPosition)\r\n }\r\n return hasValidCells\r\n },\r\n _hasValidCellAfterPosition: function(cellPosition) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var hasValidCells = false;\r\n var visibleColumnCount = this._getVisibleColumnCount();\r\n while (columnIndex < visibleColumnCount - 1 && !hasValidCells) {\r\n var checkingPosition = {\r\n columnIndex: ++columnIndex,\r\n rowIndex: cellPosition.rowIndex\r\n };\r\n hasValidCells = this._isCellByPositionValid(checkingPosition)\r\n }\r\n return hasValidCells\r\n },\r\n _isLastValidCell: function(cellPosition) {\r\n var nextColumnIndex = cellPosition.columnIndex >= 0 ? cellPosition.columnIndex + 1 : 0;\r\n var rowIndex = cellPosition.rowIndex;\r\n var checkingPosition = {\r\n columnIndex: nextColumnIndex,\r\n rowIndex: rowIndex\r\n };\r\n var visibleRows = this._dataController.getVisibleRows();\r\n var row = visibleRows && visibleRows[rowIndex];\r\n var isLastRow = this._isLastRow(rowIndex);\r\n if (!isLastRow) {\r\n return false\r\n }\r\n if (row && \"group\" === row.rowType && cellPosition.columnIndex > 0) {\r\n return true\r\n }\r\n if (cellPosition.columnIndex === this._getVisibleColumnCount() - 1) {\r\n return true\r\n }\r\n if (this._isCellByPositionValid(checkingPosition)) {\r\n return false\r\n }\r\n return this._isLastValidCell(checkingPosition)\r\n },\r\n _isCellValid: function($cell, isClick) {\r\n if (isElementDefined($cell)) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var $row = $cell.parent();\r\n var columnsController = this._columnsController;\r\n var columnIndex = rowsView.getCellIndex($cell) + columnsController.getColumnIndexOffset();\r\n var column = columnsController.getVisibleColumns(null, true)[columnIndex];\r\n var visibleColumnCount = this._getVisibleColumnCount();\r\n var editingController = this._editingController;\r\n var isMasterDetailRow = isDetailRow($row);\r\n var isShowWhenGrouped = column && column.showWhenGrouped;\r\n var isDataCell = column && !$cell.hasClass(COMMAND_EXPAND_CLASS) && isDataRow($row);\r\n if (this._isMasterDetailCell($cell)) {\r\n return true\r\n }\r\n if (visibleColumnCount > columnIndex && (!isMasterDetailRow && column && (!isDefined(column.groupIndex) || isShowWhenGrouped && isDataCell) || parseInt($cell.attr(\"colspan\")) > 1)) {\r\n var rowItems = this._dataController.items();\r\n var visibleRowIndex = rowsView.getRowIndex($row);\r\n var row = rowItems[visibleRowIndex];\r\n var isCellEditing = editingController && this._isCellEditMode() && editingController.isEditing();\r\n var isRowEditingInCurrentRow = editingController && editingController.isEditRow(visibleRowIndex);\r\n var isEditing = isRowEditingInCurrentRow || isCellEditing;\r\n if (column.command) {\r\n if (this._isLegacyNavigation()) {\r\n return !isEditing && \"expand\" === column.command\r\n }\r\n if (isCellEditing) {\r\n return false\r\n }\r\n if (isRowEditingInCurrentRow) {\r\n return \"select\" !== column.command\r\n }\r\n return !isEditing\r\n }\r\n if (isCellEditing && row && \"data\" !== row.rowType) {\r\n return false\r\n }\r\n return !isEditing || column.allowEditing || isClick\r\n }\r\n }\r\n },\r\n getFirstValidCellInRow: function($row, columnIndex) {\r\n var $cells = $row.find(\"> td\");\r\n var $cell;\r\n var $result;\r\n columnIndex = columnIndex || 0;\r\n for (var i = columnIndex; i < $cells.length; ++i) {\r\n $cell = $cells.eq(i);\r\n if (this._isCellValid($cell)) {\r\n $result = $cell;\r\n break\r\n }\r\n }\r\n return $result\r\n },\r\n _getNextCell: function(keyCode, elementType, cellPosition) {\r\n var focusedCellPosition = cellPosition || this._focusedCellPosition;\r\n var isRowFocusType = this.isRowFocusType();\r\n var includeCommandCells = isRowFocusType || [\"next\", \"previous\"].includes(keyCode);\r\n var $cell;\r\n var $row;\r\n if (this._focusedView && focusedCellPosition) {\r\n var newFocusedCellPosition = this._getNewPositionByCode(focusedCellPosition, elementType, keyCode);\r\n $cell = $(this._getCell(newFocusedCellPosition));\r\n var isLastCellOnDirection = \"previous\" === keyCode ? this._isFirstValidCell(newFocusedCellPosition) : this._isLastValidCell(newFocusedCellPosition);\r\n if (isElementDefined($cell) && !this._isCellValid($cell) && this._isCellInRow(newFocusedCellPosition, includeCommandCells) && !isLastCellOnDirection) {\r\n if (isRowFocusType) {\r\n $cell = this.getFirstValidCellInRow($cell.parent(), newFocusedCellPosition.columnIndex)\r\n } else {\r\n $cell = this._getNextCell(keyCode, \"cell\", newFocusedCellPosition)\r\n }\r\n }\r\n $row = isElementDefined($cell) && $cell.parent();\r\n if (this._hasSkipRow($row)) {\r\n var rowIndex = this._getRowIndex($row);\r\n if (!this._isLastRow(rowIndex)) {\r\n $cell = this._getNextCell(keyCode, \"row\", {\r\n columnIndex: focusedCellPosition.columnIndex,\r\n rowIndex: rowIndex\r\n })\r\n } else {\r\n return null\r\n }\r\n }\r\n return isElementDefined($cell) ? $cell : null\r\n }\r\n return null\r\n },\r\n _startEditing: function(eventArgs, fastEditingKey) {\r\n var focusedCellPosition = this._focusedCellPosition;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var visibleColumnIndex = this.getVisibleColumnIndex();\r\n var row = this._dataController.items()[visibleRowIndex];\r\n var column = this._columnsController.getVisibleColumns()[visibleColumnIndex];\r\n if (this._isAllowEditing(row, column)) {\r\n if (this._isRowEditMode()) {\r\n this._editingController.editRow(visibleRowIndex)\r\n } else if (focusedCellPosition) {\r\n this._startEditCell(eventArgs, fastEditingKey)\r\n }\r\n }\r\n },\r\n _isAllowEditing: function(row, column) {\r\n return this._editingController.allowUpdating({\r\n row: row\r\n }) && column && column.allowEditing\r\n },\r\n _editFocusedCell: function() {\r\n var rowIndex = this.getVisibleRowIndex();\r\n var colIndex = this.getVisibleColumnIndex();\r\n return this._editingController.editCell(rowIndex, colIndex)\r\n },\r\n _startEditCell: function(eventArgs, fastEditingKey) {\r\n this._fastEditingStarted = isDefined(fastEditingKey);\r\n var editResult = this._editFocusedCell();\r\n if (this._isFastEditingStarted()) {\r\n if (true === editResult) {\r\n this._editingCellHandler(eventArgs, fastEditingKey)\r\n } else if (editResult && editResult.done) {\r\n var editorValue = fastEditingKey !== FAST_EDITING_DELETE_KEY ? fastEditingKey : \"\";\r\n editResult.done(() => this._editingCellHandler(eventArgs, editorValue))\r\n }\r\n }\r\n },\r\n _editingCellHandler: function(eventArgs, editorValue) {\r\n var _$input$get$select, _$input$get;\r\n var $input = this._getFocusedCell().find(INTERACTIVE_ELEMENTS_SELECTOR).eq(0);\r\n var keyDownEvent = createEvent(eventArgs, {\r\n type: \"keydown\",\r\n target: $input.get(0)\r\n });\r\n var keyPressEvent = createEvent(eventArgs, {\r\n type: \"keypress\",\r\n target: $input.get(0)\r\n });\r\n var inputEvent = createEvent(eventArgs, {\r\n type: \"input\",\r\n target: $input.get(0)\r\n });\r\n if (inputEvent.originalEvent) {\r\n inputEvent.originalEvent = createEvent(inputEvent.originalEvent, {\r\n data: editorValue\r\n })\r\n }\r\n null === (_$input$get$select = (_$input$get = $input.get(0)).select) || void 0 === _$input$get$select ? void 0 : _$input$get$select.call(_$input$get);\r\n eventsEngine.trigger($input, keyDownEvent);\r\n if (!keyDownEvent.isDefaultPrevented()) {\r\n eventsEngine.trigger($input, keyPressEvent);\r\n if (!keyPressEvent.isDefaultPrevented()) {\r\n var timeout = browser.mozilla ? 25 : 0;\r\n setTimeout(() => {\r\n $input.val(editorValue);\r\n var $widgetContainer = $input.closest(\".\".concat(WIDGET_CLASS));\r\n eventsEngine.off($widgetContainer, \"focusout\");\r\n eventsEngine.one($widgetContainer, \"focusout\", (function() {\r\n eventsEngine.trigger($input, \"change\")\r\n }));\r\n eventsEngine.trigger($input, inputEvent)\r\n }, timeout)\r\n }\r\n }\r\n },\r\n _fireFocusChangingEvents: function($event, $cell, fireRowEvent, isHighlighted) {\r\n var args = {};\r\n var cellPosition = this._getCellPosition($cell) || {};\r\n if (this.isCellFocusType()) {\r\n args = this._fireFocusedCellChanging($event, $cell, isHighlighted);\r\n if (!args.cancel) {\r\n cellPosition.columnIndex = args.newColumnIndex;\r\n cellPosition.rowIndex = args.newRowIndex;\r\n isHighlighted = args.isHighlighted;\r\n $cell = $(this._getCell(cellPosition))\r\n }\r\n }\r\n if (!args.cancel && fireRowEvent && $cell) {\r\n args = this._fireFocusedRowChanging($event, $cell.parent());\r\n if (!args.cancel) {\r\n cellPosition.rowIndex = args.newRowIndex;\r\n args.isHighlighted = isHighlighted\r\n }\r\n }\r\n args.$newCellElement = $(this._getCell(cellPosition));\r\n if (!args.$newCellElement.length) {\r\n args.$newCellElement = $cell\r\n }\r\n return args\r\n },\r\n _fireFocusedCellChanging: function($event, $cellElement, isHighlighted) {\r\n var prevCellIndex = this.option(\"focusedColumnIndex\");\r\n var prevRowIndex = this.option(\"focusedRowIndex\");\r\n var cellPosition = this._getCellPosition($cellElement);\r\n var columnIndex = cellPosition ? cellPosition.columnIndex : -1;\r\n var rowIndex = cellPosition ? cellPosition.rowIndex : -1;\r\n var args = {\r\n cellElement: $cellElement,\r\n prevColumnIndex: prevCellIndex,\r\n prevRowIndex: prevRowIndex,\r\n newColumnIndex: columnIndex,\r\n newRowIndex: rowIndex,\r\n rows: this._dataController.getVisibleRows(),\r\n columns: this._columnsController.getVisibleColumns(),\r\n event: $event,\r\n isHighlighted: isHighlighted || false,\r\n cancel: false\r\n };\r\n this._canceledCellPosition = null;\r\n this.executeAction(\"onFocusedCellChanging\", args);\r\n if (args.newColumnIndex !== columnIndex || args.newRowIndex !== rowIndex) {\r\n args.$newCellElement = $(this._getCell({\r\n columnIndex: args.newColumnIndex,\r\n rowIndex: args.newRowIndex\r\n }))\r\n }\r\n if (args.cancel) {\r\n this._canceledCellPosition = {\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n }\r\n }\r\n return args\r\n },\r\n _fireFocusedCellChanged: function($cellElement, prevCellIndex, prevRowIndex) {\r\n var dataController = this._dataController;\r\n var columnIndex = this.getView(\"rowsView\").getCellIndex($cellElement);\r\n var rowIndex = this._getRowIndex($cellElement && $cellElement.parent());\r\n var localRowIndex = Math.min(rowIndex - dataController.getRowIndexOffset(), dataController.items().length - 1);\r\n var isEditingCell = this._editingController.isEditCell(localRowIndex, columnIndex);\r\n var row = dataController.items()[localRowIndex];\r\n if (!isEditingCell && (prevCellIndex !== columnIndex || prevRowIndex !== rowIndex)) {\r\n this.executeAction(\"onFocusedCellChanged\", {\r\n cellElement: $cellElement,\r\n columnIndex: columnIndex,\r\n rowIndex: rowIndex,\r\n row: row,\r\n column: this._columnsController.getVisibleColumns()[columnIndex]\r\n })\r\n }\r\n },\r\n _fireFocusedRowChanging: function(eventArgs, $newFocusedRow) {\r\n var newRowIndex = this._getRowIndex($newFocusedRow);\r\n var dataController = this._dataController;\r\n var prevFocusedRowIndex = this.option(\"focusedRowIndex\");\r\n var loadingOperationTypes = dataController.loadingOperationTypes();\r\n var args = {\r\n rowElement: $newFocusedRow,\r\n prevRowIndex: prevFocusedRowIndex,\r\n newRowIndex: newRowIndex,\r\n event: eventArgs,\r\n rows: dataController.getVisibleRows(),\r\n cancel: false\r\n };\r\n if (!dataController || dataController.isLoading() && (loadingOperationTypes.reload || loadingOperationTypes.paging)) {\r\n args.cancel = true;\r\n return args\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.executeAction(\"onFocusedRowChanging\", args);\r\n if (!args.cancel && args.newRowIndex !== newRowIndex) {\r\n args.resetFocusedRow = args.newRowIndex < 0;\r\n if (!args.resetFocusedRow) {\r\n this.setFocusedRowIndex(args.newRowIndex)\r\n }\r\n args.rowIndexChanged = true\r\n }\r\n }\r\n return args\r\n },\r\n _fireFocusedRowChanged: function($rowElement) {\r\n var row;\r\n var focusedRowKey = this.option(\"focusedRowKey\");\r\n var focusController = this.getController(\"focus\");\r\n var focusedRowIndex = null === focusController || void 0 === focusController ? void 0 : focusController.getFocusedRowIndexByKey(focusedRowKey);\r\n if (this.option(\"focusedRowEnabled\")) {\r\n if (focusedRowIndex >= 0) {\r\n var dataController = this._dataController;\r\n row = focusedRowIndex >= 0 && dataController.getVisibleRows()[focusedRowIndex - dataController.getRowIndexOffset()]\r\n }\r\n this.executeAction(\"onFocusedRowChanged\", {\r\n rowElement: $rowElement,\r\n rowIndex: focusedRowIndex,\r\n row: row\r\n })\r\n }\r\n },\r\n _isEventInCurrentGrid: function(event) {\r\n return gridCoreUtils.isElementInCurrentGrid(this, $(event.target))\r\n },\r\n _isRowEditMode: function() {\r\n var editMode = this._editingController.getEditMode();\r\n return editMode === EDIT_MODE_ROW || editMode === EDIT_MODE_FORM\r\n },\r\n _isCellEditMode: function() {\r\n var editMode = this._editingController.getEditMode();\r\n return editMode === EDIT_MODE_CELL || editMode === EDIT_MODE_BATCH\r\n },\r\n _isFastEditingAllowed: function() {\r\n return this._isCellEditMode() && this.option(\"keyboardNavigation.editOnKeyPress\")\r\n },\r\n _getInteractiveElement: function($cell, isLast) {\r\n var $focusedElement = $cell.find(INTERACTIVE_ELEMENTS_SELECTOR).filter(\":visible\");\r\n return isLast ? $focusedElement.last() : $focusedElement.first()\r\n },\r\n _applyTabIndexToElement: function($element) {\r\n var tabIndex = this.option(\"tabIndex\") || 0;\r\n $element.attr(\"tabindex\", isDefined(tabIndex) ? tabIndex : 0)\r\n },\r\n _getCell: function(cellPosition) {\r\n if (this._focusedView && cellPosition) {\r\n var rowIndexOffset = this._dataController.getRowIndexOffset();\r\n var column = this._columnsController.getVisibleColumns(null, true)[cellPosition.columnIndex];\r\n var columnIndexOffset = column && column.fixed ? this._getFixedColumnIndexOffset(column) : this._columnsController.getColumnIndexOffset();\r\n var rowIndex = cellPosition.rowIndex >= 0 ? cellPosition.rowIndex - rowIndexOffset : -1;\r\n var columnIndex = cellPosition.columnIndex >= 0 ? cellPosition.columnIndex - columnIndexOffset : -1;\r\n return this._focusedView.getCell({\r\n rowIndex: rowIndex,\r\n columnIndex: columnIndex\r\n })\r\n }\r\n },\r\n _getRowIndex: function($row) {\r\n var rowsView = this.getView(\"rowsView\");\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex >= 0) {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n return rowIndex\r\n },\r\n _hasSkipRow: function($row) {\r\n var row = $row && $row.get(0);\r\n return row && (\"none\" === row.style.display || $row.hasClass(this.addWidgetPrefix(GROUP_FOOTER_CLASS)) || isDetailRow($row) && !$row.hasClass(this.addWidgetPrefix(EDIT_FORM_CLASS)))\r\n },\r\n _allowEditingOnEnterKey: function() {\r\n return \"startEdit\" === this.option(\"keyboardNavigation.enterKeyAction\")\r\n },\r\n _isLegacyNavigation: function() {\r\n return this.option(\"useLegacyKeyboardNavigation\")\r\n },\r\n _getDirectionCodeByKey: function(key) {\r\n var directionCode;\r\n switch (key) {\r\n case \"upArrow\":\r\n directionCode = \"prevRow\";\r\n break;\r\n case \"downArrow\":\r\n directionCode = \"nextRow\";\r\n break;\r\n case \"leftArrow\":\r\n directionCode = this.option(\"rtlEnabled\") ? \"nextInRow\" : \"previousInRow\";\r\n break;\r\n case \"rightArrow\":\r\n directionCode = this.option(\"rtlEnabled\") ? \"previousInRow\" : \"nextInRow\"\r\n }\r\n return directionCode\r\n },\r\n _isVirtualScrolling: function() {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n return \"virtual\" === scrollingMode || \"infinite\" === scrollingMode\r\n },\r\n _isVirtualRowRender: function() {\r\n return this._isVirtualScrolling() || gridCoreUtils.isVirtualRowRendering(this)\r\n },\r\n _isVirtualColumnRender: function() {\r\n return \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n },\r\n _scrollBy: function(left, top, rowIndex, $event) {\r\n var that = this;\r\n var scrollable = this.getView(\"rowsView\").getScrollable();\r\n if (that._focusedCellPosition) {\r\n scrollable.on(\"scroll\", (function scrollHandler() {\r\n scrollable.off(\"scroll\", scrollHandler);\r\n setTimeout(that.restoreFocusableElement.bind(that, rowIndex, $event))\r\n }))\r\n }\r\n return scrollable.scrollBy({\r\n left: left,\r\n top: top\r\n })\r\n },\r\n _isInsideEditForm: function(element) {\r\n var $editForm = $(element).closest(\".\" + this.addWidgetPrefix(EDIT_FORM_CLASS));\r\n return $editForm.length && this.elementIsInsideGrid($editForm)\r\n },\r\n _isMasterDetailCell: function(element) {\r\n var $masterDetailCell = $(element).closest(\".\" + MASTER_DETAIL_CELL_CLASS);\r\n return $masterDetailCell.length && this.elementIsInsideGrid($masterDetailCell)\r\n },\r\n _processNextCellInMasterDetail: function($nextCell) {\r\n if (!this._isInsideEditForm($nextCell) && $nextCell) {\r\n this._applyTabIndexToElement($nextCell)\r\n }\r\n },\r\n _handleTabKeyOnMasterDetailCell: function(target, direction) {\r\n if (this._isMasterDetailCell(target)) {\r\n this._updateFocusedCellPosition($(target), direction);\r\n var $nextCell = this._getNextCell(direction, \"row\");\r\n this._processNextCellInMasterDetail($nextCell);\r\n return true\r\n }\r\n return false\r\n },\r\n _getElementType: function(target) {\r\n return $(target).is(\"tr\") ? \"row\" : \"cell\"\r\n },\r\n _isFastEditingStarted: function() {\r\n return this._isFastEditingAllowed() && this._fastEditingStarted\r\n },\r\n _getVisibleColumnCount: function() {\r\n return this._columnsController.getVisibleColumns(null, true).length\r\n },\r\n _isCellInRow: function(cellPosition, includeCommandCells) {\r\n var columnIndex = cellPosition.columnIndex;\r\n var visibleColumnsCount = this._getVisibleColumnCount();\r\n return includeCommandCells ? columnIndex >= 0 && columnIndex <= visibleColumnsCount - 1 : columnIndex > 0 && columnIndex < visibleColumnsCount - 1\r\n },\r\n _getCellElementFromTarget: function(target) {\r\n var elementType = this._getElementType(target);\r\n var $targetElement = $(target);\r\n var $cell;\r\n if (\"cell\" === elementType) {\r\n $cell = $targetElement.closest(\".\".concat(ROW_CLASS, \" > td\"))\r\n } else {\r\n $cell = $targetElement.children().not(\".\" + COMMAND_EXPAND_CLASS).first()\r\n }\r\n return $cell\r\n },\r\n _getRowsViewElement: function() {\r\n var rowsView = this.getView(\"rowsView\");\r\n return rowsView && rowsView.element()\r\n },\r\n isKeyboardEnabled: function() {\r\n return this.option(\"keyboardNavigation.enabled\")\r\n },\r\n _processCanceledEditCellPosition: function(rowIndex, columnIndex) {\r\n if (this._canceledCellPosition) {\r\n var isCanceled = this._canceledCellPosition.rowIndex === rowIndex && this._canceledCellPosition.columnIndex === columnIndex;\r\n this._canceledCellPosition = null;\r\n return isCanceled\r\n }\r\n },\r\n updateFocusedRowIndex: function() {\r\n var dataController = this._dataController;\r\n var visibleRowIndex = this.getVisibleRowIndex();\r\n var visibleItems = dataController.items();\r\n var lastVisibleIndex = visibleItems.length ? visibleItems.length - 1 : -1;\r\n var rowIndexOffset = dataController.getRowIndexOffset();\r\n lastVisibleIndex >= 0 && visibleRowIndex > lastVisibleIndex && this.setFocusedRowIndex(lastVisibleIndex + rowIndexOffset)\r\n }\r\n});\r\nexport var keyboardNavigationModule = {\r\n defaultOptions: function() {\r\n return {\r\n useLegacyKeyboardNavigation: false,\r\n keyboardNavigation: {\r\n enabled: true,\r\n enterKeyAction: \"startEdit\",\r\n enterKeyDirection: \"none\",\r\n editOnKeyPress: false\r\n }\r\n }\r\n },\r\n controllers: {\r\n keyboardNavigation: KeyboardNavigationController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n _rowClick: function(e) {\r\n var editRowIndex = this.getController(\"editing\").getEditRowIndex();\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var isKeyboardEnabled = keyboardController.isKeyboardEnabled();\r\n if (editRowIndex === e.rowIndex) {\r\n keyboardController.setCellFocusType()\r\n }\r\n var needTriggerPointerEventHandler = (isMobile() || !isKeyboardEnabled) && this.option(\"focusedRowEnabled\");\r\n if (needTriggerPointerEventHandler) {\r\n this._triggerPointerDownEventHandler(e, !isKeyboardEnabled)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _triggerPointerDownEventHandler: function(e, force) {\r\n var originalEvent = e.event.originalEvent;\r\n if (originalEvent) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var $cell = $(originalEvent.target);\r\n var columnIndex = this.getCellIndex($cell);\r\n var column = this.getController(\"columns\").getVisibleColumns()[columnIndex];\r\n var row = this.getController(\"data\").items()[e.rowIndex];\r\n if (keyboardController._isAllowEditing(row, column) || force) {\r\n var eventArgs = createEvent(originalEvent, {\r\n currentTarget: originalEvent.target\r\n });\r\n keyboardController._pointerEventHandler(eventArgs)\r\n }\r\n }\r\n },\r\n renderFocusState: function(params) {\r\n var {\r\n preventScroll: preventScroll,\r\n pageSizeChanged: pageSizeChanged\r\n } = null !== params && void 0 !== params ? params : {};\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var $rowsViewElement = this.element();\r\n if ($rowsViewElement && !focused($rowsViewElement)) {\r\n $rowsViewElement.attr(\"tabindex\", null)\r\n }\r\n pageSizeChanged && keyboardController.updateFocusedRowIndex();\r\n var rowIndex = keyboardController.getVisibleRowIndex();\r\n if (!isDefined(rowIndex) || rowIndex < 0) {\r\n rowIndex = 0\r\n }\r\n var cellElements = this.getCellElements(rowIndex);\r\n if (keyboardController.isKeyboardEnabled() && cellElements.length) {\r\n this.updateFocusElementTabIndex(cellElements, preventScroll)\r\n }\r\n },\r\n updateFocusElementTabIndex: function(cellElements) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var $row = cellElements.eq(0).parent();\r\n if (isGroupRow($row)) {\r\n keyboardController._applyTabIndexToElement($row)\r\n } else {\r\n var columnIndex = keyboardController.getColumnIndex();\r\n if (!isDefined(columnIndex) || columnIndex < 0) {\r\n columnIndex = 0\r\n }\r\n this._updateFocusedCellTabIndex(cellElements, columnIndex)\r\n }\r\n },\r\n _updateFocusedCellTabIndex: function(cellElements, columnIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var cellElementsLength = cellElements ? cellElements.length : -1;\r\n var updateCellTabIndex = function($cell) {\r\n var isMasterDetailCell = keyboardController._isMasterDetailCell($cell);\r\n var isValidCell = keyboardController._isCellValid($cell);\r\n if (!isMasterDetailCell && isValidCell && isCellElement($cell)) {\r\n keyboardController._applyTabIndexToElement($cell);\r\n keyboardController.setCellFocusType();\r\n return true\r\n }\r\n };\r\n var $cell = cellElements.filter(\"[aria-colindex='\".concat(columnIndex + 1, \"']\"));\r\n if ($cell.length) {\r\n updateCellTabIndex($cell)\r\n } else {\r\n if (cellElementsLength <= columnIndex) {\r\n columnIndex = cellElementsLength - 1\r\n }\r\n for (var i = columnIndex; i < cellElementsLength; ++i) {\r\n if (updateCellTabIndex($(cellElements[i]))) {\r\n break\r\n }\r\n }\r\n }\r\n },\r\n renderDelayedTemplates: function(change) {\r\n this.callBase.apply(this, arguments);\r\n this._renderFocusByChange(change)\r\n },\r\n _renderFocusByChange(change) {\r\n var {\r\n operationTypes: operationTypes,\r\n repaintChangesOnly: repaintChangesOnly\r\n } = null !== change && void 0 !== change ? change : {};\r\n var {\r\n fullReload: fullReload,\r\n pageSize: pageSize\r\n } = null !== operationTypes && void 0 !== operationTypes ? operationTypes : {};\r\n if (!change || !repaintChangesOnly || fullReload || pageSize) {\r\n var preventScroll = shouldPreventScroll(this);\r\n this.renderFocusState({\r\n preventScroll: preventScroll,\r\n pageSizeChanged: pageSize\r\n })\r\n }\r\n },\r\n _renderCore: function(change) {\r\n this.callBase.apply(this, arguments);\r\n this._renderFocusByChange(change)\r\n },\r\n _editCellPrepared: function($cell) {\r\n var editorInstance = this._getEditorInstance($cell);\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var isEditingNavigationMode = keyboardController && keyboardController._isFastEditingStarted();\r\n if (editorInstance && isEditingNavigationMode) {\r\n this._handleEditingNavigationMode(editorInstance)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleEditingNavigationMode: function(editorInstance) {\r\n [\"downArrow\", \"upArrow\"].forEach((function(keyName) {\r\n var originalKeyHandler = editorInstance._supportedKeys()[keyName];\r\n editorInstance.registerKeyHandler(keyName, e => {\r\n var isDropDownOpened = \"true\" === editorInstance._input().attr(\"aria-expanded\");\r\n if (isDropDownOpened) {\r\n return originalKeyHandler && originalKeyHandler.call(editorInstance, e)\r\n }\r\n })\r\n }));\r\n editorInstance.registerKeyHandler(\"leftArrow\", noop);\r\n editorInstance.registerKeyHandler(\"rightArrow\", noop);\r\n var isDateBoxWithMask = editorInstance.NAME === DATEBOX_WIDGET_NAME && editorInstance.option(\"useMaskBehavior\");\r\n if (isDateBoxWithMask) {\r\n editorInstance.registerKeyHandler(\"enter\", noop)\r\n }\r\n },\r\n _getEditorInstance: function($cell) {\r\n var $editor = $cell.find(\".dx-texteditor\").eq(0);\r\n return gridCoreUtils.getWidgetInstance($editor)\r\n }\r\n }\r\n },\r\n controllers: {\r\n editing: {\r\n editCell: function(rowIndex, columnIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n if (keyboardController._processCanceledEditCellPosition(rowIndex, columnIndex)) {\r\n return false\r\n }\r\n var isCellEditing = this.callBase(rowIndex, columnIndex);\r\n if (isCellEditing) {\r\n keyboardController.setupFocusedView()\r\n }\r\n return isCellEditing\r\n },\r\n editRow: function(rowIndex) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var visibleColumnIndex = keyboardController.getVisibleColumnIndex();\r\n var column = this._columnsController.getVisibleColumns()[visibleColumnIndex];\r\n if (column && column.type || this.option(\"editing.mode\") === EDIT_MODE_FORM) {\r\n keyboardController._resetFocusedCell()\r\n }\r\n this.callBase(rowIndex)\r\n },\r\n addRow: function(parentKey) {\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n keyboardController.setupFocusedView();\r\n keyboardController.setCellFocusType();\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getFocusedCellInRow: function(rowIndex) {\r\n var keyboardNavigationController = this.getController(\"keyboardNavigation\");\r\n var $cell = this.callBase(rowIndex);\r\n if (keyboardNavigationController.isKeyboardEnabled() && keyboardNavigationController._focusedCellPosition.rowIndex === rowIndex) {\r\n var $focusedCell = keyboardNavigationController._getFocusedCell();\r\n if (isElementDefined($focusedCell) && !$focusedCell.hasClass(COMMAND_EDIT_CLASS)) {\r\n $cell = $focusedCell\r\n }\r\n }\r\n return $cell\r\n },\r\n _processCanceledEditingCell: function() {\r\n this.closeEditCell().done(() => {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n keyboardNavigation._updateFocus()\r\n })\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._keyboardNavigationController = this.getController(\"keyboardNavigation\")\r\n },\r\n closeEditCell: function() {\r\n var keyboardNavigation = this._keyboardNavigationController;\r\n keyboardNavigation._fastEditingStarted = false;\r\n var result = this.callBase.apply(this, arguments);\r\n keyboardNavigation._updateFocus();\r\n return result\r\n },\r\n _delayedInputFocus: function() {\r\n this._keyboardNavigationController._isNeedScroll = true;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _isEditingStart: function() {\r\n var keyboardNavigation = this.getController(\"keyboardNavigation\");\r\n var cancel = this.callBase.apply(this, arguments);\r\n if (cancel && !keyboardNavigation._isNeedFocus) {\r\n var $cell = keyboardNavigation._getFocusedCell();\r\n keyboardNavigation._focus($cell, true)\r\n }\r\n return cancel\r\n }\r\n },\r\n data: {\r\n _correctRowIndices: function(getRowIndexCorrection) {\r\n var that = this;\r\n var keyboardNavigationController = that.getController(\"keyboardNavigation\");\r\n var editorFactory = that.getController(\"editorFactory\");\r\n var focusedCellPosition = keyboardNavigationController._focusedCellPosition;\r\n that.callBase.apply(that, arguments);\r\n if (focusedCellPosition && focusedCellPosition.rowIndex >= 0) {\r\n var focusedRowIndexCorrection = getRowIndexCorrection(focusedCellPosition.rowIndex);\r\n if (focusedRowIndexCorrection) {\r\n focusedCellPosition.rowIndex += focusedRowIndexCorrection;\r\n editorFactory.refocus()\r\n }\r\n }\r\n },\r\n getMaxRowIndex: function() {\r\n var result = this.items().length - 1;\r\n var virtualItemsCount = this.virtualItemsCount();\r\n if (virtualItemsCount) {\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n result += rowIndexOffset + virtualItemsCount.end\r\n }\r\n return result\r\n }\r\n },\r\n adaptiveColumns: {\r\n _showHiddenCellsInView: function(_ref) {\r\n var {\r\n viewName: viewName,\r\n $cells: $cells,\r\n isCommandColumn: isCommandColumn\r\n } = _ref;\r\n this.callBase.apply(this, arguments);\r\n viewName === COLUMN_HEADERS_VIEW && !isCommandColumn && $cells.each((_, cellElement) => {\r\n var $cell = $(cellElement);\r\n isCellInHeaderRow($cell) && $cell.attr(\"tabindex\", 0)\r\n })\r\n },\r\n _hideVisibleCellInView: function(_ref2) {\r\n var {\r\n viewName: viewName,\r\n $cell: $cell,\r\n isCommandColumn: isCommandColumn\r\n } = _ref2;\r\n this.callBase.apply(this, arguments);\r\n if (viewName === COLUMN_HEADERS_VIEW && !isCommandColumn && isCellInHeaderRow($cell)) {\r\n $cell.removeAttr(\"tabindex\")\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.master_detail.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar MASTER_DETAIL_CELL_CLASS = \"dx-master-detail-cell\";\r\nvar MASTER_DETAIL_ROW_CLASS = \"dx-master-detail-row\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nexport var masterDetailModule = {\r\n defaultOptions: function() {\r\n return {\r\n masterDetail: {\r\n enabled: false,\r\n autoExpandAll: false,\r\n template: null\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n columns: {\r\n _getExpandColumnsCore: function() {\r\n var expandColumns = this.callBase();\r\n if (this.option(\"masterDetail.enabled\")) {\r\n expandColumns.push({\r\n type: \"detailExpand\",\r\n cellTemplate: gridCoreUtils.getExpandCellTemplate()\r\n })\r\n }\r\n return expandColumns\r\n }\r\n },\r\n data: function() {\r\n var initMasterDetail = function(that) {\r\n that._expandedItems = [];\r\n that._isExpandAll = that.option(\"masterDetail.autoExpandAll\")\r\n };\r\n return {\r\n init: function() {\r\n initMasterDetail(this);\r\n this.callBase()\r\n },\r\n expandAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = true;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n collapseAll: function(groupIndex) {\r\n var that = this;\r\n if (groupIndex < 0) {\r\n that._isExpandAll = false;\r\n that._expandedItems = [];\r\n that.updateItems()\r\n } else {\r\n that.callBase.apply(that, arguments)\r\n }\r\n },\r\n isRowExpanded: function(key) {\r\n var that = this;\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, that._expandedItems);\r\n if (Array.isArray(key)) {\r\n return that.callBase.apply(that, arguments)\r\n } else {\r\n return !!(that._isExpandAll ^ (expandIndex >= 0 && that._expandedItems[expandIndex].visible))\r\n }\r\n },\r\n _getRowIndicesForExpand: function(key) {\r\n var rowIndex = this.getRowIndexByKey(key);\r\n return [rowIndex, rowIndex + 1]\r\n },\r\n _changeRowExpandCore: function(key) {\r\n var that = this;\r\n var result;\r\n if (Array.isArray(key)) {\r\n result = that.callBase.apply(that, arguments)\r\n } else {\r\n var expandIndex = gridCoreUtils.getIndexByKey(key, that._expandedItems);\r\n if (expandIndex >= 0) {\r\n var visible = that._expandedItems[expandIndex].visible;\r\n that._expandedItems[expandIndex].visible = !visible\r\n } else {\r\n that._expandedItems.push({\r\n key: key,\r\n visible: true\r\n })\r\n }\r\n that.updateItems({\r\n changeType: \"update\",\r\n rowIndices: that._getRowIndicesForExpand(key)\r\n });\r\n result = (new Deferred).resolve()\r\n }\r\n return result\r\n },\r\n _processDataItem: function(data, options) {\r\n var that = this;\r\n var dataItem = that.callBase.apply(that, arguments);\r\n dataItem.isExpanded = that.isRowExpanded(dataItem.key);\r\n if (void 0 === options.detailColumnIndex) {\r\n options.detailColumnIndex = -1;\r\n each(options.visibleColumns, (function(index, column) {\r\n if (\"expand\" === column.command && !isDefined(column.groupIndex)) {\r\n options.detailColumnIndex = index;\r\n return false\r\n }\r\n }))\r\n }\r\n if (options.detailColumnIndex >= 0) {\r\n dataItem.values[options.detailColumnIndex] = dataItem.isExpanded\r\n }\r\n return dataItem\r\n },\r\n _processItems: function(items, change) {\r\n var that = this;\r\n var changeType = change.changeType;\r\n var result = [];\r\n items = that.callBase.apply(that, arguments);\r\n if (\"loadingAll\" === changeType) {\r\n return items\r\n }\r\n if (\"refresh\" === changeType) {\r\n that._expandedItems = grep(that._expandedItems, (function(item) {\r\n return item.visible\r\n }))\r\n }\r\n each(items, (function(index, item) {\r\n result.push(item);\r\n var expandIndex = gridCoreUtils.getIndexByKey(item.key, that._expandedItems);\r\n if (\"data\" === item.rowType && (item.isExpanded || expandIndex >= 0) && !item.isNewRow) {\r\n result.push({\r\n visible: item.isExpanded,\r\n rowType: \"detail\",\r\n key: item.key,\r\n data: item.data,\r\n values: []\r\n })\r\n }\r\n }));\r\n return result\r\n },\r\n optionChanged: function(args) {\r\n var isEnabledChanged;\r\n var isAutoExpandAllChanged;\r\n if (\"masterDetail\" === args.name) {\r\n args.name = \"dataSource\";\r\n switch (args.fullName) {\r\n case \"masterDetail\":\r\n var value = args.value || {};\r\n var previousValue = args.previousValue || {};\r\n isEnabledChanged = value.enabled !== previousValue.enabled;\r\n isAutoExpandAllChanged = value.autoExpandAll !== previousValue.autoExpandAll;\r\n break;\r\n case \"masterDetail.template\":\r\n initMasterDetail(this);\r\n break;\r\n case \"masterDetail.enabled\":\r\n isEnabledChanged = true;\r\n break;\r\n case \"masterDetail.autoExpandAll\":\r\n isAutoExpandAllChanged = true\r\n }\r\n if (isEnabledChanged || isAutoExpandAllChanged) {\r\n initMasterDetail(this)\r\n }\r\n }\r\n this.callBase(args)\r\n }\r\n }\r\n }(),\r\n resizing: {\r\n fireContentReadyAction: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateParentDataGrids(this.component.$element())\r\n },\r\n _updateParentDataGrids: function($element) {\r\n var $masterDetailRow = $element.closest(\".\" + MASTER_DETAIL_ROW_CLASS);\r\n if ($masterDetailRow.length) {\r\n when(this._updateMasterDataGrid($masterDetailRow, $element)).done(() => {\r\n this._updateParentDataGrids($masterDetailRow.parent())\r\n })\r\n }\r\n },\r\n _updateMasterDataGrid: function($masterDetailRow, $detailElement) {\r\n var masterRowOptions = $($masterDetailRow).data(\"options\");\r\n var masterDataGrid = $($masterDetailRow).closest(\".\" + this.getWidgetContainerClass()).parent().data(\"dxDataGrid\");\r\n if (masterRowOptions && masterDataGrid) {\r\n return this._updateMasterDataGridCore(masterDataGrid, masterRowOptions)\r\n }\r\n },\r\n _updateMasterDataGridCore: function(masterDataGrid, masterRowOptions) {\r\n var d = Deferred();\r\n if (masterDataGrid.getView(\"rowsView\").isFixedColumns()) {\r\n this._updateFixedMasterDetailGrids(masterDataGrid, masterRowOptions.rowIndex, $(masterRowOptions.rowElement)).done(d.resolve)\r\n } else {\r\n if (true === masterDataGrid.option(\"scrolling.useNative\")) {\r\n masterDataGrid.updateDimensions().done(() => d.resolve(true));\r\n return\r\n }\r\n var scrollable = masterDataGrid.getScrollable();\r\n if (scrollable) {\r\n null === scrollable || void 0 === scrollable ? void 0 : scrollable.update().done(() => d.resolve())\r\n } else {\r\n d.resolve()\r\n }\r\n }\r\n return d.promise()\r\n },\r\n _updateFixedMasterDetailGrids: function(masterDataGrid, masterRowIndex, $detailElement) {\r\n var d = Deferred();\r\n var $rows = $(masterDataGrid.getRowElement(masterRowIndex));\r\n var $tables = $(masterDataGrid.getView(\"rowsView\").getTableElements());\r\n var rowsNotEqual = 2 === (null === $rows || void 0 === $rows ? void 0 : $rows.length) && getHeight($rows.eq(0)) !== getHeight($rows.eq(1));\r\n var tablesNotEqual = 2 === (null === $tables || void 0 === $tables ? void 0 : $tables.length) && getHeight($tables.eq(0)) !== getHeight($tables.eq(1));\r\n if (rowsNotEqual || tablesNotEqual) {\r\n var detailElementWidth = getWidth($detailElement);\r\n masterDataGrid.updateDimensions().done(() => {\r\n var isDetailHorizontalScrollCanBeShown = this.option(\"columnAutoWidth\") && true === masterDataGrid.option(\"scrolling.useNative\");\r\n var isDetailGridWidthChanged = isDetailHorizontalScrollCanBeShown && detailElementWidth !== getWidth($detailElement);\r\n if (isDetailHorizontalScrollCanBeShown && isDetailGridWidthChanged) {\r\n this.updateDimensions().done(() => d.resolve(true))\r\n } else {\r\n d.resolve(true)\r\n }\r\n });\r\n return d.promise()\r\n }\r\n return Deferred().resolve()\r\n },\r\n _toggleBestFitMode: function(isBestFit) {\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"masterDetail.template\")) {\r\n var $rowsTable = this._rowsView.getTableElement();\r\n if ($rowsTable) {\r\n $rowsTable.find(\".dx-master-detail-cell\").css(\"maxWidth\", isBestFit ? 0 : \"\")\r\n }\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n _getCellTemplate: function(options) {\r\n var that = this;\r\n var column = options.column;\r\n var editingController = that.getController(\"editing\");\r\n var isEditRow = editingController && editingController.isEditRow(options.rowIndex);\r\n var template;\r\n if (\"detail\" === column.command && !isEditRow) {\r\n template = that.option(\"masterDetail.template\") || {\r\n allowRenderToDetachedContainer: false,\r\n render: that._getDefaultTemplate(column)\r\n }\r\n } else {\r\n template = that.callBase.apply(that, arguments)\r\n }\r\n return template\r\n },\r\n _isDetailRow: function(row) {\r\n return row && row.rowType && 0 === row.rowType.indexOf(\"detail\")\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row && this._isDetailRow(row)) {\r\n this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n $row.addClass(MASTER_DETAIL_ROW_CLASS);\r\n if (isDefined(row.visible)) {\r\n $row.toggle(row.visible)\r\n }\r\n }\r\n return $row\r\n },\r\n _renderCells: function($row, options) {\r\n var row = options.row;\r\n var $detailCell;\r\n var visibleColumns = this._columnsController.getVisibleColumns();\r\n if (row.rowType && this._isDetailRow(row)) {\r\n if (this._needRenderCell(0, options.columnIndices)) {\r\n $detailCell = this._renderCell($row, {\r\n value: null,\r\n row: row,\r\n rowIndex: row.rowIndex,\r\n column: {\r\n command: \"detail\"\r\n },\r\n columnIndex: 0,\r\n change: options.change\r\n });\r\n $detailCell.addClass(CELL_FOCUS_DISABLED_CLASS).addClass(MASTER_DETAIL_CELL_CLASS).attr(\"colSpan\", visibleColumns.length)\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.modules.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Class from \"../../core/class\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nvar WIDGET_WITH_LEGACY_CONTAINER_NAME = \"dxDataGrid\";\r\nvar ModuleItem = Class.inherit({\r\n _endUpdateCore: function() {},\r\n ctor: function(component) {\r\n var that = this;\r\n that._updateLockCount = 0;\r\n that.component = component;\r\n that._actions = {};\r\n that._actionConfigs = {};\r\n each(this.callbackNames() || [], (function(index, name) {\r\n var flags = that.callbackFlags(name) || {};\r\n flags.unique = true, flags.syncStrategy = true;\r\n that[this] = Callbacks(flags)\r\n }))\r\n },\r\n init: function() {},\r\n callbackNames: function() {},\r\n callbackFlags: function() {},\r\n publicMethods: function() {},\r\n beginUpdate: function() {\r\n this._updateLockCount++\r\n },\r\n endUpdate: function() {\r\n if (this._updateLockCount > 0) {\r\n this._updateLockCount--;\r\n if (!this._updateLockCount) {\r\n this._endUpdateCore()\r\n }\r\n }\r\n },\r\n option: function(name) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (1 === arguments.length && optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = component.option(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return component.option.apply(component, arguments)\r\n },\r\n _silentOption: function(name, value) {\r\n var component = this.component;\r\n var optionCache = component._optionCache;\r\n if (optionCache) {\r\n optionCache[name] = value\r\n }\r\n return component._setOptionWithoutOptionChange(name, value)\r\n },\r\n localize: function(name) {\r\n var optionCache = this.component._optionCache;\r\n if (optionCache) {\r\n if (!(name in optionCache)) {\r\n optionCache[name] = messageLocalization.format(name)\r\n }\r\n return optionCache[name]\r\n }\r\n return messageLocalization.format(name)\r\n },\r\n on: function() {\r\n return this.component.on.apply(this.component, arguments)\r\n },\r\n off: function() {\r\n return this.component.off.apply(this.component, arguments)\r\n },\r\n optionChanged: function(args) {\r\n if (args.name in this._actions) {\r\n this.createAction(args.name, this._actionConfigs[args.name]);\r\n args.handled = true\r\n }\r\n },\r\n getAction: function(actionName) {\r\n return this._actions[actionName]\r\n },\r\n setAria: function(name, value, $target) {\r\n var target = $target.get(0);\r\n var prefix = \"role\" !== name && \"id\" !== name ? \"aria-\" : \"\";\r\n if (target.setAttribute) {\r\n target.setAttribute(prefix + name, value)\r\n } else {\r\n $target.attr(prefix + name, value)\r\n }\r\n },\r\n _createComponent: function() {\r\n return this.component._createComponent.apply(this.component, arguments)\r\n },\r\n getController: function(name) {\r\n return this.component._controllers[name]\r\n },\r\n createAction: function(actionName, config) {\r\n if (isFunction(actionName)) {\r\n var action = this.component._createAction(actionName.bind(this), config);\r\n return function(e) {\r\n action({\r\n event: e\r\n })\r\n }\r\n } else {\r\n this._actions[actionName] = this.component._createActionByOption(actionName, config);\r\n this._actionConfigs[actionName] = config\r\n }\r\n },\r\n executeAction: function(actionName, options) {\r\n var action = this._actions[actionName];\r\n return action && action(options)\r\n },\r\n dispose: function() {\r\n var that = this;\r\n each(that.callbackNames() || [], (function() {\r\n that[this].empty()\r\n }))\r\n },\r\n addWidgetPrefix: function(className) {\r\n var componentName = this.component.NAME;\r\n return \"dx-\" + componentName.slice(2).toLowerCase() + (className ? \"-\" + className : \"\")\r\n },\r\n getWidgetContainerClass: function() {\r\n var containerName = this.component.NAME === WIDGET_WITH_LEGACY_CONTAINER_NAME ? null : \"container\";\r\n return this.addWidgetPrefix(containerName)\r\n },\r\n elementIsInsideGrid: function($element) {\r\n var $gridElement = $element.closest(\".\" + this.getWidgetContainerClass()).parent();\r\n return $gridElement.is(this.component.$element())\r\n }\r\n});\r\nvar Controller = ModuleItem;\r\nvar ViewController = Controller.inherit({\r\n getView: function(name) {\r\n return this.component._views[name]\r\n },\r\n getViews: function() {\r\n return this.component._views\r\n }\r\n});\r\nvar View = ModuleItem.inherit({\r\n _isReady: function() {\r\n return this.component.isReady()\r\n },\r\n _endUpdateCore: function() {\r\n this.callBase();\r\n if (!this._isReady() && this._requireReady) {\r\n this._requireRender = false;\r\n this.component._requireResize = false\r\n }\r\n if (this._requireRender) {\r\n this._requireRender = false;\r\n this.render(this._$parent)\r\n }\r\n },\r\n _invalidate: function(requireResize, requireReady) {\r\n this._requireRender = true;\r\n this.component._requireResize = hasWindow() && (this.component._requireResize || requireResize);\r\n this._requireReady = this._requireReady || requireReady\r\n },\r\n _renderCore: function() {},\r\n _resizeCore: function() {},\r\n _parentElement: function() {\r\n return this._$parent\r\n },\r\n ctor: function(component) {\r\n this.callBase(component);\r\n this.renderCompleted = Callbacks();\r\n this.resizeCompleted = Callbacks()\r\n },\r\n element: function() {\r\n return this._$element\r\n },\r\n getElementHeight: function() {\r\n var $element = this.element();\r\n if (!$element) {\r\n return 0\r\n }\r\n var marginTop = parseFloat($element.css(\"marginTop\")) || 0;\r\n var marginBottom = parseFloat($element.css(\"marginBottom\")) || 0;\r\n var offsetHeight = $element.get(0).offsetHeight;\r\n return offsetHeight + marginTop + marginBottom\r\n },\r\n isVisible: function() {\r\n return true\r\n },\r\n getTemplate: function(name) {\r\n return this.component._getTemplate(name)\r\n },\r\n render: function($parent, options) {\r\n var $element = this._$element;\r\n var isVisible = this.isVisible();\r\n if (!$element && !$parent) {\r\n return\r\n }\r\n this._requireReady = false;\r\n if (!$element) {\r\n $element = this._$element = $(\"<div>\").appendTo($parent);\r\n this._$parent = $parent\r\n }\r\n $element.toggleClass(\"dx-hidden\", !isVisible);\r\n if (isVisible) {\r\n this.component._optionCache = {};\r\n this._renderCore(options);\r\n this.component._optionCache = void 0;\r\n this.renderCompleted.fire(options)\r\n }\r\n },\r\n resize: function() {\r\n this.isResizing = true;\r\n this._resizeCore();\r\n this.resizeCompleted.fire();\r\n this.isResizing = false\r\n },\r\n focus: function(preventScroll) {\r\n this.element().get(0).focus({\r\n preventScroll: preventScroll\r\n })\r\n }\r\n});\r\nvar MODULES_ORDER_MAX_INDEX = 1e6;\r\nvar processModules = function(that, componentClass) {\r\n var modules = componentClass.modules;\r\n var modulesOrder = componentClass.modulesOrder;\r\n var controllerTypes = componentClass.controllerTypes || {};\r\n var viewTypes = componentClass.viewTypes || {};\r\n if (!componentClass.controllerTypes) {\r\n if (modulesOrder) {\r\n modules.sort((function(module1, module2) {\r\n var orderIndex1 = modulesOrder.indexOf(module1.name);\r\n var orderIndex2 = modulesOrder.indexOf(module2.name);\r\n if (orderIndex1 < 0) {\r\n orderIndex1 = MODULES_ORDER_MAX_INDEX\r\n }\r\n if (orderIndex2 < 0) {\r\n orderIndex2 = MODULES_ORDER_MAX_INDEX\r\n }\r\n return orderIndex1 - orderIndex2\r\n }))\r\n }\r\n each(modules, (function() {\r\n var controllers = this.controllers;\r\n var moduleName = this.name;\r\n var views = this.views;\r\n controllers && each(controllers, (function(name, type) {\r\n if (controllerTypes[name]) {\r\n throw errors.Error(\"E1001\", moduleName, name)\r\n } else if (!(type && type.subclassOf && type.subclassOf(Controller))) {\r\n type.subclassOf(Controller);\r\n throw errors.Error(\"E1002\", moduleName, name)\r\n }\r\n controllerTypes[name] = type\r\n }));\r\n views && each(views, (function(name, type) {\r\n if (viewTypes[name]) {\r\n throw errors.Error(\"E1003\", moduleName, name)\r\n } else if (!(type && type.subclassOf && type.subclassOf(View))) {\r\n throw errors.Error(\"E1004\", moduleName, name)\r\n }\r\n viewTypes[name] = type\r\n }))\r\n }));\r\n each(modules, (function() {\r\n var extenders = this.extenders;\r\n if (extenders) {\r\n extenders.controllers && each(extenders.controllers, (function(name, extender) {\r\n if (controllerTypes[name]) {\r\n controllerTypes[name] = controllerTypes[name].inherit(extender)\r\n }\r\n }));\r\n extenders.views && each(extenders.views, (function(name, extender) {\r\n if (viewTypes[name]) {\r\n viewTypes[name] = viewTypes[name].inherit(extender)\r\n }\r\n }))\r\n }\r\n }));\r\n componentClass.controllerTypes = controllerTypes;\r\n componentClass.viewTypes = viewTypes\r\n }\r\n var createModuleItems = function(moduleTypes) {\r\n var moduleItems = {};\r\n each(moduleTypes, (function(name, moduleType) {\r\n var moduleItem = new moduleType(that);\r\n moduleItem.name = name;\r\n ! function(that, name, moduleItem) {\r\n var publicMethods = moduleItem.publicMethods();\r\n if (publicMethods) {\r\n each(publicMethods, (function(index, methodName) {\r\n if (moduleItem[methodName]) {\r\n if (!that[methodName]) {\r\n that[methodName] = function() {\r\n return moduleItem[methodName].apply(moduleItem, arguments)\r\n }\r\n } else {\r\n throw errors.Error(\"E1005\", methodName)\r\n }\r\n } else {\r\n throw errors.Error(\"E1006\", name, methodName)\r\n }\r\n }))\r\n }\r\n }(that, name, moduleItem);\r\n moduleItems[name] = moduleItem\r\n }));\r\n return moduleItems\r\n };\r\n that._controllers = createModuleItems(controllerTypes);\r\n that._views = createModuleItems(viewTypes)\r\n};\r\nvar callModuleItemsMethod = function(that, methodName, args) {\r\n args = args || [];\r\n if (that._controllers) {\r\n each(that._controllers, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n if (that._views) {\r\n each(that._views, (function() {\r\n this[methodName] && this[methodName].apply(this, args)\r\n }))\r\n }\r\n};\r\nexport default {\r\n modules: [],\r\n View: View,\r\n ViewController: ViewController,\r\n Controller: Controller,\r\n registerModule: function(name, module) {\r\n var modules = this.modules;\r\n for (var i = 0; i < modules.length; i++) {\r\n if (modules[i].name === name) {\r\n return\r\n }\r\n }\r\n module.name = name;\r\n modules.push(module);\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n registerModulesOrder: function(moduleNames) {\r\n this.modulesOrder = moduleNames\r\n },\r\n unregisterModule: function(name) {\r\n this.modules = grep(this.modules, (function(module) {\r\n return module.name !== name\r\n }));\r\n delete this.controllerTypes;\r\n delete this.viewTypes\r\n },\r\n processModules: processModules,\r\n callModuleItemsMethod: callModuleItemsMethod\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/component_wrapper/grid_pager.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Component from \"./common/component\";\r\nexport class GridPagerWrapper extends Component {\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"pageIndex\":\r\n var pageIndexChanged = this.option(\"pageIndexChanged\");\r\n if (pageIndexChanged) {\r\n pageIndexChanged(args.value)\r\n }\r\n break;\r\n case \"pageSize\":\r\n var pageSizeChanged = this.option(\"pageSizeChanged\");\r\n if (pageSizeChanged) {\r\n pageSizeChanged(args.value)\r\n }\r\n }\r\n super._optionChanged(args)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/utils/get_element_width.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport getElementComputedStyle from \"../../../utils/get_computed_style\";\r\nimport {\r\n toNumber\r\n} from \"../../../utils/type_conversion\";\r\nexport function getElementStyle(name, element) {\r\n var _getElementComputedSt;\r\n var computedStyle = null !== (_getElementComputedSt = getElementComputedStyle(element)) && void 0 !== _getElementComputedSt ? _getElementComputedSt : {};\r\n return toNumber(computedStyle[name])\r\n}\r\nexport function getElementContentWidth(element) {\r\n var padding = getElementStyle(\"paddingLeft\", element) + getElementStyle(\"paddingRight\", element);\r\n var width = getElementStyle(\"width\", element);\r\n return width - padding\r\n}\r\nexport function getElementWidth(element) {\r\n var margin = getElementStyle(\"marginLeft\", element) + getElementStyle(\"marginRight\", element);\r\n var width = getElementStyle(\"width\", element);\r\n return margin + width\r\n}\r\nexport function getElementMinWidth(element) {\r\n return getElementStyle(\"minWidth\", element)\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/resizable_container.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"contentTemplate\", \"pagerProps\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport resizeCallbacks from \"../../../core/utils/resize_callbacks\";\r\nimport {\r\n getElementWidth,\r\n getElementStyle,\r\n getElementContentWidth\r\n} from \"./utils/get_element_width\";\r\nimport {\r\n isDefined\r\n} from \"../../../core/utils/type\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n contentAttributes: contentAttributes,\r\n infoTextRef: infoTextRef,\r\n infoTextVisible: infoTextVisible,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSizesRef: pageSizesRef,\r\n pagesRef: pagesRef,\r\n parentRef: parentRef,\r\n props: {\r\n contentTemplate: Content\r\n }\r\n } = _ref;\r\n return Content(_extends({\r\n rootElementRef: parentRef,\r\n pageSizesRef: pageSizesRef,\r\n infoTextRef: infoTextRef,\r\n pagesRef: pagesRef,\r\n infoTextVisible: infoTextVisible,\r\n isLargeDisplayMode: isLargeDisplayMode\r\n }, contentAttributes))\r\n};\r\nexport function calculateLargeDisplayMode(_ref2) {\r\n var {\r\n pageSizes: pageSizesWidth,\r\n pages: pagesWidth,\r\n parent: parentWidth\r\n } = _ref2;\r\n return parentWidth - (pageSizesWidth + pagesWidth) > 0\r\n}\r\nexport function calculateInfoTextVisible(_ref3) {\r\n var {\r\n info: infoWidth,\r\n pageSizes: pageSizesWidth,\r\n pages: pagesWidth,\r\n parent: parentWidth\r\n } = _ref3;\r\n var minimalWidth = pageSizesWidth + pagesWidth + infoWidth;\r\n return parentWidth - minimalWidth > 0\r\n}\r\n\r\nfunction getElementsWidth(_ref4) {\r\n var {\r\n info: info,\r\n pageSizes: pageSizes,\r\n pages: pages,\r\n parent: parent\r\n } = _ref4;\r\n var parentWidth = getElementContentWidth(parent);\r\n var pageSizesWidth = getElementWidth(pageSizes);\r\n var infoWidth = getElementWidth(info);\r\n var pagesHtmlWidth = getElementWidth(pages);\r\n return {\r\n parent: parentWidth,\r\n pageSizes: pageSizesWidth,\r\n info: infoWidth + getElementStyle(\"marginLeft\", info) + getElementStyle(\"marginRight\", info),\r\n pages: pagesHtmlWidth\r\n }\r\n}\r\nexport var ResizableContainerProps = {};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nvar getTemplate = TemplateProp => TemplateProp && (TemplateProp.defaultProps ? props => normalizeProps(createComponentVNode(2, TemplateProp, _extends({}, props))) : TemplateProp);\r\nexport class ResizableContainer extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.parentRef = infernoCreateRef();\r\n this.pageSizesRef = infernoCreateRef();\r\n this.infoTextRef = infernoCreateRef();\r\n this.pagesRef = infernoCreateRef();\r\n this.actualIsLargeDisplayMode = true;\r\n this.actualInfoTextVisible = true;\r\n this.state = {\r\n infoTextVisible: true,\r\n isLargeDisplayMode: true\r\n };\r\n this.subscribeToResize = this.subscribeToResize.bind(this);\r\n this.effectUpdateChildProps = this.effectUpdateChildProps.bind(this);\r\n this.updateAdaptivityProps = this.updateAdaptivityProps.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.subscribeToResize, [this.state.infoTextVisible, this.state.isLargeDisplayMode]), new InfernoEffect(this.effectUpdateChildProps, [this.props, this.state.infoTextVisible, this.state.isLargeDisplayMode, this.props.pagerProps, this.props.contentTemplate])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.state.infoTextVisible, this.state.isLargeDisplayMode]);\r\n null === (_this$_effects$2 = this._effects[1]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props, this.state.infoTextVisible, this.state.isLargeDisplayMode, this.props.pagerProps, this.props.contentTemplate])\r\n }\r\n subscribeToResize() {\r\n var callback = () => {\r\n this.parentWidth > 0 && this.updateAdaptivityProps()\r\n };\r\n resizeCallbacks.add(callback);\r\n return () => {\r\n resizeCallbacks.remove(callback)\r\n }\r\n }\r\n effectUpdateChildProps() {\r\n if (this.parentWidth > 0) {\r\n this.updateAdaptivityProps()\r\n }\r\n }\r\n get contentAttributes() {\r\n var {\r\n className: className,\r\n displayMode: displayMode,\r\n gridCompatibility: gridCompatibility,\r\n hasKnownLastPage: hasKnownLastPage,\r\n infoText: infoText,\r\n label: label,\r\n lightModeEnabled: lightModeEnabled,\r\n maxPagesCount: maxPagesCount,\r\n onKeyDown: onKeyDown,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes,\r\n pagesCountText: pagesCountText,\r\n pagesNavigatorVisible: pagesNavigatorVisible,\r\n rtlEnabled: rtlEnabled,\r\n showInfo: showInfo,\r\n showNavigationButtons: showNavigationButtons,\r\n showPageSizes: showPageSizes,\r\n totalCount: totalCount,\r\n visible: visible\r\n } = this.props.pagerProps;\r\n return _extends({}, this.restAttributes, {\r\n pageSize: pageSize,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pageSizeChange: pageSizeChange,\r\n gridCompatibility: gridCompatibility,\r\n className: className,\r\n showInfo: showInfo,\r\n infoText: infoText,\r\n lightModeEnabled: lightModeEnabled,\r\n displayMode: displayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pagesCountText: pagesCountText,\r\n visible: visible,\r\n hasKnownLastPage: hasKnownLastPage,\r\n pagesNavigatorVisible: pagesNavigatorVisible,\r\n showPageSizes: showPageSizes,\r\n pageSizes: pageSizes,\r\n rtlEnabled: rtlEnabled,\r\n showNavigationButtons: showNavigationButtons,\r\n totalCount: totalCount,\r\n onKeyDown: onKeyDown,\r\n label: label\r\n })\r\n }\r\n get parentWidth() {\r\n return this.parentRef.current ? getElementWidth(this.parentRef.current) : 0\r\n }\r\n updateAdaptivityProps() {\r\n var currentElementsWidth = getElementsWidth({\r\n parent: this.parentRef.current,\r\n pageSizes: this.pageSizesRef.current,\r\n info: this.infoTextRef.current,\r\n pages: this.pagesRef.current\r\n });\r\n if (this.actualInfoTextVisible !== this.state.infoTextVisible || this.actualIsLargeDisplayMode !== this.state.isLargeDisplayMode) {\r\n return\r\n }\r\n var isEmpty = !isDefined(this.elementsWidth);\r\n if (isEmpty) {\r\n this.elementsWidth = {}\r\n }\r\n if (isEmpty || this.state.isLargeDisplayMode) {\r\n this.elementsWidth.pageSizes = currentElementsWidth.pageSizes;\r\n this.elementsWidth.pages = currentElementsWidth.pages\r\n }\r\n if (isEmpty || this.state.infoTextVisible) {\r\n this.elementsWidth.info = currentElementsWidth.info\r\n }\r\n this.actualIsLargeDisplayMode = calculateLargeDisplayMode(_extends({\r\n parent: currentElementsWidth.parent\r\n }, {\r\n pageSizes: this.elementsWidth.pageSizes,\r\n pages: this.elementsWidth.pages\r\n }));\r\n this.actualInfoTextVisible = calculateInfoTextVisible(_extends({}, currentElementsWidth, {\r\n info: this.elementsWidth.info\r\n }));\r\n this.setState(__state_argument => ({\r\n infoTextVisible: this.actualInfoTextVisible\r\n }));\r\n this.setState(__state_argument => ({\r\n isLargeDisplayMode: this.actualIsLargeDisplayMode\r\n }))\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n contentTemplate: getTemplate(props.contentTemplate)\r\n }),\r\n infoTextVisible: this.state.infoTextVisible,\r\n isLargeDisplayMode: this.state.isLargeDisplayMode,\r\n parentRef: this.parentRef,\r\n pageSizesRef: this.pageSizesRef,\r\n infoTextRef: this.infoTextRef,\r\n pagesRef: this.pagesRef,\r\n contentAttributes: this.contentAttributes,\r\n parentWidth: this.parentWidth,\r\n updateAdaptivityProps: this.updateAdaptivityProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nResizableContainer.defaultProps = ResizableContainerProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/base_pager_props.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport messageLocalization from \"../../../../localization/message\";\r\nexport var BasePagerProps = {\r\n gridCompatibility: true,\r\n showInfo: false,\r\n displayMode: \"adaptive\",\r\n maxPagesCount: 10,\r\n pageCount: 10,\r\n visible: true,\r\n hasKnownLastPage: true,\r\n pagesNavigatorVisible: \"auto\",\r\n showPageSizes: true,\r\n pageSizes: Object.freeze([5, 10]),\r\n showNavigationButtons: false,\r\n totalCount: 0,\r\n get label() {\r\n return messageLocalization.format(\"dxPager-ariaLabel\")\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/pager_props.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n BasePagerProps\r\n} from \"./base_pager_props\";\r\nexport var PagerProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BasePagerProps), Object.getOwnPropertyDescriptors({\r\n defaultPageSize: 5,\r\n pageSizeChange: () => {},\r\n defaultPageIndex: 1,\r\n pageIndexChange: () => {}\r\n})));\r\nexport var InternalPagerProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(BasePagerProps), Object.getOwnPropertyDescriptors({\r\n pageSize: 5,\r\n pageIndex: 1\r\n})));\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/info.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"infoText\", \"pageCount\", \"pageIndex\", \"rootElementRef\", \"totalCount\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n format\r\n} from \"../../../core/utils/string\";\r\nimport messageLocalization from \"../../../localization/message\";\r\nimport {\r\n InternalPagerProps\r\n} from \"./common/pager_props\";\r\nexport var PAGER_INFO_CLASS = \"dx-info\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n rootElementRef: rootElementRef\r\n },\r\n text: text\r\n } = _ref;\r\n return createVNode(1, \"div\", PAGER_INFO_CLASS, text, 0, null, null, rootElementRef)\r\n};\r\nexport var InfoTextProps = {};\r\nvar InfoTextPropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n },\r\n get totalCount() {\r\n return InternalPagerProps.totalCount\r\n }\r\n};\r\nexport class InfoText extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get infoText() {\r\n var _this$props$infoText;\r\n return (null !== (_this$props$infoText = this.props.infoText) && void 0 !== _this$props$infoText ? _this$props$infoText : \"\") || messageLocalization.getFormatter(\"dxPager-infoText\")()\r\n }\r\n get text() {\r\n var {\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n totalCount: totalCount\r\n } = this.props;\r\n return format(this.infoText, (pageIndex + 1).toString(), pageCount.toString(), totalCount.toString())\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n infoText: this.infoText,\r\n text: this.text,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nInfoText.defaultProps = InfoTextPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/keyboard_action_context.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n createContext\r\n} from \"@devextreme/runtime/inferno\";\r\nexport var KeyboardActionContext = createContext(void 0);\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/light_button.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"children\", \"className\", \"label\", \"onClick\", \"selected\", \"tabIndex\"];\r\nimport {\r\n createVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n subscribeToClickEvent\r\n} from \"../../../utils/subscribe_to_event\";\r\nimport {\r\n KeyboardActionContext\r\n} from \"./keyboard_action_context\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n children: children,\r\n className: className,\r\n label: label,\r\n selected: selected,\r\n tabIndex: tabIndex\r\n },\r\n widgetRef: widgetRef\r\n } = _ref;\r\n return createVNode(1, \"div\", className, children, 0, {\r\n tabIndex: tabIndex,\r\n role: \"button\",\r\n \"aria-label\": label,\r\n \"aria-current\": selected ? \"page\" : void 0\r\n }, null, widgetRef)\r\n};\r\nexport var LightButtonProps = {\r\n className: \"\",\r\n label: \"\",\r\n tabIndex: 0,\r\n selected: false\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class LightButton extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRef = infernoCreateRef();\r\n this.keyboardEffect = this.keyboardEffect.bind(this);\r\n this.subscribeToClick = this.subscribeToClick.bind(this)\r\n }\r\n get keyboardContext() {\r\n if (\"KeyboardActionContext\" in this.context) {\r\n return this.context.KeyboardActionContext\r\n }\r\n return KeyboardActionContext\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.keyboardEffect, [this.keyboardContext, this.props.onClick]), new InfernoEffect(this.subscribeToClick, [this.props.onClick])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$, _this$_effects$2;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.keyboardContext, this.props.onClick]);\r\n null === (_this$_effects$2 = this._effects[1]) || void 0 === _this$_effects$2 ? void 0 : _this$_effects$2.update([this.props.onClick])\r\n }\r\n keyboardEffect() {\r\n return this.keyboardContext.registerKeyboardAction(this.widgetRef.current, this.props.onClick)\r\n }\r\n subscribeToClick() {\r\n return subscribeToClickEvent(this.widgetRef.current, this.props.onClick)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRef: this.widgetRef,\r\n keyboardContext: this.keyboardContext,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nLightButton.defaultProps = LightButtonProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/common/consts.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var PAGER_CLASS = \"dx-pager\";\r\nexport var LIGHT_MODE_CLASS = \"dx-light-mode\";\r\nexport var PAGER_PAGES_CLASS = \"dx-pages\";\r\nexport var PAGER_PAGE_INDEXES_CLASS = \"dx-page-indexes\";\r\nexport var PAGER_PAGE_CLASS = \"dx-page\";\r\nexport var PAGER_SELECTION_CLASS = \"dx-selection\";\r\nexport var PAGER_PAGE_SIZE_CLASS = \"dx-page-size\";\r\nexport var PAGER_PAGE_SIZES_CLASS = \"dx-page-sizes\";\r\nexport var PAGER_SELECTED_PAGE_SIZE_CLASS = \"\".concat(PAGER_PAGE_SIZE_CLASS, \" \").concat(PAGER_SELECTION_CLASS);\r\nexport var FIRST_CHILD_CLASS = \"dx-first-child\";\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/page.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"className\", \"index\", \"onClick\", \"selected\"];\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n PAGER_PAGE_CLASS,\r\n PAGER_SELECTION_CLASS\r\n} from \"../common/consts\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n className: className,\r\n label: label,\r\n props: {\r\n onClick: onClick,\r\n selected: selected\r\n },\r\n value: value\r\n } = _ref;\r\n return createComponentVNode(2, LightButton, {\r\n className: className,\r\n label: label,\r\n onClick: onClick,\r\n selected: selected,\r\n children: value\r\n })\r\n};\r\nexport var PageProps = {\r\n index: 0,\r\n selected: false,\r\n className: PAGER_PAGE_CLASS\r\n};\r\nexport class Page extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {}\r\n }\r\n get label() {\r\n return format(messageLocalization.getFormatter(\"dxPager-page\"), this.value)\r\n }\r\n get value() {\r\n return this.props.index + 1\r\n }\r\n get className() {\r\n var {\r\n selected: selected\r\n } = this.props;\r\n return combineClasses({\r\n [\"\".concat(this.props.className)]: !!this.props.className,\r\n [PAGER_SELECTION_CLASS]: !!selected\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n label: this.label,\r\n value: this.value,\r\n className: this.className,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPage.defaultProps = PageProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/large.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"pageIndexes\"],\r\n _excluded2 = [\"maxPagesCount\", \"pageCount\", \"pageIndex\", \"pageIndexChange\"];\r\nimport {\r\n createVNode,\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Page\r\n} from \"./page\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../../common/config_context\";\r\nvar PAGER_PAGE_SEPARATOR_CLASS = \"dx-separator\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pages: pages\r\n } = _ref;\r\n var PagesMarkup = pages.map(_ref2 => {\r\n var {\r\n key: key,\r\n pageProps: pageProps\r\n } = _ref2;\r\n return pageProps ? createComponentVNode(2, Page, {\r\n index: pageProps.index,\r\n selected: pageProps.selected,\r\n onClick: pageProps.onClick\r\n }, key) : createVNode(1, \"div\", PAGER_PAGE_SEPARATOR_CLASS, \". . .\", 16, null, key)\r\n });\r\n return createFragment(PagesMarkup, 0)\r\n};\r\nvar PAGES_LIMITER = 4;\r\n\r\nfunction getDelimiterType(startIndex, slidingWindowSize, pageCount) {\r\n if (1 === startIndex) {\r\n return \"high\"\r\n }\r\n if (startIndex + slidingWindowSize === pageCount - 1) {\r\n return \"low\"\r\n }\r\n return \"both\"\r\n}\r\n\r\nfunction createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter) {\r\n var pageIndexes = [];\r\n var indexesForReuse = [];\r\n switch (delimiter) {\r\n case \"none\":\r\n pageIndexes = [...slidingWindowIndexes];\r\n break;\r\n case \"both\":\r\n pageIndexes = [0, \"low\", ...slidingWindowIndexes, \"high\", pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(1, -1);\r\n break;\r\n case \"high\":\r\n pageIndexes = [0, ...slidingWindowIndexes, \"high\", pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(0, -1);\r\n break;\r\n case \"low\":\r\n pageIndexes = [0, \"low\", ...slidingWindowIndexes, pageCount - 1];\r\n indexesForReuse = slidingWindowIndexes.slice(1)\r\n }\r\n return {\r\n slidingWindowIndexes: slidingWindowIndexes,\r\n indexesForReuse: indexesForReuse,\r\n pageIndexes: pageIndexes\r\n }\r\n}\r\n\r\nfunction createPageIndexes(startIndex, slidingWindowSize, pageCount, delimiter) {\r\n var slidingWindowIndexes = [];\r\n for (var i = 0; i < slidingWindowSize; i += 1) {\r\n slidingWindowIndexes.push(i + startIndex)\r\n }\r\n return createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter)\r\n}\r\nvar PagesLargePropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get maxPagesCount() {\r\n return InternalPagerProps.maxPagesCount\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n }\r\n};\r\nexport class PagesLarge extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.canReuseSlidingWindow = this.canReuseSlidingWindow.bind(this);\r\n this.generatePageIndexes = this.generatePageIndexes.bind(this);\r\n this.isSlidingWindowMode = this.isSlidingWindowMode.bind(this);\r\n this.onPageClick = this.onPageClick.bind(this)\r\n }\r\n get config() {\r\n if (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\r\n }\r\n get slidingWindowState() {\r\n var slidingWindowState = this.slidingWindowStateHolder;\r\n if (!slidingWindowState) {\r\n return {\r\n indexesForReuse: [],\r\n slidingWindowIndexes: []\r\n }\r\n }\r\n return slidingWindowState\r\n }\r\n canReuseSlidingWindow(currentPageCount, pageIndex) {\r\n var {\r\n indexesForReuse: indexesForReuse\r\n } = this.slidingWindowState;\r\n var lastPageIsFartherThanWindow = indexesForReuse.slice(-1)[0] < currentPageCount - 1;\r\n var pageIndexExistInIndexes = indexesForReuse.includes(pageIndex);\r\n return lastPageIsFartherThanWindow && pageIndexExistInIndexes\r\n }\r\n generatePageIndexes() {\r\n var {\r\n pageCount: pageCount,\r\n pageIndex: pageIndex\r\n } = this.props;\r\n var startIndex = 0;\r\n var {\r\n slidingWindowIndexes: slidingWindowIndexes\r\n } = this.slidingWindowState;\r\n if (pageIndex === slidingWindowIndexes[0]) {\r\n startIndex = pageIndex - 1\r\n } else if (pageIndex === slidingWindowIndexes[slidingWindowIndexes.length - 1]) {\r\n startIndex = pageIndex + 2 - PAGES_LIMITER\r\n } else if (pageIndex < PAGES_LIMITER) {\r\n startIndex = 1\r\n } else if (pageIndex >= pageCount - PAGES_LIMITER) {\r\n startIndex = pageCount - PAGES_LIMITER - 1\r\n } else {\r\n startIndex = pageIndex - 1\r\n }\r\n var slidingWindowSize = PAGES_LIMITER;\r\n var delimiter = getDelimiterType(startIndex, slidingWindowSize, pageCount);\r\n var _createPageIndexes = createPageIndexes(startIndex, slidingWindowSize, pageCount, delimiter),\r\n {\r\n pageIndexes: pageIndexes\r\n } = _createPageIndexes,\r\n slidingWindowState = _objectWithoutPropertiesLoose(_createPageIndexes, _excluded);\r\n this.slidingWindowStateHolder = slidingWindowState;\r\n return pageIndexes\r\n }\r\n isSlidingWindowMode() {\r\n var {\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount\r\n } = this.props;\r\n return pageCount <= PAGES_LIMITER || pageCount <= maxPagesCount\r\n }\r\n onPageClick(pageIndex) {\r\n this.props.pageIndexChange(pageIndex)\r\n }\r\n get pageIndexes() {\r\n var {\r\n pageCount: pageCount\r\n } = this.props;\r\n if (this.isSlidingWindowMode()) {\r\n return createPageIndexes(0, pageCount, pageCount, \"none\").pageIndexes\r\n }\r\n if (this.canReuseSlidingWindow(pageCount, this.props.pageIndex)) {\r\n var {\r\n slidingWindowIndexes: slidingWindowIndexes\r\n } = this.slidingWindowState;\r\n var delimiter = getDelimiterType(slidingWindowIndexes[0], PAGES_LIMITER, pageCount);\r\n return createPageIndexesBySlidingWindowIndexes(slidingWindowIndexes, pageCount, delimiter).pageIndexes\r\n }\r\n return this.generatePageIndexes()\r\n }\r\n get pages() {\r\n var _this$config;\r\n var {\r\n pageIndex: pageIndex\r\n } = this.props;\r\n var createPage = index => {\r\n var pagerProps = \"low\" === index || \"high\" === index ? null : {\r\n index: index,\r\n onClick: () => this.onPageClick(index),\r\n selected: pageIndex === index\r\n };\r\n return {\r\n key: index.toString(),\r\n pageProps: pagerProps\r\n }\r\n };\r\n var rtlPageIndexes = null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled ? [...this.pageIndexes].reverse() : this.pageIndexes;\r\n return rtlPageIndexes.map(index => createPage(index))\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded2);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n pageIndexes: this.pageIndexes,\r\n pages: this.pages,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagesLarge.defaultProps = PagesLargePropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor_state_props.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../../../core/devices\";\r\nexport var EditorStateProps = {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n get focusStateEnabled() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/common/editor_label_props.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isMaterial,\r\n current\r\n} from \"../../../../ui/themes\";\r\nexport var EditorLabelProps = {\r\n label: \"\",\r\n get labelMode() {\r\n return isMaterial(current()) ? \"floating\" : \"static\"\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/number_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"className\", \"defaultValue\", \"disabled\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"invalidValueMessage\", \"isValid\", \"label\", \"labelMode\", \"max\", \"min\", \"mode\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"readOnly\", \"rtlEnabled\", \"showSpinButtons\", \"step\", \"tabIndex\", \"useLargeSpinButtons\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"visible\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacyNumberBox from \"../../../ui/number_box\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../common/dom_component_wrapper\";\r\nimport {\r\n EditorProps\r\n} from \"./common/editor\";\r\nimport {\r\n EditorStateProps\r\n} from \"./common/editor_state_props\";\r\nimport {\r\n EditorLabelProps\r\n} from \"./common/editor_label_props\";\r\nvar DEFAULT_VALUE = 0;\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacyNumberBox,\r\n componentProps: componentProps,\r\n templateNames: []\r\n }, restAttributes)))\r\n};\r\nexport var NumberBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n defaultValue: DEFAULT_VALUE,\r\n isReactComponentWrapper: true\r\n})));\r\nexport var NumberBoxPropsType = {\r\n get defaultValue() {\r\n return NumberBoxProps.defaultValue\r\n },\r\n get readOnly() {\r\n return NumberBoxProps.readOnly\r\n },\r\n get name() {\r\n return NumberBoxProps.name\r\n },\r\n get validationError() {\r\n return NumberBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return NumberBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return NumberBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return NumberBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return NumberBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return NumberBoxProps.isValid\r\n },\r\n get className() {\r\n return NumberBoxProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorStateProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return NumberBoxProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorStateProps.focusStateEnabled\r\n },\r\n get hoverStateEnabled() {\r\n return EditorStateProps.hoverStateEnabled\r\n },\r\n get tabIndex() {\r\n return NumberBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return NumberBoxProps.visible\r\n },\r\n get label() {\r\n return EditorLabelProps.label\r\n },\r\n get labelMode() {\r\n return EditorLabelProps.labelMode\r\n },\r\n isReactComponentWrapper: true\r\n};\r\nexport class NumberBox extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n }\r\n }\r\n get componentProps() {\r\n return _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nNumberBox.defaultProps = NumberBoxPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/utils/calculate_values_fitted_width.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var oneDigitWidth = 10;\r\nexport function calculateValuesFittedWidth(minWidth, values) {\r\n return minWidth + oneDigitWidth * Math.max(...values).toString().length\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/small.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pagesCountText\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n Page\r\n} from \"./page\";\r\nimport {\r\n PAGER_INFO_CLASS\r\n} from \"../info\";\r\nimport {\r\n NumberBox\r\n} from \"../../editors/number_box\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n calculateValuesFittedWidth\r\n} from \"../utils/calculate_values_fitted_width\";\r\nimport {\r\n getElementMinWidth\r\n} from \"../utils/get_element_width\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nvar PAGER_INFO_TEXT_CLASS = \"\".concat(PAGER_INFO_CLASS, \" dx-info-text\");\r\nvar PAGER_PAGE_INDEX_CLASS = \"dx-page-index\";\r\nvar LIGHT_PAGES_CLASS = \"dx-light-pages\";\r\nvar PAGER_PAGES_COUNT_CLASS = \"dx-pages-count\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pageIndexRef: pageIndexRef,\r\n pagesCountText: pagesCountText,\r\n props: {\r\n pageCount: pageCount\r\n },\r\n selectLastPageIndex: selectLastPageIndex,\r\n value: value,\r\n valueChange: valueChange,\r\n width: width\r\n } = _ref;\r\n return createVNode(1, \"div\", LIGHT_PAGES_CLASS, [createComponentVNode(2, NumberBox, {\r\n className: PAGER_PAGE_INDEX_CLASS,\r\n min: 1,\r\n max: pageCount,\r\n width: width,\r\n value: value,\r\n valueChange: valueChange\r\n }), createVNode(1, \"span\", PAGER_INFO_TEXT_CLASS, pagesCountText, 0), createComponentVNode(2, Page, {\r\n className: PAGER_PAGES_COUNT_CLASS,\r\n selected: false,\r\n index: pageCount - 1,\r\n onClick: selectLastPageIndex\r\n })], 4, null, null, pageIndexRef)\r\n};\r\nvar PagerSmallProps = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n }\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PagesSmall extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.pageIndexRef = infernoCreateRef();\r\n this.state = {\r\n minWidth: 10\r\n };\r\n this.updateWidth = this.updateWidth.bind(this);\r\n this.selectLastPageIndex = this.selectLastPageIndex.bind(this);\r\n this.valueChange = this.valueChange.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateWidth, [this.state.minWidth])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.state.minWidth])\r\n }\r\n updateWidth() {\r\n var _this$pageIndexRef$cu;\r\n var el = null === (_this$pageIndexRef$cu = this.pageIndexRef.current) || void 0 === _this$pageIndexRef$cu ? void 0 : _this$pageIndexRef$cu.querySelector(\".\".concat(PAGER_PAGE_INDEX_CLASS));\r\n this.setState(__state_argument => ({\r\n minWidth: el && getElementMinWidth(el) || __state_argument.minWidth\r\n }))\r\n }\r\n get value() {\r\n return this.props.pageIndex + 1\r\n }\r\n get width() {\r\n var {\r\n pageCount: pageCount\r\n } = this.props;\r\n return calculateValuesFittedWidth(this.state.minWidth, [pageCount])\r\n }\r\n get pagesCountText() {\r\n var _this$props$pagesCoun;\r\n return (null !== (_this$props$pagesCoun = this.props.pagesCountText) && void 0 !== _this$props$pagesCoun ? _this$props$pagesCoun : \"\") || messageLocalization.getFormatter(\"dxPager-pagesCountText\")()\r\n }\r\n selectLastPageIndex() {\r\n this.props.pageIndexChange(this.props.pageCount - 1)\r\n }\r\n valueChange(value) {\r\n this.props.pageIndexChange(value - 1)\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n pageIndexRef: this.pageIndexRef,\r\n value: this.value,\r\n width: this.width,\r\n pagesCountText: this.pagesCountText,\r\n selectLastPageIndex: this.selectLastPageIndex,\r\n valueChange: this.valueChange,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagesSmall.defaultProps = PagerSmallProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pages/page_index_selector.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"hasKnownLastPage\", \"isLargeDisplayMode\", \"maxPagesCount\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pagesCountText\", \"showNavigationButtons\", \"totalCount\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n PagesLarge\r\n} from \"./large\";\r\nimport {\r\n PagesSmall\r\n} from \"./small\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n ConfigContext\r\n} from \"../../../common/config_context\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nvar PAGER_NAVIGATE_BUTTON = \"dx-navigate-button\";\r\nvar PAGER_PREV_BUTTON_CLASS = \"dx-prev-button\";\r\nvar PAGER_NEXT_BUTTON_CLASS = \"dx-next-button\";\r\nexport var PAGER_BUTTON_DISABLE_CLASS = \"dx-button-disable\";\r\nvar getNextButtonLabel = () => messageLocalization.getFormatter(\"dxPager-nextPage\")();\r\nvar getPrevButtonLabel = () => messageLocalization.getFormatter(\"dxPager-prevPage\")();\r\nvar classNames = {\r\n nextEnabledClass: \"\".concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_NEXT_BUTTON_CLASS),\r\n prevEnabledClass: \"\".concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_PREV_BUTTON_CLASS),\r\n nextDisabledClass: \"\".concat(PAGER_BUTTON_DISABLE_CLASS, \" \").concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_NEXT_BUTTON_CLASS),\r\n prevDisabledClass: \"\".concat(PAGER_BUTTON_DISABLE_CLASS, \" \").concat(PAGER_NAVIGATE_BUTTON, \" \").concat(PAGER_PREV_BUTTON_CLASS)\r\n};\r\nvar reverseDirections = {\r\n next: \"prev\",\r\n prev: \"next\"\r\n};\r\nexport var viewFunction = _ref => {\r\n var {\r\n nextButtonProps: nextButtonProps,\r\n pageIndexChange: pageIndexChange,\r\n prevButtonProps: prevButtonProps,\r\n props: {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pagesCountText: pagesCountText\r\n },\r\n renderNextButton: renderNextButton,\r\n renderPrevButton: renderPrevButton\r\n } = _ref;\r\n return createFragment([renderPrevButton && createComponentVNode(2, LightButton, {\r\n label: getPrevButtonLabel(),\r\n className: prevButtonProps.className,\r\n tabIndex: prevButtonProps.tabIndex,\r\n onClick: prevButtonProps.navigate\r\n }), isLargeDisplayMode && createComponentVNode(2, PagesLarge, {\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange\r\n }), !isLargeDisplayMode && createComponentVNode(2, PagesSmall, {\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pagesCountText: pagesCountText\r\n }), renderNextButton && createComponentVNode(2, LightButton, {\r\n label: getNextButtonLabel(),\r\n className: nextButtonProps.className,\r\n tabIndex: nextButtonProps.tabIndex,\r\n onClick: nextButtonProps.navigate\r\n })], 0)\r\n};\r\n\r\nfunction getIncrement(direction) {\r\n return \"next\" === direction ? 1 : -1\r\n}\r\nexport var PageIndexSelectorProps = {\r\n isLargeDisplayMode: true\r\n};\r\nvar PageIndexSelectorPropsType = {\r\n get pageIndex() {\r\n return InternalPagerProps.pageIndex\r\n },\r\n get maxPagesCount() {\r\n return InternalPagerProps.maxPagesCount\r\n },\r\n get pageCount() {\r\n return InternalPagerProps.pageCount\r\n },\r\n get hasKnownLastPage() {\r\n return InternalPagerProps.hasKnownLastPage\r\n },\r\n get showNavigationButtons() {\r\n return InternalPagerProps.showNavigationButtons\r\n },\r\n get totalCount() {\r\n return InternalPagerProps.totalCount\r\n },\r\n get isLargeDisplayMode() {\r\n return PageIndexSelectorProps.isLargeDisplayMode\r\n }\r\n};\r\nexport class PageIndexSelector extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.pageIndexChange = this.pageIndexChange.bind(this);\r\n this.getButtonProps = this.getButtonProps.bind(this);\r\n this.canNavigateToPage = this.canNavigateToPage.bind(this);\r\n this.getNextPageIndex = this.getNextPageIndex.bind(this);\r\n this.canNavigateTo = this.canNavigateTo.bind(this);\r\n this.navigateToPage = this.navigateToPage.bind(this)\r\n }\r\n get config() {\r\n if (\"ConfigContext\" in this.context) {\r\n return this.context.ConfigContext\r\n }\r\n return ConfigContext\r\n }\r\n pageIndexChange(pageIndex) {\r\n if (this.canNavigateToPage(pageIndex)) {\r\n this.props.pageIndexChange(pageIndex)\r\n }\r\n }\r\n getButtonProps(direction) {\r\n var _this$config;\r\n var rtlAwareDirection = null !== (_this$config = this.config) && void 0 !== _this$config && _this$config.rtlEnabled ? reverseDirections[direction] : direction;\r\n var canNavigate = this.canNavigateTo(rtlAwareDirection);\r\n var className = classNames[\"\".concat(direction).concat(canNavigate ? \"Enabled\" : \"Disabled\", \"Class\")];\r\n return {\r\n className: className,\r\n tabIndex: canNavigate ? 0 : -1,\r\n navigate: () => this.navigateToPage(rtlAwareDirection)\r\n }\r\n }\r\n canNavigateToPage(pageIndex) {\r\n if (!this.props.hasKnownLastPage) {\r\n return pageIndex >= 0\r\n }\r\n return pageIndex >= 0 && pageIndex <= this.props.pageCount - 1\r\n }\r\n getNextPageIndex(direction) {\r\n return this.props.pageIndex + getIncrement(direction)\r\n }\r\n canNavigateTo(direction) {\r\n return this.canNavigateToPage(this.getNextPageIndex(direction))\r\n }\r\n navigateToPage(direction) {\r\n this.pageIndexChange(this.getNextPageIndex(direction))\r\n }\r\n get renderPrevButton() {\r\n var {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n showNavigationButtons: showNavigationButtons\r\n } = this.props;\r\n return !isLargeDisplayMode || showNavigationButtons\r\n }\r\n get renderNextButton() {\r\n return this.renderPrevButton || !this.props.hasKnownLastPage\r\n }\r\n get prevButtonProps() {\r\n if (void 0 !== this.__getterCache.prevButtonProps) {\r\n return this.__getterCache.prevButtonProps\r\n }\r\n return this.__getterCache.prevButtonProps = (() => this.getButtonProps(\"prev\"))()\r\n }\r\n get nextButtonProps() {\r\n if (void 0 !== this.__getterCache.nextButtonProps) {\r\n return this.__getterCache.nextButtonProps\r\n }\r\n return this.__getterCache.nextButtonProps = (() => this.getButtonProps(\"next\"))()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.context.ConfigContext !== context.ConfigContext || this.props.hasKnownLastPage !== nextProps.hasKnownLastPage || this.props.pageCount !== nextProps.pageCount || this.props.pageIndex !== nextProps.pageIndex || this.props.pageIndexChange !== nextProps.pageIndexChange) {\r\n this.__getterCache.prevButtonProps = void 0\r\n }\r\n if (this.context.ConfigContext !== context.ConfigContext || this.props.hasKnownLastPage !== nextProps.hasKnownLastPage || this.props.pageCount !== nextProps.pageCount || this.props.pageIndex !== nextProps.pageIndex || this.props.pageIndexChange !== nextProps.pageIndexChange) {\r\n this.__getterCache.nextButtonProps = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n config: this.config,\r\n pageIndexChange: this.pageIndexChange,\r\n renderPrevButton: this.renderPrevButton,\r\n renderNextButton: this.renderNextButton,\r\n prevButtonProps: this.prevButtonProps,\r\n nextButtonProps: this.nextButtonProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageIndexSelector.defaultProps = PageIndexSelectorPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/editors/drop_down_editors/select_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"accessKey\", \"activeStateEnabled\", \"className\", \"dataSource\", \"defaultValue\", \"disabled\", \"displayExpr\", \"focusStateEnabled\", \"height\", \"hint\", \"hoverStateEnabled\", \"isValid\", \"label\", \"labelMode\", \"name\", \"onClick\", \"onFocusIn\", \"onKeyDown\", \"placeholder\", \"readOnly\", \"rtlEnabled\", \"searchEnabled\", \"tabIndex\", \"validationError\", \"validationErrors\", \"validationMessageMode\", \"validationMessagePosition\", \"validationStatus\", \"value\", \"valueChange\", \"valueExpr\", \"visible\", \"width\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport LegacySelectBox from \"../../../../ui/select_box\";\r\nimport {\r\n DomComponentWrapper\r\n} from \"../../common/dom_component_wrapper\";\r\nimport {\r\n EditorProps\r\n} from \"../common/editor\";\r\nimport {\r\n EditorStateProps\r\n} from \"../common/editor_state_props\";\r\nimport {\r\n EditorLabelProps\r\n} from \"../common/editor_label_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n componentProps: componentProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, DomComponentWrapper, _extends({\r\n componentType: LegacySelectBox,\r\n componentProps: componentProps,\r\n templateNames: [\"dropDownButtonTemplate\", \"groupTemplate\", \"itemTemplate\"]\r\n }, restAttributes)))\r\n};\r\nexport var SelectBoxProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(EditorProps), Object.getOwnPropertyDescriptors({\r\n placeholder: \"\",\r\n hoverStateEnabled: true,\r\n searchEnabled: false,\r\n defaultValue: null,\r\n isReactComponentWrapper: true\r\n})));\r\nexport var SelectBoxPropsType = {\r\n get placeholder() {\r\n return SelectBoxProps.placeholder\r\n },\r\n get hoverStateEnabled() {\r\n return EditorStateProps.hoverStateEnabled\r\n },\r\n get searchEnabled() {\r\n return SelectBoxProps.searchEnabled\r\n },\r\n get defaultValue() {\r\n return SelectBoxProps.defaultValue\r\n },\r\n get readOnly() {\r\n return SelectBoxProps.readOnly\r\n },\r\n get name() {\r\n return SelectBoxProps.name\r\n },\r\n get validationError() {\r\n return SelectBoxProps.validationError\r\n },\r\n get validationErrors() {\r\n return SelectBoxProps.validationErrors\r\n },\r\n get validationMessageMode() {\r\n return SelectBoxProps.validationMessageMode\r\n },\r\n get validationMessagePosition() {\r\n return SelectBoxProps.validationMessagePosition\r\n },\r\n get validationStatus() {\r\n return SelectBoxProps.validationStatus\r\n },\r\n get isValid() {\r\n return SelectBoxProps.isValid\r\n },\r\n get className() {\r\n return SelectBoxProps.className\r\n },\r\n get activeStateEnabled() {\r\n return EditorStateProps.activeStateEnabled\r\n },\r\n get disabled() {\r\n return SelectBoxProps.disabled\r\n },\r\n get focusStateEnabled() {\r\n return EditorStateProps.focusStateEnabled\r\n },\r\n get tabIndex() {\r\n return SelectBoxProps.tabIndex\r\n },\r\n get visible() {\r\n return SelectBoxProps.visible\r\n },\r\n get label() {\r\n return EditorLabelProps.label\r\n },\r\n get labelMode() {\r\n return EditorLabelProps.labelMode\r\n },\r\n isReactComponentWrapper: true\r\n};\r\nexport class SelectBox extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n value: void 0 !== this.props.value ? this.props.value : this.props.defaultValue\r\n }\r\n }\r\n get componentProps() {\r\n return _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n })\r\n }\r\n get restAttributes() {\r\n var _this$props$value = _extends({}, this.props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$value, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n value: void 0 !== this.props.value ? this.props.value : this.state.value\r\n }),\r\n componentProps: this.componentProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nSelectBox.defaultProps = SelectBoxPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/small.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"pageSize\", \"pageSizeChange\", \"pageSizes\", \"parentRef\"];\r\nimport {\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n SelectBox\r\n} from \"../../editors/drop_down_editors/select_box\";\r\nimport {\r\n calculateValuesFittedWidth\r\n} from \"../utils/calculate_values_fitted_width\";\r\nimport {\r\n getElementMinWidth\r\n} from \"../utils/get_element_width\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n props: {\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes\r\n },\r\n width: width\r\n } = _ref;\r\n return createComponentVNode(2, SelectBox, {\r\n displayExpr: \"text\",\r\n valueExpr: \"value\",\r\n dataSource: pageSizes,\r\n value: pageSize,\r\n valueChange: pageSizeChange,\r\n width: width\r\n })\r\n};\r\nexport var PageSizeSmallProps = {};\r\nvar PageSizeSmallPropsType = {\r\n get pageSize() {\r\n return InternalPagerProps.pageSize\r\n }\r\n};\r\nexport class PageSizeSmall extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {\r\n minWidth: 10\r\n };\r\n this.updateWidth = this.updateWidth.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.updateWidth, [this.props, this.state.minWidth, this.props.pageSize, this.props.pageSizeChange, this.props.pageSizes])]\r\n }\r\n updateEffects() {\r\n var _this$_effects$;\r\n null === (_this$_effects$ = this._effects[0]) || void 0 === _this$_effects$ ? void 0 : _this$_effects$.update([this.props, this.state.minWidth, this.props.pageSize, this.props.pageSizeChange, this.props.pageSizes])\r\n }\r\n updateWidth() {\r\n this.setState(__state_argument => ({\r\n minWidth: getElementMinWidth(this.props.parentRef.current) || __state_argument.minWidth\r\n }))\r\n }\r\n get width() {\r\n return calculateValuesFittedWidth(this.state.minWidth, this.props.pageSizes.map(p => p.value))\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n width: this.width,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeSmall.defaultProps = PageSizeSmallPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/large.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"pageSize\", \"pageSizeChange\", \"pageSizes\"];\r\nimport {\r\n createFragment,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n Fragment\r\n} from \"inferno\";\r\nimport {\r\n BaseInfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n combineClasses\r\n} from \"../../../utils/combine_classes\";\r\nimport {\r\n LightButton\r\n} from \"../common/light_button\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport {\r\n PAGER_SELECTED_PAGE_SIZE_CLASS,\r\n PAGER_PAGE_SIZE_CLASS,\r\n FIRST_CHILD_CLASS\r\n} from \"../common/consts\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n format\r\n} from \"../../../../core/utils/string\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pageSizesText: pageSizesText\r\n } = _ref;\r\n return createFragment(pageSizesText.map(_ref2 => {\r\n var {\r\n className: className,\r\n click: click,\r\n label: label,\r\n text: text\r\n } = _ref2;\r\n return createComponentVNode(2, LightButton, {\r\n className: className,\r\n label: label,\r\n onClick: click,\r\n children: text\r\n }, text)\r\n }), 0)\r\n};\r\nexport var PageSizeLargeProps = {};\r\nvar PageSizeLargePropsType = {\r\n get pageSize() {\r\n return InternalPagerProps.pageSize\r\n }\r\n};\r\nexport class PageSizeLarge extends BaseInfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.__getterCache = {};\r\n this.onPageSizeChange = this.onPageSizeChange.bind(this)\r\n }\r\n get pageSizesText() {\r\n if (void 0 !== this.__getterCache.pageSizesText) {\r\n return this.__getterCache.pageSizesText\r\n }\r\n return this.__getterCache.pageSizesText = (() => {\r\n var {\r\n pageSize: pageSize,\r\n pageSizes: pageSizes\r\n } = this.props;\r\n return pageSizes.map((_ref3, index) => {\r\n var {\r\n text: text,\r\n value: processedPageSize\r\n } = _ref3;\r\n var selected = processedPageSize === pageSize;\r\n var className = combineClasses({\r\n [selected ? PAGER_SELECTED_PAGE_SIZE_CLASS : PAGER_PAGE_SIZE_CLASS]: true,\r\n [FIRST_CHILD_CLASS]: 0 === index\r\n });\r\n return {\r\n className: className,\r\n click: this.onPageSizeChange(processedPageSize),\r\n label: format(messageLocalization.getFormatter(\"dxPager-pageSize\"), processedPageSize || messageLocalization.getFormatter(\"dxPager-pageSizesAllText\")),\r\n text: text\r\n }\r\n })\r\n })()\r\n }\r\n onPageSizeChange(processedPageSize) {\r\n return () => {\r\n this.props.pageSizeChange(processedPageSize);\r\n return this.props.pageSize\r\n }\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n if (this.props.pageSize !== nextProps.pageSize || this.props.pageSizes !== nextProps.pageSizes || this.props.pageSizeChange !== nextProps.pageSizeChange) {\r\n this.__getterCache.pageSizesText = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n pageSizesText: this.pageSizesText,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeLarge.defaultProps = PageSizeLargePropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/page_size/selector.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"isLargeDisplayMode\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"rootElementRef\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n PageSizeSmall\r\n} from \"./small\";\r\nimport {\r\n PageSizeLarge\r\n} from \"./large\";\r\nimport {\r\n InternalPagerProps\r\n} from \"../common/pager_props\";\r\nimport messageLocalization from \"../../../../localization/message\";\r\nimport {\r\n PAGER_PAGE_SIZES_CLASS\r\n} from \"../common/consts\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n htmlRef: htmlRef,\r\n normalizedPageSizes: normalizedPageSizes,\r\n props: {\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n }\r\n } = _ref;\r\n return createVNode(1, \"div\", PAGER_PAGE_SIZES_CLASS, [isLargeDisplayMode && createComponentVNode(2, PageSizeLarge, {\r\n pageSizes: normalizedPageSizes,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n }), !isLargeDisplayMode && createComponentVNode(2, PageSizeSmall, {\r\n parentRef: htmlRef,\r\n pageSizes: normalizedPageSizes,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange\r\n })], 0, null, null, htmlRef)\r\n};\r\n\r\nfunction getAllText() {\r\n return messageLocalization.getFormatter(\"dxPager-pageSizesAllText\")()\r\n}\r\nvar PageSizeSelectorProps = {\r\n isLargeDisplayMode: true\r\n};\r\nvar PageSizeSelectorPropsType = {\r\n get pageSize() {\r\n return InternalPagerProps.pageSize\r\n },\r\n get pageSizes() {\r\n return InternalPagerProps.pageSizes\r\n },\r\n get isLargeDisplayMode() {\r\n return PageSizeSelectorProps.isLargeDisplayMode\r\n }\r\n};\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PageSizeSelector extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.htmlRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.setRootElementRef = this.setRootElementRef.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, [])]\r\n }\r\n setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.htmlRef.current\r\n }\r\n }\r\n get normalizedPageSizes() {\r\n if (void 0 !== this.__getterCache.normalizedPageSizes) {\r\n return this.__getterCache.normalizedPageSizes\r\n }\r\n return this.__getterCache.normalizedPageSizes = (() => {\r\n var {\r\n pageSizes: pageSizes\r\n } = this.props;\r\n return pageSizes.map(p => \"all\" === p || 0 === p ? {\r\n text: getAllText(),\r\n value: 0\r\n } : {\r\n text: String(p),\r\n value: p\r\n })\r\n })()\r\n }\r\n get restAttributes() {\r\n var _this$props = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.pageSizes !== nextProps.pageSizes) {\r\n this.__getterCache.normalizedPageSizes = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n htmlRef: this.htmlRef,\r\n normalizedPageSizes: this.normalizedPageSizes,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPageSizeSelector.defaultProps = PageSizeSelectorPropsType;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/content.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"displayMode\", \"gridCompatibility\", \"hasKnownLastPage\", \"infoText\", \"infoTextRef\", \"infoTextVisible\", \"isLargeDisplayMode\", \"label\", \"lightModeEnabled\", \"maxPagesCount\", \"onKeyDown\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"pageSizesRef\", \"pagesCountText\", \"pagesNavigatorVisible\", \"pagesRef\", \"rootElementRef\", \"rtlEnabled\", \"showInfo\", \"showNavigationButtons\", \"showPageSizes\", \"totalCount\", \"visible\"];\r\nimport {\r\n createVNode,\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoEffect,\r\n InfernoComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n normalizeStyles\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n InfoText\r\n} from \"./info\";\r\nimport {\r\n PageIndexSelector\r\n} from \"./pages/page_index_selector\";\r\nimport {\r\n PageSizeSelector\r\n} from \"./page_size/selector\";\r\nimport {\r\n PAGER_PAGES_CLASS,\r\n PAGER_PAGE_INDEXES_CLASS,\r\n LIGHT_MODE_CLASS,\r\n PAGER_CLASS\r\n} from \"./common/consts\";\r\nimport {\r\n InternalPagerProps\r\n} from \"./common/pager_props\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nimport {\r\n Widget\r\n} from \"../common/widget\";\r\nimport {\r\n registerKeyboardAction as _registerKeyboardAction\r\n} from \"../../../ui/shared/accessibility\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n aria: aria,\r\n classes: classes,\r\n infoVisible: infoVisible,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageIndexSelectorVisible: pageIndexSelectorVisible,\r\n pagesContainerVisibility: pagesContainerVisibility,\r\n pagesContainerVisible: pagesContainerVisible,\r\n props: {\r\n hasKnownLastPage: hasKnownLastPage,\r\n infoText: infoText,\r\n infoTextRef: infoTextRef,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes,\r\n pageSizesRef: pageSizesRef,\r\n pagesCountText: pagesCountText,\r\n pagesRef: pagesRef,\r\n rtlEnabled: rtlEnabled,\r\n showNavigationButtons: showNavigationButtons,\r\n showPageSizes: showPageSizes,\r\n totalCount: totalCount,\r\n visible: visible\r\n },\r\n restAttributes: restAttributes,\r\n widgetRootElementRef: widgetRootElementRef\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, Widget, _extends({\r\n rootElementRef: widgetRootElementRef,\r\n rtlEnabled: rtlEnabled,\r\n classes: classes,\r\n visible: visible,\r\n aria: aria\r\n }, restAttributes, {\r\n children: [showPageSizes && createComponentVNode(2, PageSizeSelector, {\r\n rootElementRef: pageSizesRef,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n pageSize: pageSize,\r\n pageSizeChange: pageSizeChange,\r\n pageSizes: pageSizes\r\n }), pagesContainerVisible && createVNode(1, \"div\", PAGER_PAGES_CLASS, [infoVisible && createComponentVNode(2, InfoText, {\r\n rootElementRef: infoTextRef,\r\n infoText: infoText,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n totalCount: totalCount\r\n }), pageIndexSelectorVisible && createVNode(1, \"div\", PAGER_PAGE_INDEXES_CLASS, createComponentVNode(2, PageIndexSelector, {\r\n hasKnownLastPage: hasKnownLastPage,\r\n isLargeDisplayMode: isLargeDisplayMode,\r\n maxPagesCount: maxPagesCount,\r\n pageCount: pageCount,\r\n pageIndex: pageIndex,\r\n pageIndexChange: pageIndexChange,\r\n pagesCountText: pagesCountText,\r\n showNavigationButtons: showNavigationButtons,\r\n totalCount: totalCount\r\n }), 2, null, null, pagesRef)], 0, {\r\n style: normalizeStyles({\r\n visibility: pagesContainerVisibility\r\n })\r\n })]\r\n })))\r\n};\r\nexport var PagerContentProps = Object.create(Object.prototype, _extends(Object.getOwnPropertyDescriptors(InternalPagerProps), Object.getOwnPropertyDescriptors({\r\n infoTextVisible: true,\r\n isLargeDisplayMode: true\r\n})));\r\nimport {\r\n createRef as infernoCreateRef\r\n} from \"inferno\";\r\nexport class PagerContent extends InfernoComponent {\r\n constructor(props) {\r\n super(props);\r\n this.state = {};\r\n this.widgetRootElementRef = infernoCreateRef();\r\n this.__getterCache = {};\r\n this.setRootElementRef = this.setRootElementRef.bind(this);\r\n this.createFakeInstance = this.createFakeInstance.bind(this)\r\n }\r\n createEffects() {\r\n return [new InfernoEffect(this.setRootElementRef, [])]\r\n }\r\n getChildContext() {\r\n return _extends({}, this.context, {\r\n KeyboardActionContext: this.keyboardAction\r\n })\r\n }\r\n setRootElementRef() {\r\n var {\r\n rootElementRef: rootElementRef\r\n } = this.props;\r\n if (rootElementRef) {\r\n rootElementRef.current = this.widgetRootElementRef.current\r\n }\r\n }\r\n createFakeInstance() {\r\n return {\r\n option: () => false,\r\n element: () => this.widgetRootElementRef.current,\r\n _createActionByOption: () => e => {\r\n var _this$props$onKeyDown, _this$props;\r\n null === (_this$props$onKeyDown = (_this$props = this.props).onKeyDown) || void 0 === _this$props$onKeyDown ? void 0 : _this$props$onKeyDown.call(_this$props, e)\r\n }\r\n }\r\n }\r\n get keyboardAction() {\r\n if (void 0 !== this.__getterCache.keyboardAction) {\r\n return this.__getterCache.keyboardAction\r\n }\r\n return this.__getterCache.keyboardAction = (() => ({\r\n registerKeyboardAction: (element, action) => {\r\n var fakePagerInstance = this.createFakeInstance();\r\n return _registerKeyboardAction(\"pager\", fakePagerInstance, element, void 0, action)\r\n }\r\n }))()\r\n }\r\n get infoVisible() {\r\n var {\r\n infoTextVisible: infoTextVisible,\r\n showInfo: showInfo\r\n } = this.props;\r\n return showInfo && infoTextVisible\r\n }\r\n get pageIndexSelectorVisible() {\r\n return 0 !== this.props.pageSize\r\n }\r\n get normalizedDisplayMode() {\r\n var {\r\n displayMode: displayMode,\r\n lightModeEnabled: lightModeEnabled\r\n } = this.props;\r\n if (\"adaptive\" === displayMode && void 0 !== lightModeEnabled) {\r\n return lightModeEnabled ? \"compact\" : \"full\"\r\n }\r\n return displayMode\r\n }\r\n get pagesContainerVisible() {\r\n return !!this.props.pagesNavigatorVisible && this.props.pageCount > 0\r\n }\r\n get pagesContainerVisibility() {\r\n if (\"auto\" === this.props.pagesNavigatorVisible && 1 === this.props.pageCount && this.props.hasKnownLastPage) {\r\n return \"hidden\"\r\n }\r\n return\r\n }\r\n get isLargeDisplayMode() {\r\n var displayMode = this.normalizedDisplayMode;\r\n var result = false;\r\n if (\"adaptive\" === displayMode) {\r\n result = this.props.isLargeDisplayMode\r\n } else {\r\n result = \"full\" === displayMode\r\n }\r\n return result\r\n }\r\n get classes() {\r\n var classesMap = {\r\n [\"\".concat(this.props.className)]: !!this.props.className,\r\n [PAGER_CLASS]: true,\r\n [LIGHT_MODE_CLASS]: !this.isLargeDisplayMode\r\n };\r\n return combineClasses(classesMap)\r\n }\r\n get aria() {\r\n return {\r\n role: \"navigation\",\r\n label: this.props.label\r\n }\r\n }\r\n get restAttributes() {\r\n var _this$props2 = this.props,\r\n restProps = _objectWithoutPropertiesLoose(_this$props2, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props.onKeyDown !== nextProps.onKeyDown) {\r\n this.__getterCache.keyboardAction = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props),\r\n widgetRootElementRef: this.widgetRootElementRef,\r\n keyboardAction: this.keyboardAction,\r\n infoVisible: this.infoVisible,\r\n pageIndexSelectorVisible: this.pageIndexSelectorVisible,\r\n pagesContainerVisible: this.pagesContainerVisible,\r\n pagesContainerVisibility: this.pagesContainerVisibility,\r\n isLargeDisplayMode: this.isLargeDisplayMode,\r\n classes: this.classes,\r\n aria: this.aria,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPagerContent.defaultProps = PagerContentProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pager.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nvar _excluded = [\"className\", \"defaultPageIndex\", \"defaultPageSize\", \"displayMode\", \"gridCompatibility\", \"hasKnownLastPage\", \"infoText\", \"label\", \"lightModeEnabled\", \"maxPagesCount\", \"onKeyDown\", \"pageCount\", \"pageIndex\", \"pageIndexChange\", \"pageSize\", \"pageSizeChange\", \"pageSizes\", \"pagesCountText\", \"pagesNavigatorVisible\", \"rtlEnabled\", \"showInfo\", \"showNavigationButtons\", \"showPageSizes\", \"totalCount\", \"visible\"];\r\nimport {\r\n createComponentVNode,\r\n normalizeProps\r\n} from \"inferno\";\r\nimport {\r\n InfernoWrapperComponent\r\n} from \"@devextreme/runtime/inferno\";\r\nimport {\r\n ResizableContainer\r\n} from \"./resizable_container\";\r\nimport {\r\n PagerProps\r\n} from \"./common/pager_props\";\r\nimport {\r\n PagerContent\r\n} from \"./content\";\r\nimport {\r\n combineClasses\r\n} from \"../../utils/combine_classes\";\r\nexport var viewFunction = _ref => {\r\n var {\r\n pagerProps: pagerProps,\r\n restAttributes: restAttributes\r\n } = _ref;\r\n return normalizeProps(createComponentVNode(2, ResizableContainer, _extends({\r\n contentTemplate: PagerContent,\r\n pagerProps: pagerProps\r\n }, restAttributes)))\r\n};\r\nimport {\r\n createReRenderEffect\r\n} from \"@devextreme/runtime/inferno\";\r\nexport class Pager extends InfernoWrapperComponent {\r\n constructor(props) {\r\n super(props);\r\n this.__getterCache = {};\r\n this.state = {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.props.defaultPageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.props.defaultPageIndex\r\n };\r\n this.pageIndexChange = this.pageIndexChange.bind(this);\r\n this.pageSizeChange = this.pageSizeChange.bind(this)\r\n }\r\n createEffects() {\r\n return [createReRenderEffect()]\r\n }\r\n pageIndexChange(newPageIndex) {\r\n if (this.props.gridCompatibility) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = newPageIndex + 1;\r\n return {\r\n pageIndex: __newValue\r\n }\r\n });\r\n this.props.pageIndexChange(__newValue)\r\n } else {\r\n var _newValue;\r\n this.setState(__state_argument => {\r\n _newValue = newPageIndex;\r\n return {\r\n pageIndex: _newValue\r\n }\r\n });\r\n this.props.pageIndexChange(_newValue)\r\n }\r\n }\r\n get pageIndex() {\r\n if (this.props.gridCompatibility) {\r\n return (void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex) - 1\r\n }\r\n return void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }\r\n pageSizeChange(newPageSize) {\r\n var __newValue;\r\n this.setState(__state_argument => {\r\n __newValue = newPageSize;\r\n return {\r\n pageSize: __newValue\r\n }\r\n });\r\n this.props.pageSizeChange(__newValue)\r\n }\r\n get className() {\r\n if (this.props.gridCompatibility) {\r\n return combineClasses({\r\n \"dx-datagrid-pager\": true,\r\n [\"\".concat(this.props.className)]: !!this.props.className\r\n })\r\n }\r\n return this.props.className\r\n }\r\n get pagerProps() {\r\n if (void 0 !== this.__getterCache.pagerProps) {\r\n return this.__getterCache.pagerProps\r\n }\r\n return this.__getterCache.pagerProps = (() => _extends({}, _extends({}, this.props, {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.state.pageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }), {\r\n className: this.className,\r\n pageIndex: this.pageIndex,\r\n pageIndexChange: pageIndex => this.pageIndexChange(pageIndex),\r\n pageSizeChange: pageSize => this.pageSizeChange(pageSize)\r\n }))()\r\n }\r\n get restAttributes() {\r\n var _this$props$pageSize$ = _extends({}, this.props, {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.state.pageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }),\r\n restProps = _objectWithoutPropertiesLoose(_this$props$pageSize$, _excluded);\r\n return restProps\r\n }\r\n componentWillUpdate(nextProps, nextState, context) {\r\n super.componentWillUpdate();\r\n if (this.props !== nextProps || this.props.gridCompatibility !== nextProps.gridCompatibility || this.props.className !== nextProps.className || this.state.pageIndex !== nextState.pageIndex || this.props.pageIndex !== nextProps.pageIndex || this.props.pageIndexChange !== nextProps.pageIndexChange || this.props.pageSizeChange !== nextProps.pageSizeChange) {\r\n this.__getterCache.pagerProps = void 0\r\n }\r\n }\r\n render() {\r\n var props = this.props;\r\n return viewFunction({\r\n props: _extends({}, props, {\r\n pageSize: void 0 !== this.props.pageSize ? this.props.pageSize : this.state.pageSize,\r\n pageIndex: void 0 !== this.props.pageIndex ? this.props.pageIndex : this.state.pageIndex\r\n }),\r\n pageIndexChange: this.pageIndexChange,\r\n pageIndex: this.pageIndex,\r\n pageSizeChange: this.pageSizeChange,\r\n className: this.className,\r\n pagerProps: this.pagerProps,\r\n restAttributes: this.restAttributes\r\n })\r\n }\r\n}\r\nPager.defaultProps = PagerProps;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/pager/pager.j.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../../core/component_registrator\";\r\nimport {\r\n GridPagerWrapper\r\n} from \"../../component_wrapper/grid_pager\";\r\nimport {\r\n Pager as PagerComponent\r\n} from \"./pager\";\r\nexport default class Pager extends GridPagerWrapper {\r\n getProps() {\r\n var props = super.getProps();\r\n props.onKeyDown = this._wrapKeyDownHandler(props.onKeyDown);\r\n return props\r\n }\r\n get _propsInfo() {\r\n return {\r\n twoWay: [\r\n [\"pageSize\", \"defaultPageSize\", \"pageSizeChange\"],\r\n [\"pageIndex\", \"defaultPageIndex\", \"pageIndexChange\"]\r\n ],\r\n allowNull: [],\r\n elements: [],\r\n templates: [],\r\n props: [\"defaultPageSize\", \"pageSizeChange\", \"defaultPageIndex\", \"pageIndexChange\", \"gridCompatibility\", \"className\", \"showInfo\", \"infoText\", \"lightModeEnabled\", \"displayMode\", \"maxPagesCount\", \"pageCount\", \"pagesCountText\", \"visible\", \"hasKnownLastPage\", \"pagesNavigatorVisible\", \"showPageSizes\", \"pageSizes\", \"rtlEnabled\", \"showNavigationButtons\", \"totalCount\", \"label\", \"onKeyDown\", \"pageSize\", \"pageIndex\"]\r\n }\r\n }\r\n get _viewComponent() {\r\n return PagerComponent\r\n }\r\n}\r\nregisterComponent(\"dxPager\", Pager);\r\n","/**\r\n * DevExtreme (esm/ui/pager.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Widget from \"../renovation/ui/pager/pager.j\";\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.pager.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport Pager from \"../pager\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nvar PAGER_CLASS = \"pager\";\r\nvar MAX_PAGES_COUNT = 10;\r\nvar getPageIndex = function(dataController) {\r\n return 1 + (parseInt(dataController.pageIndex()) || 0)\r\n};\r\nvar PagerView = modules.View.inherit({\r\n init: function() {\r\n var dataController = this.getController(\"data\");\r\n dataController.changed.add(e => {\r\n if (e && e.repaintChangesOnly) {\r\n var pager = this._pager;\r\n if (pager) {\r\n pager.option({\r\n pageIndex: getPageIndex(dataController),\r\n pageSize: dataController.pageSize(),\r\n pageCount: dataController.pageCount(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage()\r\n })\r\n } else {\r\n this.render()\r\n }\r\n } else if (!e || \"update\" !== e.changeType && \"updateSelection\" !== e.changeType && \"updateFocusedRow\" !== e.changeType) {\r\n this._pager = null;\r\n this.render()\r\n }\r\n })\r\n },\r\n _renderCore: function() {\r\n var $element = this.element().addClass(this.addWidgetPrefix(PAGER_CLASS));\r\n var pagerOptions = this.option(\"pager\") || {};\r\n var dataController = this.getController(\"data\");\r\n var keyboardController = this.getController(\"keyboardNavigation\");\r\n var options = {\r\n maxPagesCount: MAX_PAGES_COUNT,\r\n pageIndex: getPageIndex(dataController),\r\n pageCount: dataController.pageCount(),\r\n pageSize: dataController.pageSize(),\r\n showPageSizes: pagerOptions.showPageSizeSelector,\r\n showInfo: pagerOptions.showInfo,\r\n displayMode: pagerOptions.displayMode,\r\n pagesNavigatorVisible: pagerOptions.visible,\r\n showNavigationButtons: pagerOptions.showNavigationButtons,\r\n label: pagerOptions.label,\r\n pageSizes: this.getPageSizes(),\r\n totalCount: dataController.totalCount(),\r\n hasKnownLastPage: dataController.hasKnownLastPage(),\r\n pageIndexChanged: function(pageIndex) {\r\n if (dataController.pageIndex() !== pageIndex - 1) {\r\n dataController.pageIndex(pageIndex - 1)\r\n }\r\n },\r\n pageSizeChanged: function(pageSize) {\r\n dataController.pageSize(pageSize)\r\n },\r\n onKeyDown: e => keyboardController && keyboardController.executeAction(\"onKeyDown\", e),\r\n useLegacyKeyboardNavigation: this.option(\"useLegacyKeyboardNavigation\"),\r\n useKeyboard: this.option(\"keyboardNavigation.enabled\")\r\n };\r\n if (isDefined(pagerOptions.infoText)) {\r\n options.infoText = pagerOptions.infoText\r\n }\r\n if (this._pager) {\r\n this._pager.repaint();\r\n return\r\n }\r\n if (hasWindow()) {\r\n this._pager = this._createComponent($element, Pager, options)\r\n } else {\r\n $element.addClass(\"dx-pager\").html('<div class=\"dx-pages\"><div class=\"dx-page\"></div></div>')\r\n }\r\n },\r\n getPager: function() {\r\n return this._pager\r\n },\r\n getPageSizes: function() {\r\n var dataController = this.getController(\"data\");\r\n var pagerOptions = this.option(\"pager\");\r\n var allowedPageSizes = pagerOptions && pagerOptions.allowedPageSizes;\r\n var pageSize = dataController.pageSize();\r\n if (!isDefined(this._pageSizes) || !this._pageSizes.includes(pageSize)) {\r\n this._pageSizes = [];\r\n if (pagerOptions) {\r\n if (Array.isArray(allowedPageSizes)) {\r\n this._pageSizes = allowedPageSizes\r\n } else if (allowedPageSizes && pageSize > 1) {\r\n this._pageSizes = [Math.floor(pageSize / 2), pageSize, 2 * pageSize]\r\n }\r\n }\r\n }\r\n return this._pageSizes\r\n },\r\n isVisible: function() {\r\n var dataController = this.getController(\"data\");\r\n var pagerOptions = this.option(\"pager\");\r\n var pagerVisible = pagerOptions && pagerOptions.visible;\r\n var scrolling = this.option(\"scrolling\");\r\n if (\"auto\" === pagerVisible) {\r\n if (scrolling && (\"virtual\" === scrolling.mode || \"infinite\" === scrolling.mode)) {\r\n pagerVisible = false\r\n } else {\r\n pagerVisible = dataController.pageCount() > 1 || dataController.isLoaded() && !dataController.hasKnownLastPage()\r\n }\r\n }\r\n return pagerVisible\r\n },\r\n getHeight: function() {\r\n return this.getElementHeight()\r\n },\r\n optionChanged: function(args) {\r\n var name = args.name;\r\n var isPager = \"pager\" === name;\r\n var isPaging = \"paging\" === name;\r\n var isDataSource = \"dataSource\" === name;\r\n var isScrolling = \"scrolling\" === name;\r\n var dataController = this.getController(\"data\");\r\n if (isPager || isPaging || isScrolling || isDataSource) {\r\n args.handled = true;\r\n if (dataController.skipProcessingPagingChange(args.fullName)) {\r\n return\r\n }\r\n if (isPager || isPaging) {\r\n this._pageSizes = null\r\n }\r\n if (!isDataSource) {\r\n this._pager = null;\r\n this._invalidate();\r\n if (hasWindow() && isPager && this.component) {\r\n this.component.resize()\r\n }\r\n }\r\n }\r\n },\r\n dispose: function() {\r\n this._pager = null\r\n }\r\n});\r\nexport var pagerModule = {\r\n defaultOptions: function() {\r\n return {\r\n pager: {\r\n visible: \"auto\",\r\n showPageSizeSelector: false,\r\n allowedPageSizes: \"auto\",\r\n label: messageLocalization.format(\"dxPager-ariaLabel\")\r\n }\r\n }\r\n },\r\n views: {\r\n pagerView: PagerView\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.row_dragging.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n setWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Sortable from \"../sortable\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n deferUpdate\r\n} from \"../../core/utils/common\";\r\nvar COMMAND_HANDLE_CLASS = \"dx-command-drag\";\r\nvar CELL_FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar HANDLE_ICON_CLASS = \"drag-icon\";\r\nvar ROWS_VIEW = \"rowsview\";\r\nvar SORTABLE_WITHOUT_HANDLE_CLASS = \"dx-sortable-without-handle\";\r\nvar RowDraggingExtender = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateHandleColumn()\r\n },\r\n _allowReordering: function() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n return !!(rowDragging && (rowDragging.allowReordering || rowDragging.allowDropInsideItem || rowDragging.group))\r\n },\r\n _updateHandleColumn: function() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var columnsController = this._columnsController;\r\n var isHandleColumnVisible = allowReordering && rowDragging.showDragIcons;\r\n columnsController && columnsController.addCommandColumn({\r\n type: \"drag\",\r\n command: \"drag\",\r\n visibleIndex: -2,\r\n alignment: \"center\",\r\n cssClass: COMMAND_HANDLE_CLASS,\r\n width: \"auto\",\r\n cellTemplate: this._getHandleTemplate(),\r\n visible: isHandleColumnVisible\r\n });\r\n columnsController.columnOption(\"type:drag\", \"visible\", isHandleColumnVisible)\r\n },\r\n _renderContent: function() {\r\n var rowDragging = this.option(\"rowDragging\");\r\n var allowReordering = this._allowReordering();\r\n var $content = this.callBase.apply(this, arguments);\r\n var isFixedTableRendering = this._isFixedTableRendering;\r\n var sortableName = \"_sortable\";\r\n var sortableFixedName = \"_sortableFixed\";\r\n var currentSortableName = isFixedTableRendering ? sortableFixedName : sortableName;\r\n var anotherSortableName = isFixedTableRendering ? sortableName : sortableFixedName;\r\n var togglePointerEventsStyle = toggle => {\r\n var _this$sortableFixedNa;\r\n null === (_this$sortableFixedNa = this[sortableFixedName]) || void 0 === _this$sortableFixedNa ? void 0 : _this$sortableFixedNa.$element().css(\"pointerEvents\", toggle ? \"auto\" : \"\")\r\n };\r\n var rowSelector = \".dx-row:not(.dx-freespace-row):not(.dx-virtual-row):not(.dx-header-row):not(.dx-footer-row)\";\r\n var filter = this.option(\"dataRowTemplate\") ? \"> table > tbody\".concat(rowSelector) : \"> table > tbody > \".concat(rowSelector);\r\n if ((allowReordering || this[currentSortableName]) && $content.length) {\r\n this[currentSortableName] = this._createComponent($content, Sortable, extend({\r\n component: this.component,\r\n contentTemplate: null,\r\n filter: filter,\r\n cursorOffset: options => {\r\n var event = options.event;\r\n var rowsViewOffset = $(this.element()).offset();\r\n return {\r\n x: event.pageX - rowsViewOffset.left\r\n }\r\n },\r\n onDraggableElementShown: e => {\r\n if (rowDragging.dragTemplate) {\r\n return\r\n }\r\n var $dragElement = $(e.dragElement);\r\n var gridInstance = $dragElement.children(\".dx-widget\").data(this.component.NAME);\r\n this._synchronizeScrollLeftPosition(gridInstance)\r\n },\r\n dragTemplate: this._getDraggableRowTemplate(),\r\n handle: rowDragging.showDragIcons && \".\".concat(COMMAND_HANDLE_CLASS),\r\n dropFeedbackMode: \"indicate\"\r\n }, rowDragging, {\r\n onDragStart: e => {\r\n var _this$getController, _rowDragging$onDragSt;\r\n null === (_this$getController = this.getController(\"keyboardNavigation\")) || void 0 === _this$getController ? void 0 : _this$getController._resetFocusedCell();\r\n var row = e.component.getVisibleRows()[e.fromIndex];\r\n e.itemData = row && row.data;\r\n var isDataRow = row && \"data\" === row.rowType;\r\n e.cancel = !allowReordering || !isDataRow;\r\n null === (_rowDragging$onDragSt = rowDragging.onDragStart) || void 0 === _rowDragging$onDragSt ? void 0 : _rowDragging$onDragSt.call(rowDragging, e)\r\n },\r\n onDragEnter: () => {\r\n togglePointerEventsStyle(true)\r\n },\r\n onDragLeave: () => {\r\n togglePointerEventsStyle(false)\r\n },\r\n onDragEnd: e => {\r\n var _rowDragging$onDragEn;\r\n togglePointerEventsStyle(false);\r\n null === (_rowDragging$onDragEn = rowDragging.onDragEnd) || void 0 === _rowDragging$onDragEn ? void 0 : _rowDragging$onDragEn.call(rowDragging, e)\r\n },\r\n onAdd: e => {\r\n var _rowDragging$onAdd;\r\n togglePointerEventsStyle(false);\r\n null === (_rowDragging$onAdd = rowDragging.onAdd) || void 0 === _rowDragging$onAdd ? void 0 : _rowDragging$onAdd.call(rowDragging, e)\r\n },\r\n dropFeedbackMode: rowDragging.dropFeedbackMode,\r\n onOptionChanged: e => {\r\n var hasFixedSortable = this[sortableFixedName];\r\n if (hasFixedSortable) {\r\n if (\"fromIndex\" === e.name || \"toIndex\" === e.name) {\r\n this[anotherSortableName].option(e.name, e.value)\r\n }\r\n }\r\n }\r\n }));\r\n $content.toggleClass(\"dx-scrollable-container\", isFixedTableRendering);\r\n $content.toggleClass(SORTABLE_WITHOUT_HANDLE_CLASS, allowReordering && !rowDragging.showDragIcons)\r\n }\r\n return $content\r\n },\r\n _renderCore(e) {\r\n this.callBase.apply(this, arguments);\r\n if (e && \"update\" === e.changeType && e.repaintChangesOnly && gridCoreUtils.isVirtualRowRendering(this)) {\r\n deferUpdate(() => {\r\n this._updateSortable()\r\n })\r\n }\r\n },\r\n _updateSortable() {\r\n var offset = this._dataController.getRowIndexOffset();\r\n [this._sortable, this._sortableFixed].forEach(sortable => {\r\n null === sortable || void 0 === sortable ? void 0 : sortable.option(\"offset\", offset);\r\n null === sortable || void 0 === sortable ? void 0 : sortable.update()\r\n })\r\n },\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._updateSortable()\r\n },\r\n _getDraggableGridOptions: function(options) {\r\n var gridOptions = this.option();\r\n var columns = this.getColumns();\r\n var $rowElement = $(this.getRowElement(options.rowIndex));\r\n return {\r\n dataSource: [{\r\n id: 1,\r\n parentId: 0\r\n }],\r\n showBorders: true,\r\n showColumnHeaders: false,\r\n scrolling: {\r\n useNative: false,\r\n showScrollbar: \"never\"\r\n },\r\n pager: {\r\n visible: false\r\n },\r\n loadingTimeout: null,\r\n columnFixing: gridOptions.columnFixing,\r\n columnAutoWidth: gridOptions.columnAutoWidth,\r\n showColumnLines: gridOptions.showColumnLines,\r\n columns: columns.map(column => ({\r\n width: column.width || column.visibleWidth,\r\n fixed: column.fixed,\r\n fixedPosition: column.fixedPosition\r\n })),\r\n onRowPrepared: e => {\r\n var rowsView = e.component.getView(\"rowsView\");\r\n $(e.rowElement).replaceWith($rowElement.eq(rowsView._isFixedTableRendering ? 1 : 0).clone())\r\n }\r\n }\r\n },\r\n _synchronizeScrollLeftPosition: function(gridInstance) {\r\n var scrollable = null === gridInstance || void 0 === gridInstance ? void 0 : gridInstance.getScrollable();\r\n null === scrollable || void 0 === scrollable ? void 0 : scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n },\r\n _getDraggableRowTemplate: function() {\r\n return options => {\r\n var $rootElement = this.component.$element();\r\n var $dataGridContainer = $(\"<div>\");\r\n setWidth($dataGridContainer, getWidth($rootElement));\r\n var items = this._dataController.items();\r\n var row = items && items[options.fromIndex];\r\n var gridOptions = this._getDraggableGridOptions(row);\r\n this._createComponent($dataGridContainer, this.component.NAME, gridOptions);\r\n $dataGridContainer.find(\".dx-gridbase-container\").children(\":not(.\".concat(this.addWidgetPrefix(ROWS_VIEW), \")\")).hide();\r\n return $dataGridContainer\r\n }\r\n },\r\n _getHandleTemplate: function() {\r\n return (container, options) => {\r\n if (\"data\" === options.rowType) {\r\n $(container).addClass(CELL_FOCUS_DISABLED_CLASS);\r\n return $(\"<span>\").addClass(this.addWidgetPrefix(HANDLE_ICON_CLASS))\r\n } else {\r\n gridCoreUtils.setEmptyText($(container))\r\n }\r\n }\r\n },\r\n optionChanged: function(args) {\r\n if (\"rowDragging\" === args.name) {\r\n this._updateHandleColumn();\r\n this._invalidate(true, true);\r\n args.handled = true\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n};\r\nexport var rowDraggingModule = {\r\n defaultOptions: function() {\r\n return {\r\n rowDragging: {\r\n showDragIcons: true,\r\n dropFeedbackMode: \"indicate\",\r\n allowReordering: false,\r\n allowDropInsideItem: false\r\n }\r\n }\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: RowDraggingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.rows.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n deferRender,\r\n deferUpdate\r\n} from \"../../core/utils/common\";\r\nimport {\r\n setHeight\r\n} from \"../../core/utils/style\";\r\nimport {\r\n isDefined,\r\n isNumeric,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect,\r\n getDefaultAlignment\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n ColumnsView\r\n} from \"./ui.grid_core.columns_view\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport {\r\n removeEvent\r\n} from \"../../events/remove\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar NOWRAP_CLASS = \"nowrap\";\r\nvar GROUP_ROW_CLASS = \"dx-group-row\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar FREE_SPACE_CLASS = \"dx-freespace-row\";\r\nvar ROW_LINES_CLASS = \"dx-row-lines\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar ROW_ALTERNATION_CLASS = \"dx-row-alt\";\r\nvar LAST_ROW_BORDER = \"dx-last-row-border\";\r\nvar EMPTY_CLASS = \"dx-empty\";\r\nvar ROW_INSERTED_ANIMATION_CLASS = \"row-inserted-animation\";\r\nvar LOADPANEL_HIDE_TIMEOUT = 200;\r\n\r\nfunction getMaxHorizontalScrollOffset(scrollable) {\r\n return scrollable ? Math.round(scrollable.scrollWidth() - scrollable.clientWidth()) : 0\r\n}\r\nexport var rowsModule = {\r\n defaultOptions: function() {\r\n return {\r\n hoverStateEnabled: false,\r\n scrolling: {\r\n useNative: \"auto\"\r\n },\r\n loadPanel: {\r\n enabled: \"auto\",\r\n text: messageLocalization.format(\"Loading\"),\r\n width: 200,\r\n height: 90,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true\r\n },\r\n dataRowTemplate: null,\r\n columnAutoWidth: false,\r\n noDataText: messageLocalization.format(\"dxDataGrid-noDataText\"),\r\n wordWrapEnabled: false,\r\n showColumnLines: true,\r\n showRowLines: false,\r\n rowAlternationEnabled: false,\r\n activeStateEnabled: false,\r\n twoWayBindingEnabled: true\r\n }\r\n },\r\n views: {\r\n rowsView: ColumnsView.inherit(function() {\r\n var defaultCellTemplate = function($container, options) {\r\n var isDataTextEmpty = isEmpty(options.text) && \"data\" === options.rowType;\r\n var text = options.text;\r\n var container = $container.get(0);\r\n if (isDataTextEmpty) {\r\n gridCoreUtils.setEmptyText($container)\r\n } else if (options.column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n };\r\n return {\r\n _getDefaultTemplate: function(column) {\r\n switch (column.command) {\r\n case \"empty\":\r\n return function(container) {\r\n container.html(\" \")\r\n };\r\n default:\r\n return defaultCellTemplate\r\n }\r\n },\r\n _getDefaultGroupTemplate: function(column) {\r\n var summaryTexts = this.option(\"summary.texts\");\r\n return function($container, options) {\r\n var data = options.data;\r\n var text = options.column.caption + \": \" + options.text;\r\n var container = $container.get(0);\r\n if (options.summaryItems && options.summaryItems.length) {\r\n text += \" \" + gridCoreUtils.getGroupRowSummaryText(options.summaryItems, summaryTexts)\r\n }\r\n if (data) {\r\n if (options.groupContinuedMessage && options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \". \" + options.groupContinuesMessage + \")\"\r\n } else if (options.groupContinuesMessage) {\r\n text += \" (\" + options.groupContinuesMessage + \")\"\r\n } else if (options.groupContinuedMessage) {\r\n text += \" (\" + options.groupContinuedMessage + \")\"\r\n }\r\n }\r\n $container.addClass(GROUP_CELL_CLASS);\r\n if (column.encodeHtml) {\r\n container.textContent = text\r\n } else {\r\n container.innerHTML = text\r\n }\r\n }\r\n },\r\n _update: function() {},\r\n _getCellTemplate: function(options) {\r\n var column = options.column;\r\n var template;\r\n if (\"group\" === options.rowType && isDefined(column.groupIndex) && !column.showWhenGrouped && !column.command) {\r\n template = column.groupCellTemplate || {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultGroupTemplate(column)\r\n }\r\n } else if ((\"data\" === options.rowType || column.command) && column.cellTemplate) {\r\n template = column.cellTemplate\r\n } else {\r\n template = {\r\n allowRenderToDetachedContainer: true,\r\n render: this._getDefaultTemplate(column)\r\n }\r\n }\r\n return template\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isGroup = \"group\" === row.rowType;\r\n var isDataRow = \"data\" === row.rowType;\r\n isDataRow && $row.addClass(DATA_ROW_CLASS);\r\n isDataRow && this.option(\"showRowLines\") && $row.addClass(ROW_LINES_CLASS);\r\n this.option(\"showColumnLines\") && $row.addClass(COLUMN_LINES_CLASS);\r\n if (false === row.visible) {\r\n $row.hide()\r\n }\r\n if (isGroup) {\r\n $row.addClass(GROUP_ROW_CLASS);\r\n var isRowExpanded = row.isExpanded;\r\n this.setAria(\"role\", \"row\", $row);\r\n this.setAria(\"expanded\", isDefined(isRowExpanded) && isRowExpanded.toString(), $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowPrepared: function($row, rowOptions, row) {\r\n if (\"data\" === rowOptions.rowType) {\r\n if (this.option(\"rowAlternationEnabled\")) {\r\n this._isAltRow(row) && $row.addClass(ROW_ALTERNATION_CLASS);\r\n rowOptions.watch && rowOptions.watch(() => this._isAltRow(row), value => {\r\n $row.toggleClass(ROW_ALTERNATION_CLASS, value)\r\n })\r\n }\r\n this._setAriaRowIndex(rowOptions, $row);\r\n rowOptions.watch && rowOptions.watch(() => rowOptions.rowIndex, () => this._setAriaRowIndex(rowOptions, $row))\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _setAriaRowIndex: function(row, $row) {\r\n var component = this.component;\r\n var isPagerMode = \"standard\" === component.option(\"scrolling.mode\") && !gridCoreUtils.isVirtualRowRendering(component);\r\n var rowIndex = row.rowIndex + 1;\r\n if (isPagerMode) {\r\n rowIndex = component.pageIndex() * component.pageSize() + rowIndex\r\n } else {\r\n rowIndex += this._dataController.getRowIndexOffset()\r\n }\r\n this.setAria(\"rowindex\", rowIndex, $row)\r\n },\r\n _afterRowPrepared: function(e) {\r\n var arg = e.args[0];\r\n var dataController = this._dataController;\r\n var row = dataController.getVisibleRows()[arg.rowIndex];\r\n var watch = this.option(\"integrationOptions.watchMethod\");\r\n if (!arg.data || \"data\" !== arg.rowType || arg.isNewRow || !this.option(\"twoWayBindingEnabled\") || !watch || !row) {\r\n return\r\n }\r\n var dispose = watch(() => dataController.generateDataValues(arg.data, arg.columns), () => {\r\n dataController.repaintRows([row.rowIndex], this.option(\"repaintChangesOnly\"))\r\n }, {\r\n deep: true,\r\n skipImmediate: true\r\n });\r\n eventsEngine.on(arg.rowElement, removeEvent, dispose)\r\n },\r\n _renderScrollable: function(force) {\r\n var $element = this.element();\r\n if (!$element.children().length) {\r\n $element.append(\"<div>\")\r\n }\r\n if (force || !this._loadPanel) {\r\n this._renderLoadPanel($element, $element.parent(), this._dataController.isLocalStore())\r\n }\r\n if ((force || !this.getScrollable()) && this._dataController.isLoaded()) {\r\n var columns = this.getColumns();\r\n var allColumnsHasWidth = true;\r\n for (var i = 0; i < columns.length; i++) {\r\n if (!columns[i].width && !columns[i].minWidth) {\r\n allColumnsHasWidth = false;\r\n break\r\n }\r\n }\r\n if (this.option(\"columnAutoWidth\") || this._hasHeight || allColumnsHasWidth || this._columnsController._isColumnFixing()) {\r\n this._renderScrollableCore($element)\r\n }\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isNativeScrolling = e.component.option(\"useNative\");\r\n this._scrollTop = e.scrollOffset.top;\r\n this._scrollLeft = e.scrollOffset.left;\r\n var scrollLeft = e.scrollOffset.left;\r\n if (rtlEnabled) {\r\n this._scrollRight = getMaxHorizontalScrollOffset(e.component) - this._scrollLeft;\r\n if (isNativeScrolling) {\r\n scrollLeft = -this._scrollRight\r\n }\r\n if (!this.isScrollbarVisible(true)) {\r\n this._scrollLeft = -1\r\n }\r\n }\r\n this.scrollChanged.fire(_extends({}, e.scrollOffset, {\r\n left: scrollLeft\r\n }), this.name)\r\n },\r\n _renderScrollableCore: function($element) {\r\n var dxScrollableOptions = this._createScrollableOptions();\r\n var scrollHandler = this._handleScroll.bind(this);\r\n dxScrollableOptions.onScroll = scrollHandler;\r\n this._scrollable = this._createComponent($element, Scrollable, dxScrollableOptions);\r\n this._scrollableContainer = this._scrollable && $(this._scrollable.container())\r\n },\r\n _renderLoadPanel: gridCoreUtils.renderLoadPanel,\r\n _renderContent: function(contentElement, tableElement) {\r\n contentElement.empty().append(tableElement);\r\n return this._findContentElement()\r\n },\r\n _updateContent: function(newTableElement, change) {\r\n return this._waitAsyncTemplates(change).done(() => {\r\n var tableElement = this.getTableElement();\r\n var contentElement = this._findContentElement();\r\n var changeType = change && change.changeType;\r\n var executors = [];\r\n var highlightChanges = this.option(\"highlightChanges\");\r\n var rowInsertedClass = this.addWidgetPrefix(ROW_INSERTED_ANIMATION_CLASS);\r\n switch (changeType) {\r\n case \"update\":\r\n each(change.rowIndices, (index, rowIndex) => {\r\n var $newRowElement = this._getRowElements(newTableElement).eq(index);\r\n var changeType = change.changeTypes && change.changeTypes[index];\r\n var item = change.items && change.items[index];\r\n executors.push(() => {\r\n var $rowsElement = this._getRowElements();\r\n var $rowElement = $rowsElement.eq(rowIndex);\r\n switch (changeType) {\r\n case \"update\":\r\n if (item) {\r\n var columnIndices = change.columnIndices && change.columnIndices[index];\r\n if (isDefined(item.visible) && item.visible !== $rowElement.is(\":visible\")) {\r\n $rowElement.toggle(item.visible)\r\n } else if (columnIndices) {\r\n this._updateCells($rowElement, $newRowElement, columnIndices)\r\n } else {\r\n $rowElement.replaceWith($newRowElement)\r\n }\r\n }\r\n break;\r\n case \"insert\":\r\n if (!$rowsElement.length) {\r\n if (tableElement) {\r\n var target = $newRowElement.is(\"tbody\") ? tableElement : tableElement.children(\"tbody\");\r\n $newRowElement.prependTo(target)\r\n }\r\n } else if ($rowElement.length) {\r\n $newRowElement.insertBefore($rowElement)\r\n } else {\r\n $newRowElement.insertAfter($rowsElement.last())\r\n }\r\n if (highlightChanges && change.isLiveUpdate) {\r\n $newRowElement.addClass(rowInsertedClass)\r\n }\r\n break;\r\n case \"remove\":\r\n $rowElement.remove()\r\n }\r\n })\r\n });\r\n each(executors, (function() {\r\n this()\r\n }));\r\n newTableElement.remove();\r\n break;\r\n default:\r\n this.setTableElement(newTableElement);\r\n contentElement.addClass(this.addWidgetPrefix(CONTENT_CLASS));\r\n this._renderContent(contentElement, newTableElement)\r\n }\r\n })\r\n },\r\n _createEmptyRow: function(className, isFixed, height) {\r\n var $cell;\r\n var $row = this._createRow();\r\n var columns = isFixed ? this.getFixedColumns() : this.getColumns();\r\n $row.addClass(className).toggleClass(COLUMN_LINES_CLASS, this.option(\"showColumnLines\"));\r\n for (var i = 0; i < columns.length; i++) {\r\n $cell = this._createCell({\r\n column: columns[i],\r\n rowType: \"freeSpace\",\r\n columnIndex: i,\r\n columns: columns\r\n });\r\n isNumeric(height) && $cell.css(\"height\", height);\r\n $row.append($cell)\r\n }\r\n this.setAria(\"role\", \"presentation\", $row);\r\n return $row\r\n },\r\n _appendEmptyRow: function($table, $emptyRow, location) {\r\n var $tBodies = this._getBodies($table);\r\n var isTableContainer = !$tBodies.length || $emptyRow.is(\"tbody\");\r\n var $container = isTableContainer ? $table : $tBodies;\r\n if (\"top\" === location) {\r\n $container.first().prepend($emptyRow);\r\n if (isTableContainer) {\r\n var $colgroup = $container.children(\"colgroup\");\r\n $container.prepend($colgroup)\r\n }\r\n } else {\r\n $container.last().append($emptyRow)\r\n }\r\n },\r\n _renderFreeSpaceRow: function($tableElement, change) {\r\n var $freeSpaceRowElement = this._createEmptyRow(FREE_SPACE_CLASS);\r\n $freeSpaceRowElement = this._wrapRowIfNeed($tableElement, $freeSpaceRowElement, \"refresh\" === (null === change || void 0 === change ? void 0 : change.changeType));\r\n this._appendEmptyRow($tableElement, $freeSpaceRowElement)\r\n },\r\n _checkRowKeys: function(options) {\r\n var that = this;\r\n var rows = that._getRows(options);\r\n var keyExpr = that._dataController.store() && that._dataController.store().key();\r\n keyExpr && rows.some((function(row) {\r\n if (\"data\" === row.rowType && void 0 === row.key) {\r\n that._dataController.fireError(\"E1046\", keyExpr);\r\n return true\r\n }\r\n }))\r\n },\r\n _needUpdateRowHeight: function(itemsCount) {\r\n return itemsCount > 0 && !this._rowHeight\r\n },\r\n _getRowsHeight: function($tableElement) {\r\n $tableElement = $tableElement || this._tableElement;\r\n var $rowElements = $tableElement.children(\"tbody\").children().not(\".dx-virtual-row\").not(\".\" + FREE_SPACE_CLASS);\r\n return $rowElements.toArray().reduce((function(sum, row) {\r\n return sum + getBoundingRect(row).height\r\n }), 0)\r\n },\r\n _updateRowHeight: function() {\r\n var $tableElement = this.getTableElement();\r\n var itemsCount = this._dataController.items().length;\r\n if ($tableElement && this._needUpdateRowHeight(itemsCount)) {\r\n var rowsHeight = this._getRowsHeight($tableElement);\r\n this._rowHeight = rowsHeight / itemsCount\r\n }\r\n },\r\n _findContentElement: function() {\r\n var $content = this.element();\r\n var scrollable = this.getScrollable();\r\n if ($content) {\r\n if (scrollable) {\r\n $content = $(scrollable.content())\r\n }\r\n return $content.children().first()\r\n }\r\n },\r\n _getRowElements: function(tableElement) {\r\n var $rows = this.callBase(tableElement);\r\n return $rows && $rows.not(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getFreeSpaceRowElements: function($table) {\r\n var tableElements = $table || this.getTableElements();\r\n return tableElements && tableElements.children(\"tbody\").children(\".\" + FREE_SPACE_CLASS)\r\n },\r\n _getNoDataText: function() {\r\n return this.option(\"noDataText\")\r\n },\r\n _rowClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowClick\", extend({\r\n evaluate: function(expr) {\r\n var getter = compileGetter(expr);\r\n return getter(item.data)\r\n }\r\n }, e, item))\r\n },\r\n _rowDblClick: function(e) {\r\n var item = this._dataController.items()[e.rowIndex] || {};\r\n this.executeAction(\"onRowDblClick\", extend({}, e, item))\r\n },\r\n _getColumnsCountBeforeGroups: function(columns) {\r\n for (var i = 0; i < columns.length; i++) {\r\n if (\"groupExpand\" === columns[i].type) {\r\n return i\r\n }\r\n }\r\n return 0\r\n },\r\n _getGroupCellOptions: function(options) {\r\n var columnsCountBeforeGroups = this._getColumnsCountBeforeGroups(options.columns);\r\n var columnIndex = (options.row.groupIndex || 0) + columnsCountBeforeGroups;\r\n return {\r\n columnIndex: columnIndex,\r\n colspan: options.columns.length - columnIndex - 1\r\n }\r\n },\r\n _needWrapRow: function() {\r\n return this.callBase.apply(this, arguments) || !!this.option(\"dataRowTemplate\")\r\n },\r\n _renderCells: function($row, options) {\r\n if (\"group\" === options.row.rowType) {\r\n this._renderGroupedCells($row, options)\r\n } else if (options.row.values) {\r\n this.callBase($row, options)\r\n }\r\n },\r\n _renderGroupedCells: function($row, options) {\r\n var row = options.row;\r\n var expandColumn;\r\n var columns = options.columns;\r\n var rowIndex = row.rowIndex;\r\n var isExpanded;\r\n var groupCellOptions = this._getGroupCellOptions(options);\r\n for (var i = 0; i <= groupCellOptions.columnIndex; i++) {\r\n if (i === groupCellOptions.columnIndex && columns[i].allowCollapsing && \"infinite\" !== options.scrollingMode) {\r\n isExpanded = !!row.isExpanded;\r\n expandColumn = columns[i]\r\n } else {\r\n isExpanded = null;\r\n expandColumn = {\r\n command: \"expand\",\r\n cssClass: columns[i].cssClass\r\n }\r\n }\r\n if (this._needRenderCell(i, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: isExpanded,\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: expandColumn,\r\n columnIndex: i,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n }\r\n var groupColumnAlignment = getDefaultAlignment(this.option(\"rtlEnabled\"));\r\n var groupColumn = extend({}, columns[groupCellOptions.columnIndex], {\r\n command: null,\r\n type: null,\r\n cssClass: null,\r\n width: null,\r\n showWhenGrouped: false,\r\n alignment: groupColumnAlignment\r\n });\r\n if (groupCellOptions.colspan > 1) {\r\n groupColumn.colspan = groupCellOptions.colspan\r\n }\r\n if (this._needRenderCell(groupCellOptions.columnIndex + 1, options.columnIndices)) {\r\n this._renderCell($row, {\r\n value: row.values[row.groupIndex],\r\n row: row,\r\n rowIndex: rowIndex,\r\n column: groupColumn,\r\n columnIndex: groupCellOptions.columnIndex + 1,\r\n columnIndices: options.columnIndices,\r\n change: options.change\r\n })\r\n }\r\n },\r\n _renderRows: function($table, options) {\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n this.callBase($table, extend({\r\n scrollingMode: scrollingMode\r\n }, options));\r\n this._checkRowKeys(options.change);\r\n this._renderFreeSpaceRow($table, options.change);\r\n if (!this._hasHeight) {\r\n this.updateFreeSpaceRowHeight($table)\r\n }\r\n },\r\n _renderDataRowByTemplate($table, options, dataRowTemplate) {\r\n var row = options.row;\r\n var rowOptions = extend({\r\n columns: options.columns\r\n }, row);\r\n var $tbody = this._createRow(row, \"tbody\");\r\n $tbody.appendTo($table);\r\n this.renderTemplate($tbody, dataRowTemplate, rowOptions, true, options.change);\r\n this._rowPrepared($tbody, rowOptions, options.row)\r\n },\r\n _renderRow: function($table, options) {\r\n var row = options.row;\r\n var rowTemplate = this.option().rowTemplate;\r\n var dataRowTemplate = this.option(\"dataRowTemplate\");\r\n if (\"data\" === row.rowType && dataRowTemplate) {\r\n this._renderDataRowByTemplate($table, options, dataRowTemplate)\r\n } else if ((\"data\" === row.rowType || \"group\" === row.rowType) && !isDefined(row.groupIndex) && rowTemplate) {\r\n this.renderTemplate($table, rowTemplate, extend({\r\n columns: options.columns\r\n }, row), true)\r\n } else {\r\n this.callBase($table, options)\r\n }\r\n },\r\n _renderTable: function(options) {\r\n var that = this;\r\n var $table = that.callBase(options);\r\n if (!isDefined(that.getTableElement())) {\r\n that.setTableElement($table);\r\n that._renderScrollable(true);\r\n that.resizeCompleted.add((function resizeCompletedHandler() {\r\n var scrollableInstance = that.getScrollable();\r\n if (scrollableInstance && that.element().closest(getWindow().document).length) {\r\n that.resizeCompleted.remove(resizeCompletedHandler);\r\n scrollableInstance._visibilityChanged(true)\r\n }\r\n }))\r\n } else {\r\n that._renderScrollable()\r\n }\r\n return $table\r\n },\r\n _createTable: function() {\r\n var $table = this.callBase.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option().dataRowTemplate) {\r\n $table.appendTo(this.component.$element())\r\n }\r\n return $table\r\n },\r\n _renderCore: function(change) {\r\n var $element = this.element();\r\n $element.addClass(this.addWidgetPrefix(ROWS_VIEW_CLASS)).toggleClass(this.addWidgetPrefix(NOWRAP_CLASS), !this.option(\"wordWrapEnabled\"));\r\n $element.toggleClass(EMPTY_CLASS, this._dataController.isEmpty());\r\n this.setAria(\"role\", \"presentation\", $element);\r\n var $table = this._renderTable({\r\n change: change\r\n });\r\n this._updateContent($table, change);\r\n this.callBase(change);\r\n this._lastColumnWidths = null\r\n },\r\n _getRows: function(change) {\r\n return change && change.items || this._dataController.items()\r\n },\r\n _getCellOptions: function(options) {\r\n var column = options.column;\r\n var row = options.row;\r\n var data = row.data;\r\n var summaryCells = row && row.summaryCells;\r\n var value = options.value;\r\n var displayValue = gridCoreUtils.getDisplayValue(column, value, data, row.rowType);\r\n var parameters = this.callBase(options);\r\n parameters.value = value;\r\n parameters.oldValue = options.oldValue;\r\n parameters.displayValue = displayValue;\r\n parameters.row = row;\r\n parameters.key = row.key;\r\n parameters.data = data;\r\n parameters.rowType = row.rowType;\r\n parameters.values = row.values;\r\n parameters.text = !column.command ? gridCoreUtils.formatValue(displayValue, column) : \"\";\r\n parameters.rowIndex = row.rowIndex;\r\n parameters.summaryItems = summaryCells && summaryCells[options.columnIndex];\r\n parameters.resized = column.resizedCallbacks;\r\n if (isDefined(column.groupIndex) && !column.command) {\r\n var groupingTextsOptions = this.option(\"grouping.texts\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (\"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n parameters.groupContinuesMessage = data && data.isContinuationOnNextPage && groupingTextsOptions && groupingTextsOptions.groupContinuesMessage;\r\n parameters.groupContinuedMessage = data && data.isContinuation && groupingTextsOptions && groupingTextsOptions.groupContinuedMessage\r\n }\r\n }\r\n return parameters\r\n },\r\n _setRowsOpacityCore: function($rows, visibleColumns, columnIndex, value) {\r\n var columnsController = this._columnsController;\r\n var columns = columnsController.getColumns();\r\n var column = columns && columns[columnIndex];\r\n var columnID = column && column.isBand && column.index;\r\n each($rows, (function(rowIndex, row) {\r\n if (!$(row).hasClass(GROUP_ROW_CLASS)) {\r\n for (var i = 0; i < visibleColumns.length; i++) {\r\n if (isNumeric(columnID) && columnsController.isParentBandColumn(visibleColumns[i].index, columnID) || visibleColumns[i].index === columnIndex) {\r\n $rows.eq(rowIndex).children().eq(i).css({\r\n opacity: value\r\n });\r\n if (!isNumeric(columnID)) {\r\n break\r\n }\r\n }\r\n }\r\n }\r\n }))\r\n },\r\n _getDevicePixelRatio: function() {\r\n return getWindow().devicePixelRatio\r\n },\r\n renderNoDataText: gridCoreUtils.renderNoDataText,\r\n getCellOptions: function(rowIndex, columnIdentifier) {\r\n var rowOptions = this._dataController.items()[rowIndex];\r\n var cellOptions;\r\n var column;\r\n if (rowOptions) {\r\n if (isString(columnIdentifier)) {\r\n column = this._columnsController.columnOption(columnIdentifier)\r\n } else {\r\n column = this._columnsController.getVisibleColumns()[columnIdentifier]\r\n }\r\n if (column) {\r\n cellOptions = this._getCellOptions({\r\n value: column.calculateCellValue(rowOptions.data),\r\n rowIndex: rowOptions.rowIndex,\r\n row: rowOptions,\r\n column: column\r\n })\r\n }\r\n }\r\n return cellOptions\r\n },\r\n getRow: function(index) {\r\n if (index >= 0) {\r\n var rows = this._getRowElements();\r\n if (rows.length > index) {\r\n return $(rows[index])\r\n }\r\n }\r\n },\r\n updateFreeSpaceRowHeight: function($table) {\r\n var dataController = this._dataController;\r\n var itemCount = dataController.items(true).length;\r\n var contentElement = this._findContentElement();\r\n var freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n if (freeSpaceRowElements && contentElement && dataController.totalCount() >= 0) {\r\n var isFreeSpaceRowVisible = false;\r\n if (itemCount > 0) {\r\n if (!this._hasHeight) {\r\n var freeSpaceRowCount = dataController.pageSize() - itemCount;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n if (freeSpaceRowCount > 0 && dataController.pageCount() > 1 && \"virtual\" !== scrollingMode && \"infinite\" !== scrollingMode) {\r\n setHeight(freeSpaceRowElements, freeSpaceRowCount * this._rowHeight);\r\n isFreeSpaceRowVisible = true\r\n }\r\n if (!isFreeSpaceRowVisible && $table) {\r\n setHeight(freeSpaceRowElements, 0)\r\n } else {\r\n freeSpaceRowElements.toggle(isFreeSpaceRowVisible)\r\n }\r\n this._updateLastRowBorder(isFreeSpaceRowVisible)\r\n } else {\r\n freeSpaceRowElements.hide();\r\n deferUpdate(() => {\r\n var scrollbarWidth = this.getScrollbarWidth(true);\r\n var elementHeightWithoutScrollbar = getHeight(this.element()) - scrollbarWidth;\r\n var contentHeight = getOuterHeight(contentElement);\r\n var showFreeSpaceRow = elementHeightWithoutScrollbar - contentHeight > 0;\r\n var rowsHeight = this._getRowsHeight(contentElement.children().first());\r\n var $tableElement = $table || this.getTableElements();\r\n var borderTopWidth = Math.ceil(parseFloat($tableElement.css(\"borderTopWidth\")));\r\n var heightCorrection = this._getHeightCorrection();\r\n var resultHeight = elementHeightWithoutScrollbar - rowsHeight - borderTopWidth - heightCorrection;\r\n if (showFreeSpaceRow) {\r\n deferRender(() => {\r\n freeSpaceRowElements.css(\"height\", resultHeight);\r\n isFreeSpaceRowVisible = true;\r\n freeSpaceRowElements.show()\r\n })\r\n }\r\n deferRender(() => this._updateLastRowBorder(isFreeSpaceRowVisible))\r\n })\r\n }\r\n } else {\r\n freeSpaceRowElements.css(\"height\", 0);\r\n freeSpaceRowElements.show();\r\n this._updateLastRowBorder(true)\r\n }\r\n }\r\n },\r\n _getHeightCorrection: function() {\r\n var isZoomedWebkit = browser.webkit && this._getDevicePixelRatio() >= 2;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var hasExtraBorderTop = browser.mozilla && browser.version >= 70 && !this.option(\"showRowLines\");\r\n return isZoomedWebkit || hasExtraBorderTop || isChromeLatest ? 1 : 0\r\n },\r\n _columnOptionChanged: function(e) {\r\n var optionNames = e.optionNames;\r\n if (e.changeTypes.grouping) {\r\n return\r\n }\r\n if (optionNames.width || optionNames.visibleWidth) {\r\n this.callBase(e);\r\n this._fireColumnResizedCallbacks()\r\n }\r\n },\r\n getScrollable: function() {\r\n return this._scrollable\r\n },\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n that._editorFactoryController = that.getController(\"editorFactory\");\r\n that._rowHeight = 0;\r\n that._scrollTop = 0;\r\n that._scrollLeft = -1;\r\n that._scrollRight = 0;\r\n that._hasHeight = false;\r\n dataController.loadingChanged.add((function(isLoading, messageText) {\r\n that.setLoading(isLoading, messageText)\r\n }));\r\n dataController.dataSourceChanged.add((function() {\r\n if (that._scrollLeft >= 0) {\r\n that._handleScroll({\r\n component: that.getScrollable(),\r\n forceUpdateScrollPosition: true,\r\n scrollOffset: {\r\n top: that._scrollTop,\r\n left: that._scrollLeft\r\n }\r\n })\r\n }\r\n }))\r\n },\r\n _handleDataChanged: function(change) {\r\n switch (change.changeType) {\r\n case \"refresh\":\r\n case \"prepend\":\r\n case \"append\":\r\n case \"update\":\r\n this.render(null, change);\r\n break;\r\n default:\r\n this._update(change)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"isScrollbarVisible\", \"getTopVisibleRowData\", \"getScrollbarWidth\", \"getCellElement\", \"getRowElement\", \"getScrollable\"]\r\n },\r\n contentWidth: function() {\r\n return getWidth(this.element()) - this.getScrollbarWidth()\r\n },\r\n getScrollbarWidth: function(isHorizontal) {\r\n var scrollableContainer = this._scrollableContainer && this._scrollableContainer.get(0);\r\n var scrollbarWidth = 0;\r\n if (scrollableContainer) {\r\n if (!isHorizontal) {\r\n scrollbarWidth = scrollableContainer.clientWidth ? scrollableContainer.offsetWidth - scrollableContainer.clientWidth : 0\r\n } else {\r\n scrollbarWidth = scrollableContainer.clientHeight ? scrollableContainer.offsetHeight - scrollableContainer.clientHeight : 0;\r\n scrollbarWidth += (that = this, scrollable = that.getScrollable(), scrollable ? Math.ceil(parseFloat($(scrollable.content()).css(\"paddingBottom\"))) : 0)\r\n }\r\n }\r\n var that, scrollable;\r\n return scrollbarWidth > 0 ? scrollbarWidth : 0\r\n },\r\n _fireColumnResizedCallbacks: function() {\r\n var lastColumnWidths = this._lastColumnWidths || [];\r\n var columnWidths = [];\r\n var columns = this.getColumns();\r\n for (var i = 0; i < columns.length; i++) {\r\n columnWidths[i] = columns[i].visibleWidth;\r\n if (columns[i].resizedCallbacks && !isDefined(columns[i].groupIndex) && lastColumnWidths[i] !== columnWidths[i]) {\r\n columns[i].resizedCallbacks.fire(columnWidths[i])\r\n }\r\n }\r\n this._lastColumnWidths = columnWidths\r\n },\r\n _updateLastRowBorder: function(isFreeSpaceRowVisible) {\r\n if (this.option(\"showBorders\") && this.option(\"showRowLines\") && !isFreeSpaceRowVisible) {\r\n this.element().addClass(LAST_ROW_BORDER)\r\n } else {\r\n this.element().removeClass(LAST_ROW_BORDER)\r\n }\r\n },\r\n _updateScrollable: function() {\r\n var scrollable = Scrollable.getInstance(this.element());\r\n if (scrollable) {\r\n scrollable.update();\r\n if (scrollable.option(\"useNative\") || !(null !== scrollable && void 0 !== scrollable && scrollable.isRenovated())) {\r\n this._updateHorizontalScrollPosition()\r\n }\r\n }\r\n },\r\n _updateHorizontalScrollPosition: function() {\r\n var scrollable = this.getScrollable();\r\n var scrollLeft = scrollable && scrollable.scrollOffset().left;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (rtlEnabled) {\r\n var maxHorizontalScrollOffset = getMaxHorizontalScrollOffset(scrollable);\r\n var scrollRight = maxHorizontalScrollOffset - scrollLeft;\r\n if (scrollRight !== this._scrollRight) {\r\n this._scrollLeft = maxHorizontalScrollOffset - this._scrollRight\r\n }\r\n }\r\n if (this._scrollLeft >= 0 && scrollLeft !== this._scrollLeft) {\r\n scrollable.scrollTo({\r\n x: this._scrollLeft\r\n })\r\n }\r\n },\r\n _resizeCore: function() {\r\n var that = this;\r\n that._fireColumnResizedCallbacks();\r\n that._updateRowHeight();\r\n deferRender((function() {\r\n that._renderScrollable();\r\n that.renderNoDataText();\r\n that.updateFreeSpaceRowHeight();\r\n deferUpdate((function() {\r\n that._updateScrollable()\r\n }))\r\n }))\r\n },\r\n scrollTo: function(location) {\r\n var $element = this.element();\r\n var dxScrollable = $element && Scrollable.getInstance($element);\r\n if (dxScrollable) {\r\n dxScrollable.scrollTo(location)\r\n }\r\n },\r\n height: function(_height, hasHeight) {\r\n var that = this;\r\n var $element = this.element();\r\n if (0 === arguments.length) {\r\n return $element ? getOuterHeight($element, true) : 0\r\n }\r\n that._hasHeight = void 0 === hasHeight ? \"auto\" !== _height : hasHeight;\r\n if (isDefined(_height) && $element) {\r\n setHeight($element, _height)\r\n }\r\n },\r\n setLoading: function(isLoading, messageText) {\r\n var loadPanel = this._loadPanel;\r\n var dataController = this._dataController;\r\n var loadPanelOptions = this.option(\"loadPanel\") || {};\r\n var animation = dataController.isLoaded() ? loadPanelOptions.animation : null;\r\n var $element = this.element();\r\n if (!hasWindow()) {\r\n return\r\n }\r\n if (!loadPanel && void 0 !== messageText && dataController.isLocalStore() && \"auto\" === loadPanelOptions.enabled && $element) {\r\n this._renderLoadPanel($element, $element.parent());\r\n loadPanel = this._loadPanel\r\n }\r\n if (loadPanel) {\r\n var visibilityOptions = {\r\n message: messageText || loadPanelOptions.text,\r\n animation: animation,\r\n visible: isLoading\r\n };\r\n if (isLoading) {\r\n visibilityOptions.position = gridCoreUtils.calculateLoadPanelPosition($element)\r\n }\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n if (loadPanel.option(\"visible\") && !isLoading) {\r\n this._hideLoadingTimeoutID = setTimeout((function() {\r\n loadPanel.option(visibilityOptions)\r\n }), LOADPANEL_HIDE_TIMEOUT)\r\n } else {\r\n loadPanel.option(visibilityOptions)\r\n }\r\n }\r\n },\r\n setRowsOpacity: function(columnIndex, value) {\r\n var $rows = this._getRowElements().not(\".\" + GROUP_ROW_CLASS) || [];\r\n this._setRowsOpacityCore($rows, this.getColumns(), columnIndex, value)\r\n },\r\n _getCellElementsCore: function(rowIndex) {\r\n var $cells = this.callBase.apply(this, arguments);\r\n if ($cells) {\r\n var groupCellIndex = $cells.filter(\".\" + GROUP_CELL_CLASS).index();\r\n if (groupCellIndex >= 0 && $cells.length > groupCellIndex + 1) {\r\n return $cells.slice(0, groupCellIndex + 1)\r\n }\r\n }\r\n return $cells\r\n },\r\n _getBoundaryVisibleItemIndex: function(isTop, isFloor) {\r\n var itemIndex = 0;\r\n var prevOffset = 0;\r\n var offset = 0;\r\n var viewportBoundary = this._scrollTop;\r\n var $contentElement = this._findContentElement();\r\n var contentElementOffsetTop = $contentElement && $contentElement.offset().top;\r\n var dataController = this.getController(\"data\");\r\n var items = dataController.items();\r\n var tableElement = this.getTableElement();\r\n if (items.length && tableElement) {\r\n var rowElements = this._getRowElements(tableElement).filter(\":visible\");\r\n if (!isTop) {\r\n var height = getOuterHeight(this._hasHeight ? this.element() : getWindow());\r\n viewportBoundary += height\r\n }\r\n for (itemIndex = 0; itemIndex < items.length; itemIndex++) {\r\n prevOffset = offset;\r\n var $rowElement = $(rowElements).eq(itemIndex);\r\n if ($rowElement.length) {\r\n offset = $rowElement.offset();\r\n offset = (isTop ? offset.top : offset.top + getOuterHeight($rowElement)) - contentElementOffsetTop;\r\n if (offset > viewportBoundary) {\r\n if (itemIndex) {\r\n if (isFloor || 2 * viewportBoundary < Math.round(offset + prevOffset)) {\r\n itemIndex--\r\n }\r\n }\r\n break\r\n }\r\n }\r\n }\r\n if (itemIndex && itemIndex === items.length) {\r\n itemIndex--\r\n }\r\n }\r\n return itemIndex\r\n },\r\n getTopVisibleItemIndex: function(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(true, isFloor)\r\n },\r\n getBottomVisibleItemIndex: function(isFloor) {\r\n return this._getBoundaryVisibleItemIndex(false, isFloor)\r\n },\r\n getTopVisibleRowData: function() {\r\n var itemIndex = this.getTopVisibleItemIndex();\r\n var items = this._dataController.items();\r\n if (items[itemIndex]) {\r\n return items[itemIndex].data\r\n }\r\n },\r\n _scrollToElement: function($element, offset) {\r\n var scrollable = this.getScrollable();\r\n scrollable && scrollable.scrollToElement($element, offset)\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"wordWrapEnabled\":\r\n case \"showColumnLines\":\r\n case \"showRowLines\":\r\n case \"rowAlternationEnabled\":\r\n case \"rowTemplate\":\r\n case \"dataRowTemplate\":\r\n case \"twoWayBindingEnabled\":\r\n this._invalidate(true, true);\r\n args.handled = true;\r\n break;\r\n case \"scrolling\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n args.handled = true;\r\n break;\r\n case \"rtlEnabled\":\r\n this._rowHeight = null;\r\n this._tableElement = null;\r\n break;\r\n case \"loadPanel\":\r\n this._tableElement = null;\r\n this._invalidate(true, \"loadPanel.enabled\" !== args.fullName);\r\n args.handled = true;\r\n break;\r\n case \"noDataText\":\r\n this.renderNoDataText();\r\n args.handled = true\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._hideLoadingTimeoutID);\r\n this._scrollable && this._scrollable.dispose()\r\n },\r\n setScrollerSpacing: function() {},\r\n _restoreErrorRow: function() {}\r\n }\r\n }())\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.search.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport dataQuery from \"../../data/query\";\r\nvar SEARCH_PANEL_CLASS = \"search-panel\";\r\nvar SEARCH_TEXT_CLASS = \"search-text\";\r\nvar HEADER_PANEL_CLASS = \"header-panel\";\r\nvar FILTERING_TIMEOUT = 700;\r\n\r\nfunction allowSearch(column) {\r\n return isDefined(column.allowSearch) ? column.allowSearch : column.allowFiltering\r\n}\r\n\r\nfunction parseValue(column, text) {\r\n var lookup = column.lookup;\r\n if (!column.parseValue) {\r\n return text\r\n }\r\n if (lookup) {\r\n return column.parseValue.call(lookup, text)\r\n }\r\n return column.parseValue(text)\r\n}\r\nexport var searchModule = {\r\n defaultOptions: function() {\r\n return {\r\n searchPanel: {\r\n visible: false,\r\n width: 160,\r\n placeholder: messageLocalization.format(\"dxDataGrid-searchPanelPlaceholder\"),\r\n highlightSearchText: true,\r\n highlightCaseSensitive: false,\r\n text: \"\",\r\n searchVisibleColumnsOnly: false\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n publicMethods: function() {\r\n return this.callBase().concat([\"searchByText\"])\r\n },\r\n _calculateAdditionalFilter: function() {\r\n var filter = this.callBase();\r\n var searchFilter = function(that, text) {\r\n var i;\r\n var column;\r\n var columns = that._columnsController.getColumns();\r\n var searchVisibleColumnsOnly = that.option(\"searchPanel.searchVisibleColumnsOnly\");\r\n var lookup;\r\n var filters = [];\r\n if (!text) {\r\n return null\r\n }\r\n\r\n function onQueryDone(items) {\r\n var valueGetter = compileGetter(lookup.valueExpr);\r\n for (var _i = 0; _i < items.length; _i++) {\r\n var value = valueGetter(items[_i]);\r\n filters.push(column.createFilterExpression(value, null, \"search\"))\r\n }\r\n }\r\n for (i = 0; i < columns.length; i++) {\r\n column = columns[i];\r\n if (searchVisibleColumnsOnly && !column.visible) {\r\n continue\r\n }\r\n if (allowSearch(column) && column.calculateFilterExpression) {\r\n lookup = column.lookup;\r\n var filterValue = parseValue(column, text);\r\n if (lookup && lookup.items) {\r\n dataQuery(lookup.items).filter(column.createFilterExpression.call({\r\n dataField: lookup.displayExpr,\r\n dataType: lookup.dataType,\r\n calculateFilterExpression: column.calculateFilterExpression\r\n }, filterValue, null, \"search\")).enumerate().done(onQueryDone)\r\n } else if (void 0 !== filterValue) {\r\n filters.push(column.createFilterExpression(filterValue, null, \"search\"))\r\n }\r\n }\r\n }\r\n if (0 === filters.length) {\r\n return [\"!\"]\r\n }\r\n return gridCoreUtils.combineFilters(filters, \"or\")\r\n }(this, this.option(\"searchPanel.text\"));\r\n return gridCoreUtils.combineFilters([filter, searchFilter])\r\n },\r\n searchByText: function(text) {\r\n this.option(\"searchPanel.text\", text)\r\n },\r\n optionChanged: function(args) {\r\n switch (args.fullName) {\r\n case \"searchPanel.text\":\r\n case \"searchPanel\":\r\n this._applyFilter();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n },\r\n views: {\r\n headerPanel: function() {\r\n var getSearchPanelOptions = function(that) {\r\n return that.option(\"searchPanel\")\r\n };\r\n return {\r\n _getToolbarItems: function() {\r\n var items = this.callBase();\r\n return this._prepareSearchItem(items)\r\n },\r\n _prepareSearchItem: function(items) {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n var searchPanelOptions = getSearchPanelOptions(that);\r\n if (searchPanelOptions && searchPanelOptions.visible) {\r\n var toolbarItem = {\r\n template: function(data, index, container) {\r\n var $search = $(\"<div>\").addClass(that.addWidgetPrefix(SEARCH_PANEL_CLASS)).appendTo(container);\r\n that.getController(\"editorFactory\").createEditor($search, {\r\n width: searchPanelOptions.width,\r\n placeholder: searchPanelOptions.placeholder,\r\n parentType: \"searchPanel\",\r\n value: that.option(\"searchPanel.text\"),\r\n updateValueTimeout: FILTERING_TIMEOUT,\r\n setValue: function(value) {\r\n dataController.searchByText(value)\r\n },\r\n editorOptions: {\r\n inputAttr: {\r\n \"aria-label\": messageLocalization.format(\"\".concat(that.component.NAME, \"-ariaSearchInGrid\"))\r\n }\r\n }\r\n });\r\n that.resize()\r\n },\r\n name: \"searchPanel\",\r\n location: \"after\",\r\n locateInMenu: \"never\",\r\n sortIndex: 40\r\n };\r\n items.push(toolbarItem)\r\n }\r\n return items\r\n },\r\n getSearchTextEditor: function() {\r\n var that = this;\r\n var $element = that.element();\r\n var $searchPanel = $element.find(\".\" + that.addWidgetPrefix(SEARCH_PANEL_CLASS)).filter((function() {\r\n return $(this).closest(\".\" + that.addWidgetPrefix(HEADER_PANEL_CLASS)).is($element)\r\n }));\r\n if ($searchPanel.length) {\r\n return $searchPanel.dxTextBox(\"instance\")\r\n }\r\n return null\r\n },\r\n isVisible: function() {\r\n var searchPanelOptions = getSearchPanelOptions(this);\r\n return this.callBase() || searchPanelOptions && searchPanelOptions.visible\r\n },\r\n optionChanged: function(args) {\r\n if (\"searchPanel\" === args.name) {\r\n if (\"searchPanel.text\" === args.fullName) {\r\n var editor = this.getSearchTextEditor();\r\n if (editor) {\r\n editor.option(\"value\", args.value)\r\n }\r\n } else {\r\n this._invalidate()\r\n }\r\n args.handled = true\r\n } else {\r\n this.callBase(args)\r\n }\r\n }\r\n }\r\n }(),\r\n rowsView: {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._searchParams = []\r\n },\r\n _getFormattedSearchText: function(column, searchText) {\r\n var value = parseValue(column, searchText);\r\n var formatOptions = gridCoreUtils.getFormatOptionsByColumn(column, \"search\");\r\n return gridCoreUtils.formatValue(value, formatOptions)\r\n },\r\n _getStringNormalizer: function() {\r\n var isCaseSensitive = this.option(\"searchPanel.highlightCaseSensitive\");\r\n return function(str) {\r\n return isCaseSensitive ? str : str.toLowerCase()\r\n }\r\n },\r\n _findHighlightingTextNodes: function(column, cellElement, searchText) {\r\n var _$items;\r\n var $parent = cellElement.parent();\r\n var $items;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var normalizedSearchText = stringNormalizer(searchText);\r\n var resultTextNodes = [];\r\n if (!$parent.length) {\r\n $parent = $(\"<div>\").append(cellElement)\r\n } else if (column) {\r\n if (column.groupIndex >= 0 && !column.showWhenGrouped) {\r\n $items = cellElement\r\n } else {\r\n var columnIndex = this._columnsController.getVisibleIndex(column.index);\r\n $items = $parent.children(\"td\").eq(columnIndex).find(\"*\")\r\n }\r\n }\r\n $items = null !== (_$items = $items) && void 0 !== _$items && _$items.length ? $items : $parent.find(\"*\");\r\n $items.each((function(_, element) {\r\n var $contents = $(element).contents();\r\n for (var i = 0; i < $contents.length; i++) {\r\n var node = $contents.get(i);\r\n if (3 === node.nodeType) {\r\n var normalizedText = stringNormalizer(node.textContent || node.nodeValue);\r\n if (normalizedText.indexOf(normalizedSearchText) > -1) {\r\n resultTextNodes.push(node)\r\n }\r\n }\r\n }\r\n }));\r\n return resultTextNodes\r\n },\r\n _highlightSearchTextCore: function($textNode, searchText) {\r\n var $searchTextSpan = $(\"<span>\").addClass(this.addWidgetPrefix(SEARCH_TEXT_CLASS));\r\n var text = $textNode.text();\r\n var firstContentElement = $textNode[0];\r\n var stringNormalizer = this._getStringNormalizer();\r\n var index = stringNormalizer(text).indexOf(stringNormalizer(searchText));\r\n if (index >= 0) {\r\n if (firstContentElement.textContent) {\r\n firstContentElement.textContent = text.substr(0, index)\r\n } else {\r\n firstContentElement.nodeValue = text.substr(0, index)\r\n }\r\n $textNode.after($searchTextSpan.text(text.substr(index, searchText.length)));\r\n $textNode = $(domAdapter.createTextNode(text.substr(index + searchText.length))).insertAfter($searchTextSpan);\r\n return this._highlightSearchTextCore($textNode, searchText)\r\n }\r\n },\r\n _highlightSearchText: function(cellElement, isEquals, column) {\r\n var that = this;\r\n var stringNormalizer = this._getStringNormalizer();\r\n var searchText = that.option(\"searchPanel.text\");\r\n if (isEquals && column) {\r\n searchText = searchText && that._getFormattedSearchText(column, searchText)\r\n }\r\n if (searchText && that.option(\"searchPanel.highlightSearchText\")) {\r\n var textNodes = that._findHighlightingTextNodes(column, cellElement, searchText);\r\n textNodes.forEach(textNode => {\r\n if (isEquals) {\r\n if (stringNormalizer($(textNode).text()) === stringNormalizer(searchText)) {\r\n $(textNode).replaceWith($(\"<span>\").addClass(that.addWidgetPrefix(SEARCH_TEXT_CLASS)).text($(textNode).text()))\r\n }\r\n } else {\r\n that._highlightSearchTextCore($(textNode), searchText)\r\n }\r\n })\r\n }\r\n },\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this.option().rowTemplate || this.option(\"dataRowTemplate\")) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(function() {\r\n this._highlightSearchText(this.getTableElement())\r\n }.bind(this))\r\n } else {\r\n this._highlightSearchText(this.getTableElement())\r\n }\r\n }\r\n },\r\n _updateCell: function($cell, parameters) {\r\n var column = parameters.column;\r\n var dataType = column.lookup && column.lookup.dataType || column.dataType;\r\n var isEquals = \"string\" !== dataType;\r\n if (allowSearch(column) && !parameters.isOnForm) {\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n if (!this._searchParams.length) {\r\n clearTimeout(this._highlightTimer);\r\n this._highlightTimer = setTimeout(function() {\r\n this._searchParams.forEach(function(params) {\r\n this._highlightSearchText.apply(this, params)\r\n }.bind(this));\r\n this._searchParams = []\r\n }.bind(this))\r\n }\r\n this._searchParams.push([$cell, isEquals, column])\r\n } else {\r\n this._highlightSearchText($cell, isEquals, column)\r\n }\r\n }\r\n this.callBase($cell, parameters)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._highlightTimer);\r\n this.callBase()\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.selection.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport gridCore from \"../data_grid/ui.data_grid.core\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n touch\r\n} from \"../../core/utils/support\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport Selection from \"../selection/selection\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport errors from \"../widget/ui.errors\";\r\nvar EDITOR_CELL_CLASS = \"dx-editor-cell\";\r\nvar ROW_CLASS = \"dx-row\";\r\nvar ROW_SELECTION_CLASS = \"dx-selection\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-select-checkbox\";\r\nvar CHECKBOXES_HIDDEN_CLASS = \"dx-select-checkboxes-hidden\";\r\nvar COMMAND_SELECT_CLASS = \"dx-command-select\";\r\nvar SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATA_ROW_CLASS = \"dx-data-row\";\r\nvar SHOW_CHECKBOXES_MODE = \"selection.showCheckBoxesMode\";\r\nvar SELECTION_MODE = \"selection.mode\";\r\nvar processLongTap = function(that, dxEvent) {\r\n var selectionController = that.getController(\"selection\");\r\n var rowsView = that.getView(\"rowsView\");\r\n var $row = $(dxEvent.target).closest(\".\" + DATA_ROW_CLASS);\r\n var rowIndex = rowsView.getRowIndex($row);\r\n if (rowIndex < 0) {\r\n return\r\n }\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n if (selectionController.isSelectionWithCheckboxes()) {\r\n selectionController.stopSelectionWithCheckboxes()\r\n } else {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n } else {\r\n if (\"onClick\" === that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.startSelectionWithCheckboxes()\r\n }\r\n if (\"always\" !== that.option(SHOW_CHECKBOXES_MODE)) {\r\n selectionController.changeItemSelection(rowIndex, {\r\n control: true\r\n })\r\n }\r\n }\r\n};\r\nvar SelectionController = gridCore.Controller.inherit(function() {\r\n var selectionCellTemplate = (container, options) => {\r\n var component = options.component;\r\n var rowsView = component.getView(\"rowsView\");\r\n if (component.option(\"renderAsync\") && !component.option(\"selection.deferred\")) {\r\n options.value = component.isRowSelected(options.row.key)\r\n }\r\n rowsView.renderSelectCheckBoxContainer($(container), options)\r\n };\r\n var selectionHeaderTemplate = (container, options) => {\r\n var column = options.column;\r\n var $cellElement = $(container);\r\n var columnHeadersView = options.component.getView(\"columnHeadersView\");\r\n $cellElement.addClass(EDITOR_CELL_CLASS);\r\n columnHeadersView._renderSelectAllCheckBox($cellElement, column);\r\n columnHeadersView._attachSelectAllCheckBoxClickEvent($cellElement)\r\n };\r\n return {\r\n init: function() {\r\n var {\r\n deferred: deferred,\r\n selectAllMode: selectAllMode,\r\n mode: mode\r\n } = this.option(\"selection\") || {};\r\n if (\"infinite\" === this.option(\"scrolling.mode\") && !deferred && \"multiple\" === mode && \"allPages\" === selectAllMode) {\r\n errors.log(\"W1018\")\r\n }\r\n this._dataController = this.getController(\"data\");\r\n this._selectionMode = mode;\r\n this._isSelectionWithCheckboxes = false;\r\n this._selection = this._createSelection();\r\n this._updateSelectColumn();\r\n this.createAction(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n });\r\n this._dataController && this._dataController.pushed.add(this._handleDataPushed.bind(this))\r\n },\r\n _handleDataPushed: function(changes) {\r\n var removedKeys = changes.filter(change => \"remove\" === change.type).map(change => change.key);\r\n removedKeys.length && this.deselectRows(removedKeys)\r\n },\r\n _getSelectionConfig: function() {\r\n var dataController = this._dataController;\r\n var columnsController = this.getController(\"columns\");\r\n var selectionOptions = this.option(\"selection\") || {};\r\n var deferred = selectionOptions.deferred;\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var virtualPaging = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var allowSelectAll = this.option(\"selection.allowSelectAll\");\r\n var legacyScrollingMode = this.option(\"scrolling.legacyMode\");\r\n return {\r\n selectedKeys: this.option(\"selectedRowKeys\"),\r\n mode: this._selectionMode,\r\n deferred: deferred,\r\n maxFilterLengthInRequest: selectionOptions.maxFilterLengthInRequest,\r\n selectionFilter: this.option(\"selectionFilter\"),\r\n ignoreDisabledItems: true,\r\n allowLoadByRange: function() {\r\n var hasGroupColumns = columnsController.getGroupColumns().length > 0;\r\n return virtualPaging && !legacyScrollingMode && !hasGroupColumns && allowSelectAll && !deferred\r\n },\r\n key: function() {\r\n return null === dataController || void 0 === dataController ? void 0 : dataController.key()\r\n },\r\n keyOf: function(item) {\r\n return null === dataController || void 0 === dataController ? void 0 : dataController.keyOf(item)\r\n },\r\n dataFields: function() {\r\n var _dataController$dataS;\r\n return null === (_dataController$dataS = dataController.dataSource()) || void 0 === _dataController$dataS ? void 0 : _dataController$dataS.select()\r\n },\r\n load: function(options) {\r\n var _dataController$dataS2;\r\n return (null === (_dataController$dataS2 = dataController.dataSource()) || void 0 === _dataController$dataS2 ? void 0 : _dataController$dataS2.load(options)) || (new Deferred).resolve([])\r\n },\r\n plainItems: function() {\r\n return dataController.items(true)\r\n },\r\n isItemSelected: function(item) {\r\n return item.selected\r\n },\r\n isSelectableItem: function(item) {\r\n return \"data\" === (null === item || void 0 === item ? void 0 : item.rowType) && !item.isNewRow\r\n },\r\n getItemData: function(item) {\r\n return (null === item || void 0 === item ? void 0 : item.oldData) || (null === item || void 0 === item ? void 0 : item.data) || item\r\n },\r\n filter: function() {\r\n return dataController.getCombinedFilter(deferred)\r\n },\r\n totalCount: () => dataController.totalCount(),\r\n getLoadOptions: function(loadItemIndex, focusedItemIndex, shiftItemIndex) {\r\n var _dataController$dataS3, _dataController$dataS4;\r\n var {\r\n sort: sort,\r\n filter: filter\r\n } = null !== (_dataController$dataS3 = null === (_dataController$dataS4 = dataController.dataSource()) || void 0 === _dataController$dataS4 ? void 0 : _dataController$dataS4.lastLoadOptions()) && void 0 !== _dataController$dataS3 ? _dataController$dataS3 : {};\r\n var minIndex = Math.min(loadItemIndex, focusedItemIndex);\r\n var maxIndex = Math.max(loadItemIndex, focusedItemIndex);\r\n if (isDefined(shiftItemIndex)) {\r\n minIndex = Math.min(shiftItemIndex, minIndex);\r\n maxIndex = Math.max(shiftItemIndex, maxIndex)\r\n }\r\n var take = maxIndex - minIndex + 1;\r\n return {\r\n skip: minIndex,\r\n take: take,\r\n filter: filter,\r\n sort: sort\r\n }\r\n },\r\n onSelectionChanged: this._updateSelectedItems.bind(this)\r\n }\r\n },\r\n _updateSelectColumn: function() {\r\n var columnsController = this.getController(\"columns\");\r\n var isSelectColumnVisible = this.isSelectColumnVisible();\r\n columnsController.addCommandColumn({\r\n type: \"selection\",\r\n command: \"select\",\r\n visible: isSelectColumnVisible,\r\n visibleIndex: -1,\r\n dataType: \"boolean\",\r\n alignment: \"center\",\r\n cssClass: COMMAND_SELECT_CLASS,\r\n width: \"auto\",\r\n cellTemplate: selectionCellTemplate,\r\n headerCellTemplate: selectionHeaderTemplate\r\n });\r\n columnsController.columnOption(\"command:select\", \"visible\", isSelectColumnVisible)\r\n },\r\n _createSelection: function() {\r\n var options = this._getSelectionConfig();\r\n return new Selection(options)\r\n },\r\n _fireSelectionChanged: function(options) {\r\n var argument = this.option(\"selection.deferred\") ? {\r\n selectionFilter: this.option(\"selectionFilter\")\r\n } : {\r\n selectedRowKeys: this.option(\"selectedRowKeys\")\r\n };\r\n this.selectionChanged.fire(argument);\r\n if (options) {\r\n this.executeAction(\"onSelectionChanged\", options)\r\n }\r\n },\r\n _updateCheckboxesState: function(options) {\r\n var isDeferredMode = options.isDeferredMode;\r\n var selectionFilter = options.selectionFilter;\r\n var selectedItemKeys = options.selectedItemKeys;\r\n var removedItemKeys = options.removedItemKeys;\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n if (isDeferredMode ? selectionFilter && function(that, selectionFilter) {\r\n var keyIndex = 0;\r\n var store = that._dataController.store();\r\n var key = store && store.key();\r\n var isComplexKey = Array.isArray(key);\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (isComplexKey && Array.isArray(selectionFilter[0]) && \"and\" === selectionFilter[1]) {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i])) {\r\n if (selectionFilter[i][0] !== key[keyIndex] || \"=\" !== selectionFilter[i][1]) {\r\n return true\r\n }\r\n keyIndex++\r\n }\r\n }\r\n return false\r\n }\r\n return key !== selectionFilter[0]\r\n }(this, selectionFilter) : selectedItemKeys.length > 1) {\r\n this.startSelectionWithCheckboxes()\r\n } else if (isDeferredMode ? selectionFilter && !selectionFilter.length : 0 === selectedItemKeys.length && removedItemKeys.length) {\r\n this.stopSelectionWithCheckboxes()\r\n }\r\n }\r\n },\r\n _updateSelectedItems: function(args) {\r\n var selectionChangedOptions;\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n var selectionFilter = this._selection.selectionFilter();\r\n var dataController = this._dataController;\r\n var items = dataController.items(true);\r\n var visibleItems = dataController.items();\r\n if (!items) {\r\n return\r\n }\r\n var isSelectionWithCheckboxes = this.isSelectionWithCheckboxes();\r\n var changedItemIndexes = this.getChangedItemIndexes(items);\r\n var visibleChangedItemIndexes = this.getChangedItemIndexes(visibleItems);\r\n this._updateCheckboxesState({\r\n selectedItemKeys: args.selectedItemKeys,\r\n removedItemKeys: args.removedItemKeys,\r\n selectionFilter: selectionFilter,\r\n isDeferredMode: isDeferredMode\r\n });\r\n if (changedItemIndexes.length || isSelectionWithCheckboxes !== this.isSelectionWithCheckboxes()) {\r\n dataController.updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: visibleChangedItemIndexes\r\n })\r\n }\r\n if (isDeferredMode) {\r\n this.option(\"selectionFilter\", selectionFilter);\r\n selectionChangedOptions = {}\r\n } else if (args.addedItemKeys.length || args.removedItemKeys.length) {\r\n this._selectedItemsInternalChange = true;\r\n this.option(\"selectedRowKeys\", args.selectedItemKeys.slice(0));\r\n this._selectedItemsInternalChange = false;\r\n selectionChangedOptions = {\r\n selectedRowsData: args.selectedItems.slice(0),\r\n selectedRowKeys: args.selectedItemKeys.slice(0),\r\n currentSelectedRowKeys: args.addedItemKeys.slice(0),\r\n currentDeselectedRowKeys: args.removedItemKeys.slice(0)\r\n }\r\n }\r\n this._fireSelectionChanged(selectionChangedOptions)\r\n },\r\n getChangedItemIndexes: function(items) {\r\n var itemIndexes = [];\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n for (var i = 0, length = items.length; i < length; i++) {\r\n var row = items[i];\r\n var isItemSelected = this.isRowSelected(isDeferredSelection ? row.data : row.key);\r\n if (this._selection.isDataItem(row) && row.isSelected !== isItemSelected) {\r\n itemIndexes.push(i)\r\n }\r\n }\r\n return itemIndexes\r\n },\r\n callbackNames: function() {\r\n return [\"selectionChanged\"]\r\n },\r\n optionChanged: function(args) {\r\n this.callBase(args);\r\n switch (args.name) {\r\n case \"selection\":\r\n var oldSelectionMode = this._selectionMode;\r\n this.init();\r\n if (\"selection.showCheckBoxesMode\" !== args.fullName) {\r\n var selectionMode = this._selectionMode;\r\n var selectedRowKeys = this.option(\"selectedRowKeys\");\r\n if (oldSelectionMode !== selectionMode) {\r\n if (\"single\" === selectionMode) {\r\n if (selectedRowKeys.length > 1) {\r\n selectedRowKeys = [selectedRowKeys[0]]\r\n }\r\n } else if (\"multiple\" !== selectionMode) {\r\n selectedRowKeys = []\r\n }\r\n }\r\n this.selectRows(selectedRowKeys).always(() => {\r\n this._fireSelectionChanged()\r\n })\r\n }\r\n this.getController(\"columns\").updateColumns();\r\n args.handled = true;\r\n break;\r\n case \"selectionFilter\":\r\n this._selection.selectionFilter(args.value);\r\n args.handled = true;\r\n break;\r\n case \"selectedRowKeys\":\r\n var value = args.value || [];\r\n if (Array.isArray(value) && !this._selectedItemsInternalChange && (this.component.getDataSource() || !value.length)) {\r\n this.selectRows(value)\r\n }\r\n args.handled = true\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"selectRows\", \"deselectRows\", \"selectRowsByIndexes\", \"getSelectedRowKeys\", \"getSelectedRowsData\", \"clearSelection\", \"selectAll\", \"deselectAll\", \"startSelectionWithCheckboxes\", \"stopSelectionWithCheckboxes\", \"isRowSelected\"]\r\n },\r\n isRowSelected: function(arg) {\r\n return this._selection.isItemSelected(arg)\r\n },\r\n isSelectColumnVisible: function() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || \"onClick\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n },\r\n _isOnePageSelectAll: function() {\r\n return \"page\" === this.option(\"selection.selectAllMode\")\r\n },\r\n isSelectAll: function() {\r\n return this._selection.getSelectAllState(this._isOnePageSelectAll())\r\n },\r\n selectAll: function() {\r\n if (\"onClick\" === this.option(SHOW_CHECKBOXES_MODE)) {\r\n this.startSelectionWithCheckboxes()\r\n }\r\n return this._selection.selectAll(this._isOnePageSelectAll())\r\n },\r\n deselectAll: function() {\r\n return this._selection.deselectAll(this._isOnePageSelectAll())\r\n },\r\n clearSelection: function() {\r\n return this.selectedItemKeys([])\r\n },\r\n refresh: function() {\r\n var selectedRowKeys = this.option(\"selectedRowKeys\") || [];\r\n if (!this.option(\"selection.deferred\") && selectedRowKeys.length) {\r\n return this.selectedItemKeys(selectedRowKeys)\r\n }\r\n return (new Deferred).resolve().promise()\r\n },\r\n selectedItemKeys: function(value, preserve, isDeselect, isSelectAll) {\r\n return this._selection.selectedItemKeys(value, preserve, isDeselect, isSelectAll)\r\n },\r\n getSelectedRowKeys: function() {\r\n return this._selection.getSelectedItemKeys()\r\n },\r\n selectRows: function(keys, preserve) {\r\n return this.selectedItemKeys(keys, preserve)\r\n },\r\n deselectRows: function(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n },\r\n selectRowsByIndexes: function(indexes) {\r\n var items = this._dataController.items();\r\n var keys = [];\r\n if (!Array.isArray(indexes)) {\r\n indexes = Array.prototype.slice.call(arguments, 0)\r\n }\r\n each(indexes, (function() {\r\n var item = items[this];\r\n if (item && \"data\" === item.rowType) {\r\n keys.push(item.key)\r\n }\r\n }));\r\n return this.selectRows(keys)\r\n },\r\n getSelectedRowsData: function() {\r\n return this._selection.getSelectedItems()\r\n },\r\n changeItemSelection: function(visibleItemIndex, keys, setFocusOnly) {\r\n keys = keys || {};\r\n if (this.isSelectionWithCheckboxes()) {\r\n keys.control = true\r\n }\r\n var loadedItemIndex = visibleItemIndex + this._dataController.getRowIndexOffset() - this._dataController.getRowIndexOffset(true);\r\n return this._selection.changeItemSelection(loadedItemIndex, keys, setFocusOnly)\r\n },\r\n focusedItemIndex: function(itemIndex) {\r\n if (isDefined(itemIndex)) {\r\n this._selection._focusedItemIndex = itemIndex\r\n } else {\r\n return this._selection._focusedItemIndex\r\n }\r\n },\r\n isSelectionWithCheckboxes: function() {\r\n return \"multiple\" === this.option(SELECTION_MODE) && (\"always\" === this.option(SHOW_CHECKBOXES_MODE) || this._isSelectionWithCheckboxes)\r\n },\r\n startSelectionWithCheckboxes: function() {\r\n if (\"multiple\" === this.option(SELECTION_MODE) && !this.isSelectionWithCheckboxes()) {\r\n this._isSelectionWithCheckboxes = true;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n },\r\n stopSelectionWithCheckboxes: function() {\r\n if (this._isSelectionWithCheckboxes) {\r\n this._isSelectionWithCheckboxes = false;\r\n this._updateSelectColumn();\r\n return true\r\n }\r\n return false\r\n }\r\n }\r\n}());\r\nexport var selectionModule = {\r\n defaultOptions: function() {\r\n return {\r\n selection: {\r\n mode: \"none\",\r\n showCheckBoxesMode: \"onClick\",\r\n allowSelectAll: true,\r\n selectAllMode: \"allPages\",\r\n maxFilterLengthInRequest: 1500,\r\n deferred: false\r\n },\r\n selectionFilter: [],\r\n selectedRowKeys: []\r\n }\r\n },\r\n controllers: {\r\n selection: SelectionController\r\n },\r\n extenders: {\r\n controllers: {\r\n data: {\r\n init: function() {\r\n var selectionController = this.getController(\"selection\");\r\n var isDeferredMode = this.option(\"selection.deferred\");\r\n this.callBase.apply(this, arguments);\r\n if (isDeferredMode) {\r\n selectionController._updateCheckboxesState({\r\n isDeferredMode: true,\r\n selectionFilter: this.option(\"selectionFilter\")\r\n })\r\n }\r\n },\r\n _loadDataSource: function() {\r\n var that = this;\r\n return that.callBase().done((function() {\r\n that.getController(\"selection\").refresh()\r\n }))\r\n },\r\n _processDataItem: function(item, options) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var hasSelectColumn = selectionController.isSelectColumnVisible();\r\n var isDeferredSelection = options.isDeferredSelection = void 0 === options.isDeferredSelection ? this.option(\"selection.deferred\") : options.isDeferredSelection;\r\n var dataItem = this.callBase.apply(this, arguments);\r\n dataItem.isSelected = selectionController.isRowSelected(isDeferredSelection ? dataItem.data : dataItem.key);\r\n if (hasSelectColumn && dataItem.values) {\r\n for (var i = 0; i < options.visibleColumns.length; i++) {\r\n if (\"select\" === options.visibleColumns[i].command) {\r\n dataItem.values[i] = dataItem.isSelected;\r\n break\r\n }\r\n }\r\n }\r\n return dataItem\r\n },\r\n refresh: function(options) {\r\n var that = this;\r\n var d = new Deferred;\r\n this.callBase.apply(this, arguments).done((function() {\r\n if (!options || options.selection) {\r\n that.getController(\"selection\").refresh().done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve()\r\n }\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n _handleDataChanged: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if ((!e || \"refresh\" === e.changeType) && !this._repaintChangesOnly) {\r\n this.getController(\"selection\").focusedItemIndex(-1)\r\n }\r\n },\r\n _applyChange: function(change) {\r\n if (change && \"updateSelection\" === change.changeType) {\r\n change.items.forEach((item, index) => {\r\n var currentItem = this._items[index];\r\n if (currentItem) {\r\n currentItem.isSelected = item.isSelected;\r\n currentItem.values = item.values\r\n }\r\n });\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _endUpdateCore: function() {\r\n var changes = this._changes;\r\n var isUpdateSelection = changes.length > 1 && changes.every(change => \"updateSelection\" === change.changeType);\r\n if (isUpdateSelection) {\r\n var itemIndexes = changes.map(change => change.itemIndexes || []).reduce((a, b) => a.concat(b));\r\n this._changes = [{\r\n changeType: \"updateSelection\",\r\n itemIndexes: itemIndexes\r\n }]\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n contextMenu: {\r\n _contextMenuPrepared: function(options) {\r\n var dxEvent = options.event;\r\n if (dxEvent.originalEvent && \"dxhold\" !== dxEvent.originalEvent.type || options.items && options.items.length > 0) {\r\n return\r\n }\r\n processLongTap(this, dxEvent)\r\n }\r\n }\r\n },\r\n views: {\r\n columnHeadersView: {\r\n init: function() {\r\n this.callBase();\r\n this.getController(\"selection\").selectionChanged.add(this._updateSelectAllValue.bind(this))\r\n },\r\n _updateSelectAllValue: function() {\r\n var $element = this.element();\r\n var $editor = $element && $element.find(\".\" + SELECT_CHECKBOX_CLASS);\r\n if ($element && $editor.length && \"multiple\" === this.option(\"selection.mode\")) {\r\n var selectAllValue = this.getController(\"selection\").isSelectAll();\r\n var hasSelection = false !== selectAllValue;\r\n var isVisible = this.option(\"selection.allowSelectAll\") ? !this.getController(\"data\").isEmpty() : hasSelection;\r\n $editor.dxCheckBox(\"instance\").option({\r\n visible: isVisible,\r\n value: selectAllValue\r\n })\r\n }\r\n },\r\n _handleDataChanged: function(e) {\r\n this.callBase(e);\r\n if (!e || \"refresh\" === e.changeType || e.repaintChangesOnly && \"update\" === e.changeType) {\r\n this._updateSelectAllValue()\r\n }\r\n },\r\n _renderSelectAllCheckBox: function($container, column) {\r\n var that = this;\r\n var selectionController = that.getController(\"selection\");\r\n var isEmptyData = that.getController(\"data\").isEmpty();\r\n var groupElement = $(\"<div>\").appendTo($container).addClass(SELECT_CHECKBOX_CLASS);\r\n that.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectAll\"), groupElement);\r\n that.getController(\"editorFactory\").createEditor(groupElement, extend({}, column, {\r\n parentType: \"headerRow\",\r\n dataType: \"boolean\",\r\n value: selectionController.isSelectAll(),\r\n editorOptions: {\r\n visible: !isEmptyData && (that.option(\"selection.allowSelectAll\") || false !== selectionController.isSelectAll())\r\n },\r\n tabIndex: that.option(\"useLegacyKeyboardNavigation\") ? -1 : that.option(\"tabIndex\") || 0,\r\n setValue: function(value, e) {\r\n var allowSelectAll = that.option(\"selection.allowSelectAll\");\r\n e.component.option(\"visible\", allowSelectAll || false !== e.component.option(\"value\"));\r\n if (!e.event || selectionController.isSelectAll() === value) {\r\n return\r\n }\r\n if (e.value && !allowSelectAll) {\r\n e.component.option(\"value\", false)\r\n } else {\r\n e.value ? selectionController.selectAll() : selectionController.deselectAll()\r\n }\r\n e.event.preventDefault()\r\n }\r\n }));\r\n return groupElement\r\n },\r\n _attachSelectAllCheckBoxClickEvent: function($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var event = e.event;\r\n if (!$(event.target).closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n eventsEngine.trigger($(event.currentTarget).children(\".\" + SELECT_CHECKBOX_CLASS), clickEventName)\r\n }\r\n event.preventDefault()\r\n })))\r\n }\r\n },\r\n rowsView: {\r\n renderSelectCheckBoxContainer: function($container, options) {\r\n if (\"data\" === options.rowType && !options.row.isNewRow) {\r\n $container.addClass(EDITOR_CELL_CLASS);\r\n this._attachCheckBoxClickEvent($container);\r\n this._renderSelectCheckBox($container, options)\r\n } else {\r\n gridCoreUtils.setEmptyText($container)\r\n }\r\n },\r\n _renderSelectCheckBox: function(container, options) {\r\n var groupElement = $(\"<div>\").addClass(SELECT_CHECKBOX_CLASS).appendTo(container);\r\n this.setAria(\"label\", messageLocalization.format(\"dxDataGrid-ariaSelectRow\"), groupElement);\r\n this.getController(\"editorFactory\").createEditor(groupElement, extend({}, options.column, {\r\n parentType: \"dataRow\",\r\n dataType: \"boolean\",\r\n lookup: null,\r\n value: options.value,\r\n setValue: function(value, e) {\r\n var _e$event;\r\n if (\"keydown\" === (null === e || void 0 === e ? void 0 : null === (_e$event = e.event) || void 0 === _e$event ? void 0 : _e$event.type)) {\r\n eventsEngine.trigger(e.element, clickEventName, e)\r\n }\r\n },\r\n row: options.row\r\n }));\r\n return groupElement\r\n },\r\n _attachCheckBoxClickEvent: function($element) {\r\n eventsEngine.on($element, clickEventName, this.createAction((function(e) {\r\n var selectionController = this.getController(\"selection\");\r\n var event = e.event;\r\n var rowIndex = this.getRowIndex($(event.currentTarget).closest(\".\" + ROW_CLASS));\r\n if (rowIndex >= 0) {\r\n selectionController.startSelectionWithCheckboxes();\r\n selectionController.changeItemSelection(rowIndex, {\r\n shift: event.shiftKey\r\n });\r\n if ($(event.target).closest(\".\" + SELECT_CHECKBOX_CLASS).length) {\r\n this.getController(\"data\").updateItems({\r\n changeType: \"updateSelection\",\r\n itemIndexes: [rowIndex]\r\n })\r\n }\r\n }\r\n })))\r\n },\r\n _update: function(change) {\r\n var that = this;\r\n var tableElements = that.getTableElements();\r\n if (\"updateSelection\" === change.changeType) {\r\n if (tableElements.length > 0) {\r\n each(tableElements, (function(_, tableElement) {\r\n each(change.itemIndexes || [], (function(_, index) {\r\n var $row;\r\n if (change.items[index]) {\r\n $row = that._getRowElements($(tableElement)).eq(index);\r\n if ($row.length) {\r\n var isSelected = change.items[index].isSelected;\r\n $row.toggleClass(ROW_SELECTION_CLASS, void 0 === isSelected ? false : isSelected).find(\".\" + SELECT_CHECKBOX_CLASS).dxCheckBox(\"option\", \"value\", isSelected);\r\n that.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n }))\r\n }));\r\n that._updateCheckboxesClass()\r\n }\r\n } else {\r\n that.callBase(change)\r\n }\r\n },\r\n _createTable: function() {\r\n var that = this;\r\n var selectionMode = that.option(\"selection.mode\");\r\n var $table = that.callBase.apply(that, arguments);\r\n if (\"none\" !== selectionMode) {\r\n if (\"onLongTap\" === that.option(SHOW_CHECKBOXES_MODE) || !touch) {\r\n eventsEngine.on($table, addNamespace(holdEvent.name, \"dxDataGridRowsView\"), \".\" + DATA_ROW_CLASS, that.createAction((function(e) {\r\n processLongTap(that.component, e.event);\r\n e.event.stopPropagation()\r\n })))\r\n }\r\n eventsEngine.on($table, \"mousedown selectstart\", that.createAction((function(e) {\r\n var event = e.event;\r\n if (event.shiftKey) {\r\n event.preventDefault()\r\n }\r\n })))\r\n }\r\n return $table\r\n },\r\n _createRow: function(row) {\r\n var $row = this.callBase.apply(this, arguments);\r\n if (row) {\r\n var isSelected = row.isSelected;\r\n if (isSelected) {\r\n $row.addClass(ROW_SELECTION_CLASS)\r\n }\r\n var selectionMode = this.option(SELECTION_MODE);\r\n if (\"none\" !== selectionMode) {\r\n this.setAria(\"selected\", isSelected, $row)\r\n }\r\n }\r\n return $row\r\n },\r\n _rowClick: function(e) {\r\n var dxEvent = e.event;\r\n var isSelectionDisabled = $(dxEvent.target).closest(\".\" + SELECTION_DISABLED_CLASS).length;\r\n if (!this.isClickableElement($(dxEvent.target))) {\r\n if (!isSelectionDisabled && (\"multiple\" !== this.option(SELECTION_MODE) || \"always\" !== this.option(SHOW_CHECKBOXES_MODE))) {\r\n if (this.getController(\"selection\").changeItemSelection(e.rowIndex, {\r\n control: isCommandKeyPressed(dxEvent),\r\n shift: dxEvent.shiftKey\r\n })) {\r\n dxEvent.preventDefault();\r\n e.handled = true\r\n }\r\n }\r\n this.callBase(e)\r\n }\r\n },\r\n isClickableElement: function($target) {\r\n var isCommandSelect = $target.closest(\".\" + COMMAND_SELECT_CLASS).length;\r\n return !!isCommandSelect\r\n },\r\n _renderCore: function(change) {\r\n this.callBase(change);\r\n this._updateCheckboxesClass()\r\n },\r\n _updateCheckboxesClass: function() {\r\n var tableElements = this.getTableElements();\r\n var selectionController = this.getController(\"selection\");\r\n var isCheckBoxesHidden = selectionController.isSelectColumnVisible() && !selectionController.isSelectionWithCheckboxes();\r\n each(tableElements, (function(_, tableElement) {\r\n $(tableElement).toggleClass(CHECKBOXES_HIDDEN_CLASS, isCheckBoxesHidden)\r\n }))\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.sorting_mixin.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport $ from \"../../core/renderer\";\r\nvar SORT_CLASS = \"dx-sort\";\r\nvar SORT_NONE_CLASS = \"dx-sort-none\";\r\nvar SORTUP_CLASS = \"dx-sort-up\";\r\nvar SORTDOWN_CLASS = \"dx-sort-down\";\r\nvar SORT_INDEX_CLASS = \"dx-sort-index\";\r\nvar SORT_INDEX_ICON_CLASS = \"dx-sort-index-icon\";\r\nvar HEADERS_ACTION_CLASS = \"action\";\r\nexport default {\r\n _applyColumnState: function(options) {\r\n var ariaSortState;\r\n var $sortIndicator;\r\n var sortingMode = this.option(\"sorting.mode\");\r\n var rootElement = options.rootElement;\r\n var column = options.column;\r\n var $indicatorsContainer = this._getIndicatorContainer(rootElement);\r\n if (\"sort\" === options.name) {\r\n rootElement.find(\".\" + SORT_CLASS).remove();\r\n !$indicatorsContainer.children().length && $indicatorsContainer.remove();\r\n var isSortingAllowed = \"none\" !== sortingMode && column.allowSorting;\r\n if (!isDefined(column.groupIndex) && (isSortingAllowed || isDefined(column.sortOrder))) {\r\n ariaSortState = \"asc\" === column.sortOrder ? \"ascending\" : \"descending\";\r\n $sortIndicator = this.callBase(options).toggleClass(SORTUP_CLASS, \"asc\" === column.sortOrder).toggleClass(SORTDOWN_CLASS, \"desc\" === column.sortOrder);\r\n var hasSeveralSortIndexes = this.getController && !!this.getController(\"columns\").columnOption(\"sortIndex:1\");\r\n if (hasSeveralSortIndexes && this.option(\"sorting.showSortIndexes\") && column.sortIndex >= 0) {\r\n $(\"<span>\").addClass(SORT_INDEX_ICON_CLASS).text(column.sortIndex + 1).appendTo($sortIndicator);\r\n $sortIndicator.addClass(SORT_INDEX_CLASS)\r\n }\r\n if (isSortingAllowed) {\r\n options.rootElement.addClass(this.addWidgetPrefix(HEADERS_ACTION_CLASS))\r\n }\r\n }\r\n if (!isDefined(column.sortOrder)) {\r\n this.setAria(\"sort\", \"none\", rootElement)\r\n } else {\r\n this.setAria(\"sort\", ariaSortState, rootElement)\r\n }\r\n return $sortIndicator\r\n } else {\r\n return this.callBase(options)\r\n }\r\n },\r\n _getIndicatorClassName: function(name) {\r\n if (\"sort\" === name) {\r\n return SORT_CLASS\r\n } else if (\"sortIndex\" === name) {\r\n return SORT_INDEX_ICON_CLASS\r\n }\r\n return this.callBase(name)\r\n },\r\n _renderIndicator: function(options) {\r\n var column = options.column;\r\n var $container = options.container;\r\n var $indicator = options.indicator;\r\n if (\"sort\" === options.name) {\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n if (!isDefined(column.sortOrder)) {\r\n $indicator && $indicator.addClass(SORT_NONE_CLASS)\r\n }\r\n if ($container.children().length && (!rtlEnabled && \"left\" === options.columnAlignment || rtlEnabled && \"right\" === options.columnAlignment)) {\r\n $container.prepend($indicator);\r\n return\r\n }\r\n }\r\n this.callBase(options)\r\n },\r\n _updateIndicator: function($cell, column, indicatorName) {\r\n if (\"sort\" === indicatorName && isDefined(column.groupIndex)) {\r\n return\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _getIndicatorElements: function($cell, returnAll) {\r\n var $indicatorElements = this.callBase($cell);\r\n return returnAll ? $indicatorElements : $indicatorElements && $indicatorElements.not(\".\" + SORT_NONE_CLASS)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.sorting.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport sortingMixin from \"../grid_core/ui.grid_core.sorting_mixin\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nvar COLUMN_HEADERS_VIEW_NAMESPACE = \"dxDataGridColumnHeadersView\";\r\nvar ColumnHeadersViewSortingExtender = extend({}, sortingMixin, {\r\n _createRow(row) {\r\n var $row = this.callBase(row);\r\n if (\"header\" === row.rowType) {\r\n eventsEngine.on($row, addNamespace(clickEventName, COLUMN_HEADERS_VIEW_NAMESPACE), \"td\", this.createAction(e => {\r\n this._processHeaderAction(e.event, $row)\r\n }))\r\n }\r\n return $row\r\n },\r\n _processHeaderAction: function(event, $row) {\r\n if ($(event.currentTarget).parent().get(0) !== $row.get(0)) {\r\n return\r\n }\r\n var that = this;\r\n var keyName = null;\r\n var $cellElementFromEvent = $(event.currentTarget);\r\n var rowIndex = $cellElementFromEvent.parent().index();\r\n var columnIndex = -1;\r\n [].slice.call(that.getCellElements(rowIndex)).some(($cellElement, index) => {\r\n if ($cellElement === $cellElementFromEvent.get(0)) {\r\n columnIndex = index;\r\n return true\r\n }\r\n });\r\n var visibleColumns = that._columnsController.getVisibleColumns(rowIndex);\r\n var column = visibleColumns[columnIndex];\r\n var editingController = that.getController(\"editing\");\r\n var editingMode = that.option(\"editing.mode\");\r\n var isCellEditing = editingController && editingController.isEditing() && (\"batch\" === editingMode || \"cell\" === editingMode);\r\n if (isCellEditing || !that._isSortableElement($(event.target))) {\r\n return\r\n }\r\n if (column && !isDefined(column.groupIndex) && !column.command) {\r\n if (event.shiftKey) {\r\n keyName = \"shift\"\r\n } else if (isCommandKeyPressed(event)) {\r\n keyName = \"ctrl\"\r\n }\r\n setTimeout(() => {\r\n that._columnsController.changeSortOrder(column.index, keyName)\r\n })\r\n }\r\n },\r\n _renderCellContent($cell, options) {\r\n var column = options.column;\r\n if (!column.command && \"header\" === options.rowType) {\r\n this._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $cell,\r\n column: column,\r\n showColumnLines: this.option(\"showColumnLines\")\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _columnOptionChanged(e) {\r\n var changeTypes = e.changeTypes;\r\n if (1 === changeTypes.length && changeTypes.sorting) {\r\n this._updateIndicators(\"sort\");\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nvar HeaderPanelSortingExtender = extend({}, sortingMixin, {\r\n _createGroupPanelItem($rootElement, groupColumn) {\r\n var that = this;\r\n var $item = that.callBase(...arguments);\r\n eventsEngine.on($item, addNamespace(clickEventName, \"dxDataGridHeaderPanel\"), that.createAction(() => {\r\n that._processGroupItemAction(groupColumn.index)\r\n }));\r\n that._applyColumnState({\r\n name: \"sort\",\r\n rootElement: $item,\r\n column: {\r\n alignment: that.option(\"rtlEnabled\") ? \"right\" : \"left\",\r\n allowSorting: groupColumn.allowSorting,\r\n sortOrder: \"desc\" === groupColumn.sortOrder ? \"desc\" : \"asc\"\r\n },\r\n showColumnLines: true\r\n });\r\n return $item\r\n },\r\n _processGroupItemAction(groupColumnIndex) {\r\n setTimeout(() => this.getController(\"columns\").changeSortOrder(groupColumnIndex))\r\n },\r\n optionChanged(args) {\r\n switch (args.name) {\r\n case \"sorting\":\r\n this._invalidate();\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport var sortingModule = {\r\n defaultOptions: () => ({\r\n sorting: {\r\n mode: \"single\",\r\n ascendingText: messageLocalization.format(\"dxDataGrid-sortingAscendingText\"),\r\n descendingText: messageLocalization.format(\"dxDataGrid-sortingDescendingText\"),\r\n clearText: messageLocalization.format(\"dxDataGrid-sortingClearText\"),\r\n showSortIndexes: true\r\n }\r\n }),\r\n extenders: {\r\n views: {\r\n columnHeadersView: ColumnHeadersViewSortingExtender,\r\n headerPanel: HeaderPanelSortingExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.state_storing_core.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n sessionStorage\r\n} from \"../../core/utils/storage\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPlainObject,\r\n isEmptyObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nvar DATE_REGEX = /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):(\\d{2}(?:\\.\\d*)?)Z$/;\r\nvar parseDates = function parseDates(state) {\r\n if (!state) {\r\n return\r\n }\r\n each(state, (function(key, value) {\r\n if (isPlainObject(value) || Array.isArray(value)) {\r\n parseDates(value)\r\n } else if (\"string\" === typeof value) {\r\n var date = DATE_REGEX.exec(value);\r\n if (date) {\r\n state[key] = new Date(Date.UTC(+date[1], +date[2] - 1, +date[3], +date[4], +date[5], +date[6]))\r\n }\r\n }\r\n }))\r\n};\r\nexport var StateStoringController = modules.ViewController.inherit(function() {\r\n var getStorage = function(options) {\r\n var storage = \"sessionStorage\" === options.type ? sessionStorage() : getWindow().localStorage;\r\n if (!storage) {\r\n throw new Error(\"E1007\")\r\n }\r\n return storage\r\n };\r\n var getUniqueStorageKey = function(options) {\r\n return isDefined(options.storageKey) ? options.storageKey : \"storage\"\r\n };\r\n return {\r\n _loadState: function() {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n return options.customLoad && options.customLoad()\r\n }\r\n try {\r\n return JSON.parse(getStorage(options).getItem(getUniqueStorageKey(options)))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n _saveState: function(state) {\r\n var options = this.option(\"stateStoring\");\r\n if (\"custom\" === options.type) {\r\n options.customSave && options.customSave(state);\r\n return\r\n }\r\n try {\r\n getStorage(options).setItem(getUniqueStorageKey(options), JSON.stringify(state))\r\n } catch (e) {\r\n errors.log(e.message)\r\n }\r\n },\r\n publicMethods: function() {\r\n return [\"state\"]\r\n },\r\n isEnabled: function() {\r\n return this.option(\"stateStoring.enabled\")\r\n },\r\n init: function() {\r\n var that = this;\r\n that._state = {};\r\n that._isLoaded = false;\r\n that._isLoading = false;\r\n that._windowUnloadHandler = function() {\r\n if (void 0 !== that._savingTimeoutID) {\r\n that._saveState(that.state())\r\n }\r\n };\r\n eventsEngine.on(getWindow(), \"unload\", that._windowUnloadHandler);\r\n return that\r\n },\r\n isLoaded: function() {\r\n return this._isLoaded\r\n },\r\n isLoading: function() {\r\n return this._isLoading\r\n },\r\n load: function() {\r\n this._isLoading = true;\r\n var loadResult = fromPromise(this._loadState());\r\n loadResult.always(() => {\r\n this._isLoaded = true;\r\n this._isLoading = false\r\n }).done(state => {\r\n if (null !== state && !isEmptyObject(state)) {\r\n this.state(state)\r\n }\r\n });\r\n return loadResult\r\n },\r\n state: function(_state) {\r\n var that = this;\r\n if (!arguments.length) {\r\n return extend(true, {}, that._state)\r\n } else {\r\n that._state = extend({}, _state);\r\n parseDates(that._state)\r\n }\r\n },\r\n save: function() {\r\n var that = this;\r\n clearTimeout(that._savingTimeoutID);\r\n that._savingTimeoutID = setTimeout((function() {\r\n that._saveState(that.state());\r\n that._savingTimeoutID = void 0\r\n }), that.option(\"stateStoring.savingTimeout\"))\r\n },\r\n optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"stateStoring\":\r\n if (this.isEnabled() && !this.isLoading()) {\r\n this.load()\r\n }\r\n args.handled = true;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n dispose: function() {\r\n clearTimeout(this._savingTimeoutID);\r\n eventsEngine.off(getWindow(), \"unload\", this._windowUnloadHandler)\r\n }\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.state_storing.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n StateStoringController\r\n} from \"./ui.grid_core.state_storing_core\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar getDataState = that => {\r\n var pagerView = that.getView(\"pagerView\");\r\n var dataController = that.getController(\"data\");\r\n var state = {\r\n allowedPageSizes: pagerView ? pagerView.getPageSizes() : void 0,\r\n filterPanel: {\r\n filterEnabled: that.option(\"filterPanel.filterEnabled\")\r\n },\r\n filterValue: that.option(\"filterValue\"),\r\n focusedRowKey: that.option(\"focusedRowEnabled\") ? that.option(\"focusedRowKey\") : void 0\r\n };\r\n return extend(state, dataController.getUserState())\r\n};\r\nvar processLoadState = that => {\r\n var columnsController = that.getController(\"columns\");\r\n var selectionController = that.getController(\"selection\");\r\n var exportController = that.getController(\"export\");\r\n var dataController = that.getController(\"data\");\r\n if (columnsController) {\r\n columnsController.columnsChanged.add((function() {\r\n that.updateState({\r\n columns: columnsController.getUserState()\r\n })\r\n }))\r\n }\r\n if (selectionController) {\r\n selectionController.selectionChanged.add((function(e) {\r\n that.updateState({\r\n selectedRowKeys: e.selectedRowKeys,\r\n selectionFilter: e.selectionFilter\r\n })\r\n }))\r\n }\r\n if (dataController) {\r\n that._initialPageSize = that.option(\"paging.pageSize\");\r\n that._initialFilterValue = that.option(\"filterValue\");\r\n dataController.changed.add((function() {\r\n var state = getDataState(that);\r\n that.updateState(state)\r\n }))\r\n }\r\n if (exportController) {\r\n exportController.selectionOnlyChanged.add((function() {\r\n that.updateState({\r\n exportSelectionOnly: exportController.selectionOnly()\r\n })\r\n }))\r\n }\r\n};\r\nvar DEFAULT_FILTER_VALUE = null;\r\nvar getFilterValue = (that, state) => {\r\n var filterSyncController = that.getController(\"filterSync\");\r\n var columnsController = that.getController(\"columns\");\r\n var hasFilterState = state.columns || void 0 !== state.filterValue;\r\n if (filterSyncController) {\r\n if (hasFilterState) {\r\n return state.filterValue || filterSyncController.getFilterValueFromColumns(state.columns)\r\n } else {\r\n return that._initialFilterValue || filterSyncController.getFilterValueFromColumns(columnsController.getColumns())\r\n }\r\n }\r\n return DEFAULT_FILTER_VALUE\r\n};\r\nexport var stateStoringModule = {\r\n defaultOptions: function() {\r\n return {\r\n stateStoring: {\r\n enabled: false,\r\n storageKey: null,\r\n type: \"localStorage\",\r\n customLoad: null,\r\n customSave: null,\r\n savingTimeout: 2e3\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: StateStoringController\r\n },\r\n extenders: {\r\n views: {\r\n rowsView: {\r\n init: function() {\r\n var that = this;\r\n var dataController = that.getController(\"data\");\r\n that.callBase();\r\n dataController.stateLoaded.add((function() {\r\n if (dataController.isLoaded() && !dataController.getDataSource()) {\r\n that.setLoading(false);\r\n that.renderNoDataText();\r\n var columnHeadersView = that.component.getView(\"columnHeadersView\");\r\n columnHeadersView && columnHeadersView.render();\r\n that.component._fireContentReadyAction()\r\n }\r\n }))\r\n }\r\n }\r\n },\r\n controllers: {\r\n stateStoring: {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n processLoadState(this)\r\n },\r\n isLoading: function() {\r\n return this.callBase() || this.getController(\"data\").isStateLoading()\r\n },\r\n state: function(_state) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (void 0 !== _state) {\r\n this.applyState(extend(true, {}, _state))\r\n }\r\n return result\r\n },\r\n updateState: function(state) {\r\n if (this.isEnabled()) {\r\n var oldState = this.state();\r\n var newState = extend({}, oldState, state);\r\n var oldStateHash = getKeyHash(oldState);\r\n var newStateHash = getKeyHash(newState);\r\n if (!equalByValue(oldStateHash, newStateHash)) {\r\n state = extend(true, {}, state);\r\n extend(this._state, state);\r\n this.save()\r\n }\r\n } else {\r\n extend(this._state, state)\r\n }\r\n },\r\n applyState: function(state) {\r\n var allowedPageSizes = state.allowedPageSizes;\r\n var searchText = state.searchText;\r\n var selectedRowKeys = state.selectedRowKeys;\r\n var selectionFilter = state.selectionFilter;\r\n var exportController = this.getController(\"export\");\r\n var columnsController = this.getController(\"columns\");\r\n var dataController = this.getController(\"data\");\r\n var scrollingMode = this.option(\"scrolling.mode\");\r\n var isVirtualScrollingMode = \"virtual\" === scrollingMode || \"infinite\" === scrollingMode;\r\n var showPageSizeSelector = true === this.option(\"pager.visible\") && this.option(\"pager.showPageSizeSelector\");\r\n this.component.beginUpdate();\r\n if (columnsController) {\r\n columnsController.setUserState(state.columns)\r\n }\r\n if (exportController) {\r\n exportController.selectionOnly(state.exportSelectionOnly)\r\n }\r\n if (!this.option(\"selection.deferred\")) {\r\n this.option(\"selectedRowKeys\", selectedRowKeys || [])\r\n }\r\n this.option(\"selectionFilter\", selectionFilter);\r\n if (allowedPageSizes && \"auto\" === this.option(\"pager.allowedPageSizes\")) {\r\n this.option(\"pager\").allowedPageSizes = allowedPageSizes\r\n }\r\n if (this.option(\"focusedRowEnabled\")) {\r\n this.option(\"focusedRowIndex\", -1);\r\n this.option(\"focusedRowKey\", state.focusedRowKey || null)\r\n }\r\n this.component.endUpdate();\r\n this.option(\"searchPanel.text\", searchText || \"\");\r\n this.option(\"filterValue\", getFilterValue(this, state));\r\n this.option(\"filterPanel.filterEnabled\", state.filterPanel ? state.filterPanel.filterEnabled : true);\r\n this.option(\"paging.pageIndex\", state.pageIndex || 0);\r\n this.option(\"paging.pageSize\", (!isVirtualScrollingMode || showPageSizeSelector) && isDefined(state.pageSize) ? state.pageSize : this._initialPageSize);\r\n dataController && dataController.reset()\r\n }\r\n },\r\n columns: {\r\n _shouldReturnVisibleColumns: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return result && (!stateStoringController.isEnabled() || stateStoringController.isLoaded())\r\n }\r\n },\r\n data: {\r\n callbackNames: function() {\r\n return this.callBase().concat([\"stateLoaded\"])\r\n },\r\n _refreshDataSource: function() {\r\n var callBase = this.callBase;\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n if (stateStoringController.isEnabled() && !stateStoringController.isLoaded()) {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n var deferred = new Deferred;\r\n this._restoreStateTimeoutID = setTimeout(() => {\r\n stateStoringController.load().always(() => {\r\n this._restoreStateTimeoutID = null\r\n }).done(() => {\r\n callBase.call(this);\r\n this.stateLoaded.fire();\r\n deferred.resolve()\r\n }).fail(error => {\r\n this.stateLoaded.fire();\r\n this._handleLoadError(error || \"Unknown error\");\r\n deferred.reject()\r\n })\r\n });\r\n return deferred.promise()\r\n } else if (!this.isStateLoading()) {\r\n callBase.call(this)\r\n }\r\n },\r\n isLoading: function() {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n return this.callBase() || stateStoringController.isLoading()\r\n },\r\n isStateLoading: function() {\r\n return isDefined(this._restoreStateTimeoutID)\r\n },\r\n isLoaded: function() {\r\n return this.callBase() && !this.isStateLoading()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._restoreStateTimeoutID);\r\n this.callBase()\r\n }\r\n },\r\n selection: {\r\n _fireSelectionChanged: function(options) {\r\n var stateStoringController = this.getController(\"stateStoring\");\r\n var isDeferredSelection = this.option(\"selection.deferred\");\r\n if (stateStoringController.isLoading() && isDeferredSelection) {\r\n return\r\n }\r\n this.callBase.apply(this, arguments)\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport sharedFiltering from \"../shared/filtering\";\r\nimport {\r\n format\r\n} from \"../../core/utils/string\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n toComparable\r\n} from \"../../core/utils/data\";\r\nimport {\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport LoadPanel from \"../load_panel\";\r\nimport {\r\n normalizeSortingInfo as normalizeSortingInfoUtility\r\n} from \"../../data/utils\";\r\nimport formatHelper from \"../../format_helper\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n DataSource\r\n} from \"../../data/data_source/data_source\";\r\nimport ArrayStore from \"../../data/array_store\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nvar DATAGRID_SELECTION_DISABLED_CLASS = \"dx-selection-disabled\";\r\nvar DATAGRID_GROUP_OPENED_CLASS = \"dx-datagrid-group-opened\";\r\nvar DATAGRID_GROUP_CLOSED_CLASS = \"dx-datagrid-group-closed\";\r\nvar DATAGRID_EXPAND_CLASS = \"dx-datagrid-expand\";\r\nvar NO_DATA_CLASS = \"nodata\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar SCROLLING_MODE_OPTION = \"scrolling.mode\";\r\nvar ROW_RENDERING_MODE_OPTION = \"scrolling.rowRenderingMode\";\r\nvar DATE_INTERVAL_SELECTORS = {\r\n year: function(value) {\r\n return value && value.getFullYear()\r\n },\r\n month: function(value) {\r\n return value && value.getMonth() + 1\r\n },\r\n day: function(value) {\r\n return value && value.getDate()\r\n },\r\n quarter: function(value) {\r\n return value && Math.floor(value.getMonth() / 3) + 1\r\n },\r\n hour: function(value) {\r\n return value && value.getHours()\r\n },\r\n minute: function(value) {\r\n return value && value.getMinutes()\r\n },\r\n second: function(value) {\r\n return value && value.getSeconds()\r\n }\r\n};\r\nvar getIntervalSelector = function() {\r\n var data = arguments[1];\r\n var value = this.calculateCellValue(data);\r\n if (!isDefined(value)) {\r\n return null\r\n } else if (isDateType(this.dataType)) {\r\n var nameIntervalSelector = arguments[0];\r\n return DATE_INTERVAL_SELECTORS[nameIntervalSelector](value)\r\n } else if (\"number\" === this.dataType) {\r\n var groupInterval = arguments[0];\r\n return Math.floor(Number(value) / groupInterval) * groupInterval\r\n }\r\n};\r\nvar equalSelectors = function(selector1, selector2) {\r\n if (isFunction(selector1) && isFunction(selector2)) {\r\n if (selector1.originalCallback && selector2.originalCallback) {\r\n return selector1.originalCallback === selector2.originalCallback && selector1.columnIndex === selector2.columnIndex\r\n }\r\n }\r\n return selector1 === selector2\r\n};\r\n\r\nfunction isDateType(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n}\r\nvar setEmptyText = function($container) {\r\n $container.get(0).textContent = \"\\xa0\"\r\n};\r\nvar normalizeSortingInfo = function(sort) {\r\n sort = sort || [];\r\n var result = normalizeSortingInfoUtility(sort);\r\n for (var i = 0; i < sort.length; i++) {\r\n if (sort && sort[i] && void 0 !== sort[i].isExpanded) {\r\n result[i].isExpanded = sort[i].isExpanded\r\n }\r\n if (sort && sort[i] && void 0 !== sort[i].groupInterval) {\r\n result[i].groupInterval = sort[i].groupInterval\r\n }\r\n }\r\n return result\r\n};\r\nvar formatValue = function(value, options) {\r\n var valueText = formatHelper.format(value, options.format) || value && value.toString() || \"\";\r\n var formatObject = {\r\n value: value,\r\n valueText: options.getDisplayFormat ? options.getDisplayFormat(valueText) : valueText,\r\n target: options.target || \"row\",\r\n groupInterval: options.groupInterval\r\n };\r\n return options.customizeText ? options.customizeText.call(options, formatObject) : formatObject.valueText\r\n};\r\nvar getSummaryText = function(summaryItem, summaryTexts) {\r\n var displayFormat = summaryItem.displayFormat || summaryItem.columnCaption && summaryTexts[summaryItem.summaryType + \"OtherColumn\"] || summaryTexts[summaryItem.summaryType];\r\n return formatValue(summaryItem.value, {\r\n format: summaryItem.valueFormat,\r\n getDisplayFormat: function(valueText) {\r\n return displayFormat ? format(displayFormat, valueText, summaryItem.columnCaption) : valueText\r\n },\r\n customizeText: summaryItem.customizeText\r\n })\r\n};\r\nvar getWidgetInstance = function($element) {\r\n var editorData = $element.data && $element.data();\r\n var dxComponents = editorData && editorData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && editorData[widgetName]\r\n};\r\nvar equalFilterParameters = function equalFilterParameters(filter1, filter2) {\r\n if (Array.isArray(filter1) && Array.isArray(filter2)) {\r\n if (filter1.length !== filter2.length) {\r\n return false\r\n } else {\r\n for (var i = 0; i < filter1.length; i++) {\r\n if (!equalFilterParameters(filter1[i], filter2[i])) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n } else if (isFunction(filter1) && filter1.columnIndex >= 0 && isFunction(filter2) && filter2.columnIndex >= 0) {\r\n return filter1.columnIndex === filter2.columnIndex && toComparable(filter1.filterValue) === toComparable(filter2.filterValue)\r\n } else {\r\n return toComparable(filter1) == toComparable(filter2)\r\n }\r\n};\r\n\r\nfunction normalizeGroupingLoadOptions(group) {\r\n if (!Array.isArray(group)) {\r\n group = [group]\r\n }\r\n return group.map((item, i) => {\r\n if (isString(item)) {\r\n return {\r\n selector: item,\r\n isExpanded: i < group.length - 1\r\n }\r\n }\r\n return item\r\n })\r\n}\r\nexport default {\r\n renderNoDataText: function($element) {\r\n $element = $element || this.element();\r\n if (!$element) {\r\n return\r\n }\r\n var noDataClass = this.addWidgetPrefix(NO_DATA_CLASS);\r\n var noDataElement = $element.find(\".\" + noDataClass).last();\r\n var isVisible = this._dataController.isEmpty();\r\n var isLoading = this._dataController.isLoading();\r\n if (!noDataElement.length) {\r\n noDataElement = $(\"<span>\").addClass(noDataClass).appendTo($element)\r\n }\r\n if (isVisible && !isLoading) {\r\n noDataElement.removeClass(\"dx-hidden\").text(this._getNoDataText())\r\n } else {\r\n noDataElement.addClass(\"dx-hidden\")\r\n }\r\n },\r\n renderLoadPanel: function($element, $container, isLocalStore) {\r\n var loadPanelOptions;\r\n this._loadPanel && this._loadPanel.$element().remove();\r\n loadPanelOptions = this.option(\"loadPanel\");\r\n if (loadPanelOptions && (\"auto\" === loadPanelOptions.enabled ? !isLocalStore : loadPanelOptions.enabled)) {\r\n loadPanelOptions = extend({\r\n shading: false,\r\n message: loadPanelOptions.text,\r\n container: $container\r\n }, loadPanelOptions);\r\n this._loadPanel = this._createComponent($(\"<div>\").appendTo($container), LoadPanel, loadPanelOptions)\r\n } else {\r\n this._loadPanel = null\r\n }\r\n },\r\n calculateLoadPanelPosition($element) {\r\n var $window = $(getWindow());\r\n if (getHeight($element) > getHeight($window)) {\r\n return {\r\n of: $window,\r\n boundary: $element,\r\n collision: \"fit\"\r\n }\r\n }\r\n return {\r\n of: $element\r\n }\r\n },\r\n getIndexByKey: function(key, items, keyName) {\r\n var index = -1;\r\n if (void 0 !== key && Array.isArray(items)) {\r\n keyName = arguments.length <= 2 ? \"key\" : keyName;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = isDefined(keyName) ? items[i][keyName] : items[i];\r\n if (equalByValue(key, item)) {\r\n index = i;\r\n break\r\n }\r\n }\r\n }\r\n return index\r\n },\r\n combineFilters: function(filters, operation) {\r\n var resultFilter = [];\r\n operation = operation || \"and\";\r\n for (var i = 0; i < filters.length; i++) {\r\n var _filters$i;\r\n if (!filters[i]) {\r\n continue\r\n }\r\n if (1 === (null === (_filters$i = filters[i]) || void 0 === _filters$i ? void 0 : _filters$i.length) && \"!\" === filters[i][0]) {\r\n if (\"and\" === operation) {\r\n return [\"!\"]\r\n } else if (\"or\" === operation) {\r\n continue\r\n }\r\n }\r\n if (resultFilter.length) {\r\n resultFilter.push(operation)\r\n }\r\n resultFilter.push(filters[i])\r\n }\r\n if (1 === resultFilter.length) {\r\n resultFilter = resultFilter[0]\r\n }\r\n if (resultFilter.length) {\r\n return resultFilter\r\n }\r\n },\r\n checkChanges: function(changes, changeNames) {\r\n var changesWithChangeNamesCount = 0;\r\n for (var i = 0; i < changeNames.length; i++) {\r\n if (changes[changeNames[i]]) {\r\n changesWithChangeNamesCount++\r\n }\r\n }\r\n return changes.length && changes.length === changesWithChangeNamesCount\r\n },\r\n equalFilterParameters: equalFilterParameters,\r\n proxyMethod: function(instance, methodName, defaultResult) {\r\n if (!instance[methodName]) {\r\n instance[methodName] = function() {\r\n var dataSource = this._dataSource;\r\n return dataSource ? dataSource[methodName].apply(dataSource, arguments) : defaultResult\r\n }\r\n }\r\n },\r\n formatValue: formatValue,\r\n getFormatOptionsByColumn: function(column, target) {\r\n return {\r\n format: column.format,\r\n getDisplayFormat: column.getDisplayFormat,\r\n customizeText: column.customizeText,\r\n target: target,\r\n trueText: column.trueText,\r\n falseText: column.falseText\r\n }\r\n },\r\n getDisplayValue: function(column, value, data, rowType) {\r\n if (column.displayValueMap && void 0 !== column.displayValueMap[value]) {\r\n return column.displayValueMap[value]\r\n } else if (column.calculateDisplayValue && data && \"group\" !== rowType) {\r\n return column.calculateDisplayValue(data)\r\n } else if (column.lookup && !(\"group\" === rowType && (column.calculateGroupValue || column.calculateDisplayValue))) {\r\n return column.lookup.calculateCellValue(value)\r\n }\r\n return value\r\n },\r\n getGroupRowSummaryText: function(summaryItems, summaryTexts) {\r\n var result = \"(\";\r\n for (var i = 0; i < summaryItems.length; i++) {\r\n var summaryItem = summaryItems[i];\r\n result += (i > 0 ? \", \" : \"\") + getSummaryText(summaryItem, summaryTexts)\r\n }\r\n return result + \")\"\r\n },\r\n getSummaryText: getSummaryText,\r\n normalizeSortingInfo: normalizeSortingInfo,\r\n getFormatByDataType: function(dataType) {\r\n switch (dataType) {\r\n case \"date\":\r\n return \"shortDate\";\r\n case \"datetime\":\r\n return \"shortDateShortTime\"\r\n }\r\n },\r\n getHeaderFilterGroupParameters: function(column, remoteGrouping) {\r\n var result = [];\r\n var dataField = column.dataField || column.name;\r\n var groupInterval = sharedFiltering.getGroupInterval(column);\r\n if (groupInterval) {\r\n each(groupInterval, (function(index, interval) {\r\n result.push(remoteGrouping ? {\r\n selector: dataField,\r\n groupInterval: interval,\r\n isExpanded: index < groupInterval.length - 1\r\n } : getIntervalSelector.bind(column, interval))\r\n }));\r\n return result\r\n }\r\n if (remoteGrouping) {\r\n result = [{\r\n selector: dataField,\r\n isExpanded: false\r\n }]\r\n } else {\r\n result = function(data) {\r\n var result = column.calculateCellValue(data);\r\n if (void 0 === result || \"\" === result) {\r\n result = null\r\n }\r\n return result\r\n };\r\n if (column.sortingMethod) {\r\n result = [{\r\n selector: result,\r\n compare: column.sortingMethod.bind(column)\r\n }]\r\n }\r\n }\r\n return result\r\n },\r\n equalSortParameters(sortParameters1, sortParameters2, ignoreIsExpanded) {\r\n sortParameters1 = normalizeSortingInfo(sortParameters1);\r\n sortParameters2 = normalizeSortingInfo(sortParameters2);\r\n if (Array.isArray(sortParameters1) && Array.isArray(sortParameters2)) {\r\n if (sortParameters1.length !== sortParameters2.length) {\r\n return false\r\n } else {\r\n for (var i = 0; i < sortParameters1.length; i++) {\r\n if (!equalSelectors(sortParameters1[i].selector, sortParameters2[i].selector) || sortParameters1[i].desc !== sortParameters2[i].desc || sortParameters1[i].groupInterval !== sortParameters2[i].groupInterval || !ignoreIsExpanded && Boolean(sortParameters1[i].isExpanded) !== Boolean(sortParameters2[i].isExpanded)) {\r\n return false\r\n }\r\n }\r\n }\r\n return true\r\n } else {\r\n return (!sortParameters1 || !sortParameters1.length) === (!sortParameters2 || !sortParameters2.length)\r\n }\r\n },\r\n getPointsByColumns: function(items, pointCreated, isVertical, startColumnIndex) {\r\n var cellsLength = items.length;\r\n var notCreatePoint = false;\r\n var item;\r\n var offset;\r\n var columnIndex = startColumnIndex || 0;\r\n var result = [];\r\n var rtlEnabled;\r\n for (var i = 0; i <= cellsLength; i++) {\r\n if (i < cellsLength) {\r\n item = items.eq(i);\r\n offset = item.offset();\r\n rtlEnabled = \"rtl\" === item.css(\"direction\")\r\n }\r\n var point = {\r\n index: columnIndex,\r\n x: offset ? offset.left + (!isVertical && rtlEnabled ^ i === cellsLength ? getBoundingRect(item[0]).width : 0) : 0,\r\n y: offset ? offset.top + (isVertical && i === cellsLength ? getBoundingRect(item[0]).height : 0) : 0,\r\n columnIndex: columnIndex\r\n };\r\n if (!isVertical && i > 0) {\r\n var prevItemOffset = items.eq(i - 1).offset();\r\n if (prevItemOffset.top < point.y) {\r\n point.y = prevItemOffset.top\r\n }\r\n }\r\n if (pointCreated) {\r\n notCreatePoint = pointCreated(point)\r\n }\r\n if (!notCreatePoint) {\r\n result.push(point)\r\n }\r\n columnIndex++\r\n }\r\n return result\r\n },\r\n getExpandCellTemplate: function() {\r\n return {\r\n allowRenderToDetachedContainer: true,\r\n render: function(container, options) {\r\n var $container = $(container);\r\n if (isDefined(options.value) && !(options.data && options.data.isContinuation) && !options.row.isNewRow) {\r\n var rowsView = options.component.getView(\"rowsView\");\r\n $container.addClass(DATAGRID_EXPAND_CLASS).addClass(DATAGRID_SELECTION_DISABLED_CLASS);\r\n $(\"<div>\").addClass(options.value ? DATAGRID_GROUP_OPENED_CLASS : DATAGRID_GROUP_CLOSED_CLASS).appendTo($container);\r\n rowsView.setAria(\"label\", options.value ? rowsView.localize(\"dxDataGrid-ariaCollapse\") : rowsView.localize(\"dxDataGrid-ariaExpand\"), $container)\r\n } else {\r\n setEmptyText($container)\r\n }\r\n }\r\n }\r\n },\r\n setEmptyText: setEmptyText,\r\n isDateType: isDateType,\r\n getSelectionRange: function(focusedElement) {\r\n try {\r\n if (focusedElement) {\r\n return {\r\n selectionStart: focusedElement.selectionStart,\r\n selectionEnd: focusedElement.selectionEnd\r\n }\r\n }\r\n } catch (e) {}\r\n return {}\r\n },\r\n setSelectionRange: function(focusedElement, selectionRange) {\r\n try {\r\n if (focusedElement && focusedElement.setSelectionRange) {\r\n focusedElement.setSelectionRange(selectionRange.selectionStart, selectionRange.selectionEnd)\r\n }\r\n } catch (e) {}\r\n },\r\n focusAndSelectElement: function(component, $element) {\r\n var isFocused = $element.is(\":focus\");\r\n eventsEngine.trigger($element, \"focus\");\r\n var isSelectTextOnEditingStart = component.option(\"editing.selectTextOnEditStart\");\r\n var element = $element.get(0);\r\n if (!isFocused && isSelectTextOnEditingStart && $element.is(\".dx-texteditor-input\") && !$element.is(\"[readonly]\")) {\r\n var editor = getWidgetInstance($element.closest(\".dx-texteditor\"));\r\n when(editor && editor._loadItemDeferred).done((function() {\r\n element.select()\r\n }))\r\n }\r\n },\r\n getWidgetInstance: getWidgetInstance,\r\n getLastResizableColumnIndex: function(columns, resultWidths) {\r\n var hasResizableColumns = columns.some(column => column && !column.command && !column.fixed && false !== column.allowResizing);\r\n var lastColumnIndex;\r\n for (lastColumnIndex = columns.length - 1; columns[lastColumnIndex]; lastColumnIndex--) {\r\n var column = columns[lastColumnIndex];\r\n var width = resultWidths && resultWidths[lastColumnIndex];\r\n var allowResizing = !hasResizableColumns || false !== column.allowResizing;\r\n if (!column.command && !column.fixed && \"adaptiveHidden\" !== width && allowResizing) {\r\n break\r\n }\r\n }\r\n return lastColumnIndex\r\n },\r\n isElementInCurrentGrid: function(controller, $element) {\r\n if ($element && $element.length) {\r\n var $grid = $element.closest(\".\" + controller.getWidgetContainerClass()).parent();\r\n return $grid.is(controller.component.$element())\r\n }\r\n return false\r\n },\r\n isVirtualRowRendering: function(that) {\r\n var rowRenderingMode = that.option(ROW_RENDERING_MODE_OPTION);\r\n var isVirtualMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_VIRTUAL;\r\n var isAppendMode = that.option(SCROLLING_MODE_OPTION) === SCROLLING_MODE_INFINITE;\r\n if (false === that.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n return true\r\n }\r\n return rowRenderingMode === SCROLLING_MODE_VIRTUAL\r\n },\r\n getPixelRatio: function(window) {\r\n return window.devicePixelRatio || 1\r\n },\r\n getContentHeightLimit(browser) {\r\n if (browser.mozilla) {\r\n return 8e6\r\n }\r\n return 15e6 / this.getPixelRatio(getWindow())\r\n },\r\n normalizeLookupDataSource(lookup) {\r\n var lookupDataSourceOptions;\r\n if (lookup.items) {\r\n lookupDataSourceOptions = lookup.items\r\n } else {\r\n lookupDataSourceOptions = lookup.dataSource;\r\n if (isFunction(lookupDataSourceOptions) && !variableWrapper.isWrapped(lookupDataSourceOptions)) {\r\n lookupDataSourceOptions = lookupDataSourceOptions({})\r\n }\r\n }\r\n return normalizeDataSourceOptions(lookupDataSourceOptions)\r\n },\r\n getWrappedLookupDataSource(column, dataSource, filter) {\r\n if (!dataSource) {\r\n return []\r\n }\r\n var lookupDataSourceOptions = this.normalizeLookupDataSource(column.lookup);\r\n if (column.calculateCellValue !== column.defaultCalculateCellValue) {\r\n return lookupDataSourceOptions\r\n }\r\n var hasGroupPaging = dataSource.remoteOperations().groupPaging;\r\n var hasLookupOptimization = column.displayField && isString(column.displayField);\r\n var cachedUniqueRelevantItems;\r\n var lookupDataSource = _extends({}, lookupDataSourceOptions, {\r\n __dataGridSourceFilter: filter,\r\n load: loadOptions => {\r\n var d = new Deferred;\r\n (loadOptions => {\r\n var group = normalizeGroupingLoadOptions(hasLookupOptimization ? [column.dataField, column.displayField] : column.dataField);\r\n var d = new Deferred;\r\n if (!hasGroupPaging && cachedUniqueRelevantItems) {\r\n d.resolve(cachedUniqueRelevantItems)\r\n } else {\r\n dataSource.load({\r\n filter: filter,\r\n group: group,\r\n take: hasGroupPaging ? loadOptions.take : void 0,\r\n skip: hasGroupPaging ? loadOptions.skip : void 0\r\n }).done(items => {\r\n cachedUniqueRelevantItems = items;\r\n d.resolve(items)\r\n }).fail(d.fail)\r\n }\r\n return d\r\n })(loadOptions).done(items => {\r\n if (0 === items.length) {\r\n d.resolve([])\r\n }\r\n var newDataSource;\r\n if (hasLookupOptimization) {\r\n var lookupItems = items.map(item => {\r\n var _column$displayValueM;\r\n return {\r\n [column.lookup.valueExpr]: item.key,\r\n [column.lookup.displayExpr]: null !== (_column$displayValueM = column.displayValueMap[item.key]) && void 0 !== _column$displayValueM ? _column$displayValueM : item.items[0].key\r\n }\r\n });\r\n newDataSource = new DataSource(_extends({}, lookupDataSourceOptions, loadOptions, {\r\n store: new ArrayStore({\r\n data: lookupItems,\r\n key: column.lookup.valueExpr\r\n })\r\n }))\r\n } else {\r\n var _filter = this.combineFilters(items.flatMap(data => data.key).map(key => [column.lookup.valueExpr, key]), \"or\");\r\n newDataSource = new DataSource(_extends({}, lookupDataSourceOptions, loadOptions, {\r\n filter: this.combineFilters([_filter, loadOptions.filter], \"and\")\r\n }))\r\n }\r\n if (!hasGroupPaging) {\r\n newDataSource.on(\"customizeStoreLoadOptions\", e => {\r\n e.storeLoadOptions.take = loadOptions.take;\r\n e.storeLoadOptions.skip = loadOptions.skip\r\n })\r\n }\r\n newDataSource.load().done(d.resolve).fail(d.fail)\r\n }).fail(d.fail);\r\n return d\r\n },\r\n key: column.lookup.valueExpr,\r\n byKey(key) {\r\n var d = Deferred();\r\n this.load({\r\n filter: [column.lookup.valueExpr, \"=\", key]\r\n }).done(arr => {\r\n d.resolve(arr[0])\r\n });\r\n return d.promise()\r\n }\r\n });\r\n return lookupDataSource\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.validating.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getWidth,\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport modules from \"./ui.grid_core.modules\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n createObjectWithChanges\r\n} from \"../../data/array_utils\";\r\nimport {\r\n deferUpdate,\r\n equalByValue,\r\n getKeyHash\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isEmptyObject,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport Button from \"../button\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport ValidationEngine from \"../validation_engine\";\r\nimport Validator from \"../validator\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred,\r\n when,\r\n fromPromise\r\n} from \"../../core/utils/deferred\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n encodeHtml\r\n} from \"../../core/utils/string\";\r\nimport browser from \"../../core/utils/browser\";\r\nvar INVALIDATE_CLASS = \"invalid\";\r\nvar REVERT_TOOLTIP_CLASS = \"revert-tooltip\";\r\nvar ROWS_VIEW_CLASS = \"rowsview\";\r\nvar INVALID_MESSAGE_CLASS = \"dx-invalid-message\";\r\nvar WIDGET_INVALID_MESSAGE_CLASS = \"invalid-message\";\r\nvar INVALID_MESSAGE_ALWAYS_CLASS = \"dx-invalid-message-always\";\r\nvar REVERT_BUTTON_CLASS = \"dx-revert-button\";\r\nvar VALIDATOR_CLASS = \"validator\";\r\nvar PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar INSERT_INDEX = \"__DX_INSERT_INDEX__\";\r\nvar PADDING_BETWEEN_TOOLTIPS = 2;\r\nvar EDIT_MODE_ROW = \"row\";\r\nvar EDIT_MODE_FORM = \"form\";\r\nvar EDIT_MODE_BATCH = \"batch\";\r\nvar EDIT_MODE_CELL = \"cell\";\r\nvar EDIT_MODE_POPUP = \"popup\";\r\nvar GROUP_CELL_CLASS = \"dx-group-cell\";\r\nvar FORM_BASED_MODES = [EDIT_MODE_POPUP, EDIT_MODE_FORM];\r\nvar COMMAND_TRANSPARENT = \"transparent\";\r\nvar VALIDATION_STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nvar EDIT_DATA_INSERT_TYPE = \"insert\";\r\nvar EDIT_DATA_REMOVE_TYPE = \"remove\";\r\nvar VALIDATION_CANCELLED = \"cancel\";\r\nvar validationResultIsValid = function(result) {\r\n return isDefined(result) && result !== VALIDATION_CANCELLED\r\n};\r\nvar cellValueShouldBeValidated = function(value, rowOptions) {\r\n return void 0 !== value || void 0 === value && rowOptions && !rowOptions.isNewRow\r\n};\r\nvar ValidatingController = modules.Controller.inherit({\r\n init: function() {\r\n this._editingController = this.getController(\"editing\");\r\n this.createAction(\"onRowValidating\");\r\n if (!this._validationState) {\r\n this.initValidationState()\r\n }\r\n },\r\n initValidationState() {\r\n this._validationState = [];\r\n this._validationStateCache = {}\r\n },\r\n _rowIsValidated: function(change) {\r\n var validationData = this._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n return !!validationData && !!validationData.validated\r\n },\r\n _getValidationData: function(key, create) {\r\n var keyHash = getKeyHash(key);\r\n var isObjectKeyHash = isObject(keyHash);\r\n var validationData;\r\n if (isObjectKeyHash) {\r\n validationData = this._validationState.filter(data => equalByValue(data.key, key))[0]\r\n } else {\r\n validationData = this._validationStateCache[keyHash]\r\n }\r\n if (!validationData && create) {\r\n validationData = {\r\n key: key,\r\n isValid: true\r\n };\r\n this._validationState.push(validationData);\r\n if (!isObjectKeyHash) {\r\n this._validationStateCache[keyHash] = validationData\r\n }\r\n }\r\n return validationData\r\n },\r\n _getBrokenRules: function(validationData, validationResults) {\r\n var brokenRules;\r\n if (validationResults) {\r\n brokenRules = validationResults.brokenRules || validationResults.brokenRule && [validationResults.brokenRule]\r\n } else {\r\n brokenRules = validationData.brokenRules || []\r\n }\r\n return brokenRules\r\n },\r\n _rowValidating: function(validationData, validationResults) {\r\n var deferred = new Deferred;\r\n var change = this._editingController.getChangeByKey(null === validationData || void 0 === validationData ? void 0 : validationData.key);\r\n var brokenRules = this._getBrokenRules(validationData, validationResults);\r\n var isValid = validationResults ? validationResults.isValid : validationData.isValid;\r\n var parameters = {\r\n brokenRules: brokenRules,\r\n isValid: isValid,\r\n key: change.key,\r\n newData: change.data,\r\n oldData: this._editingController._getOldData(change.key),\r\n promise: null,\r\n errorText: this.getHiddenValidatorsErrorText(brokenRules)\r\n };\r\n this.executeAction(\"onRowValidating\", parameters);\r\n when(fromPromise(parameters.promise)).always((function() {\r\n validationData.isValid = parameters.isValid;\r\n validationData.errorText = parameters.errorText;\r\n deferred.resolve(parameters)\r\n }));\r\n return deferred.promise()\r\n },\r\n getHiddenValidatorsErrorText: function(brokenRules) {\r\n var brokenRulesMessages = [];\r\n each(brokenRules, (function(_, brokenRule) {\r\n var column = brokenRule.column;\r\n var isGroupExpandColumn = column && void 0 !== column.groupIndex && !column.showWhenGrouped;\r\n var isVisibleColumn = column && column.visible;\r\n if (!brokenRule.validator.$element().parent().length && (!isVisibleColumn || isGroupExpandColumn)) {\r\n brokenRulesMessages.push(brokenRule.message)\r\n }\r\n }));\r\n return brokenRulesMessages.join(\", \")\r\n },\r\n validate: function(isFull) {\r\n var isValid = true;\r\n var editingController = this._editingController;\r\n var deferred = new Deferred;\r\n var completeList = [];\r\n var editMode = editingController.getEditMode();\r\n isFull = isFull || editMode === EDIT_MODE_ROW;\r\n if (this._isValidationInProgress) {\r\n return deferred.resolve(false).promise()\r\n }\r\n this._isValidationInProgress = true;\r\n if (isFull) {\r\n editingController.addDeferred(deferred);\r\n var changes = editingController.getChanges();\r\n each(changes, (index, _ref) => {\r\n var {\r\n type: type,\r\n key: key\r\n } = _ref;\r\n if (\"remove\" !== type) {\r\n var validationData = this._getValidationData(key, true);\r\n var validationResult = this.validateGroup(validationData);\r\n completeList.push(validationResult);\r\n validationResult.done(validationResult => {\r\n validationData.validated = true;\r\n isValid = isValid && validationResult.isValid\r\n })\r\n }\r\n })\r\n } else if (this._currentCellValidator) {\r\n var validationResult = this.validateGroup(this._currentCellValidator._findGroup());\r\n completeList.push(validationResult);\r\n validationResult.done(validationResult => {\r\n isValid = validationResult.isValid\r\n })\r\n }\r\n when(...completeList).done(() => {\r\n this._isValidationInProgress = false;\r\n deferred.resolve(isValid)\r\n });\r\n return deferred.promise()\r\n },\r\n validateGroup: function(validationData) {\r\n var _validationResult;\r\n var result = new Deferred;\r\n var validateGroup = validationData && ValidationEngine.getGroupConfig(validationData);\r\n var validationResult;\r\n if (null !== validateGroup && void 0 !== validateGroup && validateGroup.validators.length) {\r\n this.resetRowValidationResults(validationData);\r\n validationResult = ValidationEngine.validateGroup(validationData)\r\n }\r\n when((null === (_validationResult = validationResult) || void 0 === _validationResult ? void 0 : _validationResult.complete) || validationResult).done(validationResult => {\r\n when(this._rowValidating(validationData, validationResult)).done(result.resolve)\r\n });\r\n return result.promise()\r\n },\r\n isRowDataModified: change => !isEmptyObject(change.data),\r\n updateValidationState: function(change) {\r\n var editMode = this._editingController.getEditMode();\r\n var key = change.key;\r\n var validationData = this._getValidationData(key, true);\r\n if (-1 === FORM_BASED_MODES.indexOf(editMode)) {\r\n if (change.type === EDIT_DATA_INSERT_TYPE && !this.isRowDataModified(change)) {\r\n validationData.isValid = true;\r\n return\r\n }\r\n this.setDisableApplyValidationResults(true);\r\n var groupConfig = ValidationEngine.getGroupConfig(validationData);\r\n if (groupConfig) {\r\n var validationResult = ValidationEngine.validateGroup(validationData);\r\n when(validationResult.complete || validationResult).done(validationResult => {\r\n validationData.isValid = validationResult.isValid;\r\n validationData.brokenRules = validationResult.brokenRules\r\n })\r\n } else if (!validationData.brokenRules || !validationData.brokenRules.length) {\r\n validationData.isValid = true\r\n }\r\n this.setDisableApplyValidationResults(false)\r\n } else {\r\n validationData.isValid = true\r\n }\r\n },\r\n setValidator: function(validator) {\r\n this._currentCellValidator = validator\r\n },\r\n renderCellPendingIndicator: function($container) {\r\n var $indicator = $container.find(\".\" + PENDING_INDICATOR_CLASS);\r\n if (!$indicator.length) {\r\n var $indicatorContainer = $container;\r\n $indicator = $(\"<div>\").appendTo($indicatorContainer).addClass(PENDING_INDICATOR_CLASS);\r\n this._createComponent($indicator, LoadIndicator);\r\n $container.addClass(VALIDATION_PENDING_CLASS)\r\n }\r\n },\r\n disposeCellPendingIndicator: function($container) {\r\n var $indicator = $container.find(\".\" + PENDING_INDICATOR_CLASS);\r\n if ($indicator.length) {\r\n var indicator = LoadIndicator.getInstance($indicator);\r\n if (indicator) {\r\n indicator.dispose();\r\n indicator.$element().remove()\r\n }\r\n $container.removeClass(VALIDATION_PENDING_CLASS)\r\n }\r\n },\r\n validationStatusChanged: function(result) {\r\n var validator = result.validator;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var column = validator.option(\"dataGetter\")().column;\r\n this.updateCellValidationResult({\r\n rowKey: validationGroup.key,\r\n columnIndex: column.index,\r\n validationResult: result\r\n })\r\n },\r\n validatorInitialized: function(arg) {\r\n arg.component.on(\"validating\", this.validationStatusChanged.bind(this));\r\n arg.component.on(\"validated\", this.validationStatusChanged.bind(this))\r\n },\r\n validatorDisposing: function(arg) {\r\n var validator = arg.component;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var column = validator.option(\"dataGetter\")().column;\r\n var result = this.getCellValidationResult({\r\n rowKey: null === validationGroup || void 0 === validationGroup ? void 0 : validationGroup.key,\r\n columnIndex: column.index\r\n });\r\n if (validationResultIsValid(result) && result.status === VALIDATION_STATUS.pending) {\r\n this.cancelCellValidationResult({\r\n change: validationGroup,\r\n columnIndex: column.index\r\n })\r\n }\r\n },\r\n applyValidationResult: function($container, result) {\r\n var validator = result.validator;\r\n var validationGroup = validator.option(\"validationGroup\");\r\n var column = validator.option(\"dataGetter\")().column;\r\n result.brokenRules && result.brokenRules.forEach(rule => {\r\n rule.columnIndex = column.index;\r\n rule.column = column\r\n });\r\n if ($container) {\r\n var validationResult = this.getCellValidationResult({\r\n rowKey: validationGroup.key,\r\n columnIndex: column.index\r\n });\r\n var requestIsDisabled = validationResultIsValid(validationResult) && validationResult.disabledPendingId === result.id;\r\n if (this._disableApplyValidationResults || requestIsDisabled) {\r\n return\r\n }\r\n if (result.status === VALIDATION_STATUS.invalid) {\r\n var $focus = $container.find(\":focus\");\r\n if (!focused($focus)) {\r\n eventsEngine.trigger($focus, \"focus\");\r\n eventsEngine.trigger($focus, pointerEvents.down)\r\n }\r\n }\r\n var editor = !column.editCellTemplate && this.getController(\"editorFactory\").getEditorInstance($container);\r\n if (result.status === VALIDATION_STATUS.pending) {\r\n if (editor) {\r\n editor.option(\"validationStatus\", VALIDATION_STATUS.pending)\r\n } else {\r\n this.renderCellPendingIndicator($container)\r\n }\r\n } else if (editor) {\r\n editor.option(\"validationStatus\", VALIDATION_STATUS.valid)\r\n } else {\r\n this.disposeCellPendingIndicator($container)\r\n }\r\n $container.toggleClass(this.addWidgetPrefix(INVALIDATE_CLASS), result.status === VALIDATION_STATUS.invalid)\r\n }\r\n },\r\n _syncInternalEditingData: function(parameters) {\r\n var _parameters$row;\r\n var editingController = this._editingController;\r\n var change = editingController.getChangeByKey(parameters.key);\r\n var oldDataFromState = editingController._getOldData(parameters.key);\r\n var oldData = null === (_parameters$row = parameters.row) || void 0 === _parameters$row ? void 0 : _parameters$row.oldData;\r\n if (change && oldData && !oldDataFromState) {\r\n editingController._addInternalData({\r\n key: parameters.key,\r\n oldData: oldData\r\n })\r\n }\r\n },\r\n createValidator: function(parameters, $container) {\r\n var editingController = this._editingController;\r\n var column = parameters.column;\r\n var showEditorAlways = column.showEditorAlways;\r\n if (isDefined(column.command) || !column.validationRules || !Array.isArray(column.validationRules) || !column.validationRules.length) {\r\n return\r\n }\r\n var editIndex = editingController.getIndexByKey(parameters.key, editingController.getChanges());\r\n var needCreateValidator = editIndex > -1;\r\n if (!needCreateValidator) {\r\n if (!showEditorAlways) {\r\n var columnsController = this.getController(\"columns\");\r\n var visibleColumns = (null === columnsController || void 0 === columnsController ? void 0 : columnsController.getVisibleColumns()) || [];\r\n showEditorAlways = visibleColumns.some((function(column) {\r\n return column.showEditorAlways\r\n }))\r\n }\r\n var isEditRow = equalByValue(this.option(\"editing.editRowKey\"), parameters.key);\r\n var isCellOrBatchEditingAllowed = editingController.isCellOrBatchEditMode() && editingController.allowUpdating({\r\n row: parameters.row\r\n });\r\n needCreateValidator = isEditRow || isCellOrBatchEditingAllowed && showEditorAlways;\r\n if (isCellOrBatchEditingAllowed && showEditorAlways) {\r\n var _parameters$row$oldDa, _parameters$row2;\r\n editingController._addInternalData({\r\n key: parameters.key,\r\n oldData: null !== (_parameters$row$oldDa = null === (_parameters$row2 = parameters.row) || void 0 === _parameters$row2 ? void 0 : _parameters$row2.oldData) && void 0 !== _parameters$row$oldDa ? _parameters$row$oldDa : parameters.data\r\n })\r\n }\r\n }\r\n if (needCreateValidator) {\r\n if ($container && !$container.length) {\r\n errors.log(\"E1050\");\r\n return\r\n }\r\n this._syncInternalEditingData(parameters);\r\n var validationData = this._getValidationData(parameters.key, true);\r\n var getValue = () => {\r\n var change = editingController.getChangeByKey(null === validationData || void 0 === validationData ? void 0 : validationData.key);\r\n var value = column.calculateCellValue((null === change || void 0 === change ? void 0 : change.data) || {});\r\n return void 0 !== value ? value : parameters.value\r\n };\r\n var useDefaultValidator = $container && $container.hasClass(\"dx-widget\");\r\n $container && $container.addClass(this.addWidgetPrefix(VALIDATOR_CLASS));\r\n var validator = new Validator($container || $(\"<div>\"), {\r\n name: column.caption,\r\n validationRules: extend(true, [], column.validationRules),\r\n validationGroup: validationData,\r\n adapter: useDefaultValidator ? null : {\r\n getValue: getValue,\r\n applyValidationResults: result => {\r\n this.applyValidationResult($container, result)\r\n }\r\n },\r\n dataGetter: function() {\r\n var key = null === validationData || void 0 === validationData ? void 0 : validationData.key;\r\n var change = editingController.getChangeByKey(key);\r\n var oldData = editingController._getOldData(key);\r\n return {\r\n data: createObjectWithChanges(oldData, null === change || void 0 === change ? void 0 : change.data),\r\n column: column\r\n }\r\n },\r\n onInitialized: this.validatorInitialized.bind(this),\r\n onDisposing: this.validatorDisposing.bind(this)\r\n });\r\n if (useDefaultValidator) {\r\n var adapter = validator.option(\"adapter\");\r\n if (adapter) {\r\n adapter.getValue = getValue;\r\n adapter.validationRequestsCallbacks = [];\r\n adapter.bypass = () => parameters.row.isNewRow && !this._isValidationInProgress && !editingController.isCellModified(parameters)\r\n }\r\n }\r\n return validator\r\n }\r\n },\r\n setDisableApplyValidationResults: function(flag) {\r\n this._disableApplyValidationResults = flag\r\n },\r\n getDisableApplyValidationResults: function() {\r\n return this._disableApplyValidationResults\r\n },\r\n isCurrentValidatorProcessing: function(_ref2) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref2;\r\n return this._currentCellValidator && equalByValue(this._currentCellValidator.option(\"validationGroup\").key, rowKey) && this._currentCellValidator.option(\"dataGetter\")().column.index === columnIndex\r\n },\r\n validateCell: function(validator) {\r\n var cellParams = {\r\n rowKey: validator.option(\"validationGroup\").key,\r\n columnIndex: validator.option(\"dataGetter\")().column.index\r\n };\r\n var validationResult = this.getCellValidationResult(cellParams);\r\n var stateRestored = validationResultIsValid(validationResult);\r\n if (!stateRestored) {\r\n validationResult = validator.validate()\r\n }\r\n var deferred = new Deferred;\r\n var adapter = validator.option(\"adapter\");\r\n if (stateRestored && validationResult.status === VALIDATION_STATUS.pending) {\r\n this.updateCellValidationResult(cellParams);\r\n adapter.applyValidationResults(validationResult)\r\n }\r\n when(validationResult.complete || validationResult).done(validationResult => {\r\n stateRestored && adapter.applyValidationResults(validationResult);\r\n deferred.resolve(validationResult)\r\n });\r\n return deferred.promise()\r\n },\r\n updateCellValidationResult: function(_ref3) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex,\r\n validationResult: validationResult\r\n } = _ref3;\r\n var validationData = this._getValidationData(rowKey);\r\n if (!validationData) {\r\n return\r\n }\r\n if (!validationData.validationResults) {\r\n validationData.validationResults = {}\r\n }\r\n var result;\r\n if (validationResult) {\r\n result = extend({}, validationResult);\r\n validationData.validationResults[columnIndex] = result;\r\n if (validationResult.status === VALIDATION_STATUS.pending) {\r\n if (this._editingController.getEditMode() === EDIT_MODE_CELL) {\r\n result.deferred = new Deferred;\r\n result.complete.always(() => {\r\n result.deferred.resolve()\r\n });\r\n this._editingController.addDeferred(result.deferred)\r\n }\r\n if (this._disableApplyValidationResults) {\r\n result.disabledPendingId = validationResult.id;\r\n return\r\n }\r\n }\r\n } else {\r\n result = validationData.validationResults[columnIndex]\r\n }\r\n if (result && result.disabledPendingId) {\r\n delete result.disabledPendingId\r\n }\r\n },\r\n getCellValidationResult: function(_ref4) {\r\n var _validationData$valid;\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref4;\r\n var validationData = this._getValidationData(rowKey, true);\r\n return null === validationData || void 0 === validationData ? void 0 : null === (_validationData$valid = validationData.validationResults) || void 0 === _validationData$valid ? void 0 : _validationData$valid[columnIndex]\r\n },\r\n removeCellValidationResult: function(_ref5) {\r\n var {\r\n change: change,\r\n columnIndex: columnIndex\r\n } = _ref5;\r\n var validationData = this._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n if (validationData && validationData.validationResults) {\r\n this.cancelCellValidationResult({\r\n change: change,\r\n columnIndex: columnIndex\r\n });\r\n delete validationData.validationResults[columnIndex]\r\n }\r\n },\r\n cancelCellValidationResult: function(_ref6) {\r\n var {\r\n change: change,\r\n columnIndex: columnIndex\r\n } = _ref6;\r\n var validationData = this._getValidationData(change.key);\r\n if (change && validationData.validationResults) {\r\n var result = validationData.validationResults[columnIndex];\r\n if (result) {\r\n result.deferred && result.deferred.reject(VALIDATION_CANCELLED);\r\n validationData.validationResults[columnIndex] = VALIDATION_CANCELLED\r\n }\r\n }\r\n },\r\n resetRowValidationResults: function(validationData) {\r\n if (validationData) {\r\n validationData.validationResults && delete validationData.validationResults;\r\n delete validationData.validated\r\n }\r\n },\r\n isInvalidCell: function(_ref7) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref7;\r\n var result = this.getCellValidationResult({\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n });\r\n return validationResultIsValid(result) && result.status === VALIDATION_STATUS.invalid\r\n },\r\n getCellValidator: function(_ref8) {\r\n var {\r\n rowKey: rowKey,\r\n columnIndex: columnIndex\r\n } = _ref8;\r\n var validationData = this._getValidationData(rowKey);\r\n var groupConfig = validationData && ValidationEngine.getGroupConfig(validationData);\r\n var validators = groupConfig && groupConfig.validators;\r\n return validators && validators.filter(v => {\r\n var column = v.option(\"dataGetter\")().column;\r\n return column ? column.index === columnIndex : false\r\n })[0]\r\n },\r\n setCellValidationStatus: function(cellOptions) {\r\n var validationResult = this.getCellValidationResult({\r\n rowKey: cellOptions.key,\r\n columnIndex: cellOptions.column.index\r\n });\r\n if (isDefined(validationResult)) {\r\n cellOptions.validationStatus = validationResult !== VALIDATION_CANCELLED ? validationResult.status : VALIDATION_CANCELLED\r\n } else {\r\n delete cellOptions.validationStatus\r\n }\r\n }\r\n});\r\nexport var validatingModule = {\r\n defaultOptions: function() {\r\n return {\r\n editing: {\r\n texts: {\r\n validationCancelChanges: messageLocalization.format(\"dxDataGrid-validationCancelChanges\")\r\n }\r\n }\r\n }\r\n },\r\n controllers: {\r\n validating: ValidatingController\r\n },\r\n extenders: {\r\n controllers: {\r\n editing: {\r\n _addChange: function(changeParams) {\r\n var change = this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n if (change && changeParams.type !== EDIT_DATA_REMOVE_TYPE) {\r\n validatingController.updateValidationState(change)\r\n }\r\n return change\r\n },\r\n _handleChangesChange: function(args) {\r\n this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n args.value.forEach(change => {\r\n if (void 0 === validatingController._getValidationData(change.key)) {\r\n validatingController.updateValidationState(change)\r\n }\r\n })\r\n },\r\n _updateRowAndPageIndices: function() {\r\n var that = this;\r\n var startInsertIndex = that.getView(\"rowsView\").getTopVisibleItemIndex();\r\n var rowIndex = startInsertIndex;\r\n each(that.getChanges(), (_, _ref9) => {\r\n var {\r\n key: key,\r\n type: type\r\n } = _ref9;\r\n var validationData = this.getController(\"validating\")._getValidationData(key);\r\n if (validationData && !validationData.isValid && validationData.pageIndex !== that._pageIndex) {\r\n validationData.pageIndex = that._pageIndex;\r\n if (type === EDIT_DATA_INSERT_TYPE) {\r\n validationData.rowIndex = startInsertIndex\r\n } else {\r\n validationData.rowIndex = rowIndex\r\n }\r\n rowIndex++\r\n }\r\n })\r\n },\r\n _getValidationGroupsInForm: function(detailOptions) {\r\n var validatingController = this.getController(\"validating\");\r\n var validationData = validatingController._getValidationData(detailOptions.key, true);\r\n return {\r\n validationGroup: validationData\r\n }\r\n },\r\n _validateEditFormAfterUpdate: function(row, isCustomSetCellValue) {\r\n if (isCustomSetCellValue && this._editForm) {\r\n this._editForm.validate()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _prepareEditCell: function(params) {\r\n var isNotCanceled = this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n if (isNotCanceled && params.column.showEditorAlways) {\r\n validatingController.updateValidationState({\r\n key: params.key\r\n })\r\n }\r\n return isNotCanceled\r\n },\r\n processItems: function(items, changeType) {\r\n var changes = this.getChanges();\r\n var dataController = this.getController(\"data\");\r\n var validatingController = this.getController(\"validating\");\r\n items = this.callBase(items, changeType);\r\n var itemsCount = items.length;\r\n var addInValidItem = function(change, validationData) {\r\n var data = {\r\n key: change.key\r\n };\r\n var index = function(change, items) {\r\n var index = -1;\r\n var isInsert = change.type === EDIT_DATA_INSERT_TYPE;\r\n var key = change.key;\r\n each(items, (function(i, item) {\r\n if (equalByValue(key, isInsert ? item.key : dataController.keyOf(item))) {\r\n index = i;\r\n return false\r\n }\r\n }));\r\n return index\r\n }(change, items);\r\n if (index >= 0) {\r\n return\r\n }\r\n validationData.rowIndex = validationData.rowIndex > itemsCount ? validationData.rowIndex % itemsCount : validationData.rowIndex;\r\n var rowIndex = validationData.rowIndex;\r\n data[INSERT_INDEX] = 1;\r\n items.splice(rowIndex, 0, data)\r\n };\r\n if (this.getEditMode() === EDIT_MODE_BATCH && \"prepend\" !== changeType && \"append\" !== changeType) {\r\n changes.forEach(change => {\r\n var key = change.key;\r\n var validationData = validatingController._getValidationData(key);\r\n if (validationData && change.type && validationData.pageIndex === this._pageIndex && (null === change || void 0 === change ? void 0 : change.pageIndex) !== this._pageIndex) {\r\n addInValidItem(change, validationData)\r\n }\r\n })\r\n }\r\n return items\r\n },\r\n processDataItem: function(item) {\r\n var isInserted = item.data[INSERT_INDEX];\r\n var key = isInserted ? item.data.key : item.key;\r\n var editMode = this.getEditMode();\r\n if (editMode === EDIT_MODE_BATCH && isInserted && key) {\r\n var changes = this.getChanges();\r\n var editIndex = gridCoreUtils.getIndexByKey(key, changes);\r\n if (editIndex >= 0) {\r\n var change = changes[editIndex];\r\n if (change.type !== EDIT_DATA_INSERT_TYPE) {\r\n var oldData = this._getOldData(change.key);\r\n item.data = extend(true, {}, oldData, change.data);\r\n item.key = key\r\n }\r\n }\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _createInvisibleColumnValidators: function(changes) {\r\n var that = this;\r\n var validatingController = this.getController(\"validating\");\r\n var columnsController = this.getController(\"columns\");\r\n var columns = columnsController.getColumns();\r\n var invisibleColumns = columnsController.getInvisibleColumns().filter(column => !column.isBand);\r\n var groupColumns = columnsController.getGroupColumns().filter(column => !column.showWhenGrouped && -1 === invisibleColumns.indexOf(column));\r\n var invisibleColumnValidators = [];\r\n var isCellVisible = (column, rowKey) => this._dataController.getRowIndexByKey(rowKey) >= 0 && invisibleColumns.indexOf(column) < 0;\r\n invisibleColumns.push(...groupColumns);\r\n if (-1 === FORM_BASED_MODES.indexOf(this.getEditMode())) {\r\n each(columns, (function(_, column) {\r\n changes.forEach((function(change) {\r\n var data;\r\n if (isCellVisible(column, change.key)) {\r\n return\r\n }\r\n if (change.type === EDIT_DATA_INSERT_TYPE) {\r\n data = change.data\r\n } else if (\"update\" === change.type) {\r\n var oldData = that._getOldData(change.key);\r\n data = createObjectWithChanges(oldData, change.data)\r\n }\r\n if (data) {\r\n var validator = validatingController.createValidator({\r\n column: column,\r\n key: change.key,\r\n value: column.calculateCellValue(data)\r\n });\r\n if (validator) {\r\n invisibleColumnValidators.push(validator)\r\n }\r\n }\r\n }))\r\n }))\r\n }\r\n return function() {\r\n invisibleColumnValidators.forEach((function(validator) {\r\n validator.dispose()\r\n }))\r\n }\r\n },\r\n _beforeSaveEditData: function(change, editIndex) {\r\n var result = this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n var validationData = validatingController._getValidationData(null === change || void 0 === change ? void 0 : change.key);\r\n if (change) {\r\n var isValid = \"remove\" === change.type || validationData.isValid;\r\n result = result || !isValid\r\n } else {\r\n var disposeValidators = this._createInvisibleColumnValidators(this.getChanges());\r\n result = new Deferred;\r\n this.executeOperation(result, () => {\r\n validatingController.validate(true).done(isFullValid => {\r\n disposeValidators();\r\n this._updateRowAndPageIndices();\r\n switch (this.getEditMode()) {\r\n case EDIT_MODE_CELL:\r\n if (!isFullValid) {\r\n this._focusEditingCell()\r\n }\r\n break;\r\n case EDIT_MODE_BATCH:\r\n if (!isFullValid) {\r\n this._resetEditRowKey();\r\n this._resetEditColumnName();\r\n this.getController(\"data\").updateItems()\r\n }\r\n }\r\n result.resolve(!isFullValid)\r\n })\r\n })\r\n }\r\n return result.promise ? result.promise() : result\r\n },\r\n _beforeEditCell: function(rowIndex, columnIndex, item) {\r\n var result = this.callBase(rowIndex, columnIndex, item);\r\n if (this.getEditMode() === EDIT_MODE_CELL) {\r\n var $cell = this._rowsView._getCellElement(rowIndex, columnIndex);\r\n var validator = $cell && $cell.data(\"dxValidator\");\r\n var rowOptions = $cell && $cell.closest(\".dx-row\").data(\"options\");\r\n var value = validator && validator.option(\"adapter\").getValue();\r\n if (validator && cellValueShouldBeValidated(value, rowOptions)) {\r\n var validatingController = this.getController(\"validating\");\r\n var deferred = new Deferred;\r\n when(validatingController.validateCell(validator), result).done((validationResult, result) => {\r\n deferred.resolve(validationResult.status === VALIDATION_STATUS.valid && result)\r\n });\r\n return deferred.promise()\r\n } else if (!validator) {\r\n return result\r\n }\r\n }\r\n },\r\n _afterSaveEditData: function(cancel) {\r\n var $firstErrorRow;\r\n var isCellEditMode = this.getEditMode() === EDIT_MODE_CELL;\r\n each(this.getChanges(), (_, change) => {\r\n var $errorRow = this._showErrorRow(change);\r\n $firstErrorRow = $firstErrorRow || $errorRow\r\n });\r\n if ($firstErrorRow) {\r\n var scrollable = this._rowsView.getScrollable();\r\n if (scrollable) {\r\n scrollable.update();\r\n scrollable.scrollToElement($firstErrorRow)\r\n }\r\n }\r\n if (cancel && isCellEditMode && this._needUpdateRow()) {\r\n var editRowIndex = this.getEditRowIndex();\r\n this._dataController.updateItems({\r\n changeType: \"update\",\r\n rowIndices: [editRowIndex]\r\n });\r\n this._focusEditingCell()\r\n } else if (!cancel) {\r\n var shouldResetValidationState = true;\r\n if (isCellEditMode) {\r\n var columns = this.getController(\"columns\").getColumns();\r\n var columnsWithValidatingEditors = columns.filter(col => {\r\n var _col$validationRules;\r\n return col.showEditorAlways && (null === (_col$validationRules = col.validationRules) || void 0 === _col$validationRules ? void 0 : _col$validationRules.length) > 0\r\n }).length > 0;\r\n shouldResetValidationState = !columnsWithValidatingEditors\r\n }\r\n if (shouldResetValidationState) {\r\n this.getController(\"validating\").initValidationState()\r\n }\r\n }\r\n },\r\n _handleDataChanged: function(args) {\r\n var validationState = this.getController(\"validating\")._validationState;\r\n if (\"standard\" === this.option(\"scrolling.mode\")) {\r\n this.resetRowAndPageIndices()\r\n }\r\n if (\"prepend\" === args.changeType) {\r\n each(validationState, (function(_, validationData) {\r\n validationData.rowIndex += args.items.length\r\n }))\r\n }\r\n this.callBase(args)\r\n },\r\n resetRowAndPageIndices: function() {\r\n var validationState = this.getController(\"validating\")._validationState;\r\n each(validationState, (_, validationData) => {\r\n if (validationData.pageIndex !== this._pageIndex) {\r\n delete validationData.pageIndex;\r\n delete validationData.rowIndex\r\n }\r\n })\r\n },\r\n _beforeCancelEditData: function() {\r\n this.getController(\"validating\").initValidationState();\r\n this.callBase()\r\n },\r\n _showErrorRow: function(change) {\r\n var $popupContent;\r\n var errorHandling = this.getController(\"errorHandling\");\r\n var items = this.getController(\"data\").items();\r\n var rowIndex = this.getIndexByKey(change.key, items);\r\n var validationData = this.getController(\"validating\")._getValidationData(change.key);\r\n if (!(null !== validationData && void 0 !== validationData && validationData.isValid) && null !== validationData && void 0 !== validationData && validationData.errorText && rowIndex >= 0) {\r\n $popupContent = this.getPopupContent();\r\n return errorHandling && errorHandling.renderErrorRow(null === validationData || void 0 === validationData ? void 0 : validationData.errorText, rowIndex, $popupContent)\r\n }\r\n },\r\n updateFieldValue: function(e) {\r\n var validatingController = this.getController(\"validating\");\r\n var deferred = new Deferred;\r\n validatingController.removeCellValidationResult({\r\n change: this.getChangeByKey(e.key),\r\n columnIndex: e.column.index\r\n });\r\n this.callBase.apply(this, arguments).done(() => {\r\n var currentValidator = validatingController.getCellValidator({\r\n rowKey: e.key,\r\n columnIndex: e.column.index\r\n });\r\n when(currentValidator && validatingController.validateCell(currentValidator)).done(validationResult => {\r\n this.getController(\"editorFactory\").refocus();\r\n deferred.resolve(validationResult)\r\n })\r\n });\r\n return deferred.promise()\r\n },\r\n highlightDataCell: function($cell, parameters) {\r\n this.callBase.apply(this, arguments);\r\n var validatingController = this.getController(\"validating\");\r\n validatingController.setCellValidationStatus(parameters);\r\n var isEditableCell = !!parameters.setValue;\r\n var cellModified = this.isCellModified(parameters);\r\n var isValidated = isDefined(parameters.validationStatus);\r\n var needValidation = cellModified && parameters.column.setCellValue || isEditableCell && !cellModified && !(parameters.row.isNewRow || !isValidated);\r\n if (needValidation) {\r\n var validator = $cell.data(\"dxValidator\");\r\n if (validator) {\r\n when(this.getController(\"validating\").validateCell(validator)).done(() => {\r\n validatingController.setCellValidationStatus(parameters)\r\n })\r\n }\r\n }\r\n },\r\n getChangeByKey: function(key) {\r\n var changes = this.getChanges();\r\n return changes[gridCoreUtils.getIndexByKey(key, changes)]\r\n },\r\n isCellModified: function(parameters) {\r\n var cellModified = this.callBase(parameters);\r\n var change = this.getChangeByKey(parameters.key);\r\n var isCellInvalid = !!parameters.row && this.getController(\"validating\").isInvalidCell({\r\n rowKey: parameters.key,\r\n columnIndex: parameters.column.index\r\n });\r\n return cellModified || this.getController(\"validating\")._rowIsValidated(change) && isCellInvalid\r\n }\r\n },\r\n editorFactory: {\r\n _showRevertButton: function($container) {\r\n if (!$container || !$container.length) {\r\n return\r\n }\r\n var $tooltipElement = this._rowsView.element().find(\".\" + this.addWidgetPrefix(REVERT_TOOLTIP_CLASS));\r\n var $overlayContainer = $container.closest(\".\".concat(this.addWidgetPrefix(CONTENT_CLASS)));\r\n $tooltipElement && $tooltipElement.remove();\r\n $tooltipElement = $(\"<div>\").addClass(this.addWidgetPrefix(REVERT_TOOLTIP_CLASS)).appendTo($container);\r\n var tooltipOptions = {\r\n animation: null,\r\n visible: true,\r\n width: \"auto\",\r\n height: \"auto\",\r\n shading: false,\r\n container: $overlayContainer,\r\n propagateOutsideClick: true,\r\n hideOnOutsideClick: false,\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true,\r\n contentTemplate: () => {\r\n var $buttonElement = $(\"<div>\").addClass(REVERT_BUTTON_CLASS);\r\n var buttonOptions = {\r\n icon: \"revert\",\r\n hint: this.option(\"editing.texts.validationCancelChanges\"),\r\n onClick: () => {\r\n this._editingController.cancelEditData()\r\n }\r\n };\r\n return new Button($buttonElement, buttonOptions).$element()\r\n },\r\n position: {\r\n my: \"left top\",\r\n at: \"right top\",\r\n offset: \"1 0\",\r\n collision: \"flip\",\r\n boundaryOffset: \"0 0\",\r\n boundary: this._rowsView.element(),\r\n of: $container\r\n },\r\n onPositioned: this._positionedHandler.bind(this)\r\n };\r\n return new Overlay($tooltipElement, tooltipOptions)\r\n },\r\n _hideFixedGroupCell: function($cell, overlayOptions) {\r\n var $nextFixedRowElement;\r\n var $groupCellElement;\r\n var isFixedColumns = this._rowsView.isFixedColumns();\r\n var isFormOrPopupEditMode = this._editingController.isFormOrPopupEditMode();\r\n if (isFixedColumns && !isFormOrPopupEditMode) {\r\n var nextRowOptions = $cell.closest(\".dx-row\").next().data(\"options\");\r\n if (nextRowOptions && \"group\" === nextRowOptions.rowType) {\r\n $nextFixedRowElement = $(this._rowsView.getRowElement(nextRowOptions.rowIndex)).last();\r\n $groupCellElement = $nextFixedRowElement.find(\".\" + GROUP_CELL_CLASS);\r\n if ($groupCellElement.length && \"hidden\" !== $groupCellElement.get(0).style.visibility) {\r\n $groupCellElement.css(\"visibility\", \"hidden\");\r\n overlayOptions.onDisposing = function() {\r\n $groupCellElement.css(\"visibility\", \"\")\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _positionedHandler: function(e, isOverlayVisible) {\r\n if (!e.component.__skipPositionProcessing) {\r\n var isRevertButton = $(e.element).hasClass(this.addWidgetPrefix(REVERT_TOOLTIP_CLASS));\r\n var needRepaint = !isRevertButton && this._rowsView.updateFreeSpaceRowHeight();\r\n var normalizedPosition = this._normalizeValidationMessagePositionAndMaxWidth(e, isRevertButton, isOverlayVisible);\r\n e.component.__skipPositionProcessing = !!(needRepaint || normalizedPosition);\r\n if (normalizedPosition) {\r\n e.component.option(normalizedPosition)\r\n } else if (needRepaint) {\r\n e.component.repaint()\r\n }\r\n }\r\n },\r\n _showValidationMessage: function($cell, messages, alignment, revertTooltip) {\r\n var editorPopup = $cell.find(\".dx-dropdowneditor-overlay\").data(\"dxPopup\");\r\n var isOverlayVisible = editorPopup && editorPopup.option(\"visible\");\r\n var myPosition = isOverlayVisible ? \"top right\" : \"top \" + alignment;\r\n var atPosition = isOverlayVisible ? \"top left\" : \"bottom \" + alignment;\r\n var $overlayContainer = $cell.closest(\".\".concat(this.addWidgetPrefix(CONTENT_CLASS)));\r\n var errorMessageText = \"\";\r\n messages && messages.forEach((function(message) {\r\n errorMessageText += (errorMessageText.length ? \"<br/>\" : \"\") + encodeHtml(message)\r\n }));\r\n var invalidMessageClass = this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS);\r\n this._rowsView.element().find(\".\" + invalidMessageClass).remove();\r\n var $overlayElement = $(\"<div>\").addClass(INVALID_MESSAGE_CLASS).addClass(INVALID_MESSAGE_ALWAYS_CLASS).addClass(invalidMessageClass).html(errorMessageText).appendTo($cell);\r\n var overlayOptions = {\r\n container: $overlayContainer,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n visible: true,\r\n animation: false,\r\n propagateOutsideClick: true,\r\n hideOnOutsideClick: false,\r\n copyRootClassesToWrapper: true,\r\n _ignoreCopyRootClassesToWrapperDeprecation: true,\r\n position: {\r\n collision: \"flip\",\r\n boundary: this._rowsView.element(),\r\n boundaryOffset: \"0 0\",\r\n offset: {\r\n x: 0,\r\n y: !isOverlayVisible && browser.mozilla ? -1 : 0\r\n },\r\n my: myPosition,\r\n at: atPosition,\r\n of: $cell\r\n },\r\n onPositioned: e => {\r\n this._positionedHandler(e, isOverlayVisible);\r\n this._shiftValidationMessageIfNeed(e.component.$content(), revertTooltip && revertTooltip.$content(), $cell)\r\n }\r\n };\r\n this._hideFixedGroupCell($cell, overlayOptions);\r\n new Overlay($overlayElement, overlayOptions)\r\n },\r\n _normalizeValidationMessagePositionAndMaxWidth: function(options, isRevertButton, isOverlayVisible) {\r\n var fixedColumns = this._columnsController.getFixedColumns();\r\n if (!fixedColumns || !fixedColumns.length) {\r\n return\r\n }\r\n var position;\r\n var visibleTableWidth = !isRevertButton && (that = this, element = options.element, rowIndex = $(element).closest(\"tr\").index(), $cellElements = $(that._rowsView.getRowElement(rowIndex)).first().children().filter(\":not(.dx-hidden-cell)\"), that._rowsView._getWidths($cellElements).reduce((w1, w2) => w1 + w2, 0));\r\n var that, element, rowIndex, $cellElements;\r\n var $overlayContentElement = options.component.$content();\r\n var validationMessageWidth = getOuterWidth($overlayContentElement, true);\r\n var needMaxWidth = !isRevertButton && validationMessageWidth > visibleTableWidth;\r\n var columnIndex = this._rowsView.getCellIndex($(options.element).closest(\"td\"));\r\n var boundaryNonFixedColumnsInfo = function(fixedColumns) {\r\n var firstNonFixedColumnIndex;\r\n var lastNonFixedColumnIndex;\r\n fixedColumns.some((column, index) => {\r\n if (column.command === COMMAND_TRANSPARENT) {\r\n firstNonFixedColumnIndex = 0 === index ? -1 : index;\r\n lastNonFixedColumnIndex = index === fixedColumns.length - 1 ? -1 : index + column.colspan - 1;\r\n return true\r\n }\r\n });\r\n return {\r\n startColumnIndex: firstNonFixedColumnIndex,\r\n endColumnIndex: lastNonFixedColumnIndex\r\n }\r\n }(fixedColumns);\r\n if (!isRevertButton && (columnIndex === boundaryNonFixedColumnsInfo.startColumnIndex || needMaxWidth)) {\r\n position = {\r\n collision: \"none flip\",\r\n my: \"top left\",\r\n at: isOverlayVisible ? \"top right\" : \"bottom left\"\r\n }\r\n } else if (columnIndex === boundaryNonFixedColumnsInfo.endColumnIndex) {\r\n position = {\r\n collision: \"none flip\",\r\n my: \"top right\",\r\n at: isRevertButton || isOverlayVisible ? \"top left\" : \"bottom right\"\r\n };\r\n if (isRevertButton) {\r\n position.offset = \"-1 0\"\r\n }\r\n }\r\n return position && {\r\n position: position,\r\n maxWidth: needMaxWidth ? visibleTableWidth - 2 : void 0\r\n }\r\n },\r\n _shiftValidationMessageIfNeed: function($content, $revertContent, $cell) {\r\n if (!$revertContent) {\r\n return\r\n }\r\n var contentOffset = $content.offset();\r\n var revertContentOffset = $revertContent.offset();\r\n if (contentOffset.top === revertContentOffset.top && contentOffset.left + getWidth($content) > revertContentOffset.left) {\r\n var left = getWidth($revertContent) + PADDING_BETWEEN_TOOLTIPS;\r\n $content.css(\"left\", revertContentOffset.left < $cell.offset().left ? -left : left)\r\n }\r\n },\r\n _getTooltipsSelector: function() {\r\n var invalidMessageClass = this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS);\r\n var revertTooltipClass = this.addWidgetPrefix(REVERT_TOOLTIP_CLASS);\r\n return \".dx-editor-cell .\" + revertTooltipClass + \", .dx-editor-cell .\" + invalidMessageClass + \", .dx-cell-modified .\" + invalidMessageClass\r\n },\r\n init: function() {\r\n this.callBase();\r\n this._editingController = this.getController(\"editing\");\r\n this._columnsController = this.getController(\"columns\");\r\n this._rowsView = this.getView(\"rowsView\")\r\n },\r\n loseFocus: function(skipValidator) {\r\n if (!skipValidator) {\r\n this.getController(\"validating\").setValidator(null)\r\n }\r\n this.callBase()\r\n },\r\n updateCellState: function($element, validationResult, hideBorder) {\r\n var _change$data;\r\n var $focus = null === $element || void 0 === $element ? void 0 : $element.closest(this._getFocusCellSelector());\r\n var $cell = null !== $focus && void 0 !== $focus && $focus.is(\"td\") ? $focus : null;\r\n var rowOptions = null === $focus || void 0 === $focus ? void 0 : $focus.closest(\".dx-row\").data(\"options\");\r\n var change = rowOptions ? this.getController(\"editing\").getChangeByKey(rowOptions.key) : null;\r\n var column = $cell && this.getController(\"columns\").getVisibleColumns()[$cell.index()];\r\n var isCellModified = void 0 !== (null === change || void 0 === change ? void 0 : null === (_change$data = change.data) || void 0 === _change$data ? void 0 : _change$data[null === column || void 0 === column ? void 0 : column.name]) && !this._editingController.isSaving();\r\n var revertTooltip;\r\n if ((null === validationResult || void 0 === validationResult ? void 0 : validationResult.status) === VALIDATION_STATUS.invalid || isCellModified) {\r\n if (this._editingController.getEditMode() === EDIT_MODE_CELL) {\r\n revertTooltip = this._showRevertButton($focus)\r\n }\r\n }\r\n var showValidationMessage = validationResult && validationResult.status === VALIDATION_STATUS.invalid;\r\n if (showValidationMessage && $cell && column && validationResult && validationResult.brokenRules) {\r\n var errorMessages = [];\r\n validationResult.brokenRules.forEach((function(rule) {\r\n if (rule.message) {\r\n errorMessages.push(rule.message)\r\n }\r\n }));\r\n if (errorMessages.length) {\r\n this._showValidationMessage($focus, errorMessages, column.alignment || \"left\", revertTooltip)\r\n }\r\n }!hideBorder && this._rowsView.element() && this._rowsView.updateFreeSpaceRowHeight()\r\n },\r\n focus: function($element, hideBorder) {\r\n if (!arguments.length) {\r\n return this.callBase()\r\n }\r\n var $tooltips = $element && $element.closest(\".\" + this.addWidgetPrefix(ROWS_VIEW_CLASS)).find(this._getTooltipsSelector());\r\n $tooltips && $tooltips.remove();\r\n if (null !== $element && void 0 !== $element && $element.hasClass(\"dx-row\") || null !== $element && void 0 !== $element && $element.hasClass(\"dx-master-detail-cell\")) {\r\n return this.callBase($element, hideBorder)\r\n }\r\n var $focus = null === $element || void 0 === $element ? void 0 : $element.closest(this._getFocusCellSelector());\r\n var callBase = this.callBase;\r\n var validator = $focus && ($focus.data(\"dxValidator\") || $element.find(\".\" + this.addWidgetPrefix(VALIDATOR_CLASS)).eq(0).data(\"dxValidator\"));\r\n var rowOptions = $focus && $focus.closest(\".dx-row\").data(\"options\");\r\n var editingController = this.getController(\"editing\");\r\n var change = rowOptions ? editingController.getChangeByKey(rowOptions.key) : null;\r\n var validationResult;\r\n var validatingController = this.getController(\"validating\");\r\n if (validator) {\r\n validatingController.setValidator(validator);\r\n var value = validator.option(\"adapter\").getValue();\r\n if (cellValueShouldBeValidated(value, rowOptions) || validatingController._rowIsValidated(change)) {\r\n editingController.waitForDeferredOperations().done(() => {\r\n when(validatingController.validateCell(validator)).done(result => {\r\n validationResult = result;\r\n var column = validationResult.validator.option(\"dataGetter\")().column;\r\n if (change && column && !validatingController.isCurrentValidatorProcessing({\r\n rowKey: change.key,\r\n columnIndex: column.index\r\n })) {\r\n return\r\n }\r\n if (validationResult.status === VALIDATION_STATUS.invalid) {\r\n hideBorder = true\r\n }\r\n this.updateCellState($element, validationResult, hideBorder);\r\n callBase.call(this, $element, hideBorder)\r\n })\r\n });\r\n return this.callBase($element, hideBorder)\r\n }\r\n }\r\n this.updateCellState($element, validationResult, hideBorder);\r\n return this.callBase($element, hideBorder)\r\n },\r\n getEditorInstance: function($container) {\r\n var $editor = $container.find(\".dx-texteditor\").eq(0);\r\n return gridCoreUtils.getWidgetInstance($editor)\r\n }\r\n },\r\n data: {\r\n _isCellChanged: function(oldRow, newRow, visibleRowIndex, columnIndex, isLiveUpdate) {\r\n var _oldRow$cells, _cell$column$validati;\r\n var cell = null === (_oldRow$cells = oldRow.cells) || void 0 === _oldRow$cells ? void 0 : _oldRow$cells[columnIndex];\r\n var oldValidationStatus = cell && cell.validationStatus;\r\n var validatingController = this.getController(\"validating\");\r\n var validationResult = validatingController.getCellValidationResult({\r\n rowKey: oldRow.key,\r\n columnIndex: columnIndex\r\n });\r\n var validationData = validatingController._getValidationData(oldRow.key);\r\n var newValidationStatus = validationResultIsValid(validationResult) ? validationResult.status : validationResult;\r\n var rowIsModified = JSON.stringify(newRow.modifiedValues) !== JSON.stringify(oldRow.modifiedValues);\r\n var cellIsMarkedAsInvalid = $(null === cell || void 0 === cell ? void 0 : cell.cellElement).hasClass(this.addWidgetPrefix(INVALIDATE_CLASS));\r\n var editingChanged = oldRow.isEditing !== newRow.isEditing;\r\n var hasValidationRules = null === cell || void 0 === cell ? void 0 : null === (_cell$column$validati = cell.column.validationRules) || void 0 === _cell$column$validati ? void 0 : _cell$column$validati.length;\r\n if (editingChanged && hasValidationRules || oldValidationStatus !== newValidationStatus && rowIsModified || validationData.isValid && cellIsMarkedAsInvalid) {\r\n return true\r\n }\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: {\r\n updateFreeSpaceRowHeight: function($table) {\r\n var $rowElements;\r\n var $freeSpaceRowElement;\r\n var $freeSpaceRowElements;\r\n var $element = this.element();\r\n var $tooltipContent = $element && $element.find(\".\" + this.addWidgetPrefix(WIDGET_INVALID_MESSAGE_CLASS) + \" .dx-overlay-content\");\r\n this.callBase($table);\r\n if ($tooltipContent && $tooltipContent.length) {\r\n $rowElements = this._getRowElements();\r\n $freeSpaceRowElements = this._getFreeSpaceRowElements($table);\r\n $freeSpaceRowElement = $freeSpaceRowElements.first();\r\n if ($freeSpaceRowElement && 1 === $rowElements.length && (!$freeSpaceRowElement.is(\":visible\") || getOuterHeight($tooltipContent) > getOuterHeight($freeSpaceRowElement))) {\r\n $freeSpaceRowElements.show();\r\n setHeight($freeSpaceRowElements, getOuterHeight($tooltipContent));\r\n return true\r\n }\r\n }\r\n },\r\n _formItemPrepared: function(cellOptions, $container) {\r\n this.callBase.apply(this, arguments);\r\n deferUpdate(() => {\r\n var $editor = $container.find(\".dx-widget\").first();\r\n var isEditorDisposed = $editor.length && !$editor.children().length;\r\n if (!isEditorDisposed) {\r\n this.getController(\"validating\").createValidator(cellOptions, $editor)\r\n }\r\n })\r\n },\r\n _cellPrepared: function($cell, parameters) {\r\n if (!this.getController(\"editing\").isFormOrPopupEditMode()) {\r\n this.getController(\"validating\").createValidator(parameters, $cell)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _restoreErrorRow: function(contentTable) {\r\n var editingController = this.getController(\"editing\");\r\n editingController && editingController.hasChanges() && this._getRowElements(contentTable).each((_, item) => {\r\n var rowOptions = $(item).data(\"options\");\r\n if (rowOptions) {\r\n var change = editingController.getChangeByKey(rowOptions.key);\r\n change && editingController._showErrorRow(change)\r\n }\r\n })\r\n }\r\n }\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.virtual_columns_core.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport function foreachColumnInfo(info, callback, rowIndex, offsets, columnCount, lastProcessedIndexes) {\r\n rowIndex = rowIndex || 0;\r\n offsets = offsets || [];\r\n lastProcessedIndexes = lastProcessedIndexes || [];\r\n offsets[rowIndex] = offsets[rowIndex] || 0;\r\n var row = info[rowIndex];\r\n var startIndex = lastProcessedIndexes[rowIndex] + 1 || 0;\r\n var processedColumnCount = 0;\r\n var colIndex;\r\n if (!row) {\r\n return\r\n }\r\n for (colIndex = startIndex; colIndex < row.length; colIndex++) {\r\n var cell = row[colIndex];\r\n var visibleIndex = colIndex + offsets[rowIndex];\r\n var colspan = cell.colspan || 1;\r\n foreachColumnInfo(info, callback, rowIndex + (cell.rowspan || 1), offsets, colspan, lastProcessedIndexes);\r\n offsets[rowIndex] += colspan - 1;\r\n processedColumnCount += colspan;\r\n if (cell.rowspan) {\r\n for (var i = rowIndex + 1; i < rowIndex + cell.rowspan; i++) {\r\n offsets[i] = offsets[i] || 0;\r\n offsets[i] += cell.colspan || 1\r\n }\r\n }\r\n if (false === callback(cell, visibleIndex, rowIndex, colIndex)) {\r\n break\r\n }\r\n if (void 0 !== columnCount && processedColumnCount >= columnCount) {\r\n break\r\n }\r\n }\r\n lastProcessedIndexes[rowIndex] = colIndex\r\n}\r\nexport function createColumnsInfo(info, startIndex, endIndex) {\r\n var newInfo = [];\r\n foreachColumnInfo(info, (function(columnInfo, visibleIndex, rowIndex) {\r\n var cell = columnInfo;\r\n var colspan;\r\n var cellColspan = cell.colspan || 1;\r\n var isVisible = visibleIndex + cellColspan - 1 >= startIndex && visibleIndex < endIndex;\r\n newInfo[rowIndex] = newInfo[rowIndex] || [];\r\n if (isVisible) {\r\n if (visibleIndex < startIndex) {\r\n colspan = cellColspan - (startIndex - visibleIndex);\r\n visibleIndex = startIndex\r\n } else {\r\n colspan = cellColspan\r\n }\r\n if (visibleIndex + colspan > endIndex) {\r\n colspan = endIndex - visibleIndex\r\n }\r\n if (colspan !== cellColspan) {\r\n cell = extend({}, cell, {\r\n colspan: colspan\r\n })\r\n }\r\n newInfo[rowIndex].push(cell)\r\n } else if (visibleIndex > endIndex) {\r\n return false\r\n }\r\n }));\r\n for (var i = 0; i < newInfo.length; i++) {\r\n newInfo[i] = newInfo[i] || []\r\n }\r\n return newInfo\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.virtual_columns.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n createColumnsInfo\r\n} from \"./ui.grid_core.virtual_columns_core\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar DEFAULT_COLUMN_WIDTH = 50;\r\nvar VirtualScrollingRowsViewExtender = {\r\n _resizeCore: function() {\r\n this.callBase.apply(this, arguments);\r\n this._columnsController.resize()\r\n },\r\n _handleScroll: function(e) {\r\n var that = this;\r\n var scrollable = this.getScrollable();\r\n var left = e.scrollOffset.left;\r\n that.callBase.apply(that, arguments);\r\n if (that.option(\"rtlEnabled\") && scrollable) {\r\n left = getWidth(scrollable.$content()) - getWidth(scrollable.$element()) - left\r\n }\r\n that._columnsController.setScrollPosition(left)\r\n }\r\n};\r\nvar HeaderViewExtender = {\r\n _renderCore: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this._columnsController.isVirtualMode()) {\r\n this._updateScrollLeftPosition()\r\n }\r\n }\r\n};\r\nvar ColumnsControllerExtender = function() {\r\n var getWidths = function(columns) {\r\n return columns.map(column => column.visibleWidth || parseFloat(column.width) || DEFAULT_COLUMN_WIDTH)\r\n };\r\n var members = {\r\n init: function() {\r\n var that = this;\r\n that.callBase.apply(this, arguments);\r\n that._beginPageIndex = null;\r\n that._endPageIndex = null;\r\n that._position = 0;\r\n that._virtualVisibleColumns = {}\r\n },\r\n resetColumnsCache: function() {\r\n this.callBase();\r\n this._virtualVisibleColumns = {}\r\n },\r\n getBeginPageIndex: function(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.floor(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return 0\r\n },\r\n getTotalWidth: function() {\r\n var width = this.option(\"width\");\r\n if (\"number\" === typeof width) {\r\n return width\r\n }\r\n return this.getController(\"resizing\")._lastWidth || getOuterWidth(this.component.$element())\r\n },\r\n getEndPageIndex: function(position) {\r\n var visibleColumns = this.getVisibleColumns(void 0, true);\r\n var widths = getWidths(visibleColumns);\r\n var currentPosition = 0;\r\n position += this.getTotalWidth();\r\n for (var index = 0; index < widths.length; index++) {\r\n if (currentPosition >= position) {\r\n return Math.ceil(index / this.getColumnPageSize())\r\n }\r\n currentPosition += widths[index]\r\n }\r\n return Math.ceil(widths.length / this.getColumnPageSize())\r\n },\r\n getColumnPageSize: function() {\r\n return this.option(\"scrolling.columnPageSize\")\r\n },\r\n _fireColumnsChanged: function() {\r\n var date = new Date;\r\n this.columnsChanged.fire({\r\n optionNames: {\r\n all: true,\r\n length: 1\r\n },\r\n changeTypes: {\r\n columns: true,\r\n virtualColumnsScrolling: true,\r\n length: 2\r\n }\r\n });\r\n this._renderTime = new Date - date\r\n },\r\n getScrollingTimeout: function() {\r\n var renderingThreshold = this.option(\"scrolling.columnRenderingThreshold\");\r\n var renderAsync = this.option(\"scrolling.renderAsync\");\r\n var scrollingTimeout = 0;\r\n if (!isDefined(renderAsync) && this._renderTime > renderingThreshold || renderAsync) {\r\n scrollingTimeout = this.option(\"scrolling.timeout\")\r\n }\r\n return scrollingTimeout\r\n },\r\n setScrollPosition: function(position) {\r\n var scrollingTimeout = this.getScrollingTimeout();\r\n if (scrollingTimeout > 0) {\r\n clearTimeout(this._changedTimeout);\r\n this._changedTimeout = setTimeout(() => {\r\n this._setScrollPositionCore(position)\r\n }, scrollingTimeout)\r\n } else {\r\n this._setScrollPositionCore(position)\r\n }\r\n },\r\n isVirtualMode: function() {\r\n return hasWindow() && \"virtual\" === this.option(\"scrolling.columnRenderingMode\")\r\n },\r\n resize: function() {\r\n this._setScrollPositionCore(this._position)\r\n },\r\n _setScrollPositionCore: function(position) {\r\n if (this.isVirtualMode()) {\r\n var beginPageIndex = this.getBeginPageIndex(position);\r\n var endPageIndex = this.getEndPageIndex(position);\r\n var needColumnsChanged = position < this._position ? this._beginPageIndex > beginPageIndex : this._endPageIndex < endPageIndex;\r\n this._position = position;\r\n if (needColumnsChanged) {\r\n this._beginPageIndex = beginPageIndex;\r\n this._endPageIndex = endPageIndex;\r\n this._fireColumnsChanged()\r\n }\r\n }\r\n },\r\n getFixedColumns: function(rowIndex, isBase) {\r\n var fixedColumns = this.callBase(rowIndex);\r\n if (this.isVirtualMode() && !isBase && fixedColumns.length) {\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n fixedColumns[transparentColumnIndex].colspan = this.getVisibleColumns().length - this.callBase().length + 1;\r\n return fixedColumns\r\n }\r\n return fixedColumns\r\n },\r\n _compileVisibleColumns: function(rowIndex, isBase) {\r\n var _this$_columns;\r\n if (isBase || !this.isVirtualMode() || !this._shouldReturnVisibleColumns()) {\r\n return this.callBase(rowIndex)\r\n }\r\n if (null !== (_this$_columns = this._columns) && void 0 !== _this$_columns && _this$_columns.length && !isDefined(this._beginPageIndex) && !isDefined(this._endPageIndex)) {\r\n this._beginPageIndex = this.getBeginPageIndex(this._position);\r\n this._endPageIndex = this.getEndPageIndex(this._position)\r\n }\r\n var beginPageIndex = this._beginPageIndex;\r\n var endPageIndex = this._endPageIndex;\r\n var visibleColumnsHash = rowIndex + \"-\" + beginPageIndex + \"-\" + endPageIndex;\r\n if (this._virtualVisibleColumns[visibleColumnsHash]) {\r\n return this._virtualVisibleColumns[visibleColumnsHash]\r\n }\r\n var visibleColumns = this.callBase();\r\n var rowCount = this.getRowCount();\r\n var pageSize = this.getColumnPageSize();\r\n var startIndex = beginPageIndex * pageSize;\r\n var endIndex = endPageIndex * pageSize;\r\n var fixedColumns = this.getFixedColumns(void 0, true);\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n var beginFixedColumnCount = fixedColumns.length ? transparentColumnIndex : 0;\r\n var beginFixedColumns = visibleColumns.slice(0, beginFixedColumnCount);\r\n var beginColumns = visibleColumns.slice(beginFixedColumnCount, startIndex);\r\n var beginWidth = getWidths(beginColumns).reduce((a, b) => a + b, 0);\r\n if (!beginWidth) {\r\n startIndex = 0\r\n }\r\n var endFixedColumnCount = fixedColumns.length ? fixedColumns.length - transparentColumnIndex - 1 : 0;\r\n var endFixedColumns = visibleColumns.slice(visibleColumns.length - endFixedColumnCount);\r\n var endColumns = visibleColumns.slice(endIndex, visibleColumns.length - endFixedColumnCount);\r\n var endWidth = getWidths(endColumns).reduce((a, b) => a + b, 0);\r\n if (!endWidth) {\r\n endIndex = visibleColumns.length\r\n }\r\n if (rowCount > 1 && \"number\" === typeof rowIndex) {\r\n var columnsInfo = [];\r\n for (var i = 0; i < rowCount; i++) {\r\n columnsInfo.push(this.callBase(i))\r\n }\r\n beginFixedColumns = createColumnsInfo(columnsInfo, 0, beginFixedColumns.length)[rowIndex] || [];\r\n endFixedColumns = createColumnsInfo(columnsInfo, visibleColumns.length - endFixedColumns.length, visibleColumns.length)[rowIndex] || [];\r\n visibleColumns = createColumnsInfo(columnsInfo, startIndex, endIndex)[rowIndex] || []\r\n } else {\r\n visibleColumns = visibleColumns.slice(startIndex, endIndex)\r\n }\r\n if (beginWidth) {\r\n visibleColumns.unshift({\r\n command: \"virtual\",\r\n width: beginWidth\r\n });\r\n visibleColumns = beginFixedColumns.concat(visibleColumns)\r\n }\r\n if (endWidth) {\r\n visibleColumns.push({\r\n command: \"virtual\",\r\n width: endWidth\r\n });\r\n visibleColumns = visibleColumns.concat(endFixedColumns)\r\n }\r\n this._virtualVisibleColumns[visibleColumnsHash] = visibleColumns;\r\n return visibleColumns\r\n },\r\n getColumnIndexOffset: function() {\r\n var offset = 0;\r\n if (this._beginPageIndex > 0) {\r\n var fixedColumns = this.getFixedColumns();\r\n var transparentColumnIndex = fixedColumns.map(c => c.command).indexOf(\"transparent\");\r\n var leftFixedColumnCount = transparentColumnIndex >= 0 ? transparentColumnIndex : 0;\r\n offset = this._beginPageIndex * this.getColumnPageSize() - leftFixedColumnCount - 1\r\n }\r\n return offset > 0 ? offset : 0\r\n },\r\n dispose: function() {\r\n clearTimeout(this._changedTimeout);\r\n this.callBase.apply(this, arguments)\r\n }\r\n };\r\n return members\r\n}();\r\nexport var virtualColumnsModule = {\r\n defaultOptions: function() {\r\n return {\r\n scrolling: {\r\n columnRenderingMode: \"standard\",\r\n columnPageSize: 5,\r\n columnRenderingThreshold: 300\r\n }\r\n }\r\n },\r\n extenders: {\r\n controllers: {\r\n columns: ColumnsControllerExtender\r\n },\r\n views: {\r\n columnHeadersView: HeaderViewExtender,\r\n rowsView: VirtualScrollingRowsViewExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid.core.virtual_data_loader.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n isObject,\r\n isString\r\n} from \"../../core/utils/type\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar needTwoPagesLoading = that => that.option(\"scrolling.loadTwoPagesOnStart\") || that._controller.isVirtual() || that._controller.getViewportItemIndex() > 0;\r\nvar getBeginPageIndex = that => that._cache.length ? that._cache[0].pageIndex : -1;\r\nvar getEndPageIndex = that => that._cache.length ? that._cache[that._cache.length - 1].pageIndex : -1;\r\nvar fireChanged = (that, changed, args) => {\r\n that._isChangedFiring = true;\r\n changed(args);\r\n that._isChangedFiring = false\r\n};\r\nvar processDelayChanged = (that, changed, args) => {\r\n if (that._isDelayChanged) {\r\n that._isDelayChanged = false;\r\n fireChanged(that, changed, args);\r\n return true\r\n }\r\n};\r\nvar getViewportPageCount = that => {\r\n var pageSize = that._dataOptions.pageSize();\r\n var preventPreload = that.option(\"scrolling.preventPreload\");\r\n if (preventPreload) {\r\n return 0\r\n }\r\n var realViewportSize = that._controller.viewportSize();\r\n if (that._controller.isVirtualMode() && that.option(\"scrolling.removeInvisiblePages\")) {\r\n realViewportSize = 0;\r\n var viewportSize = that._controller.viewportSize() * that._controller.viewportItemSize();\r\n var offset = that._controller.getContentOffset();\r\n var position = that._controller.getViewportPosition();\r\n var virtualItemsCount = that._controller.virtualItemsCount();\r\n var totalItemsCount = that._dataOptions.totalItemsCount();\r\n for (var itemIndex = virtualItemsCount.begin; itemIndex < totalItemsCount; itemIndex++) {\r\n if (offset >= position + viewportSize) {\r\n break\r\n }\r\n var itemSize = that._controller.getItemSizes()[itemIndex] || that._controller.viewportItemSize();\r\n offset += itemSize;\r\n if (offset >= position) {\r\n realViewportSize++\r\n }\r\n }\r\n }\r\n return pageSize && realViewportSize > 0 ? Math.ceil(realViewportSize / pageSize) : 1\r\n};\r\nvar getPreloadPageCount = (that, previous) => {\r\n var preloadEnabled = that.option(\"scrolling.preloadEnabled\");\r\n var pageCount = getViewportPageCount(that);\r\n var isAppendMode = that._controller.isAppendMode();\r\n if (pageCount) {\r\n if (previous) {\r\n pageCount = preloadEnabled ? 1 : 0\r\n } else {\r\n if (preloadEnabled) {\r\n pageCount++\r\n }\r\n if (isAppendMode || !needTwoPagesLoading(that)) {\r\n pageCount--\r\n }\r\n }\r\n }\r\n return pageCount\r\n};\r\nvar getPageIndexForLoad = that => {\r\n var result = -1;\r\n var beginPageIndex = getBeginPageIndex(that);\r\n var dataOptions = that._dataOptions;\r\n if (beginPageIndex < 0) {\r\n result = that._pageIndex\r\n } else if (!that._cache[that._pageIndex - beginPageIndex]) {\r\n result = that._pageIndex\r\n } else if (beginPageIndex >= 0 && that._controller.viewportSize() >= 0) {\r\n if (beginPageIndex > 0) {\r\n var needToLoadPageBeforeLast = getEndPageIndex(that) + 1 === dataOptions.pageCount() && that._cache.length < getPreloadPageCount(that) + 1;\r\n var needToLoadPrevPage = needToLoadPageBeforeLast || that._pageIndex === beginPageIndex && getPreloadPageCount(that, true);\r\n if (needToLoadPrevPage) {\r\n result = beginPageIndex - 1\r\n }\r\n }\r\n if (result < 0) {\r\n var needToLoadNextPage = beginPageIndex + that._cache.length <= that._pageIndex + getPreloadPageCount(that);\r\n if (needToLoadNextPage) {\r\n result = beginPageIndex + that._cache.length\r\n }\r\n }\r\n }\r\n if (that._loadingPageIndexes[result]) {\r\n result = -1\r\n }\r\n return result\r\n};\r\nvar loadCore = (that, pageIndex) => {\r\n var dataOptions = that._dataOptions;\r\n if (pageIndex === that.pageIndex() || !dataOptions.isLoading() && pageIndex < dataOptions.pageCount() || !dataOptions.hasKnownLastPage() && pageIndex === dataOptions.pageCount()) {\r\n dataOptions.pageIndex(pageIndex);\r\n that._loadingPageIndexes[pageIndex] = true;\r\n return when(dataOptions.load()).always(() => {\r\n that._loadingPageIndexes[pageIndex] = false\r\n })\r\n }\r\n};\r\nvar processChanged = (that, changed, changeType, isDelayChanged, removeCacheItem) => {\r\n var dataOptions = that._dataOptions;\r\n var items = dataOptions.items().slice();\r\n var change = isObject(changeType) ? changeType : void 0;\r\n var isPrepend = \"prepend\" === changeType;\r\n var viewportItems = dataOptions.viewportItems();\r\n if (changeType && isString(changeType) && !that._isDelayChanged) {\r\n change = {\r\n changeType: changeType,\r\n items: items\r\n };\r\n if (removeCacheItem) {\r\n change.removeCount = removeCacheItem.itemsCount;\r\n if (change.removeCount && dataOptions.correctCount) {\r\n change.removeCount = dataOptions.correctCount(viewportItems, change.removeCount, isPrepend)\r\n }\r\n }\r\n }\r\n var removeItemCount = removeCacheItem ? removeCacheItem.itemsLength : 0;\r\n if (removeItemCount && dataOptions.correctCount) {\r\n removeItemCount = dataOptions.correctCount(viewportItems, removeItemCount, isPrepend)\r\n }\r\n if (\"append\" === changeType) {\r\n viewportItems.push.apply(viewportItems, items);\r\n if (removeCacheItem) {\r\n viewportItems.splice(0, removeItemCount)\r\n }\r\n } else if (isPrepend) {\r\n viewportItems.unshift.apply(viewportItems, items);\r\n if (removeCacheItem) {\r\n viewportItems.splice(-removeItemCount)\r\n }\r\n } else {\r\n that._dataOptions.viewportItems(items)\r\n }\r\n dataOptions.updateLoading();\r\n that._lastPageIndex = that.pageIndex();\r\n that._isDelayChanged = isDelayChanged;\r\n if (!isDelayChanged) {\r\n fireChanged(that, changed, change)\r\n }\r\n};\r\nexport class VirtualDataLoader {\r\n constructor(controller, dataOptions) {\r\n this._controller = controller;\r\n this._dataOptions = dataOptions;\r\n this._pageIndex = this._lastPageIndex = dataOptions.pageIndex();\r\n this._cache = [];\r\n this._loadingPageIndexes = {}\r\n }\r\n option() {\r\n return this._controller.option.apply(this._controller, arguments)\r\n }\r\n viewportItemIndexChanged(itemIndex) {\r\n var pageSize = this._dataOptions.pageSize();\r\n var pageCount = this._dataOptions.pageCount();\r\n var virtualMode = this._controller.isVirtualMode();\r\n var appendMode = this._controller.isAppendMode();\r\n var totalItemsCount = this._dataOptions.totalItemsCount();\r\n var newPageIndex;\r\n if (pageSize && (virtualMode || appendMode) && totalItemsCount >= 0) {\r\n var viewportSize = this._controller.viewportSize();\r\n if (viewportSize && itemIndex + viewportSize >= totalItemsCount && !this._controller.isVirtual()) {\r\n if (this._dataOptions.hasKnownLastPage()) {\r\n newPageIndex = pageCount - 1;\r\n var lastPageSize = totalItemsCount % pageSize;\r\n if (newPageIndex > 0 && lastPageSize > 0 && lastPageSize < viewportSize) {\r\n newPageIndex--\r\n }\r\n } else {\r\n newPageIndex = pageCount\r\n }\r\n } else {\r\n newPageIndex = Math.floor(itemIndex / pageSize);\r\n var maxPageIndex = pageCount - 1;\r\n newPageIndex = Math.max(newPageIndex, 0);\r\n newPageIndex = Math.min(newPageIndex, maxPageIndex)\r\n }\r\n this.pageIndex(newPageIndex);\r\n return this.load()\r\n }\r\n }\r\n pageIndex(pageIndex) {\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if (false !== this.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n if (void 0 !== pageIndex) {\r\n this._pageIndex = pageIndex\r\n }\r\n return this._pageIndex\r\n } else {\r\n return this._dataOptions.pageIndex(pageIndex)\r\n }\r\n }\r\n beginPageIndex(defaultPageIndex) {\r\n var beginPageIndex = getBeginPageIndex(this);\r\n if (beginPageIndex < 0) {\r\n beginPageIndex = void 0 !== defaultPageIndex ? defaultPageIndex : this.pageIndex()\r\n }\r\n return beginPageIndex\r\n }\r\n endPageIndex() {\r\n var endPageIndex = getEndPageIndex(this);\r\n return endPageIndex > 0 ? endPageIndex : this._lastPageIndex\r\n }\r\n pageSize() {\r\n return this._dataOptions.pageSize()\r\n }\r\n load() {\r\n var dataOptions = this._dataOptions;\r\n var result;\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if (false !== this.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n var pageIndexForLoad = getPageIndexForLoad(this);\r\n if (pageIndexForLoad >= 0) {\r\n var loadResult = loadCore(this, pageIndexForLoad);\r\n if (loadResult) {\r\n result = new Deferred;\r\n loadResult.done(() => {\r\n var delayDeferred = this._delayDeferred;\r\n if (delayDeferred) {\r\n delayDeferred.done(result.resolve).fail(result.reject)\r\n } else {\r\n result.resolve()\r\n }\r\n }).fail(result.reject);\r\n dataOptions.updateLoading()\r\n }\r\n }\r\n } else {\r\n result = dataOptions.load()\r\n }\r\n if (!result && this._lastPageIndex !== this.pageIndex()) {\r\n this._dataOptions.onChanged({\r\n changeType: \"pageIndex\"\r\n })\r\n }\r\n return result || (new Deferred).resolve()\r\n }\r\n loadIfNeed() {\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if ((isVirtualMode || isAppendMode) && !this._dataOptions.isLoading() && (!this._isChangedFiring || this._controller.isVirtual())) {\r\n var position = this._controller.getViewportPosition();\r\n if (position > 0) {\r\n this._controller._setViewportPositionCore(position)\r\n } else {\r\n this.load()\r\n }\r\n }\r\n }\r\n handleDataChanged(callBase, e) {\r\n var dataOptions = this._dataOptions;\r\n var lastCacheLength = this._cache.length;\r\n var changeType;\r\n var removeInvisiblePages;\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n var isAppendMode = this._controller.isAppendMode();\r\n if (e && e.changes) {\r\n fireChanged(this, callBase, e)\r\n } else if (false !== this.option(LEGACY_SCROLLING_MODE) && (isVirtualMode || isAppendMode)) {\r\n var beginPageIndex = getBeginPageIndex(this);\r\n if (beginPageIndex >= 0) {\r\n if (isVirtualMode && beginPageIndex + this._cache.length !== dataOptions.pageIndex() && beginPageIndex - 1 !== dataOptions.pageIndex()) {\r\n lastCacheLength = 0;\r\n this._cache = []\r\n }\r\n if (isAppendMode) {\r\n if (0 === dataOptions.pageIndex()) {\r\n this._cache = []\r\n } else if (dataOptions.pageIndex() < getEndPageIndex(this)) {\r\n fireChanged(this, callBase, {\r\n changeType: \"append\",\r\n items: []\r\n });\r\n return\r\n }\r\n }\r\n }\r\n var cacheItem = {\r\n pageIndex: dataOptions.pageIndex(),\r\n itemsLength: dataOptions.items(true).length,\r\n itemsCount: this.itemsCount(true)\r\n };\r\n if (this.option(\"scrolling.removeInvisiblePages\") && isVirtualMode) {\r\n removeInvisiblePages = this._cache.length > Math.max(getPreloadPageCount(this) + (this.option(\"scrolling.preloadEnabled\") ? 1 : 0), 2)\r\n } else {\r\n processDelayChanged(this, callBase, {\r\n isDelayed: true\r\n })\r\n }\r\n var removeCacheItem;\r\n if (beginPageIndex === dataOptions.pageIndex() + 1) {\r\n if (removeInvisiblePages) {\r\n removeCacheItem = this._cache.pop()\r\n }\r\n changeType = \"prepend\";\r\n this._cache.unshift(cacheItem)\r\n } else {\r\n if (removeInvisiblePages) {\r\n removeCacheItem = this._cache.shift()\r\n }\r\n changeType = \"append\";\r\n this._cache.push(cacheItem)\r\n }\r\n var isDelayChanged = isVirtualMode && 0 === lastCacheLength && needTwoPagesLoading(this);\r\n processChanged(this, callBase, this._cache.length > 1 ? changeType : void 0, isDelayChanged, removeCacheItem);\r\n this._delayDeferred = this.load().done(() => {\r\n if (processDelayChanged(this, callBase)) {\r\n this.load()\r\n }\r\n })\r\n } else {\r\n processChanged(this, callBase, e)\r\n }\r\n }\r\n getDelayDeferred() {\r\n return this._delayDeferred\r\n }\r\n itemsCount(isBase) {\r\n var itemsCount = 0;\r\n var isVirtualMode = this._controller.isVirtualMode();\r\n if (!isBase && isVirtualMode) {\r\n this._cache.forEach(cacheItem => {\r\n itemsCount += cacheItem.itemsCount\r\n })\r\n } else {\r\n itemsCount = this._dataOptions.itemsCount()\r\n }\r\n return itemsCount\r\n }\r\n virtualItemsCount() {\r\n var pageIndex = getBeginPageIndex(this);\r\n if (pageIndex < 0) {\r\n pageIndex = this._dataOptions.pageIndex()\r\n }\r\n var beginItemsCount = pageIndex * this._dataOptions.pageSize();\r\n var itemsCount = this._cache.length * this._dataOptions.pageSize();\r\n var endItemsCount = Math.max(0, this._dataOptions.totalItemsCount() - itemsCount - beginItemsCount);\r\n return {\r\n begin: beginItemsCount,\r\n end: endItemsCount\r\n }\r\n }\r\n reset() {\r\n this._loadingPageIndexes = {};\r\n this._cache = []\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.virtual_scrolling_core.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n VirtualDataLoader\r\n} from \"./ui.grid.core.virtual_data_loader\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar _isVirtualMode = that => that.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL || that._isVirtual;\r\nvar _isAppendMode = that => that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE && !that._isVirtual;\r\nexport function subscribeToExternalScrollers($element, scrollChangedHandler, $targetElement) {\r\n var $scrollElement;\r\n var scrollableArray = [];\r\n var scrollToArray = [];\r\n var disposeArray = [];\r\n $targetElement = $targetElement || $element;\r\n\r\n function getElementOffset(scrollable) {\r\n var $scrollableElement = scrollable.element ? scrollable.$element() : scrollable;\r\n var scrollableOffset = positionUtils.offset($scrollableElement);\r\n if (!scrollableOffset) {\r\n return $element.offset().top\r\n }\r\n return scrollable.scrollTop() - (scrollableOffset.top - $element.offset().top)\r\n }\r\n var widgetScrollStrategy = {\r\n on: function(scrollable, eventName, handler) {\r\n scrollable.on(\"scroll\", handler)\r\n },\r\n off: function(scrollable, eventName, handler) {\r\n scrollable.off(\"scroll\", handler)\r\n }\r\n };\r\n\r\n function subscribeToScrollEvents($scrollElement) {\r\n var isDocument = \"#document\" === $scrollElement.get(0).nodeName;\r\n var isElement = $scrollElement.get(0).nodeType === getWindow().Node.ELEMENT_NODE;\r\n var scrollable = $scrollElement.data(\"dxScrollable\");\r\n var eventsStrategy = widgetScrollStrategy;\r\n if (!scrollable) {\r\n scrollable = isDocument && $(getWindow()) || isElement && \"auto\" === $scrollElement.css(\"overflowY\") && $scrollElement;\r\n eventsStrategy = eventsEngine;\r\n if (!scrollable) {\r\n return\r\n }\r\n }\r\n var handler = function(scrollable) {\r\n return function() {\r\n var scrollTop = scrollable.scrollTop() - getElementOffset(scrollable);\r\n scrollTop = scrollTop > 0 ? scrollTop : 0;\r\n scrollChangedHandler(scrollTop)\r\n }\r\n }(scrollable);\r\n eventsStrategy.on(scrollable, \"scroll\", handler);\r\n scrollToArray.push((function(pos) {\r\n var topOffset = getElementOffset(scrollable);\r\n var scrollMethod = scrollable.scrollTo ? \"scrollTo\" : \"scrollTop\";\r\n if (pos - topOffset >= 0) {\r\n scrollable[scrollMethod](pos + topOffset)\r\n }\r\n }));\r\n scrollableArray.push(scrollable);\r\n disposeArray.push((function() {\r\n eventsStrategy.off(scrollable, \"scroll\", handler)\r\n }))\r\n }\r\n var getScrollElementParent = $element => {\r\n var _$element$get$parentN;\r\n return $(null !== (_$element$get$parentN = $element.get(0).parentNode) && void 0 !== _$element$get$parentN ? _$element$get$parentN : $element.get(0).host)\r\n };\r\n for ($scrollElement = $targetElement.parent(); $scrollElement.length; $scrollElement = getScrollElementParent($scrollElement)) {\r\n subscribeToScrollEvents($scrollElement)\r\n }\r\n return {\r\n scrollTo: function(pos) {\r\n each(scrollToArray, (function(_, scrollTo) {\r\n scrollTo(pos)\r\n }))\r\n },\r\n dispose: function() {\r\n each(disposeArray, (function(_, dispose) {\r\n dispose()\r\n }))\r\n }\r\n }\r\n}\r\nexport var VirtualScrollController = Class.inherit(function() {\r\n var members = {\r\n ctor: function(component, dataOptions, isVirtual) {\r\n this._dataOptions = dataOptions;\r\n this.component = component;\r\n this._viewportSize = false === component.option(LEGACY_SCROLLING_MODE) ? 15 : 0;\r\n this._viewportItemSize = 20;\r\n this._viewportItemIndex = 0;\r\n this._position = 0;\r\n this._isScrollingBack = false;\r\n this._contentSize = 0;\r\n this._itemSizes = {};\r\n this._sizeRatio = 1;\r\n this._isVirtual = isVirtual;\r\n this.positionChanged = Callbacks();\r\n this._dataLoader = new VirtualDataLoader(this, this._dataOptions)\r\n },\r\n getItemSizes: function() {\r\n return this._itemSizes\r\n },\r\n option: function() {\r\n return this.component.option.apply(this.component, arguments)\r\n },\r\n isVirtual: function() {\r\n return this._isVirtual\r\n },\r\n virtualItemsCount: function() {\r\n if (_isVirtualMode(this)) {\r\n var dataOptions = this._dataOptions;\r\n var totalItemsCount = dataOptions.totalItemsCount();\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && -1 !== totalItemsCount) {\r\n var viewportParams = this.getViewportParams();\r\n var loadedOffset = dataOptions.loadedOffset();\r\n var loadedItemCount = dataOptions.loadedItemCount();\r\n var skip = Math.max(viewportParams.skip, loadedOffset);\r\n var take = Math.min(viewportParams.take, loadedItemCount);\r\n var endItemsCount = Math.max(totalItemsCount - (skip + take), 0);\r\n return {\r\n begin: skip,\r\n end: endItemsCount\r\n }\r\n }\r\n return this._dataLoader.virtualItemsCount.apply(this._dataLoader, arguments)\r\n }\r\n },\r\n getScrollingTimeout: function() {\r\n var renderAsync = this.option(\"scrolling.renderAsync\");\r\n var scrollingTimeout = 0;\r\n if (!isDefined(renderAsync)) {\r\n scrollingTimeout = Math.min(this.option(\"scrolling.timeout\") || 0, this._dataOptions.changingDuration());\r\n if (scrollingTimeout < this.option(\"scrolling.renderingThreshold\")) {\r\n scrollingTimeout = this.option(\"scrolling.minTimeout\") || 0\r\n }\r\n } else if (renderAsync) {\r\n var _this$option;\r\n scrollingTimeout = null !== (_this$option = this.option(\"scrolling.timeout\")) && void 0 !== _this$option ? _this$option : 0\r\n }\r\n return scrollingTimeout\r\n },\r\n setViewportPosition: function(position) {\r\n var result = new Deferred;\r\n var scrollingTimeout = this.getScrollingTimeout();\r\n clearTimeout(this._scrollTimeoutID);\r\n if (scrollingTimeout > 0) {\r\n this._scrollTimeoutID = setTimeout(() => {\r\n this._setViewportPositionCore(position);\r\n result.resolve()\r\n }, scrollingTimeout)\r\n } else {\r\n this._setViewportPositionCore(position);\r\n result.resolve()\r\n }\r\n return result.promise()\r\n },\r\n getViewportPosition: function() {\r\n return this._position\r\n },\r\n getItemIndexByPosition: function(position, viewportItemIndex, height) {\r\n var _position;\r\n position = null !== (_position = position) && void 0 !== _position ? _position : this._position;\r\n var defaultItemSize = this.getItemSize();\r\n var offset = 0;\r\n var itemOffset = 0;\r\n var itemOffsetsWithSize = Object.keys(this._itemSizes).concat(-1);\r\n for (var i = 0; i < itemOffsetsWithSize.length && offset < position; i++) {\r\n var itemOffsetWithSize = parseInt(itemOffsetsWithSize[i]);\r\n var itemOffsetDiff = (position - offset) / defaultItemSize;\r\n if (itemOffsetWithSize < 0 || itemOffset + itemOffsetDiff < itemOffsetWithSize) {\r\n itemOffset += itemOffsetDiff;\r\n if (this._sizeRatio < 1 && isDefined(viewportItemIndex)) {\r\n itemOffset = viewportItemIndex + height / this._viewportItemSize\r\n }\r\n break\r\n } else {\r\n itemOffsetDiff = itemOffsetWithSize - itemOffset;\r\n offset += itemOffsetDiff * defaultItemSize;\r\n itemOffset += itemOffsetDiff\r\n }\r\n var itemSize = this._itemSizes[itemOffsetWithSize];\r\n offset += itemSize;\r\n itemOffset += offset < position ? 1 : (position - offset + itemSize) / itemSize\r\n }\r\n return Math.round(50 * itemOffset) / 50\r\n },\r\n isScrollingBack: function() {\r\n return this._isScrollingBack\r\n },\r\n _setViewportPositionCore: function(position) {\r\n var prevPosition = this._position || 0;\r\n this._position = position;\r\n if (prevPosition !== this._position) {\r\n this._isScrollingBack = this._position < prevPosition\r\n }\r\n var itemIndex = this.getItemIndexByPosition();\r\n var result = this.setViewportItemIndex(itemIndex);\r\n this.positionChanged.fire();\r\n return result\r\n },\r\n setContentItemSizes: function(sizes) {\r\n var virtualItemsCount = this.virtualItemsCount();\r\n this._contentSize = sizes.reduce((a, b) => a + b, 0);\r\n if (virtualItemsCount) {\r\n sizes.forEach((size, index) => {\r\n this._itemSizes[virtualItemsCount.begin + index] = size\r\n });\r\n var virtualContentSize = (virtualItemsCount.begin + virtualItemsCount.end + this.itemsCount()) * this._viewportItemSize;\r\n var contentHeightLimit = gridCoreUtils.getContentHeightLimit(browser);\r\n if (virtualContentSize > contentHeightLimit) {\r\n this._sizeRatio = contentHeightLimit / virtualContentSize\r\n } else {\r\n this._sizeRatio = 1\r\n }\r\n }\r\n },\r\n getItemSize: function() {\r\n return this._viewportItemSize * this._sizeRatio\r\n },\r\n getItemOffset: function(itemIndex, isEnd) {\r\n var virtualItemsCount = this.virtualItemsCount();\r\n var itemCount = itemIndex;\r\n if (!virtualItemsCount) {\r\n return 0\r\n }\r\n var offset = 0;\r\n var totalItemsCount = this._dataOptions.totalItemsCount();\r\n Object.keys(this._itemSizes).forEach(currentItemIndex => {\r\n if (!itemCount) {\r\n return\r\n }\r\n if (isEnd ? currentItemIndex >= totalItemsCount - itemIndex : currentItemIndex < itemIndex) {\r\n offset += this._itemSizes[currentItemIndex];\r\n itemCount--\r\n }\r\n });\r\n return Math.floor(offset + itemCount * this._viewportItemSize * this._sizeRatio)\r\n },\r\n getContentOffset: function(type) {\r\n var isEnd = \"end\" === type;\r\n var virtualItemsCount = this.virtualItemsCount();\r\n if (!virtualItemsCount) {\r\n return 0\r\n }\r\n return this.getItemOffset(isEnd ? virtualItemsCount.end : virtualItemsCount.begin, isEnd)\r\n },\r\n getVirtualContentSize: function() {\r\n var virtualItemsCount = this.virtualItemsCount();\r\n return virtualItemsCount ? this.getContentOffset(\"begin\") + this.getContentOffset(\"end\") + this._contentSize : 0\r\n },\r\n getViewportItemIndex: function() {\r\n return this._viewportItemIndex\r\n },\r\n setViewportItemIndex: function(itemIndex) {\r\n this._viewportItemIndex = itemIndex;\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return\r\n }\r\n return this._dataLoader.viewportItemIndexChanged.apply(this._dataLoader, arguments)\r\n },\r\n viewportItemSize: function(size) {\r\n if (void 0 !== size) {\r\n this._viewportItemSize = size\r\n }\r\n return this._viewportItemSize\r\n },\r\n viewportSize: function(size) {\r\n if (void 0 !== size) {\r\n this._viewportSize = size\r\n }\r\n return this._viewportSize\r\n },\r\n viewportHeight: function(height, scrollTop) {\r\n var position = null !== scrollTop && void 0 !== scrollTop ? scrollTop : this._position;\r\n var begin = this.getItemIndexByPosition(position);\r\n var end = this.getItemIndexByPosition(position + height, begin, height);\r\n this.viewportSize(Math.ceil(end - begin));\r\n if (!isDefined(scrollTop) && this._viewportItemIndex !== begin) {\r\n this._setViewportPositionCore(position)\r\n }\r\n },\r\n reset: function(isRefresh) {\r\n this._dataLoader.reset();\r\n if (!isRefresh) {\r\n this._itemSizes = {}\r\n }\r\n },\r\n subscribeToWindowScrollEvents: function($element) {\r\n this._windowScroll = this._windowScroll || subscribeToExternalScrollers($element, scrollTop => {\r\n if (this.viewportItemSize()) {\r\n this.setViewportPosition(scrollTop)\r\n }\r\n })\r\n },\r\n dispose: function() {\r\n clearTimeout(this._scrollTimeoutID);\r\n this._windowScroll && this._windowScroll.dispose();\r\n this._windowScroll = null\r\n },\r\n scrollTo: function(pos) {\r\n this._windowScroll && this._windowScroll.scrollTo(pos)\r\n },\r\n isVirtualMode: function() {\r\n return _isVirtualMode(this)\r\n },\r\n isAppendMode: function() {\r\n return _isAppendMode(this)\r\n },\r\n getViewportParams: function() {\r\n var _this$option2;\r\n var virtualMode = this.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL;\r\n var totalItemsCount = this._dataOptions.totalItemsCount();\r\n var hasKnownLastPage = this._dataOptions.hasKnownLastPage();\r\n var topIndex = hasKnownLastPage && this._viewportItemIndex > totalItemsCount ? totalItemsCount : this._viewportItemIndex;\r\n var bottomIndex = this._viewportSize + topIndex;\r\n var maxGap = this.option(\"scrolling.prerenderedRowChunkSize\") || 1;\r\n var isScrollingBack = this.isScrollingBack();\r\n var minGap = null !== (_this$option2 = this.option(\"scrolling.prerenderedRowCount\")) && void 0 !== _this$option2 ? _this$option2 : 1;\r\n var topMinGap = isScrollingBack ? minGap : 0;\r\n var bottomMinGap = isScrollingBack ? 0 : minGap;\r\n var skip = Math.floor(Math.max(0, topIndex - topMinGap) / maxGap) * maxGap;\r\n var take = Math.ceil((bottomIndex + bottomMinGap - skip) / maxGap) * maxGap;\r\n if (virtualMode) {\r\n var remainedItems = Math.max(0, totalItemsCount - skip);\r\n take = Math.min(take, remainedItems)\r\n }\r\n return {\r\n skip: skip,\r\n take: take\r\n }\r\n },\r\n itemsCount: function() {\r\n var result = 0;\r\n if (this.option(LEGACY_SCROLLING_MODE)) {\r\n result = this._dataLoader.itemsCount.apply(this._dataLoader, arguments)\r\n } else {\r\n result = this._dataOptions.itemsCount()\r\n }\r\n return result\r\n }\r\n };\r\n [\"pageIndex\", \"beginPageIndex\", \"endPageIndex\", \"pageSize\", \"load\", \"loadIfNeed\", \"handleDataChanged\", \"getDelayDeferred\"].forEach((function(name) {\r\n members[name] = function() {\r\n return this._dataLoader[name].apply(this._dataLoader, arguments)\r\n }\r\n }));\r\n return members\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/grid_core/ui.grid_core.virtual_scrolling.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n VirtualScrollController,\r\n subscribeToExternalScrollers\r\n} from \"./ui.grid_core.virtual_scrolling_core\";\r\nimport gridCoreUtils from \"./ui.grid_core.utils\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isElementInDom\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nvar BOTTOM_LOAD_PANEL_CLASS = \"bottom-load-panel\";\r\nvar TABLE_CONTENT_CLASS = \"table-content\";\r\nvar GROUP_SPACE_CLASS = \"group-space\";\r\nvar CONTENT_CLASS = \"content\";\r\nvar FREESPACE_CLASS = \"dx-freespace-row\";\r\nvar COLUMN_LINES_CLASS = \"dx-column-lines\";\r\nvar VIRTUAL_ROW_CLASS = \"dx-virtual-row\";\r\nvar ROW_INSERTED = \"dx-row-inserted\";\r\nvar SCROLLING_MODE_INFINITE = \"infinite\";\r\nvar SCROLLING_MODE_VIRTUAL = \"virtual\";\r\nvar LOAD_TIMEOUT = 300;\r\nvar LEGACY_SCROLLING_MODE = \"scrolling.legacyMode\";\r\nvar VISIBLE_PAGE_INDEX = \"paging.pageIndex\";\r\nvar isVirtualMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_VIRTUAL\r\n};\r\nvar isAppendMode = function(that) {\r\n return that.option(\"scrolling.mode\") === SCROLLING_MODE_INFINITE\r\n};\r\nvar isVirtualPaging = function(that) {\r\n return isVirtualMode(that) || isAppendMode(that)\r\n};\r\nvar _correctCount = function(items, count, fromEnd, isItemCountableFunc) {\r\n for (var i = 0; i < count + 1; i++) {\r\n var item = items[fromEnd ? items.length - 1 - i : i];\r\n if (item && !isItemCountableFunc(item, i === count, fromEnd)) {\r\n count++\r\n }\r\n }\r\n return count\r\n};\r\nvar isItemCountableByDataSource = function(item, dataSource) {\r\n return \"data\" === item.rowType && !item.isNewRow || \"group\" === item.rowType && dataSource.isGroupItemCountable(item.data)\r\n};\r\nvar updateItemIndices = function(items) {\r\n items.forEach((function(item, index) {\r\n item.rowIndex = index\r\n }));\r\n return items\r\n};\r\nvar VirtualScrollingDataSourceAdapterExtender = function() {\r\n var _updateLoading = function(that) {\r\n var beginPageIndex = that._virtualScrollController.beginPageIndex(-1);\r\n if (isVirtualMode(that)) {\r\n if (beginPageIndex < 0 || that.viewportSize() >= 0 && that.getViewportItemIndex() >= 0 && (beginPageIndex * that.pageSize() > that.getViewportItemIndex() || beginPageIndex * that.pageSize() + that.itemsCount() < that.getViewportItemIndex() + that.viewportSize()) && that._dataSource.isLoading()) {\r\n if (!that._isLoading) {\r\n that._isLoading = true;\r\n that.loadingChanged.fire(true)\r\n }\r\n } else if (that._isLoading) {\r\n that._isLoading = false;\r\n that.loadingChanged.fire(false)\r\n }\r\n }\r\n };\r\n var result = {\r\n init: function() {\r\n this.callBase.apply(this, arguments);\r\n this._items = [];\r\n this._totalCount = -1;\r\n this._isLoaded = true;\r\n this._loadPageCount = 1;\r\n this._virtualScrollController = new VirtualScrollController(this.component, this._getVirtualScrollDataOptions())\r\n },\r\n _getVirtualScrollDataOptions: function() {\r\n var that = this;\r\n return {\r\n pageSize: function() {\r\n return that.pageSize()\r\n },\r\n totalItemsCount: function() {\r\n return that.totalItemsCount()\r\n },\r\n hasKnownLastPage: function() {\r\n return that.hasKnownLastPage()\r\n },\r\n pageIndex: function(index) {\r\n return that._dataSource.pageIndex(index)\r\n },\r\n isLoading: function() {\r\n return that._dataSource.isLoading() && !that.isCustomLoading()\r\n },\r\n pageCount: function() {\r\n return that.pageCount()\r\n },\r\n load: function() {\r\n return that._dataSource.load()\r\n },\r\n updateLoading: function() {\r\n _updateLoading(that)\r\n },\r\n itemsCount: function() {\r\n return that.itemsCount(true)\r\n },\r\n items: function() {\r\n return that._dataSource.items()\r\n },\r\n viewportItems: function(items) {\r\n if (items) {\r\n that._items = items\r\n }\r\n return that._items\r\n },\r\n onChanged: function(e) {\r\n that.changed.fire(e)\r\n },\r\n changingDuration: function(e) {\r\n if (that.isLoading()) {\r\n return LOAD_TIMEOUT\r\n }\r\n return that._renderTime || 0\r\n }\r\n }\r\n },\r\n _handleLoadingChanged: function(isLoading) {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n if (!isVirtualMode(this) || this._isLoadingAll) {\r\n this._isLoading = isLoading;\r\n this.callBase.apply(this, arguments)\r\n }\r\n if (isLoading) {\r\n this._startLoadTime = new Date\r\n } else {\r\n this._startLoadTime = void 0\r\n }\r\n },\r\n _handleLoadError: function() {\r\n if (false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n this._isLoading = false;\r\n this.loadingChanged.fire(false)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _handleDataChanged: function(e) {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._items = this._dataSource.items().slice();\r\n this._totalCount = this._dataSourceTotalCount(true);\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n var callBase = this.callBase.bind(this);\r\n this._virtualScrollController.handleDataChanged(callBase, e)\r\n },\r\n _customizeRemoteOperations: function(options, operationTypes) {\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n var renderAsync = this.option(\"scrolling.renderAsync\");\r\n if (!isDefined(renderAsync)) {\r\n renderAsync = this._renderTime >= this.option(\"scrolling.renderingThreshold\")\r\n }\r\n if ((isVirtualMode(this) || isAppendMode(this) && newMode) && !operationTypes.reload && (operationTypes.skip || newMode) && !renderAsync) {\r\n options.delay = void 0\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n items: function() {\r\n return this._items\r\n },\r\n _dataSourceTotalCount: function(isBase) {\r\n return false === this.option(LEGACY_SCROLLING_MODE) && isVirtualMode(this) && !isBase ? this._totalCount : this.callBase()\r\n },\r\n itemsCount: function(isBase) {\r\n if (isBase || false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return this.callBase()\r\n }\r\n return this._virtualScrollController.itemsCount()\r\n },\r\n load: function(loadOptions) {\r\n if (false === this.option(LEGACY_SCROLLING_MODE) || loadOptions) {\r\n return this.callBase(loadOptions)\r\n }\r\n return this._virtualScrollController.load()\r\n },\r\n isLoading: function() {\r\n return false === this.option(LEGACY_SCROLLING_MODE) ? this._dataSource.isLoading() : this._isLoading\r\n },\r\n isLoaded: function() {\r\n return this._dataSource.isLoaded() && this._isLoaded\r\n },\r\n resetPagesCache: function(isLiveUpdate) {\r\n if (!isLiveUpdate) {\r\n this._virtualScrollController.reset(true)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _changeRowExpandCore: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n this.resetPagesCache();\r\n _updateLoading(this);\r\n return result\r\n },\r\n reload: function() {\r\n this._dataSource.pageIndex(this.pageIndex());\r\n var virtualScrollController = this._virtualScrollController;\r\n if (false !== this.option(LEGACY_SCROLLING_MODE) && virtualScrollController) {\r\n var d = new Deferred;\r\n this.callBase.apply(this, arguments).done((function(r) {\r\n var delayDeferred = virtualScrollController.getDelayDeferred();\r\n if (delayDeferred) {\r\n delayDeferred.done(d.resolve).fail(d.reject)\r\n } else {\r\n d.resolve(r)\r\n }\r\n })).fail(d.reject);\r\n return d\r\n } else {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n },\r\n refresh: function(options, operationTypes) {\r\n if (false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var dataSource = this._dataSource;\r\n if (operationTypes.reload) {\r\n this._virtualScrollController.reset();\r\n dataSource.items().length = 0;\r\n this._isLoaded = false;\r\n _updateLoading(this);\r\n this._isLoaded = true;\r\n if (isAppendMode(this)) {\r\n this.pageIndex(0);\r\n dataSource.pageIndex(0);\r\n storeLoadOptions.pageIndex = 0;\r\n options.pageIndex = 0;\r\n storeLoadOptions.skip = 0\r\n } else {\r\n dataSource.pageIndex(this.pageIndex());\r\n if (dataSource.paginate()) {\r\n options.pageIndex = this.pageIndex();\r\n storeLoadOptions.skip = this.pageIndex() * this.pageSize()\r\n }\r\n }\r\n } else if (isAppendMode(this) && storeLoadOptions.skip && this._totalCountCorrection < 0) {\r\n storeLoadOptions.skip += this._totalCountCorrection\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n dispose: function() {\r\n this._virtualScrollController.dispose();\r\n this.callBase.apply(this, arguments)\r\n },\r\n loadPageCount: function(count) {\r\n if (!isDefined(count)) {\r\n return this._loadPageCount\r\n }\r\n this._loadPageCount = count\r\n },\r\n _handleDataLoading: function(options) {\r\n var loadPageCount = this.loadPageCount();\r\n var pageSize = this.pageSize();\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n var storeLoadOptions = options.storeLoadOptions;\r\n var takeIsDefined = isDefined(storeLoadOptions.take);\r\n options.loadPageCount = loadPageCount;\r\n if (!options.isCustomLoading && newMode && takeIsDefined && loadPageCount > 1 && pageSize > 0) {\r\n storeLoadOptions.take = loadPageCount * pageSize\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _loadPageSize: function() {\r\n return this.callBase.apply(this, arguments) * this.loadPageCount()\r\n }\r\n };\r\n [\"beginPageIndex\", \"endPageIndex\", \"pageIndex\"].forEach((function(name) {\r\n result[name] = function() {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n var dataSource = this._dataSource;\r\n return dataSource.pageIndex.apply(dataSource, arguments)\r\n }\r\n var virtualScrollController = this._virtualScrollController;\r\n return virtualScrollController[name].apply(virtualScrollController, arguments)\r\n }\r\n }));\r\n [\"virtualItemsCount\", \"getContentOffset\", \"getVirtualContentSize\", \"setContentItemSizes\", \"setViewportPosition\", \"getViewportItemIndex\", \"setViewportItemIndex\", \"getItemIndexByPosition\", \"viewportSize\", \"viewportItemSize\", \"getItemSize\", \"getItemSizes\", \"loadIfNeed\"].forEach((function(name) {\r\n result[name] = function() {\r\n var virtualScrollController = this._virtualScrollController;\r\n return virtualScrollController[name].apply(virtualScrollController, arguments)\r\n }\r\n }));\r\n return result\r\n}();\r\nvar VirtualScrollingRowsViewExtender = function() {\r\n var removeEmptyRows = function($emptyRows, className) {\r\n var tBodies = $emptyRows.toArray().map(row => $(row).parent(\".\" + className).get(0)).filter(row => row);\r\n if (tBodies.length) {\r\n $emptyRows = $(tBodies)\r\n }\r\n var rowCount = className === FREESPACE_CLASS ? $emptyRows.length - 1 : $emptyRows.length;\r\n for (var i = 0; i < rowCount; i++) {\r\n $emptyRows.eq(i).remove()\r\n }\r\n };\r\n return {\r\n init: function() {\r\n var _dataController$state;\r\n var dataController = this.getController(\"data\");\r\n this.callBase();\r\n dataController.pageChanged.add(pageIndex => {\r\n var scrollTop = this._scrollTop;\r\n this.scrollToPage(null !== pageIndex && void 0 !== pageIndex ? pageIndex : dataController.pageIndex());\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && this._scrollTop === scrollTop) {\r\n dataController.updateViewport()\r\n }\r\n });\r\n dataController.dataSourceChanged.add(() => {\r\n !this._scrollTop && this._scrollToCurrentPageOnResize()\r\n });\r\n null === (_dataController$state = dataController.stateLoaded) || void 0 === _dataController$state ? void 0 : _dataController$state.add(() => {\r\n this._scrollToCurrentPageOnResize()\r\n });\r\n this._scrollToCurrentPageOnResize()\r\n },\r\n _scrollToCurrentPageOnResize: function() {\r\n var dataController = this.getController(\"data\");\r\n if (dataController.pageIndex() > 0) {\r\n var resizeHandler = () => {\r\n this.resizeCompleted.remove(resizeHandler);\r\n this.scrollToPage(dataController.pageIndex())\r\n };\r\n this.resizeCompleted.add(resizeHandler)\r\n }\r\n },\r\n scrollToPage: function(pageIndex) {\r\n var dataController = this._dataController;\r\n var pageSize = dataController ? dataController.pageSize() : 0;\r\n var scrollPosition;\r\n if (isVirtualMode(this) || isAppendMode(this)) {\r\n var itemSize = dataController.getItemSize();\r\n var itemSizes = dataController.getItemSizes();\r\n var itemIndex = pageIndex * pageSize;\r\n scrollPosition = itemIndex * itemSize;\r\n for (var index in itemSizes) {\r\n if (index < itemIndex) {\r\n scrollPosition += itemSizes[index] - itemSize\r\n }\r\n }\r\n } else {\r\n scrollPosition = 0\r\n }\r\n this.scrollTo({\r\n y: scrollPosition,\r\n x: this._scrollLeft\r\n })\r\n },\r\n renderDelayedTemplates: function(e) {\r\n this._waitAsyncTemplates(e).done(() => {\r\n this._updateContentPosition(true)\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderCore: function(e) {\r\n var startRenderTime = new Date;\r\n this.callBase.apply(this, arguments);\r\n var dataSource = this._dataController._dataSource;\r\n if (dataSource && e) {\r\n var itemCount = e.items ? e.items.length : 20;\r\n var viewportSize = this._dataController.viewportSize() || 20;\r\n if (gridCoreUtils.isVirtualRowRendering(this) && itemCount > 0 && false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n dataSource._renderTime = (new Date - startRenderTime) * viewportSize / itemCount\r\n } else {\r\n dataSource._renderTime = new Date - startRenderTime\r\n }\r\n }\r\n },\r\n _getRowElements: function(tableElement) {\r\n var $rows = this.callBase(tableElement);\r\n return $rows && $rows.not(\".\" + VIRTUAL_ROW_CLASS)\r\n },\r\n _removeRowsElements: function(contentTable, removeCount, changeType) {\r\n var rowElements = this._getRowElements(contentTable).toArray();\r\n if (\"append\" === changeType) {\r\n rowElements = rowElements.slice(0, removeCount)\r\n } else {\r\n rowElements = rowElements.slice(-removeCount)\r\n }\r\n var errorHandlingController = this.getController(\"errorHandling\");\r\n rowElements.map(rowElement => {\r\n var $rowElement = $(rowElement);\r\n errorHandlingController && errorHandlingController.removeErrorRow($rowElement.next());\r\n $rowElement.remove()\r\n })\r\n },\r\n _updateContent: function(tableElement, change) {\r\n var $freeSpaceRowElements;\r\n var contentElement = this._findContentElement();\r\n var changeType = change && change.changeType;\r\n var d = Deferred();\r\n var contentTable = contentElement.children().first();\r\n if (\"append\" === changeType || \"prepend\" === changeType) {\r\n this._waitAsyncTemplates(change).done(() => {\r\n var $tBodies = this._getBodies(tableElement);\r\n if (1 === $tBodies.length) {\r\n this._getBodies(contentTable)[\"append\" === changeType ? \"append\" : \"prepend\"]($tBodies.children())\r\n } else {\r\n $tBodies[\"append\" === changeType ? \"appendTo\" : \"prependTo\"](contentTable)\r\n }\r\n tableElement.remove();\r\n $freeSpaceRowElements = this._getFreeSpaceRowElements(contentTable);\r\n removeEmptyRows($freeSpaceRowElements, FREESPACE_CLASS);\r\n if (change.removeCount) {\r\n this._removeRowsElements(contentTable, change.removeCount, changeType)\r\n }\r\n this._restoreErrorRow(contentTable);\r\n d.resolve()\r\n }).fail(d.reject)\r\n } else {\r\n this.callBase.apply(this, arguments).done(() => {\r\n if (\"update\" === changeType) {\r\n this._restoreErrorRow(contentTable)\r\n }\r\n d.resolve()\r\n }).fail(d.reject)\r\n }\r\n return d.promise().done(() => {\r\n this._updateBottomLoading()\r\n })\r\n },\r\n _addVirtualRow: function($table, isFixed, location, position) {\r\n if (!position) {\r\n return\r\n }\r\n var $virtualRow = this._createEmptyRow(VIRTUAL_ROW_CLASS, isFixed, position);\r\n $virtualRow = this._wrapRowIfNeed($table, $virtualRow);\r\n this._appendEmptyRow($table, $virtualRow, location)\r\n },\r\n _updateContentItemSizes: function() {\r\n var rowHeights = this._getRowHeights();\r\n var correctedRowHeights = this._correctRowHeights(rowHeights);\r\n this._dataController.setContentItemSizes(correctedRowHeights)\r\n },\r\n _updateViewportSize: function(viewportHeight, scrollTop) {\r\n if (!isDefined(viewportHeight)) {\r\n viewportHeight = this._hasHeight ? getOuterHeight(this.element()) : getOuterHeight(getWindow())\r\n }\r\n this._dataController.viewportHeight(viewportHeight, scrollTop)\r\n },\r\n _getRowHeights: function() {\r\n var _this$getController, _this$getController$i;\r\n var isPopupEditMode = null === (_this$getController = this.getController(\"editing\")) || void 0 === _this$getController ? void 0 : null === (_this$getController$i = _this$getController.isPopupEditMode) || void 0 === _this$getController$i ? void 0 : _this$getController$i.call(_this$getController);\r\n var rowElements = this._getRowElements(this._tableElement).toArray();\r\n if (isPopupEditMode) {\r\n rowElements = rowElements.filter(row => !$(row).hasClass(ROW_INSERTED))\r\n }\r\n return rowElements.map(row => getBoundingRect(row).height)\r\n },\r\n _correctRowHeights: function(rowHeights) {\r\n var dataController = this._dataController;\r\n var dataSource = dataController._dataSource;\r\n var correctedRowHeights = [];\r\n var visibleRows = dataController.getVisibleRows();\r\n var itemSize = 0;\r\n var firstCountableItem = true;\r\n var lastLoadIndex = -1;\r\n for (var i = 0; i < rowHeights.length; i++) {\r\n var currentItem = visibleRows[i];\r\n if (!isDefined(currentItem)) {\r\n continue\r\n }\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n if (lastLoadIndex >= 0 && lastLoadIndex !== currentItem.loadIndex) {\r\n correctedRowHeights.push(itemSize);\r\n itemSize = 0\r\n }\r\n lastLoadIndex = currentItem.loadIndex\r\n } else if (isItemCountableByDataSource(currentItem, dataSource)) {\r\n if (firstCountableItem) {\r\n firstCountableItem = false\r\n } else {\r\n correctedRowHeights.push(itemSize);\r\n itemSize = 0\r\n }\r\n }\r\n itemSize += rowHeights[i]\r\n }\r\n itemSize > 0 && correctedRowHeights.push(itemSize);\r\n return correctedRowHeights\r\n },\r\n _updateContentPosition: function(isRender) {\r\n var dataController = this._dataController;\r\n var rowHeight = this._rowHeight || 20;\r\n dataController.viewportItemSize(rowHeight);\r\n if (isVirtualMode(this) || gridCoreUtils.isVirtualRowRendering(this)) {\r\n if (!isRender) {\r\n this._updateContentItemSizes()\r\n }\r\n var top = dataController.getContentOffset(\"begin\");\r\n var bottom = dataController.getContentOffset(\"end\");\r\n var $tables = this.getTableElements();\r\n var $virtualRows = $tables.children(\"tbody\").children(\".\" + VIRTUAL_ROW_CLASS);\r\n removeEmptyRows($virtualRows, VIRTUAL_ROW_CLASS);\r\n $tables.each((index, element) => {\r\n var isFixed = index > 0;\r\n var prevFixed = this._isFixedTableRendering;\r\n this._isFixedTableRendering = isFixed;\r\n this._addVirtualRow($(element), isFixed, \"top\", top);\r\n this._addVirtualRow($(element), isFixed, \"bottom\", bottom);\r\n this._isFixedTableRendering = prevFixed\r\n })\r\n }\r\n },\r\n _isTableLinesDisplaysCorrect: function(table) {\r\n var hasColumnLines = table.find(\".\" + COLUMN_LINES_CLASS).length > 0;\r\n return hasColumnLines === this.option(\"showColumnLines\")\r\n },\r\n _isColumnElementsEqual: function($columns, $virtualColumns) {\r\n var result = $columns.length === $virtualColumns.length;\r\n if (result) {\r\n each($columns, (function(index, element) {\r\n if (element.style.width !== $virtualColumns[index].style.width) {\r\n result = false;\r\n return result\r\n }\r\n }))\r\n }\r\n return result\r\n },\r\n _getCellClasses: function(column) {\r\n var classes = [];\r\n var cssClass = column.cssClass;\r\n var isExpandColumn = \"expand\" === column.command;\r\n cssClass && classes.push(cssClass);\r\n isExpandColumn && classes.push(this.addWidgetPrefix(GROUP_SPACE_CLASS));\r\n return classes\r\n },\r\n _findBottomLoadPanel: function($contentElement) {\r\n var $element = $contentElement || this.element();\r\n var $bottomLoadPanel = $element && $element.find(\".\" + this.addWidgetPrefix(BOTTOM_LOAD_PANEL_CLASS));\r\n if ($bottomLoadPanel && $bottomLoadPanel.length) {\r\n return $bottomLoadPanel\r\n }\r\n },\r\n _updateBottomLoading: function() {\r\n var virtualMode = isVirtualMode(this);\r\n var appendMode = isAppendMode(this);\r\n var showBottomLoading = !this._dataController.hasKnownLastPage() && this._dataController.isLoaded() && (virtualMode || appendMode);\r\n var $contentElement = this._findContentElement();\r\n var bottomLoadPanelElement = this._findBottomLoadPanel($contentElement);\r\n if (showBottomLoading) {\r\n if (!bottomLoadPanelElement) {\r\n $(\"<div>\").addClass(this.addWidgetPrefix(BOTTOM_LOAD_PANEL_CLASS)).append(this._createComponent($(\"<div>\"), LoadIndicator).$element()).appendTo($contentElement)\r\n }\r\n } else if (bottomLoadPanelElement) {\r\n bottomLoadPanelElement.remove()\r\n }\r\n },\r\n _handleScroll: function(e) {\r\n var legacyScrollingMode = true === this.option(LEGACY_SCROLLING_MODE);\r\n var zeroTopPosition = 0 === e.scrollOffset.top;\r\n var isScrollTopChanged = this._scrollTop !== e.scrollOffset.top;\r\n if ((isScrollTopChanged || e.forceUpdateScrollPosition) && (this._hasHeight || !legacyScrollingMode && zeroTopPosition) && this._rowHeight) {\r\n this._scrollTop = e.scrollOffset.top;\r\n if (isVirtualMode(this) && false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._updateContentItemSizes();\r\n this._updateViewportSize(null, this._scrollTop)\r\n }\r\n this._dataController.setViewportPosition(e.scrollOffset.top)\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _needUpdateRowHeight: function(itemsCount) {\r\n return this.callBase.apply(this, arguments) || itemsCount > 0 && isAppendMode(this) && !gridCoreUtils.isVirtualRowRendering(this)\r\n },\r\n _updateRowHeight: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this._rowHeight) {\r\n this._updateContentPosition();\r\n var viewportHeight = this._hasHeight ? getOuterHeight(this.element()) : getOuterHeight(getWindow());\r\n var dataController = this._dataController;\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._updateViewportSize(viewportHeight);\r\n dataController.updateViewport()\r\n } else {\r\n dataController.viewportSize(Math.ceil(viewportHeight / this._rowHeight))\r\n }\r\n }\r\n },\r\n updateFreeSpaceRowHeight: function() {\r\n var result = this.callBase.apply(this, arguments);\r\n if (result) {\r\n this._updateContentPosition()\r\n }\r\n return result\r\n },\r\n setLoading: function(isLoading, messageText) {\r\n var dataController = this._dataController;\r\n var hasBottomLoadPanel = dataController.pageIndex() > 0 && dataController.isLoaded() && !!this._findBottomLoadPanel();\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isLoading && dataController.isViewportChanging()) {\r\n return\r\n }\r\n if (hasBottomLoadPanel) {\r\n isLoading = false\r\n }\r\n this.callBase.call(this, isLoading, messageText)\r\n },\r\n _resizeCore: function() {\r\n var that = this;\r\n var $element = that.element();\r\n that.callBase();\r\n if (that.component.$element() && !that._windowScroll && isElementInDom($element)) {\r\n that._windowScroll = subscribeToExternalScrollers($element, (function(scrollPos) {\r\n if (!that._hasHeight && that._rowHeight) {\r\n that._dataController.setViewportPosition(scrollPos)\r\n }\r\n }), that.component.$element());\r\n that.on(\"disposing\", (function() {\r\n that._windowScroll.dispose()\r\n }))\r\n }\r\n if (false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n that.loadIfNeed()\r\n }\r\n },\r\n loadIfNeed: function() {\r\n var _dataController$loadI;\r\n var dataController = this._dataController;\r\n null === dataController || void 0 === dataController ? void 0 : null === (_dataController$loadI = dataController.loadIfNeed) || void 0 === _dataController$loadI ? void 0 : _dataController$loadI.call(dataController)\r\n },\r\n setColumnWidths: function(widths) {\r\n var scrollable = this.getScrollable();\r\n var $content;\r\n this.callBase.apply(this, arguments);\r\n if (\"virtual\" === this.option(\"scrolling.mode\")) {\r\n $content = scrollable ? $(scrollable.content()) : this.element();\r\n this.callBase(widths, $content.children(\".\" + this.addWidgetPrefix(CONTENT_CLASS)).children(\":not(.\" + this.addWidgetPrefix(TABLE_CONTENT_CLASS) + \")\"))\r\n }\r\n },\r\n _restoreErrorRow: function() {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n var errorHandling = this.getController(\"errorHandling\");\r\n null === errorHandling || void 0 === errorHandling ? void 0 : errorHandling.removeErrorRow()\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n dispose: function() {\r\n clearTimeout(this._scrollTimeoutID);\r\n this.callBase()\r\n }\r\n }\r\n}();\r\nexport var virtualScrollingModule = {\r\n defaultOptions: function() {\r\n return {\r\n scrolling: {\r\n timeout: 300,\r\n updateTimeout: 300,\r\n minTimeout: 0,\r\n renderingThreshold: 100,\r\n removeInvisiblePages: true,\r\n rowPageSize: 5,\r\n prerenderedRowChunkSize: 1,\r\n mode: \"standard\",\r\n preloadEnabled: false,\r\n rowRenderingMode: \"standard\",\r\n loadTwoPagesOnStart: false,\r\n legacyMode: false,\r\n prerenderedRowCount: 1\r\n }\r\n }\r\n },\r\n extenders: {\r\n dataSourceAdapter: VirtualScrollingDataSourceAdapterExtender,\r\n controllers: {\r\n data: function() {\r\n var members = {\r\n _refreshDataSource: function() {\r\n var baseResult = this.callBase.apply(this, arguments) || (new Deferred).resolve().promise();\r\n baseResult.done(this.initVirtualRows.bind(this));\r\n return baseResult\r\n },\r\n _loadDataSource: function() {\r\n if (this._rowsScrollController && isVirtualPaging(this)) {\r\n var _this$_dataSource;\r\n var {\r\n loadPageCount: loadPageCount\r\n } = isDefined(this._loadViewportParams) ? this.getLoadPageParams() : {};\r\n loadPageCount >= 1 && (null === (_this$_dataSource = this._dataSource) || void 0 === _this$_dataSource ? void 0 : _this$_dataSource.loadPageCount(loadPageCount))\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n getRowPageSize: function() {\r\n var rowPageSize = this.option(\"scrolling.rowPageSize\");\r\n var pageSize = this.pageSize();\r\n return pageSize && pageSize < rowPageSize ? pageSize : rowPageSize\r\n },\r\n reload: function() {\r\n var rowsScrollController = this._rowsScrollController || this._dataSource;\r\n var itemIndex = rowsScrollController && rowsScrollController.getItemIndexByPosition();\r\n var result = this.callBase.apply(this, arguments);\r\n return result && result.done(() => {\r\n if (isVirtualMode(this) || gridCoreUtils.isVirtualRowRendering(this)) {\r\n var rowIndexOffset = this.getRowIndexOffset();\r\n var rowIndex = Math.floor(itemIndex) - rowIndexOffset;\r\n var component = this.component;\r\n var scrollable = component.getScrollable && component.getScrollable();\r\n var isSortingOperation = this.dataSource().operationTypes().sorting;\r\n if (scrollable && !isSortingOperation && rowIndex >= 0) {\r\n var rowElement = component.getRowElement(rowIndex);\r\n var $rowElement = rowElement && rowElement[0] && $(rowElement[0]);\r\n var top = $rowElement && $rowElement.position().top;\r\n var isChromeLatest = browser.chrome && browser.version >= 91;\r\n var allowedTopOffset = browser.mozilla || isChromeLatest ? 1 : 0;\r\n if (top > allowedTopOffset) {\r\n top = Math.round(top + getOuterHeight($rowElement) * (itemIndex % 1));\r\n scrollable.scrollTo({\r\n y: top\r\n })\r\n }\r\n }\r\n }\r\n })\r\n },\r\n initVirtualRows: function() {\r\n var virtualRowsRendering = gridCoreUtils.isVirtualRowRendering(this);\r\n this._allItems = null;\r\n this._loadViewportParams = null;\r\n if (\"virtual\" !== this.option(\"scrolling.mode\") && true !== virtualRowsRendering || false === virtualRowsRendering || false !== this.option(LEGACY_SCROLLING_MODE) && !this.option(\"scrolling.rowPageSize\")) {\r\n this._visibleItems = null;\r\n this._rowsScrollController = null;\r\n return\r\n }\r\n var pageIndex = !isVirtualMode(this) && this.pageIndex() >= this.pageCount() ? this.pageCount() - 1 : this.pageIndex();\r\n this._rowPageIndex = Math.ceil(pageIndex * this.pageSize() / this.getRowPageSize());\r\n this._visibleItems = false === this.option(LEGACY_SCROLLING_MODE) ? null : [];\r\n this._viewportChanging = false;\r\n this._needUpdateViewportAfterLoading = false;\r\n if (!this._rowsScrollController) {\r\n this._rowsScrollController = new VirtualScrollController(this.component, this._getRowsScrollDataOptions(), true);\r\n this._rowsScrollController.positionChanged.add(() => {\r\n var _this$_dataSource2;\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._viewportChanging = true;\r\n this.loadViewport();\r\n this._viewportChanging = false;\r\n return\r\n }\r\n null === (_this$_dataSource2 = this._dataSource) || void 0 === _this$_dataSource2 ? void 0 : _this$_dataSource2.setViewportItemIndex(this._rowsScrollController.getViewportItemIndex())\r\n })\r\n }\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n this._updateLoadViewportParams()\r\n }\r\n if (this.isLoaded() && false !== this.option(LEGACY_SCROLLING_MODE)) {\r\n this._rowsScrollController.load()\r\n }\r\n },\r\n isViewportChanging: function() {\r\n return this._viewportChanging\r\n },\r\n _getRowsScrollDataOptions: function() {\r\n var that = this;\r\n var isItemCountable = function(item) {\r\n return isItemCountableByDataSource(item, that._dataSource)\r\n };\r\n return {\r\n pageSize: function() {\r\n return that.getRowPageSize()\r\n },\r\n loadedOffset: function() {\r\n var _that$_dataSource;\r\n return isVirtualMode(that) && (null === (_that$_dataSource = that._dataSource) || void 0 === _that$_dataSource ? void 0 : _that$_dataSource.lastLoadOptions().skip) || 0\r\n },\r\n loadedItemCount: function() {\r\n return that._itemCount\r\n },\r\n totalItemsCount: function() {\r\n if (isVirtualPaging(that)) {\r\n return that.totalItemsCount()\r\n }\r\n return false === that.option(LEGACY_SCROLLING_MODE) ? that._itemCount : that._items.filter(isItemCountable).length\r\n },\r\n hasKnownLastPage: function() {\r\n return false === that.option(LEGACY_SCROLLING_MODE) ? that.hasKnownLastPage() : true\r\n },\r\n pageIndex: function(index) {\r\n if (void 0 !== index) {\r\n that._rowPageIndex = index\r\n }\r\n return that._rowPageIndex\r\n },\r\n isLoading: function() {\r\n return that.isLoading()\r\n },\r\n pageCount: function() {\r\n var pageCount = Math.ceil(this.totalItemsCount() / this.pageSize());\r\n return pageCount ? pageCount : 1\r\n },\r\n load: function() {\r\n if (that._rowsScrollController.pageIndex() >= this.pageCount()) {\r\n that._rowPageIndex = this.pageCount() - 1;\r\n that._rowsScrollController.pageIndex(that._rowPageIndex)\r\n }\r\n if (!this.items().length && this.totalItemsCount()) {\r\n return\r\n }\r\n that._rowsScrollController.handleDataChanged(change => {\r\n change = change || {};\r\n change.changeType = change.changeType || \"refresh\";\r\n change.items = change.items || that._visibleItems;\r\n that._visibleItems.forEach((item, index) => {\r\n item.rowIndex = index\r\n });\r\n that._fireChanged(change)\r\n })\r\n },\r\n updateLoading: function() {},\r\n itemsCount: function() {\r\n return this.items(true).length\r\n },\r\n correctCount: function(items, count, fromEnd) {\r\n return _correctCount(items, count, fromEnd, (item, isNextAfterLast, fromEnd) => {\r\n if (item.isNewRow) {\r\n return isNextAfterLast && !fromEnd\r\n }\r\n if (isNextAfterLast && fromEnd) {\r\n return !item.isNewRow\r\n }\r\n return isItemCountable(item)\r\n })\r\n },\r\n items: function(countableOnly) {\r\n var result = that._items;\r\n if (that.option(LEGACY_SCROLLING_MODE)) {\r\n var dataSource = that.dataSource();\r\n var virtualItemsCount = null === dataSource || void 0 === dataSource ? void 0 : dataSource.virtualItemsCount();\r\n var begin = virtualItemsCount ? virtualItemsCount.begin : 0;\r\n var rowPageSize = that.getRowPageSize();\r\n var skip = that._rowPageIndex * rowPageSize - begin;\r\n var take = rowPageSize;\r\n if (skip < 0) {\r\n return []\r\n }\r\n if (skip) {\r\n skip = this.correctCount(result, skip);\r\n result = result.slice(skip)\r\n }\r\n if (take) {\r\n take = this.correctCount(result, take);\r\n result = result.slice(0, take)\r\n }\r\n }\r\n return countableOnly ? result.filter(isItemCountable) : result\r\n },\r\n viewportItems: function(items) {\r\n if (items && false !== that.option(LEGACY_SCROLLING_MODE)) {\r\n that._visibleItems = items\r\n }\r\n return that._visibleItems\r\n },\r\n onChanged: function() {},\r\n changingDuration: function(e) {\r\n var dataSource = that.dataSource();\r\n if (null !== dataSource && void 0 !== dataSource && dataSource.isLoading() && false !== that.option(LEGACY_SCROLLING_MODE)) {\r\n return LOAD_TIMEOUT\r\n }\r\n return (null === dataSource || void 0 === dataSource ? void 0 : dataSource._renderTime) || 0\r\n }\r\n }\r\n },\r\n _updateItemsCore: function(change) {\r\n var delta = this.getRowIndexDelta();\r\n this.callBase.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && gridCoreUtils.isVirtualRowRendering(this)) {\r\n if (\"update\" === change.changeType && 0 === change.rowIndices.length && change.cancelEmptyChanges) {\r\n change.cancel = true\r\n }\r\n return\r\n }\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n var visibleItems = this._visibleItems;\r\n var isRefresh = \"refresh\" === change.changeType || change.isLiveUpdate;\r\n if (\"append\" === change.changeType && change.items && !change.items.length) {\r\n return\r\n }\r\n if (isRefresh || \"append\" === change.changeType || \"prepend\" === change.changeType) {\r\n change.cancel = true;\r\n isRefresh && rowsScrollController.reset(true);\r\n rowsScrollController.load()\r\n } else {\r\n if (\"update\" === change.changeType) {\r\n change.rowIndices.forEach((rowIndex, index) => {\r\n var changeType = change.changeTypes[index];\r\n var newItem = change.items[index];\r\n if (\"update\" === changeType) {\r\n visibleItems[rowIndex] = newItem\r\n } else if (\"insert\" === changeType) {\r\n visibleItems.splice(rowIndex, 0, newItem)\r\n } else if (\"remove\" === changeType) {\r\n visibleItems.splice(rowIndex, 1)\r\n }\r\n })\r\n } else {\r\n visibleItems.forEach((item, index) => {\r\n visibleItems[index] = this._items[index + delta] || visibleItems[index]\r\n });\r\n change.items = visibleItems\r\n }\r\n updateItemIndices(visibleItems)\r\n }\r\n }\r\n },\r\n _updateLoadViewportParams: function() {\r\n var viewportParams = this._rowsScrollController.getViewportParams();\r\n var pageSize = this.pageSize();\r\n if (viewportParams && !isVirtualPaging(this) && pageSize > 0) {\r\n var pageOffset = this.pageIndex() * pageSize;\r\n viewportParams.skip += pageOffset\r\n }\r\n this._loadViewportParams = viewportParams\r\n },\r\n _processItems: function(items) {\r\n var newItems = this.callBase.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n var _dataSource$lastLoadO;\r\n var dataSource = this._dataSource;\r\n var currentIndex = null !== (_dataSource$lastLoadO = null === dataSource || void 0 === dataSource ? void 0 : dataSource.lastLoadOptions().skip) && void 0 !== _dataSource$lastLoadO ? _dataSource$lastLoadO : 0;\r\n var prevCountable;\r\n var prevRowType;\r\n var isPrevRowNew;\r\n var wasCountableItem = false;\r\n newItems.forEach(item => {\r\n var rowType = item.rowType;\r\n var itemCountable = isItemCountableByDataSource(item, dataSource);\r\n var isNextGroupItem = \"group\" === rowType && (prevCountable || itemCountable || \"group\" !== prevRowType && currentIndex > 0);\r\n var isNextDataItem = \"data\" === rowType && itemCountable && (prevCountable || \"group\" !== prevRowType);\r\n if (!item.isNewRow && isDefined(prevCountable)) {\r\n var isPrevNewRowFirst = isPrevRowNew && !wasCountableItem;\r\n if ((isNextGroupItem || isNextDataItem) && !isPrevNewRowFirst) {\r\n currentIndex++\r\n }\r\n }\r\n if (isNextGroupItem || isNextDataItem) {\r\n wasCountableItem = true\r\n }\r\n item.loadIndex = currentIndex;\r\n prevCountable = itemCountable;\r\n prevRowType = rowType;\r\n isPrevRowNew = item.isNewRow\r\n })\r\n }\r\n return newItems\r\n },\r\n _afterProcessItems: function(items) {\r\n this._itemCount = items.filter(item => isItemCountableByDataSource(item, this._dataSource)).length;\r\n if (isDefined(this._loadViewportParams)) {\r\n this._updateLoadViewportParams();\r\n var result = items;\r\n this._allItems = items;\r\n if (items.length) {\r\n var {\r\n skipForCurrentPage: skipForCurrentPage\r\n } = this.getLoadPageParams(true);\r\n var skip = items[0].loadIndex + skipForCurrentPage;\r\n var take = this._loadViewportParams.take;\r\n result = items.filter(it => {\r\n var isNewRowOnStart = it.isNewRow && it.loadIndex >= skip - 1;\r\n var isNewRowInEmptyData = it.isNewRow && it.loadIndex === skip && 0 === take;\r\n var isLoadIndexGreaterStart = it.loadIndex >= skip || isNewRowOnStart;\r\n var isLoadIndexLessEnd = it.loadIndex < skip + take || isNewRowInEmptyData;\r\n return isLoadIndexGreaterStart && isLoadIndexLessEnd\r\n })\r\n }\r\n return result\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _applyChange: function(change) {\r\n var that = this;\r\n var items = change.items;\r\n var changeType = change.changeType;\r\n var removeCount = change.removeCount;\r\n if (removeCount) {\r\n var fromEnd = \"prepend\" === changeType;\r\n removeCount = _correctCount(that._items, removeCount, fromEnd, (function(item, isNextAfterLast) {\r\n return \"data\" === item.rowType && !item.isNewRow || \"group\" === item.rowType && (that._dataSource.isGroupItemCountable(item.data) || isNextAfterLast)\r\n }));\r\n change.removeCount = removeCount\r\n }\r\n switch (changeType) {\r\n case \"prepend\":\r\n that._items.unshift.apply(that._items, items);\r\n if (removeCount) {\r\n that._items.splice(-removeCount)\r\n }\r\n break;\r\n case \"append\":\r\n that._items.push.apply(that._items, items);\r\n if (removeCount) {\r\n that._items.splice(0, removeCount)\r\n }\r\n break;\r\n default:\r\n that.callBase(change)\r\n }\r\n },\r\n items: function(allItems) {\r\n return allItems ? this._allItems || this._items : this._visibleItems || this._items\r\n },\r\n getRowIndexDelta: function() {\r\n var delta = 0;\r\n if (this.option(LEGACY_SCROLLING_MODE)) {\r\n var visibleItems = this._visibleItems;\r\n if (visibleItems && visibleItems[0]) {\r\n delta = this._items.indexOf(visibleItems[0])\r\n }\r\n }\r\n return delta < 0 ? 0 : delta\r\n },\r\n getRowIndexOffset: function(byLoadedRows) {\r\n var offset = 0;\r\n var dataSource = this.dataSource();\r\n var rowsScrollController = this._rowsScrollController;\r\n var newMode = false === this.option(LEGACY_SCROLLING_MODE);\r\n var virtualPaging = isVirtualPaging(this);\r\n if (rowsScrollController && !byLoadedRows) {\r\n if (newMode && isDefined(this._loadViewportParams)) {\r\n var {\r\n skipForCurrentPage: skipForCurrentPage,\r\n pageIndex: pageIndex\r\n } = this.getLoadPageParams(true);\r\n var items = this.items(true);\r\n offset = virtualPaging ? pageIndex * this.pageSize() : 0;\r\n if (items.length) {\r\n var firstLoadIndex = items[0].loadIndex;\r\n offset += items.filter(item => item.loadIndex < firstLoadIndex + skipForCurrentPage).length\r\n }\r\n } else {\r\n offset = rowsScrollController.beginPageIndex() * rowsScrollController.pageSize()\r\n }\r\n } else if (virtualPaging && newMode && dataSource) {\r\n var _dataSource$lastLoadO2;\r\n offset = null !== (_dataSource$lastLoadO2 = dataSource.lastLoadOptions().skip) && void 0 !== _dataSource$lastLoadO2 ? _dataSource$lastLoadO2 : 0\r\n } else if (isVirtualMode(this) && dataSource) {\r\n offset = dataSource.beginPageIndex() * dataSource.pageSize()\r\n }\r\n return offset\r\n },\r\n viewportSize: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.viewportSize.apply(rowsScrollController, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.viewportSize.apply(dataSource, arguments)\r\n },\r\n viewportHeight: function(height, scrollTop) {\r\n var _this$_rowsScrollCont;\r\n null === (_this$_rowsScrollCont = this._rowsScrollController) || void 0 === _this$_rowsScrollCont ? void 0 : _this$_rowsScrollCont.viewportHeight(height, scrollTop)\r\n },\r\n viewportItemSize: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.viewportItemSize.apply(rowsScrollController, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.viewportItemSize.apply(dataSource, arguments)\r\n },\r\n setViewportPosition: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n this._isPaging = false;\r\n if (rowsScrollController) {\r\n rowsScrollController.setViewportPosition.apply(rowsScrollController, arguments)\r\n } else {\r\n null === dataSource || void 0 === dataSource ? void 0 : dataSource.setViewportPosition.apply(dataSource, arguments)\r\n }\r\n },\r\n setContentItemSizes: function(sizes) {\r\n var rowsScrollController = this._rowsScrollController;\r\n var dataSource = this._dataSource;\r\n var result = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.setContentItemSizes(sizes);\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return result\r\n }\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.setContentItemSizes(sizes)\r\n },\r\n getPreloadedRowCount: function() {\r\n var preloadCount = this.option(\"scrolling.preloadedRowCount\");\r\n var preloadEnabled = this.option(\"scrolling.preloadEnabled\");\r\n if (isDefined(preloadCount)) {\r\n return preloadCount\r\n }\r\n var viewportSize = this.viewportSize();\r\n return preloadEnabled ? 2 * viewportSize : viewportSize\r\n },\r\n getLoadPageParams: function(byLoadedPage) {\r\n var _this$_dataSource3, _this$_dataSource4;\r\n var pageSize = this.pageSize();\r\n var viewportParams = this._loadViewportParams;\r\n var lastLoadOptions = null === (_this$_dataSource3 = this._dataSource) || void 0 === _this$_dataSource3 ? void 0 : _this$_dataSource3.lastLoadOptions();\r\n var loadedPageIndex = (null === lastLoadOptions || void 0 === lastLoadOptions ? void 0 : lastLoadOptions.pageIndex) || 0;\r\n var loadedTake = (null === lastLoadOptions || void 0 === lastLoadOptions ? void 0 : lastLoadOptions.take) || 0;\r\n var isScrollingBack = this._rowsScrollController.isScrollingBack();\r\n var topPreloadCount = isScrollingBack ? this.getPreloadedRowCount() : 0;\r\n var bottomPreloadCount = isScrollingBack ? 0 : this.getPreloadedRowCount();\r\n var totalCountCorrection = (null === (_this$_dataSource4 = this._dataSource) || void 0 === _this$_dataSource4 ? void 0 : _this$_dataSource4.totalCountCorrection()) || 0;\r\n var skipWithPreload = Math.max(0, viewportParams.skip - topPreloadCount);\r\n var pageIndex = byLoadedPage ? loadedPageIndex : Math.floor(pageSize ? skipWithPreload / pageSize : 0);\r\n var pageOffset = pageIndex * pageSize;\r\n var skipForCurrentPage = viewportParams.skip - pageOffset;\r\n var loadingTake = viewportParams.take + skipForCurrentPage + bottomPreloadCount - totalCountCorrection;\r\n var take = byLoadedPage ? loadedTake : loadingTake;\r\n var loadPageCount = Math.ceil(pageSize ? take / pageSize : 0);\r\n return {\r\n pageIndex: pageIndex,\r\n loadPageCount: Math.max(1, loadPageCount),\r\n skipForCurrentPage: Math.max(0, skipForCurrentPage)\r\n }\r\n },\r\n _updateVisiblePageIndex: function(currentPageIndex) {\r\n if (!this._rowsScrollController) {\r\n return\r\n }\r\n if (isDefined(currentPageIndex)) {\r\n this._silentOption(VISIBLE_PAGE_INDEX, currentPageIndex);\r\n this.pageChanged.fire();\r\n return\r\n }\r\n var viewPortItemIndex = this._rowsScrollController.getViewportItemIndex();\r\n var newPageIndex = Math.floor(viewPortItemIndex / this.pageSize());\r\n if (this.pageIndex() !== newPageIndex) {\r\n this._silentOption(VISIBLE_PAGE_INDEX, newPageIndex);\r\n this.updateItems({\r\n changeType: \"pageIndex\"\r\n })\r\n }\r\n },\r\n _getChangedLoadParams: function() {\r\n var loadedPageParams = this.getLoadPageParams(true);\r\n var {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount\r\n } = this.getLoadPageParams();\r\n var pageIndexIsValid = this._pageIndexIsValid(pageIndex);\r\n var result = null;\r\n if (!this._isLoading && pageIndexIsValid && (pageIndex !== loadedPageParams.pageIndex || loadPageCount !== loadedPageParams.loadPageCount)) {\r\n result = {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount\r\n }\r\n }\r\n return result\r\n },\r\n _pageIndexIsValid: function(pageIndex) {\r\n var result = true;\r\n if (isAppendMode(this) && this.hasKnownLastPage() || isVirtualMode(this)) {\r\n result = pageIndex * this.pageSize() < this.totalItemsCount()\r\n }\r\n return result\r\n },\r\n _loadItems: function(checkLoading, viewportIsFilled) {\r\n var _dataSourceAdapter$lo, _dataSourceAdapter$pa;\r\n var virtualPaging = isVirtualPaging(this);\r\n var dataSourceAdapter = this._dataSource;\r\n var changedParams = this._getChangedLoadParams();\r\n var currentLoadPageCount = null !== (_dataSourceAdapter$lo = null === dataSourceAdapter || void 0 === dataSourceAdapter ? void 0 : dataSourceAdapter.loadPageCount()) && void 0 !== _dataSourceAdapter$lo ? _dataSourceAdapter$lo : 0;\r\n var lastRequiredItemCount = this.pageSize() * currentLoadPageCount;\r\n var currentPageIndex = null !== (_dataSourceAdapter$pa = null === dataSourceAdapter || void 0 === dataSourceAdapter ? void 0 : dataSourceAdapter.pageIndex()) && void 0 !== _dataSourceAdapter$pa ? _dataSourceAdapter$pa : 0;\r\n var pageIndexNotChanged = (null === changedParams || void 0 === changedParams ? void 0 : changedParams.pageIndex) === currentPageIndex;\r\n var allLoadedInAppendMode = isAppendMode(this) && this.totalItemsCount() < lastRequiredItemCount;\r\n var isRepaintMode = \"repaint\" === this.option(\"editing.refreshMode\");\r\n var pageIndexIncreased = (null === changedParams || void 0 === changedParams ? void 0 : changedParams.pageIndex) > currentPageIndex;\r\n var result = false;\r\n if (!dataSourceAdapter || virtualPaging && checkLoading && (isRepaintMode && viewportIsFilled || pageIndexIncreased || pageIndexNotChanged && allLoadedInAppendMode)) {\r\n return result\r\n }\r\n if (virtualPaging && this._isLoading) {\r\n this._needUpdateViewportAfterLoading = true\r\n }\r\n if (virtualPaging && changedParams) {\r\n result = true;\r\n dataSourceAdapter.pageIndex(changedParams.pageIndex);\r\n dataSourceAdapter.loadPageCount(changedParams.loadPageCount);\r\n this._repaintChangesOnly = true;\r\n this._needUpdateDimensions = true;\r\n var viewportChanging = this._viewportChanging;\r\n this.load().always(() => {\r\n this._repaintChangesOnly = void 0;\r\n this._needUpdateDimensions = void 0\r\n }).done(() => {\r\n var isLastPage = this.pageCount() > 0 && this.pageIndex() === this.pageCount() - 1;\r\n (viewportChanging || isLastPage) && this._updateVisiblePageIndex();\r\n if (this._needUpdateViewportAfterLoading) {\r\n this._needUpdateViewportAfterLoading = false;\r\n this.loadViewport({\r\n checkLoadedParamsOnly: true\r\n })\r\n }\r\n })\r\n }\r\n return result\r\n },\r\n loadViewport: function(params) {\r\n var {\r\n checkLoadedParamsOnly: checkLoadedParamsOnly,\r\n checkLoading: checkLoading,\r\n viewportIsNotFilled: viewportIsNotFilled\r\n } = null !== params && void 0 !== params ? params : {};\r\n var virtualPaging = isVirtualPaging(this);\r\n if (virtualPaging || gridCoreUtils.isVirtualRowRendering(this)) {\r\n this._updateLoadViewportParams();\r\n var loadingItemsStarted = this._loadItems(checkLoading, !viewportIsNotFilled);\r\n if (!loadingItemsStarted && !(this._isLoading && checkLoading) && !checkLoadedParamsOnly) {\r\n this.updateItems({\r\n repaintChangesOnly: true,\r\n needUpdateDimensions: true,\r\n useProcessedItemsCache: true,\r\n cancelEmptyChanges: true\r\n })\r\n }\r\n }\r\n },\r\n updateViewport: function() {\r\n var _this$_loadViewportPa, _this$_loadViewportPa2;\r\n var viewportSize = this.viewportSize();\r\n var itemCount = this.items().length;\r\n var viewportIsNotFilled = viewportSize > itemCount;\r\n var currentTake = null !== (_this$_loadViewportPa = null === (_this$_loadViewportPa2 = this._loadViewportParams) || void 0 === _this$_loadViewportPa2 ? void 0 : _this$_loadViewportPa2.take) && void 0 !== _this$_loadViewportPa ? _this$_loadViewportPa : 0;\r\n var rowsScrollController = this._rowsScrollController;\r\n var newTake = null === rowsScrollController || void 0 === rowsScrollController ? void 0 : rowsScrollController.getViewportParams().take;\r\n (viewportIsNotFilled || currentTake < newTake) && !this._isPaging && itemCount && this.loadViewport({\r\n checkLoading: true,\r\n viewportIsNotFilled: viewportIsNotFilled\r\n })\r\n },\r\n loadIfNeed: function() {\r\n if (false === this.option(LEGACY_SCROLLING_MODE)) {\r\n return\r\n }\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.loadIfNeed();\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.loadIfNeed()\r\n },\r\n getItemSize: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getItemSize.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getItemSize.apply(dataSource, arguments)\r\n },\r\n getItemSizes: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getItemSizes.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getItemSizes.apply(dataSource, arguments)\r\n },\r\n getContentOffset: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.getContentOffset.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return dataSource && dataSource.getContentOffset.apply(dataSource, arguments)\r\n },\r\n refresh: function(options) {\r\n var dataSource = this._dataSource;\r\n if (dataSource && options && options.load && isAppendMode(this)) {\r\n dataSource.resetCurrentTotalCount()\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n dispose: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n rowsScrollController && rowsScrollController.dispose();\r\n this.callBase.apply(this, arguments)\r\n },\r\n topItemIndex: function() {\r\n var _this$_loadViewportPa3;\r\n return null === (_this$_loadViewportPa3 = this._loadViewportParams) || void 0 === _this$_loadViewportPa3 ? void 0 : _this$_loadViewportPa3.skip\r\n },\r\n bottomItemIndex: function() {\r\n var viewportParams = this._loadViewportParams;\r\n return viewportParams && viewportParams.skip + viewportParams.take\r\n },\r\n virtualItemsCount: function() {\r\n var rowsScrollController = this._rowsScrollController;\r\n if (rowsScrollController) {\r\n return rowsScrollController.virtualItemsCount.apply(rowsScrollController, arguments)\r\n }\r\n var dataSource = this._dataSource;\r\n return null === dataSource || void 0 === dataSource ? void 0 : dataSource.virtualItemsCount.apply(dataSource, arguments)\r\n },\r\n pageIndex: function(_pageIndex) {\r\n var virtualPaging = isVirtualPaging(this);\r\n var rowsScrollController = this._rowsScrollController;\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && virtualPaging && rowsScrollController) {\r\n if (void 0 === _pageIndex) {\r\n var _this$option;\r\n return null !== (_this$option = this.option(VISIBLE_PAGE_INDEX)) && void 0 !== _this$option ? _this$option : 0\r\n }\r\n }\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _fireChanged: function(e) {\r\n this.callBase.apply(this, arguments);\r\n var {\r\n operationTypes: operationTypes\r\n } = e;\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isVirtualPaging(this) && operationTypes) {\r\n var {\r\n fullReload: fullReload,\r\n pageIndex: pageIndex\r\n } = operationTypes;\r\n if (e.isDataChanged && !fullReload && pageIndex) {\r\n this._updateVisiblePageIndex(this._dataSource.pageIndex())\r\n }\r\n }\r\n },\r\n _getPagingOptionValue: function(optionName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isVirtualPaging(this)) {\r\n result = this[optionName]()\r\n }\r\n return result\r\n },\r\n isEmpty: function() {\r\n return false === this.option(LEGACY_SCROLLING_MODE) ? !this.items(true).length : this.callBase(this, arguments)\r\n },\r\n isLastPageLoaded: function() {\r\n var result = false;\r\n if (false === this.option(LEGACY_SCROLLING_MODE) && isVirtualPaging(this)) {\r\n var {\r\n pageIndex: pageIndex,\r\n loadPageCount: loadPageCount\r\n } = this.getLoadPageParams(true);\r\n var pageCount = this.pageCount();\r\n result = pageIndex + loadPageCount >= pageCount\r\n } else {\r\n result = this.callBase.apply(this, arguments)\r\n }\r\n return result\r\n },\r\n reset: function() {\r\n this._itemCount = 0;\r\n this._allItems = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _applyFilter: function() {\r\n var _this$_dataSource5;\r\n null === (_this$_dataSource5 = this._dataSource) || void 0 === _this$_dataSource5 ? void 0 : _this$_dataSource5.loadPageCount(1);\r\n this.callBase.apply(this, arguments)\r\n }\r\n };\r\n gridCoreUtils.proxyMethod(members, \"getVirtualContentSize\");\r\n gridCoreUtils.proxyMethod(members, \"setViewportItemIndex\");\r\n return members\r\n }(),\r\n resizing: {\r\n _updateMasterDataGridCore: function(masterDataGrid) {\r\n return when(this.callBase.apply(this, arguments)).done(masterDataGridUpdated => {\r\n var isNewVirtualMode = isVirtualMode(masterDataGrid) && false === masterDataGrid.option(LEGACY_SCROLLING_MODE);\r\n if (!masterDataGridUpdated && isNewVirtualMode) {\r\n var scrollable = masterDataGrid.getScrollable();\r\n if (scrollable) {\r\n masterDataGrid.updateDimensions()\r\n }\r\n }\r\n })\r\n },\r\n resize: function() {\r\n var that = this;\r\n var callBase = that.callBase;\r\n var result;\r\n if (isVirtualMode(that) || gridCoreUtils.isVirtualRowRendering(that)) {\r\n clearTimeout(that._resizeTimeout);\r\n var diff = new Date - that._lastTime;\r\n var updateTimeout = that.option(\"scrolling.updateTimeout\");\r\n if (that._lastTime && diff < updateTimeout) {\r\n result = new Deferred;\r\n that._resizeTimeout = setTimeout((function() {\r\n callBase.apply(that).done(result.resolve).fail(result.reject);\r\n that._lastTime = new Date\r\n }), updateTimeout);\r\n that._lastTime = new Date\r\n } else {\r\n result = callBase.apply(that);\r\n if (that._dataController.isLoaded()) {\r\n that._lastTime = new Date\r\n }\r\n }\r\n } else {\r\n result = callBase.apply(that)\r\n }\r\n return result\r\n },\r\n dispose: function() {\r\n this.callBase.apply(this, arguments);\r\n clearTimeout(this._resizeTimeout)\r\n }\r\n }\r\n },\r\n views: {\r\n rowsView: VirtualScrollingRowsViewExtender\r\n }\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_converter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined,\r\n isPrimitive\r\n} from \"../../core/utils/type\";\r\nvar DataConverter = Class.inherit({\r\n ctor: function() {\r\n this._dataStructure = [];\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0\r\n },\r\n _indexByKey: {},\r\n _convertItemsToNodes: function(items, parentKey) {\r\n var that = this;\r\n each(items, (function(_, item) {\r\n var parentId = isDefined(parentKey) ? parentKey : that._getParentId(item);\r\n var node = that._convertItemToNode(item, parentId);\r\n that._dataStructure.push(node);\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = that._dataStructure.length - 1;\r\n if (that._itemHasChildren(item)) {\r\n that._convertItemsToNodes(that._dataAccessors.getters.items(item), node.internalFields.key)\r\n }\r\n }))\r\n },\r\n _checkForDuplicateId: function(key) {\r\n if (isDefined(this._indexByKey[key])) {\r\n throw errors.Error(\"E1040\", key)\r\n }\r\n },\r\n _getParentId: function(item) {\r\n return \"plain\" === this._dataType ? this._dataAccessors.getters.parentKey(item) : void 0\r\n },\r\n _itemHasChildren: function(item) {\r\n if (\"plain\" === this._dataType) {\r\n return\r\n }\r\n var items = this._dataAccessors.getters.items(item);\r\n return items && items.length\r\n },\r\n _getUniqueKey: function(item) {\r\n var keyGetter = this._dataAccessors.getters.key;\r\n var itemKey = keyGetter(item);\r\n var isCorrectKey = keyGetter && (itemKey || 0 === itemKey) && isPrimitive(itemKey);\r\n return isCorrectKey ? itemKey : this.getItemsCount()\r\n },\r\n _convertItemToNode: function(item, parentKey) {\r\n this._itemsCount++;\r\n false !== item.visible && this._visibleItemsCount++;\r\n var node = {\r\n internalFields: {\r\n disabled: this._dataAccessors.getters.disabled(item, {\r\n defaultValue: false\r\n }),\r\n expanded: this._dataAccessors.getters.expanded(item, {\r\n defaultValue: false\r\n }),\r\n selected: this._dataAccessors.getters.selected(item, {\r\n defaultValue: false\r\n }),\r\n key: this._getUniqueKey(item),\r\n parentKey: isDefined(parentKey) ? parentKey : this._rootValue,\r\n item: this._makeObjectFromPrimitive(item),\r\n childrenKeys: []\r\n }\r\n };\r\n extend(node, item);\r\n delete node.items;\r\n return node\r\n },\r\n setChildrenKeys: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (node.internalFields.parentKey === that._rootValue) {\r\n return\r\n }\r\n var parent = that.getParentNode(node);\r\n parent && parent.internalFields.childrenKeys.push(node.internalFields.key)\r\n }))\r\n },\r\n _makeObjectFromPrimitive: function(item) {\r\n if (isPrimitive(item)) {\r\n var key = item;\r\n item = {};\r\n this._dataAccessors.setters.key(item, key)\r\n }\r\n return item\r\n },\r\n _convertToPublicNode: function(node, parent) {\r\n if (!node) {\r\n return null\r\n }\r\n var publicNode = {\r\n text: this._dataAccessors.getters.display(node),\r\n key: node.internalFields.key,\r\n selected: node.internalFields.selected,\r\n expanded: node.internalFields.expanded,\r\n disabled: node.internalFields.disabled,\r\n parent: parent || null,\r\n itemData: node.internalFields.item,\r\n children: [],\r\n items: []\r\n };\r\n if (publicNode.parent) {\r\n publicNode.parent.children.push(publicNode);\r\n publicNode.parent.items.push(publicNode)\r\n }\r\n return publicNode\r\n },\r\n convertToPublicNodes: function(data, parent) {\r\n if (!data.length) {\r\n return []\r\n }\r\n var that = this;\r\n var publicNodes = [];\r\n each(data, (function(_, node) {\r\n node = isPrimitive(node) ? that._getByKey(node) : node;\r\n var publicNode = that._convertToPublicNode(node, parent);\r\n publicNode.children = that.convertToPublicNodes(node.internalFields.childrenKeys, publicNode);\r\n publicNodes.push(publicNode);\r\n node.internalFields.publicNode = publicNode\r\n }));\r\n return publicNodes\r\n },\r\n setDataAccessors: function(accessors) {\r\n this._dataAccessors = accessors\r\n },\r\n _getByKey: function(key) {\r\n return this._dataStructure[this.getIndexByKey(key)] || null\r\n },\r\n getParentNode: function(node) {\r\n return this._getByKey(node.internalFields.parentKey)\r\n },\r\n getByKey: function(data, key) {\r\n if (null === key || void 0 === key) {\r\n return null\r\n }\r\n var result = null;\r\n var that = this;\r\n var getByKey = function(data, key) {\r\n each(data, (function(_, element) {\r\n var currentElementKey = element.internalFields && element.internalFields.key || that._dataAccessors.getters.key(element);\r\n if (currentElementKey.toString() === key.toString()) {\r\n result = element;\r\n return false\r\n }\r\n }));\r\n return result\r\n };\r\n return getByKey(data, key)\r\n },\r\n getItemsCount: function() {\r\n return this._itemsCount\r\n },\r\n getVisibleItemsCount: function() {\r\n return this._visibleItemsCount\r\n },\r\n updateIndexByKey: function() {\r\n var that = this;\r\n this._indexByKey = {};\r\n each(this._dataStructure, (function(index, node) {\r\n that._checkForDuplicateId(node.internalFields.key);\r\n that._indexByKey[node.internalFields.key] = index\r\n }))\r\n },\r\n updateChildrenKeys: function() {\r\n this._indexByKey = {};\r\n this.removeChildrenKeys();\r\n this.updateIndexByKey();\r\n this.setChildrenKeys()\r\n },\r\n removeChildrenKeys: function() {\r\n this._indexByKey = {};\r\n each(this._dataStructure, (function(index, node) {\r\n node.internalFields.childrenKeys = []\r\n }))\r\n },\r\n getIndexByKey: function(key) {\r\n return this._indexByKey[key]\r\n },\r\n createPlainStructure: function(items, rootValue, dataType) {\r\n this._itemsCount = 0;\r\n this._visibleItemsCount = 0;\r\n this._rootValue = rootValue;\r\n this._dataType = dataType;\r\n this._indexByKey = {};\r\n this._convertItemsToNodes(items);\r\n this.setChildrenKeys();\r\n return this._dataStructure\r\n }\r\n});\r\nexport default DataConverter;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.data_adapter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isFunction,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../../ui/widget/ui.errors\";\r\nimport uiSearchBoxMixin from \"../../ui/widget/ui.search_box_mixin\";\r\nimport TextBox from \"../../ui/text_box\";\r\nimport query from \"../../data/query\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport HierarchicalDataConverter from \"./ui.data_converter\";\r\nvar EXPANDED = \"expanded\";\r\nvar SELECTED = \"selected\";\r\nvar DISABLED = \"disabled\";\r\nuiSearchBoxMixin.setEditorClass(TextBox);\r\nvar DataAdapter = Class.inherit({\r\n ctor: function(options) {\r\n this.options = {};\r\n extend(this.options, this._defaultOptions(), options);\r\n this.options.dataConverter.setDataAccessors(this.options.dataAccessors);\r\n this._selectedNodesKeys = [];\r\n this._expandedNodesKeys = [];\r\n this._dataStructure = [];\r\n this._createInternalDataStructure();\r\n this.getTreeNodes()\r\n },\r\n setOption: function(name, value) {\r\n this.options[name] = value;\r\n if (\"recursiveSelection\" === name) {\r\n this._updateSelection()\r\n }\r\n },\r\n _defaultOptions: function() {\r\n return {\r\n dataAccessors: void 0,\r\n items: [],\r\n multipleSelection: true,\r\n recursiveSelection: false,\r\n recursiveExpansion: false,\r\n rootValue: 0,\r\n searchValue: \"\",\r\n dataType: \"tree\",\r\n searchMode: \"contains\",\r\n dataConverter: new HierarchicalDataConverter,\r\n onNodeChanged: noop,\r\n sort: null\r\n }\r\n },\r\n _createInternalDataStructure: function() {\r\n this._initialDataStructure = this.options.dataConverter.createPlainStructure(this.options.items, this.options.rootValue, this.options.dataType);\r\n this._dataStructure = this.options.searchValue.length ? this.search(this.options.searchValue) : this._initialDataStructure;\r\n this.options.dataConverter._dataStructure = this._dataStructure;\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n _updateSelection: function() {\r\n if (this.options.recursiveSelection) {\r\n this._setChildrenSelection();\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _updateExpansion: function(key) {\r\n if (this.options.recursiveExpansion) {\r\n key ? this._updateOneBranch(key) : this._setParentExpansion()\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n _updateNodesKeysArray: function(property) {\r\n var that = this;\r\n var array = [];\r\n each(that._getDataBySelectionMode(), (function(_, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n if (node.internalFields[property]) {\r\n if (property === EXPANDED || that.options.multipleSelection) {\r\n array.push(node.internalFields.key)\r\n } else {\r\n array.length && that.toggleSelection(array[0], false, true);\r\n array = [node.internalFields.key]\r\n }\r\n }\r\n }));\r\n return array\r\n },\r\n _getDataBySelectionMode: function() {\r\n return this.options.multipleSelection ? this.getData() : this.getFullData()\r\n },\r\n _isNodeVisible: function(node) {\r\n return false !== node.internalFields.item.visible\r\n },\r\n _getByKey: function(data, key) {\r\n return data === this._dataStructure ? this.options.dataConverter._getByKey(key) : this.options.dataConverter.getByKey(data, key)\r\n },\r\n _setChildrenSelection: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (!node.internalFields.childrenKeys.length) {\r\n return\r\n }\r\n var isSelected = node.internalFields.selected;\r\n true === isSelected && that._toggleChildrenSelection(node, isSelected)\r\n }))\r\n },\r\n _setParentSelection: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n var parent = that.options.dataConverter.getParentNode(node);\r\n if (parent && node.internalFields.parentKey !== that.options.rootValue) {\r\n that._iterateParents(node, (function(parent) {\r\n var newParentState = that._calculateSelectedState(parent);\r\n that._setFieldState(parent, SELECTED, newParentState)\r\n }))\r\n }\r\n }))\r\n },\r\n _setParentExpansion: function() {\r\n var that = this;\r\n each(this._dataStructure, (function(_, node) {\r\n if (!node.internalFields.expanded) {\r\n return\r\n }\r\n that._updateOneBranch(node.internalFields.key)\r\n }))\r\n },\r\n _updateOneBranch: function(key) {\r\n var that = this;\r\n var node = this.getNodeByKey(key);\r\n that._iterateParents(node, (function(parent) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }))\r\n },\r\n _iterateChildren: function(node, recursive, callback, processedKeys) {\r\n if (!isFunction(callback)) {\r\n return\r\n }\r\n var that = this;\r\n var nodeKey = node.internalFields.key;\r\n processedKeys = processedKeys || [];\r\n if (-1 === processedKeys.indexOf(nodeKey)) {\r\n processedKeys.push(nodeKey);\r\n each(node.internalFields.childrenKeys, (function(_, key) {\r\n var child = that.getNodeByKey(key);\r\n callback(child);\r\n if (child.internalFields.childrenKeys.length && recursive) {\r\n that._iterateChildren(child, recursive, callback, processedKeys)\r\n }\r\n }))\r\n }\r\n },\r\n _iterateParents: function(node, callback, processedKeys) {\r\n if (node.internalFields.parentKey === this.options.rootValue || !isFunction(callback)) {\r\n return\r\n }\r\n processedKeys = processedKeys || [];\r\n var key = node.internalFields.key;\r\n if (-1 === processedKeys.indexOf(key)) {\r\n processedKeys.push(key);\r\n var parent = this.options.dataConverter.getParentNode(node);\r\n if (parent) {\r\n callback(parent);\r\n if (parent.internalFields.parentKey !== this.options.rootValue) {\r\n this._iterateParents(parent, callback, processedKeys)\r\n }\r\n }\r\n }\r\n },\r\n _calculateSelectedState: function(node) {\r\n var itemsCount = node.internalFields.childrenKeys.length;\r\n var selectedItemsCount = 0;\r\n var invisibleItemsCount = 0;\r\n var result = false;\r\n for (var i = 0; i <= itemsCount - 1; i++) {\r\n var childNode = this.getNodeByKey(node.internalFields.childrenKeys[i]);\r\n var isChildInvisible = false === childNode.internalFields.item.visible;\r\n var childState = childNode.internalFields.selected;\r\n if (isChildInvisible) {\r\n invisibleItemsCount++;\r\n continue\r\n }\r\n if (childState) {\r\n selectedItemsCount++\r\n } else if (void 0 === childState) {\r\n selectedItemsCount += .5\r\n }\r\n }\r\n if (selectedItemsCount) {\r\n result = selectedItemsCount === itemsCount - invisibleItemsCount ? true : void 0\r\n }\r\n return result\r\n },\r\n _toggleChildrenSelection: function(node, state) {\r\n var that = this;\r\n this._iterateChildren(node, true, (function(child) {\r\n if (that._isNodeVisible(child)) {\r\n that._setFieldState(child, SELECTED, state)\r\n }\r\n }))\r\n },\r\n _setFieldState: function(node, field, state) {\r\n if (node.internalFields[field] === state) {\r\n return\r\n }\r\n node.internalFields[field] = state;\r\n if (node.internalFields.publicNode) {\r\n node.internalFields.publicNode[field] = state\r\n }\r\n this.options.dataAccessors.setters[field](node.internalFields.item, state);\r\n this.options.onNodeChanged(node)\r\n },\r\n _markChildren: function(keys) {\r\n var that = this;\r\n each(keys, (function(_, key) {\r\n var index = that.getIndexByKey(key);\r\n var node = that.getNodeByKey(key);\r\n that._dataStructure[index] = 0;\r\n node.internalFields.childrenKeys.length && that._markChildren(node.internalFields.childrenKeys)\r\n }))\r\n },\r\n _removeNode: function(key) {\r\n var node = this.getNodeByKey(key);\r\n this._dataStructure[this.getIndexByKey(key)] = 0;\r\n this._markChildren(node.internalFields.childrenKeys);\r\n var that = this;\r\n var counter = 0;\r\n var items = extend([], this._dataStructure);\r\n each(items, (function(index, item) {\r\n if (!item) {\r\n that._dataStructure.splice(index - counter, 1);\r\n counter++\r\n }\r\n }))\r\n },\r\n _addNode: function(item) {\r\n var dataConverter = this.options.dataConverter;\r\n var node = dataConverter._convertItemToNode(item, this.options.dataAccessors.getters.parentKey(item));\r\n this._dataStructure = this._dataStructure.concat(node);\r\n this._initialDataStructure = this._initialDataStructure.concat(node);\r\n dataConverter._dataStructure = dataConverter._dataStructure.concat(node)\r\n },\r\n _updateFields: function() {\r\n this.options.dataConverter.updateChildrenKeys();\r\n this._updateSelection();\r\n this._updateExpansion()\r\n },\r\n getSelectedNodesKeys: function() {\r\n return this._selectedNodesKeys\r\n },\r\n getExpandedNodesKeys: function() {\r\n return this._expandedNodesKeys\r\n },\r\n getData: function() {\r\n return this._dataStructure\r\n },\r\n getFullData: function() {\r\n return this._initialDataStructure\r\n },\r\n getNodeByItem: function(item) {\r\n var result = null;\r\n each(this._dataStructure, (function(_, node) {\r\n if (node.internalFields.item === item) {\r\n result = node;\r\n return false\r\n }\r\n }));\r\n return result\r\n },\r\n getNodesByItems: function(items) {\r\n var that = this;\r\n var nodes = [];\r\n each(items, (function(_, item) {\r\n var node = that.getNodeByItem(item);\r\n node && nodes.push(node)\r\n }));\r\n return nodes\r\n },\r\n getNodeByKey: function(key, data) {\r\n return this._getByKey(data || this._getDataBySelectionMode(), key)\r\n },\r\n getTreeNodes: function() {\r\n return this.options.dataConverter.convertToPublicNodes(this.getRootNodes())\r\n },\r\n getItemsCount: function() {\r\n return this.options.dataConverter.getItemsCount()\r\n },\r\n getVisibleItemsCount: function() {\r\n return this.options.dataConverter.getVisibleItemsCount()\r\n },\r\n getPublicNode: function(node) {\r\n return node.internalFields.publicNode\r\n },\r\n getRootNodes: function() {\r\n return this.getChildrenNodes(this.options.rootValue)\r\n },\r\n getChildrenNodes: function(parentKey) {\r\n return query(this._dataStructure).filter([\"internalFields.parentKey\", parentKey]).toArray()\r\n },\r\n getIndexByKey: function(key) {\r\n return this.options.dataConverter.getIndexByKey(key)\r\n },\r\n addItem: function(item) {\r\n this._addNode(item);\r\n this._updateFields()\r\n },\r\n removeItem: function(key) {\r\n this._removeNode(key);\r\n this._updateFields()\r\n },\r\n toggleSelection: function(key, state, selectRecursive) {\r\n var isSingleModeUnselect = this._isSingleModeUnselect(state);\r\n var node = this._getByKey(selectRecursive || isSingleModeUnselect ? this._initialDataStructure : this._dataStructure, key);\r\n this._setFieldState(node, SELECTED, state);\r\n if (this.options.recursiveSelection && !selectRecursive) {\r\n state ? this._setChildrenSelection() : this._toggleChildrenSelection(node, state);\r\n this._setParentSelection()\r\n }\r\n this._selectedNodesKeys = this._updateNodesKeysArray(SELECTED)\r\n },\r\n _isSingleModeUnselect: function(selectionState) {\r\n return !this.options.multipleSelection && !selectionState\r\n },\r\n toggleNodeDisabledState: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, DISABLED, state)\r\n },\r\n toggleSelectAll: function(state) {\r\n if (!isDefined(state)) {\r\n return\r\n }\r\n var that = this;\r\n var lastSelectedKey = that._selectedNodesKeys[that._selectedNodesKeys.length - 1];\r\n var dataStructure = that._isSingleModeUnselect(state) ? this._initialDataStructure : this._dataStructure;\r\n each(dataStructure, (function(index, node) {\r\n if (!that._isNodeVisible(node)) {\r\n return\r\n }\r\n that._setFieldState(node, SELECTED, state)\r\n }));\r\n that._selectedNodesKeys = that._updateNodesKeysArray(SELECTED);\r\n if (!state && that.options.selectionRequired) {\r\n that.toggleSelection(lastSelectedKey, true)\r\n }\r\n },\r\n isAllSelected: function() {\r\n if (this.getSelectedNodesKeys().length) {\r\n return this.getSelectedNodesKeys().length === this.getVisibleItemsCount() ? true : void 0\r\n } else {\r\n return false\r\n }\r\n },\r\n toggleExpansion: function(key, state) {\r\n var node = this.getNodeByKey(key);\r\n this._setFieldState(node, EXPANDED, state);\r\n if (state) {\r\n this._updateExpansion(key)\r\n }\r\n this._expandedNodesKeys = this._updateNodesKeysArray(EXPANDED)\r\n },\r\n isFiltered: function(item) {\r\n return !this.options.searchValue.length || !!this._filterDataStructure(this.options.searchValue, [item]).length\r\n },\r\n _createCriteria: function(selector, value, operation) {\r\n var searchFilter = [];\r\n if (!Array.isArray(selector)) {\r\n return [selector, operation, value]\r\n }\r\n each(selector, (function(i, item) {\r\n searchFilter.push([item, operation, value], \"or\")\r\n }));\r\n searchFilter.pop();\r\n return searchFilter\r\n },\r\n _filterDataStructure: function(filterValue, dataStructure) {\r\n var selector = this.options.searchExpr || this.options.dataAccessors.getters.display;\r\n var operation = uiSearchBoxMixin.getOperationBySearchMode(this.options.searchMode);\r\n var criteria = this._createCriteria(selector, filterValue, operation);\r\n dataStructure = dataStructure || this._initialDataStructure;\r\n return query(dataStructure).filter(criteria).toArray()\r\n },\r\n search: function(searchValue) {\r\n var that = this;\r\n var matches = this._filterDataStructure(searchValue);\r\n var dataConverter = this.options.dataConverter;\r\n ! function lookForParents(matches, index) {\r\n var length = matches.length;\r\n while (index < length) {\r\n var node = matches[index];\r\n if (node.internalFields.parentKey === that.options.rootValue) {\r\n index++;\r\n continue\r\n }\r\n var parent = dataConverter.getParentNode(node);\r\n if (!parent) {\r\n errors.log(\"W1007\", node.internalFields.parentKey, node.internalFields.key);\r\n index++;\r\n continue\r\n }\r\n if (!parent.internalFields.expanded) {\r\n that._setFieldState(parent, EXPANDED, true)\r\n }\r\n if (matches.includes(parent)) {\r\n index++;\r\n continue\r\n }\r\n matches.splice(index, 0, parent);\r\n lookForParents(matches, index)\r\n }\r\n }(matches, 0);\r\n if (this.options.sort) {\r\n matches = storeHelper.queryByOptions(query(matches), {\r\n sort: this.options.sort\r\n }).toArray()\r\n }\r\n dataConverter._indexByKey = {};\r\n each(matches, (function(index, node) {\r\n node.internalFields.childrenKeys = [];\r\n dataConverter._indexByKey[node.internalFields.key] = index\r\n }));\r\n dataConverter._dataStructure = matches;\r\n dataConverter.setChildrenKeys();\r\n return dataConverter._dataStructure\r\n }\r\n});\r\nexport default DataAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/hierarchical_collection/ui.hierarchical_collection_widget.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n compileGetter,\r\n compileSetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport HierarchicalDataAdapter from \"./ui.data_adapter\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.edit\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar HierarchicalCollectionWidget = CollectionWidget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n keyExpr: \"id\",\r\n displayExpr: \"text\",\r\n selectedExpr: \"selected\",\r\n disabledExpr: \"disabled\",\r\n itemsExpr: \"items\",\r\n hoverStateEnabled: true,\r\n parentIdExpr: \"parentId\",\r\n expandedExpr: \"expanded\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this._initDynamicTemplates()\r\n },\r\n _initDataSource: function() {\r\n this.callBase();\r\n this._dataSource && this._dataSource.paginate(false)\r\n },\r\n _initDataAdapter: function() {\r\n var accessors = this._createDataAdapterAccessors();\r\n this._dataAdapter = new HierarchicalDataAdapter(extend({\r\n dataAccessors: {\r\n getters: accessors.getters,\r\n setters: accessors.setters\r\n },\r\n items: this.option(\"items\")\r\n }, this._getDataAdapterOptions()))\r\n },\r\n _getDataAdapterOptions: noop,\r\n _initDynamicTemplates: function() {\r\n var that = this;\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, itemData) {\r\n $container.html(itemData.html).append(this._getIconContainer(itemData)).append(this._getTextContainer(itemData)).append(this._getPopoutContainer(itemData));\r\n that._addContentClasses(itemData, $container.parent())\r\n }.bind(this), [\"text\", \"html\", \"items\", \"icon\"], this.option(\"integrationOptions.watchMethod\"), {\r\n text: this._displayGetter,\r\n items: this._itemsGetter\r\n })\r\n })\r\n },\r\n _getIconContainer: function(itemData) {\r\n return itemData.icon ? getImageContainer(itemData.icon) : void 0\r\n },\r\n _getTextContainer: function(itemData) {\r\n return $(\"<span>\").text(itemData.text)\r\n },\r\n _getPopoutContainer: noop,\r\n _addContentClasses: noop,\r\n _initAccessors: function() {\r\n var that = this;\r\n each(this._getAccessors(), (function(_, accessor) {\r\n that._compileAccessor(accessor)\r\n }));\r\n this._compileDisplayGetter()\r\n },\r\n _getAccessors: function() {\r\n return [\"key\", \"selected\", \"items\", \"disabled\", \"parentId\", \"expanded\"]\r\n },\r\n _getChildNodes: function(node) {\r\n var that = this;\r\n var arr = [];\r\n each(node.internalFields.childrenKeys, (function(_, key) {\r\n var childNode = that._dataAdapter.getNodeByKey(key);\r\n arr.push(childNode)\r\n }));\r\n return arr\r\n },\r\n _hasChildren: function(node) {\r\n return node && node.internalFields.childrenKeys.length\r\n },\r\n _compileAccessor: function(optionName) {\r\n var getter = \"_\" + optionName + \"Getter\";\r\n var setter = \"_\" + optionName + \"Setter\";\r\n var optionExpr = this.option(optionName + \"Expr\");\r\n if (!optionExpr) {\r\n this[getter] = noop;\r\n this[setter] = noop;\r\n return\r\n } else if (isFunction(optionExpr)) {\r\n this[setter] = function(obj, value) {\r\n obj[optionExpr()] = value\r\n };\r\n this[getter] = function(obj) {\r\n return obj[optionExpr()]\r\n };\r\n return\r\n }\r\n this[getter] = compileGetter(optionExpr);\r\n this[setter] = compileSetter(optionExpr)\r\n },\r\n _createDataAdapterAccessors: function() {\r\n var that = this;\r\n var accessors = {\r\n getters: {},\r\n setters: {}\r\n };\r\n each(this._getAccessors(), (function(_, accessor) {\r\n var getterName = \"_\" + accessor + \"Getter\";\r\n var setterName = \"_\" + accessor + \"Setter\";\r\n var newAccessor = \"parentId\" === accessor ? \"parentKey\" : accessor;\r\n accessors.getters[newAccessor] = that[getterName];\r\n accessors.setters[newAccessor] = that[setterName]\r\n }));\r\n accessors.getters.display = !this._displayGetter ? itemData => itemData.text : this._displayGetter;\r\n return accessors\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._addWidgetClass()\r\n },\r\n _addWidgetClass: function() {\r\n this._focusTarget().addClass(this._widgetClass())\r\n },\r\n _widgetClass: noop,\r\n _renderItemFrame: function(index, itemData) {\r\n var $itemFrame = this.callBase.apply(this, arguments);\r\n $itemFrame.toggleClass(DISABLED_STATE_CLASS, !!this._disabledGetter(itemData));\r\n return $itemFrame\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"displayExpr\":\r\n case \"keyExpr\":\r\n this._initAccessors();\r\n this._initDynamicTemplates();\r\n this.repaint();\r\n break;\r\n case \"itemsExpr\":\r\n case \"selectedExpr\":\r\n case \"disabledExpr\":\r\n case \"expandedExpr\":\r\n case \"parentIdExpr\":\r\n this._initAccessors();\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"items\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default HierarchicalCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/list/modules/search.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport searchBoxMixin from \"../../widget/ui.search_box_mixin\";\r\nimport TextBox from \"../../text_box\";\r\nsearchBoxMixin.setEditorClass(TextBox);\r\n","/**\r\n * DevExtreme (esm/ui/radio_group/radio_button.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nvar RADIO_BUTTON_CLASS = \"dx-radiobutton\";\r\nvar RADIO_BUTTON_ICON_CLASS = \"dx-radiobutton-icon\";\r\nvar RADIO_BUTTON_ICON_DOT_CLASS = \"dx-radiobutton-icon-dot\";\r\nvar RADIO_BUTTON_CHECKED_CLASS = \"dx-radiobutton-checked\";\r\nvar RADIO_BUTTON_ICON_CHECKED_CLASS = \"dx-radiobutton-icon-checked\";\r\nvar RadioButton = Editor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n space: function(e) {\r\n e.preventDefault();\r\n this._clickAction({\r\n event: e\r\n })\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n activeStateEnabled: true,\r\n value: false\r\n })\r\n },\r\n _canValueBeChangedByClick: function() {\r\n return true\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RADIO_BUTTON_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderIcon();\r\n this._renderCheckedState(this.option(\"value\"));\r\n this._renderClick();\r\n this.setAria(\"role\", \"radio\")\r\n },\r\n _renderIcon: function() {\r\n this._$icon = $(\"<div>\").addClass(RADIO_BUTTON_ICON_CLASS);\r\n $(\"<div>\").addClass(RADIO_BUTTON_ICON_DOT_CLASS).appendTo(this._$icon);\r\n this.$element().append(this._$icon)\r\n },\r\n _renderCheckedState: function(checked) {\r\n this.$element().toggleClass(RADIO_BUTTON_CHECKED_CLASS, checked).find(\".\" + RADIO_BUTTON_ICON_CLASS).toggleClass(RADIO_BUTTON_ICON_CHECKED_CLASS, checked);\r\n this.setAria(\"checked\", checked)\r\n },\r\n _renderClick: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n this._clickAction = this._createAction(function(args) {\r\n this._clickHandler(args.event)\r\n }.bind(this));\r\n eventsEngine.off(this.$element(), eventName);\r\n eventsEngine.on(this.$element(), eventName, function(e) {\r\n this._clickAction({\r\n event: e\r\n })\r\n }.bind(this))\r\n },\r\n _clickHandler: function(e) {\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._renderCheckedState(args.value);\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxRadioButton\", RadioButton);\r\nexport default RadioButton;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.selection.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport CheckBox from \"../check_box\";\r\nimport RadioButton from \"../radio_group/radio_button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n register as registerDecorator\r\n} from \"./ui.list.edit.decorator_registry\";\r\nimport EditDecorator from \"./ui.list.edit.decorator\";\r\nvar SELECT_DECORATOR_ENABLED_CLASS = \"dx-list-select-decorator-enabled\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CLASS = \"dx-list-select-all\";\r\nvar SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS = \"dx-list-select-all-checkbox\";\r\nvar SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS = \"dx-list-select-all-label\";\r\nvar SELECT_CHECKBOX_CONTAINER_CLASS = \"dx-list-select-checkbox-container\";\r\nvar SELECT_CHECKBOX_CLASS = \"dx-list-select-checkbox\";\r\nvar SELECT_RADIO_BUTTON_CONTAINER_CLASS = \"dx-list-select-radiobutton-container\";\r\nvar SELECT_RADIO_BUTTON_CLASS = \"dx-list-select-radiobutton\";\r\nvar FOCUSED_STATE_CLASS = \"dx-state-focused\";\r\nvar CLICK_EVENT_NAME = addNamespace(clickEventName, \"dxListEditDecorator\");\r\nregisterDecorator(\"selection\", \"default\", EditDecorator.inherit({\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectionMode = this._list.option(\"selectionMode\");\r\n this._singleStrategy = \"single\" === selectionMode;\r\n this._containerClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CONTAINER_CLASS : SELECT_CHECKBOX_CONTAINER_CLASS;\r\n this._controlClass = this._singleStrategy ? SELECT_RADIO_BUTTON_CLASS : SELECT_CHECKBOX_CLASS;\r\n this._controlWidget = this._singleStrategy ? RadioButton : CheckBox;\r\n this._list.$element().addClass(SELECT_DECORATOR_ENABLED_CLASS)\r\n },\r\n beforeBag: function(config) {\r\n var $itemElement = config.$itemElement;\r\n var $container = config.$container.addClass(this._containerClass);\r\n var $control = $(\"<div>\").addClass(this._controlClass).appendTo($container);\r\n new this._controlWidget($control, extend(this._commonOptions(), {\r\n value: this._isSelected($itemElement),\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false,\r\n onValueChanged: function(e) {\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n this._processCheckedState($itemElement, e.value);\r\n e.event && e.event.stopPropagation()\r\n }.bind(this)\r\n }))\r\n },\r\n modifyElement: function(config) {\r\n this.callBase.apply(this, arguments);\r\n var $itemElement = config.$itemElement;\r\n var control = this._controlWidget.getInstance($itemElement.find(\".\" + this._controlClass));\r\n eventsEngine.on($itemElement, \"stateChanged\", function(e, state) {\r\n control.option(\"value\", state)\r\n }.bind(this))\r\n },\r\n _updateSelectAllState: function() {\r\n if (!this._$selectAll) {\r\n return\r\n }\r\n this._selectAllCheckBox.option(\"value\", this._list.isSelectAll())\r\n },\r\n afterRender: function() {\r\n if (\"all\" !== this._list.option(\"selectionMode\")) {\r\n return\r\n }\r\n if (!this._$selectAll) {\r\n this._renderSelectAll()\r\n } else {\r\n this._updateSelectAllState()\r\n }\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n var moveFocusDown = !moveFocusUp;\r\n var list = this._list;\r\n var $selectAll = this._$selectAll;\r\n var lastItemIndex = list._getLastItemIndex();\r\n var isFocusOutOfList = moveFocusUp && 0 === currentFocusedIndex || moveFocusDown && currentFocusedIndex === lastItemIndex;\r\n var hasSelectAllItem = !!$selectAll;\r\n if (hasSelectAllItem && isFocusOutOfList) {\r\n list.option(\"focusedElement\", $selectAll);\r\n list.scrollToItem(list.option(\"focusedElement\"));\r\n return true\r\n }\r\n return false\r\n },\r\n handleEnterPressing: function(e) {\r\n if (this._$selectAll && this._$selectAll.hasClass(FOCUSED_STATE_CLASS)) {\r\n e.target = this._$selectAll.get(0);\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"));\r\n return true\r\n }\r\n },\r\n _renderSelectAll: function() {\r\n var $selectAll = this._$selectAll = $(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_CLASS);\r\n var list = this._list;\r\n var downArrowHandler = list._supportedKeys().downArrow.bind(list);\r\n this._selectAllCheckBox = list._createComponent($(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS).appendTo($selectAll), CheckBox, {\r\n focusStateEnabled: false,\r\n hoverStateEnabled: false\r\n });\r\n this._selectAllCheckBox.registerKeyHandler(\"downArrow\", downArrowHandler);\r\n $(\"<div>\").addClass(SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS).text(this._list.option(\"selectAllText\")).appendTo($selectAll);\r\n this._list.itemsContainer().prepend($selectAll);\r\n this._updateSelectAllState();\r\n this._attachSelectAllHandler()\r\n },\r\n _attachSelectAllHandler: function() {\r\n this._selectAllCheckBox.option(\"onValueChanged\", this._selectAllHandler.bind(this));\r\n eventsEngine.off(this._$selectAll, CLICK_EVENT_NAME);\r\n eventsEngine.on(this._$selectAll, CLICK_EVENT_NAME, this._selectAllClickHandler.bind(this))\r\n },\r\n _selectAllHandler: function(e) {\r\n e.event && e.event.stopPropagation();\r\n var isSelectedAll = this._selectAllCheckBox.option(\"value\");\r\n e.event && this._list._saveSelectionChangeEvent(e.event);\r\n if (true === isSelectedAll) {\r\n this._selectAllItems()\r\n } else if (false === isSelectedAll) {\r\n this._unselectAllItems()\r\n }\r\n this._list._createActionByOption(\"onSelectAllValueChanged\")({\r\n value: isSelectedAll\r\n })\r\n },\r\n _checkSelectAllCapability: function() {\r\n var list = this._list;\r\n var dataController = list._dataController;\r\n if (\"allPages\" === list.option(\"selectAllMode\") && list.option(\"grouped\") && !dataController.group()) {\r\n errors.log(\"W1010\");\r\n return false\r\n }\r\n return true\r\n },\r\n _selectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.selectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _unselectAllItems: function() {\r\n if (!this._checkSelectAllCapability()) {\r\n return\r\n }\r\n this._list._selection.deselectAll(\"page\" === this._list.option(\"selectAllMode\"))\r\n },\r\n _selectAllClickHandler: function(e) {\r\n this._list._saveSelectionChangeEvent(e);\r\n this._selectAllCheckBox.option(\"value\", !this._selectAllCheckBox.option(\"value\"))\r\n },\r\n _isSelected: function($itemElement) {\r\n return this._list.isItemSelected($itemElement)\r\n },\r\n _processCheckedState: function($itemElement, checked) {\r\n if (checked) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n },\r\n dispose: function() {\r\n this._disposeSelectAll();\r\n this._list.$element().removeClass(SELECT_DECORATOR_ENABLED_CLASS);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _disposeSelectAll: function() {\r\n if (this._$selectAll) {\r\n this._$selectAll.remove();\r\n this._$selectAll = null\r\n }\r\n }\r\n}));\r\n","/**\r\n * DevExtreme (esm/ui/list/item.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nvar LIST_ITEM_BADGE_CONTAINER_CLASS = \"dx-list-item-badge-container\";\r\nvar LIST_ITEM_BADGE_CLASS = \"dx-list-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar LIST_ITEM_CHEVRON_CONTAINER_CLASS = \"dx-list-item-chevron-container\";\r\nvar LIST_ITEM_CHEVRON_CLASS = \"dx-list-item-chevron\";\r\nvar ListItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this));\r\n this._startWatcher(\"showChevron\", this._renderShowChevron.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + LIST_ITEM_BADGE_CONTAINER_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"<div>\").addClass(LIST_ITEM_BADGE_CONTAINER_CLASS).append($(\"<div>\").addClass(LIST_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge));\r\n var $chevron = this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).first();\r\n $chevron.length > 0 ? $badge.insertBefore($chevron) : $badge.appendTo(this._$element)\r\n },\r\n _renderShowChevron: function(showChevron) {\r\n this._$element.children(\".\" + LIST_ITEM_CHEVRON_CONTAINER_CLASS).remove();\r\n if (!showChevron) {\r\n return\r\n }\r\n var $chevronContainer = $(\"<div>\").addClass(LIST_ITEM_CHEVRON_CONTAINER_CLASS);\r\n var $chevron = $(\"<div>\").addClass(LIST_ITEM_CHEVRON_CLASS);\r\n $chevronContainer.append($chevron).appendTo(this._$element)\r\n }\r\n});\r\nexport default ListItem;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_style.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../../../core/utils/window\";\r\nimport {\r\n toNumber\r\n} from \"../../../utils/type_conversion\";\r\nexport function getElementStyle(el) {\r\n var _getWindow$getCompute, _getWindow;\r\n return el && hasWindow() ? null === (_getWindow$getCompute = (_getWindow = getWindow()).getComputedStyle) || void 0 === _getWindow$getCompute ? void 0 : _getWindow$getCompute.call(_getWindow, el) : null\r\n}\r\nexport function getElementMargin(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"margin\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementPadding(element, side) {\r\n var style = getElementStyle(element);\r\n return style ? toNumber(style[\"padding\".concat(titleize(side))]) : 0\r\n}\r\nexport function getElementOverflowX(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowX : \"visible\"\r\n}\r\nexport function getElementOverflowY(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.overflowY : \"visible\"\r\n}\r\nexport function getElementTransform(element) {\r\n var style = getElementStyle(element);\r\n return style ? style.transform : \"\"\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n ensureDefined,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getImageContainer\r\n} from \"../../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n render\r\n} from \"../widget/utils.ink_ripple\";\r\nimport devices from \"../../core/devices\";\r\nimport ListItem from \"./item\";\r\nimport Button from \"../button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport ScrollView from \"../scroll_view\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"../scroll_view/ui.scrollable.device\";\r\nimport CollectionWidget from \"../collection/ui.collection_widget.live_update\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nimport {\r\n getElementMargin\r\n} from \"../../renovation/ui/scroll_view/utils/get_element_style\";\r\nvar LIST_CLASS = \"dx-list\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_ITEM_SELECTOR = \".\" + LIST_ITEM_CLASS;\r\nvar LIST_ITEM_ICON_CONTAINER_CLASS = \"dx-list-item-icon-container\";\r\nvar LIST_ITEM_ICON_CLASS = \"dx-list-item-icon\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar LIST_GROUP_HEADER_CLASS = \"dx-list-group-header\";\r\nvar LIST_GROUP_BODY_CLASS = \"dx-list-group-body\";\r\nvar LIST_COLLAPSIBLE_GROUPS_CLASS = \"dx-list-collapsible-groups\";\r\nvar LIST_GROUP_COLLAPSED_CLASS = \"dx-list-group-collapsed\";\r\nvar LIST_GROUP_HEADER_INDICATOR_CLASS = \"dx-list-group-header-indicator\";\r\nvar LIST_HAS_NEXT_CLASS = \"dx-has-next\";\r\nvar LIST_NEXT_BUTTON_CLASS = \"dx-list-next-button\";\r\nvar WRAP_ITEM_TEXT_CLASS = \"dx-wrap-item-text\";\r\nvar SELECT_ALL_ITEM_SELECTOR = \".dx-list-select-all\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar LIST_FEEDBACK_SHOW_TIMEOUT = 70;\r\nvar groupItemsGetter = compileGetter(\"items\");\r\nvar _scrollView;\r\nexport var ListBase = CollectionWidget.inherit({\r\n _activeStateUnit: [LIST_ITEM_SELECTOR, SELECT_ALL_ITEM_SELECTOR].join(\",\"),\r\n _supportedKeys: function() {\r\n var that = this;\r\n var moveFocusPerPage = function(direction) {\r\n var $item = getEdgeVisibleItem(direction);\r\n var isFocusedItem = $item.is(that.option(\"focusedElement\"));\r\n if (isFocusedItem) {\r\n ! function($item, direction) {\r\n var resultPosition = $item.position().top;\r\n if (\"prev\" === direction) {\r\n resultPosition = $item.position().top - getHeight(that.$element()) + getOuterHeight($item)\r\n }\r\n that.scrollTo(resultPosition)\r\n }($item, direction);\r\n $item = getEdgeVisibleItem(direction)\r\n }\r\n that.option(\"focusedElement\", getPublicElement($item));\r\n that.scrollToItem($item)\r\n };\r\n\r\n function getEdgeVisibleItem(direction) {\r\n var scrollTop = that.scrollTop();\r\n var containerHeight = getHeight(that.$element());\r\n var $item = $(that.option(\"focusedElement\"));\r\n var isItemVisible = true;\r\n if (!$item.length) {\r\n return $()\r\n }\r\n while (isItemVisible) {\r\n var $nextItem = $item[direction]();\r\n if (!$nextItem.length) {\r\n break\r\n }\r\n var nextItemLocation = $nextItem.position().top + getOuterHeight($nextItem) / 2;\r\n isItemVisible = nextItemLocation < containerHeight + scrollTop && nextItemLocation > scrollTop;\r\n if (isItemVisible) {\r\n $item = $nextItem\r\n }\r\n }\r\n return $item\r\n }\r\n return extend(this.callBase(), {\r\n leftArrow: noop,\r\n rightArrow: noop,\r\n pageUp: function() {\r\n moveFocusPerPage(\"prev\");\r\n return false\r\n },\r\n pageDown: function() {\r\n moveFocusPerPage(\"next\");\r\n return false\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n pullRefreshEnabled: false,\r\n scrollingEnabled: true,\r\n showScrollbar: \"onScroll\",\r\n useNativeScrolling: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n pullingDownText: messageLocalization.format(\"dxList-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxList-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxList-refreshingText\"),\r\n pageLoadingText: messageLocalization.format(\"dxList-pageLoadingText\"),\r\n onScroll: null,\r\n onPullRefresh: null,\r\n onPageLoading: null,\r\n pageLoadMode: \"scrollBottom\",\r\n nextButtonText: messageLocalization.format(\"dxList-nextButtonText\"),\r\n onItemSwipe: null,\r\n grouped: false,\r\n onGroupRendered: null,\r\n collapsibleGroups: false,\r\n groupTemplate: \"group\",\r\n indicateLoading: true,\r\n activeStateEnabled: true,\r\n _itemAttributes: {\r\n role: \"option\"\r\n },\r\n _listAttributes: {\r\n role: \"listbox\"\r\n },\r\n useInkRipple: false,\r\n wrapItemText: false,\r\n _swipeEnabled: true,\r\n showChevronExpr: function(data) {\r\n return data ? data.showChevron : void 0\r\n },\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !nativeScrolling && !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n showScrollbar: \"onHover\",\r\n pageLoadMode: \"nextButton\"\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n pageLoadingText: \"\",\r\n useInkRipple: true\r\n }\r\n }])\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._updateLoadingState(true)\r\n }\r\n },\r\n _itemClass: function() {\r\n return LIST_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return LIST_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$container\r\n },\r\n _saveSelectionChangeEvent: function(e) {\r\n this._selectionChangeEventInstance = e\r\n },\r\n _getSelectionChangeEvent: function() {\r\n return this._selectionChangeEventInstance\r\n },\r\n _refreshItemElements: function() {\r\n if (!this.option(\"grouped\")) {\r\n this._itemElementsCache = this._itemContainer().children(this._itemSelector())\r\n } else {\r\n this._itemElementsCache = this._itemContainer().children(\".\" + LIST_GROUP_CLASS).children(\".\" + LIST_GROUP_BODY_CLASS).children(this._itemSelector())\r\n }\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n reorderItem: function(itemElement, toItemElement) {\r\n var promise = this.callBase(itemElement, toItemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n deleteItem: function(itemElement) {\r\n var promise = this.callBase(itemElement);\r\n return promise.done((function() {\r\n this._refreshItemElements()\r\n }))\r\n },\r\n _itemElements: function() {\r\n return this._itemElementsCache\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n return this.callBase(e)\r\n },\r\n _allowDynamicItemsAppend: function() {\r\n return true\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._dataController.resetDataSourcePageIndex();\r\n this._$container = this.$element();\r\n this._initScrollView();\r\n this._feedbackShowTimeout = LIST_FEEDBACK_SHOW_TIMEOUT;\r\n this._createGroupRenderAction()\r\n },\r\n _scrollBottomMode: function() {\r\n return \"scrollBottom\" === this.option(\"pageLoadMode\")\r\n },\r\n _nextButtonMode: function() {\r\n return \"nextButton\" === this.option(\"pageLoadMode\")\r\n },\r\n _dataSourceOptions: function() {\r\n var scrollBottom = this._scrollBottomMode();\r\n var nextButton = this._nextButtonMode();\r\n return extend(this.callBase(), {\r\n paginate: ensureDefined(scrollBottom || nextButton, true)\r\n })\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _getGroupContainerByIndex: function(groupIndex) {\r\n return this._itemContainer().find(\".\".concat(LIST_GROUP_CLASS)).eq(groupIndex).find(\".\".concat(LIST_GROUP_BODY_CLASS))\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _initScrollView: function() {\r\n var scrollingEnabled = this.option(\"scrollingEnabled\");\r\n var pullRefreshEnabled = scrollingEnabled && this.option(\"pullRefreshEnabled\");\r\n var autoPagingEnabled = scrollingEnabled && this._scrollBottomMode() && !!this._dataController.getDataSource();\r\n this._scrollView = this._createComponent(this.$element(), getScrollView(), {\r\n height: this.option(\"height\"),\r\n width: this.option(\"width\"),\r\n disabled: this.option(\"disabled\") || !scrollingEnabled,\r\n onScroll: this._scrollHandler.bind(this),\r\n onPullDown: pullRefreshEnabled ? this._pullDownHandler.bind(this) : null,\r\n onReachBottom: autoPagingEnabled ? this._scrollBottomHandler.bind(this) : null,\r\n showScrollbar: this.option(\"showScrollbar\"),\r\n useNative: this.option(\"useNativeScrolling\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n pullingDownText: this.option(\"pullingDownText\"),\r\n pulledDownText: this.option(\"pulledDownText\"),\r\n refreshingText: this.option(\"refreshingText\"),\r\n reachBottomText: this.option(\"pageLoadingText\"),\r\n useKeyboard: false\r\n });\r\n this._$container = $(this._scrollView.content());\r\n if (this.option(\"wrapItemText\")) {\r\n this._$container.addClass(WRAP_ITEM_TEXT_CLASS)\r\n }\r\n this._createScrollViewActions()\r\n },\r\n _createScrollViewActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._pullRefreshAction = this._createActionByOption(\"onPullRefresh\");\r\n this._pageLoadingAction = this._createActionByOption(\"onPageLoading\")\r\n },\r\n _scrollHandler: function(e) {\r\n this._scrollAction && this._scrollAction(e)\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n group: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n if (data.key) {\r\n $container.text(data.key)\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n }), [\"key\"], this.option(\"integrationOptions.watchMethod\"))\r\n });\r\n this.callBase()\r\n },\r\n _prepareDefaultItemTemplate: function(data, $container) {\r\n this.callBase(data, $container);\r\n if (data.icon) {\r\n var $icon = getImageContainer(data.icon).addClass(LIST_ITEM_ICON_CLASS);\r\n var $iconContainer = $(\"<div>\").addClass(LIST_ITEM_ICON_CONTAINER_CLASS);\r\n $iconContainer.append($icon);\r\n $container.prepend($iconContainer)\r\n }\r\n },\r\n _getBindableFields: function() {\r\n return [\"text\", \"html\", \"icon\"]\r\n },\r\n _updateLoadingState: function(tryLoadMore) {\r\n var dataController = this._dataController;\r\n var shouldLoadNextPage = this._scrollBottomMode() && tryLoadMore && !dataController.isLoading() && !this._isLastPage();\r\n if (this._shouldContinueLoading(shouldLoadNextPage)) {\r\n this._infiniteDataLoading()\r\n } else {\r\n this._scrollView.release(!shouldLoadNextPage && !dataController.isLoading());\r\n this._toggleNextButton(this._shouldRenderNextButton() && !this._isLastPage());\r\n this._loadIndicationSuppressed(false)\r\n }\r\n },\r\n _shouldRenderNextButton: function() {\r\n return this._nextButtonMode() && this._dataController.isLoaded()\r\n },\r\n _isDataSourceFirstLoadCompleted: function(newValue) {\r\n if (isDefined(newValue)) {\r\n this._isFirstLoadCompleted = newValue\r\n }\r\n return this._isFirstLoadCompleted\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n if (this._loadIndicationSuppressed()) {\r\n return\r\n }\r\n if (isLoading && this.option(\"indicateLoading\")) {\r\n this._showLoadingIndicatorTimer = setTimeout(function() {\r\n var isEmpty = !this._itemElements().length;\r\n var shouldIndicateLoading = !isEmpty || this._isDataSourceFirstLoadCompleted();\r\n if (shouldIndicateLoading) {\r\n var _this$_scrollView;\r\n null === (_this$_scrollView = this._scrollView) || void 0 === _this$_scrollView ? void 0 : _this$_scrollView.startLoading()\r\n }\r\n }.bind(this))\r\n } else {\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this._scrollView && this._scrollView.finishLoading()\r\n }\r\n if (!isLoading) {\r\n this._isDataSourceFirstLoadCompleted(false)\r\n }\r\n },\r\n _dataSourceChangedHandler: function() {\r\n if (!this._shouldAppendItems() && hasWindow()) {\r\n this._scrollView && this._scrollView.scrollTo(0)\r\n }\r\n this.callBase.apply(this, arguments);\r\n this._isDataSourceFirstLoadCompleted(true)\r\n },\r\n _refreshContent: function() {\r\n this._prepareContent();\r\n this._fireContentReadyAction()\r\n },\r\n _hideLoadingIfLoadIndicationOff: function() {\r\n if (!this.option(\"indicateLoading\")) {\r\n this._dataSourceLoadingChangedHandler(false)\r\n }\r\n },\r\n _loadIndicationSuppressed: function(value) {\r\n if (!arguments.length) {\r\n return this._isLoadIndicationSuppressed\r\n }\r\n this._isLoadIndicationSuppressed = value\r\n },\r\n _scrollViewIsFull: function() {\r\n var scrollView = this._scrollView;\r\n return !scrollView || getHeight(scrollView.content()) > getHeight(scrollView.container())\r\n },\r\n _pullDownHandler: function(e) {\r\n this._pullRefreshAction(e);\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !dataController.isLoading()) {\r\n this._clearSelectedItems();\r\n dataController.pageIndex(0);\r\n dataController.reload()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _shouldContinueLoading: function(shouldLoadNextPage) {\r\n var _this$_scrollView$scr, _this$_scrollView$scr2;\r\n var isBottomReached = getHeight(this._scrollView.content()) - getHeight(this._scrollView.container()) < (null !== (_this$_scrollView$scr = null === (_this$_scrollView$scr2 = this._scrollView.scrollOffset()) || void 0 === _this$_scrollView$scr2 ? void 0 : _this$_scrollView$scr2.top) && void 0 !== _this$_scrollView$scr ? _this$_scrollView$scr : 0);\r\n return shouldLoadNextPage && (!this._scrollViewIsFull() || isBottomReached)\r\n },\r\n _infiniteDataLoading: function() {\r\n var isElementVisible = this.$element().is(\":visible\");\r\n if (isElementVisible) {\r\n clearTimeout(this._loadNextPageTimer);\r\n this._loadNextPageTimer = setTimeout(() => {\r\n this._loadNextPage()\r\n })\r\n }\r\n },\r\n _scrollBottomHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var dataController = this._dataController;\r\n if (!dataController.isLoading() && !this._isLastPage()) {\r\n this._loadNextPage()\r\n } else {\r\n this._updateLoadingState()\r\n }\r\n },\r\n _renderItems: function(items) {\r\n if (this.option(\"grouped\")) {\r\n each(items, this._renderGroup.bind(this));\r\n this._attachGroupCollapseEvent();\r\n this._renderEmptyMessage();\r\n if (isMaterial()) {\r\n this.attachGroupHeaderInkRippleEvents()\r\n }\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n this._refreshItemElements();\r\n this._updateLoadingState(true)\r\n },\r\n _attachGroupCollapseEvent: function() {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n var collapsibleGroups = this.option(\"collapsibleGroups\");\r\n $element.toggleClass(LIST_COLLAPSIBLE_GROUPS_CLASS, collapsibleGroups);\r\n eventsEngine.off($element, eventName, selector);\r\n if (collapsibleGroups) {\r\n eventsEngine.on($element, eventName, selector, function(e) {\r\n this._createAction(function(e) {\r\n var $group = $(e.event.currentTarget).parent();\r\n this._collapseGroupHandler($group);\r\n if (this.option(\"focusStateEnabled\")) {\r\n this.option(\"focusedElement\", getPublicElement($group.find(\".\" + LIST_ITEM_CLASS).eq(0)))\r\n }\r\n }.bind(this), {\r\n validatingTargetName: \"element\"\r\n })({\r\n event: e\r\n })\r\n }.bind(this))\r\n }\r\n },\r\n _collapseGroupHandler: function($group, toggle) {\r\n var deferred = new Deferred;\r\n if ($group.hasClass(LIST_GROUP_COLLAPSED_CLASS) === toggle) {\r\n return deferred.resolve()\r\n }\r\n var $groupBody = $group.children(\".\" + LIST_GROUP_BODY_CLASS);\r\n var startHeight = getOuterHeight($groupBody);\r\n var endHeight = 0;\r\n if (0 === startHeight) {\r\n setHeight($groupBody, \"auto\");\r\n endHeight = getOuterHeight($groupBody)\r\n }\r\n $group.toggleClass(LIST_GROUP_COLLAPSED_CLASS, toggle);\r\n fx.animate($groupBody, {\r\n type: \"custom\",\r\n from: {\r\n height: startHeight\r\n },\r\n to: {\r\n height: endHeight\r\n },\r\n duration: 200,\r\n complete: function() {\r\n this.updateDimensions();\r\n this._updateLoadingState();\r\n deferred.resolve()\r\n }.bind(this)\r\n });\r\n return deferred.promise()\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._forgetNextPageLoading();\r\n if (this._initialized) {\r\n this._renderEmptyMessage();\r\n this._updateLoadingState()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._itemElementsCache = $();\r\n this.$element().addClass(LIST_CLASS);\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.setAria(\"role\", this.option(\"_listAttributes\").role)\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n var that = this;\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n if (isMaterial()) {\r\n this._inkRippleTimer = setTimeout((function() {\r\n that._inkRipple.showWave(config)\r\n }), LIST_FEEDBACK_SHOW_TIMEOUT / 2)\r\n } else {\r\n that._inkRipple.showWave(config)\r\n }\r\n } else {\r\n clearTimeout(this._inkRippleTimer);\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _postprocessRenderItem: function(args) {\r\n this._refreshItemElements();\r\n this.callBase.apply(this, arguments);\r\n if (this.option(\"_swipeEnabled\")) {\r\n this._attachSwipeEvent($(args.itemElement))\r\n }\r\n },\r\n _attachSwipeEvent: function($itemElement) {\r\n var endEventName = addNamespace(swipeEventEnd, this.NAME);\r\n eventsEngine.on($itemElement, endEventName, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n this._itemDXEventHandler(e, \"onItemSwipe\", {\r\n direction: e.offset < 0 ? \"left\" : \"right\"\r\n })\r\n },\r\n _nextButtonHandler: function(e) {\r\n this._pageLoadingAction(e);\r\n var dataController = this._dataController;\r\n if (dataController.getDataSource() && !dataController.isLoading()) {\r\n this._scrollView.toggleLoading(true);\r\n this._$nextButton.detach();\r\n this._loadIndicationSuppressed(true);\r\n this._loadNextPage()\r\n }\r\n },\r\n _renderGroup: function(index, group) {\r\n var $groupElement = $(\"<div>\").addClass(LIST_GROUP_CLASS).appendTo(this._itemContainer());\r\n var $groupHeaderElement = $(\"<div>\").addClass(LIST_GROUP_HEADER_CLASS).appendTo($groupElement);\r\n var groupTemplateName = this.option(\"groupTemplate\");\r\n var groupTemplate = this._getTemplate(group.template || groupTemplateName, group, index, $groupHeaderElement);\r\n var renderArgs = {\r\n index: index,\r\n itemData: group,\r\n container: getPublicElement($groupHeaderElement)\r\n };\r\n this._createItemByTemplate(groupTemplate, renderArgs);\r\n if (isMaterial()) {\r\n $(\"<div>\").addClass(LIST_GROUP_HEADER_INDICATOR_CLASS).prependTo($groupHeaderElement)\r\n }\r\n this._renderingGroupIndex = index;\r\n var $groupBody = $(\"<div>\").addClass(LIST_GROUP_BODY_CLASS).appendTo($groupElement);\r\n each(groupItemsGetter(group) || [], function(itemIndex, item) {\r\n this._renderItem({\r\n group: index,\r\n item: itemIndex\r\n }, item, $groupBody)\r\n }.bind(this));\r\n this._groupRenderAction({\r\n groupElement: getPublicElement($groupElement),\r\n groupIndex: index,\r\n groupData: group\r\n })\r\n },\r\n downInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), true, e)\r\n },\r\n upInkRippleHandler: function(e) {\r\n this._toggleActiveState($(e.currentTarget), false)\r\n },\r\n attachGroupHeaderInkRippleEvents: function() {\r\n var selector = \".\" + LIST_GROUP_HEADER_CLASS;\r\n var $element = this.$element();\r\n this._downInkRippleHandler = this._downInkRippleHandler || this.downInkRippleHandler.bind(this);\r\n this._upInkRippleHandler = this._upInkRippleHandler || this.upInkRippleHandler.bind(this);\r\n var downArguments = [$element, \"dxpointerdown\", selector, this._downInkRippleHandler];\r\n var upArguments = [$element, \"dxpointerup dxpointerout\", selector, this._upInkRippleHandler];\r\n eventsEngine.off(...downArguments);\r\n eventsEngine.on(...downArguments);\r\n eventsEngine.off(...upArguments);\r\n eventsEngine.on(...upArguments)\r\n },\r\n _createGroupRenderAction: function() {\r\n this._groupRenderAction = this._createActionByOption(\"onGroupRendered\")\r\n },\r\n _clean: function() {\r\n clearTimeout(this._inkRippleTimer);\r\n if (this._$nextButton) {\r\n this._$nextButton.remove();\r\n this._$nextButton = null\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _dispose: function() {\r\n this._isDataSourceFirstLoadCompleted(false);\r\n clearTimeout(this._holdTimer);\r\n clearTimeout(this._loadNextPageTimer);\r\n clearTimeout(this._showLoadingIndicatorTimer);\r\n this.callBase()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(value);\r\n this._scrollView.option(\"disabled\", value || !this.option(\"scrollingEnabled\"))\r\n },\r\n _toggleNextButton: function(value) {\r\n var dataController = this._dataController;\r\n var $nextButton = this._getNextButton();\r\n this.$element().toggleClass(LIST_HAS_NEXT_CLASS, value);\r\n if (value && dataController.isLoaded()) {\r\n $nextButton.appendTo(this._itemContainer())\r\n }\r\n if (!value) {\r\n $nextButton.detach()\r\n }\r\n },\r\n _getNextButton: function() {\r\n if (!this._$nextButton) {\r\n this._$nextButton = this._createNextButton()\r\n }\r\n return this._$nextButton\r\n },\r\n _createNextButton: function() {\r\n var $result = $(\"<div>\").addClass(LIST_NEXT_BUTTON_CLASS);\r\n var $button = $(\"<div>\").appendTo($result);\r\n this._createComponent($button, Button, {\r\n text: this.option(\"nextButtonText\"),\r\n onClick: this._nextButtonHandler.bind(this),\r\n type: isMaterial() ? \"default\" : void 0,\r\n integrationOptions: {}\r\n });\r\n return $result\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _refresh: function() {\r\n if (!hasWindow()) {\r\n this.callBase()\r\n } else {\r\n var scrollTop = this._scrollView.scrollTop();\r\n this.callBase();\r\n scrollTop && this._scrollView.scrollTo(scrollTop)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"pageLoadMode\":\r\n this._toggleNextButton(args.value);\r\n this._initScrollView();\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initScrollView();\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"items\":\r\n this.callBase(args);\r\n this._isDataSourceFirstLoadCompleted(false);\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"pageLoadingText\":\r\n case \"showScrollbar\":\r\n case \"bounceEnabled\":\r\n case \"scrollByContent\":\r\n case \"scrollByThumb\":\r\n case \"useNativeScrolling\":\r\n case \"scrollingEnabled\":\r\n case \"pullRefreshEnabled\":\r\n this._initScrollView();\r\n this._updateLoadingState();\r\n break;\r\n case \"nextButtonText\":\r\n case \"onItemSwipe\":\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"onScroll\":\r\n case \"onPullRefresh\":\r\n case \"onPageLoading\":\r\n this._createScrollViewActions();\r\n break;\r\n case \"grouped\":\r\n case \"collapsibleGroups\":\r\n case \"groupTemplate\":\r\n this._invalidate();\r\n break;\r\n case \"wrapItemText\":\r\n this._$container.toggleClass(WRAP_ITEM_TEXT_CLASS, args.value);\r\n break;\r\n case \"onGroupRendered\":\r\n this._createGroupRenderAction();\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n this._scrollView.option(args.name, args.value);\r\n this._scrollView.update();\r\n break;\r\n case \"indicateLoading\":\r\n this._hideLoadingIfLoadIndicationOff();\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n this._scrollView.update();\r\n break;\r\n case \"rtlEnabled\":\r\n this._initScrollView();\r\n this.callBase(args);\r\n break;\r\n case \"showChevronExpr\":\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n case \"_swipeEnabled\":\r\n case \"_listAttributes\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _extendActionArgs: function($itemElement) {\r\n if (!this.option(\"grouped\")) {\r\n return this.callBase($itemElement)\r\n }\r\n var $group = $itemElement.closest(\".\" + LIST_GROUP_CLASS);\r\n var $item = $group.find(\".\" + LIST_ITEM_CLASS);\r\n return extend(this.callBase($itemElement), {\r\n itemIndex: {\r\n group: $group.index(),\r\n item: $item.index($itemElement)\r\n }\r\n })\r\n },\r\n expandGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, false).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n collapseGroup: function(groupIndex) {\r\n var deferred = new Deferred;\r\n var $group = this._itemContainer().find(\".\" + LIST_GROUP_CLASS).eq(groupIndex);\r\n this._collapseGroupHandler($group, true).done(function() {\r\n deferred.resolveWith(this)\r\n }.bind(this));\r\n return deferred\r\n },\r\n updateDimensions: function() {\r\n var that = this;\r\n var deferred = new Deferred;\r\n if (that._scrollView) {\r\n that._scrollView.update().done((function() {\r\n !that._scrollViewIsFull() && that._updateLoadingState(true);\r\n deferred.resolveWith(that)\r\n }))\r\n } else {\r\n deferred.resolveWith(that)\r\n }\r\n return deferred.promise()\r\n },\r\n reload: function() {\r\n this.callBase();\r\n this.scrollTo(0);\r\n this._pullDownHandler()\r\n },\r\n repaint: function() {\r\n this.scrollTo(0);\r\n this.callBase()\r\n },\r\n scrollTop: function() {\r\n return this._scrollView.scrollOffset().top\r\n },\r\n clientHeight: function() {\r\n return this._scrollView.clientHeight()\r\n },\r\n scrollHeight: function() {\r\n return this._scrollView.scrollHeight()\r\n },\r\n scrollBy: function(distance) {\r\n this._scrollView.scrollBy(distance)\r\n },\r\n scrollTo: function(location) {\r\n this._scrollView.scrollTo(location)\r\n },\r\n scrollToItem: function(itemElement) {\r\n var $item = this._editStrategy.getItemElement(itemElement);\r\n var item = null === $item || void 0 === $item ? void 0 : $item.get(0);\r\n this._scrollView.scrollToElement(item, {\r\n bottom: getElementMargin(item, \"bottom\")\r\n })\r\n },\r\n _dimensionChanged: function() {\r\n this.updateDimensions()\r\n }\r\n}).include(DataConverterMixin);\r\nListBase.ItemClass = ListItem;\r\n\r\nfunction getScrollView() {\r\n return _scrollView || ScrollView\r\n}\r\nexport function setScrollView(value) {\r\n _scrollView = value\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n start as swipeEventStart,\r\n swipe as swipeEventSwipe,\r\n end as swipeEventEnd\r\n} from \"../../events/swipe\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar LIST_EDIT_DECORATOR = \"dxListEditDecorator\";\r\nvar SWIPE_START_EVENT_NAME = addNamespace(swipeEventStart, LIST_EDIT_DECORATOR);\r\nvar SWIPE_UPDATE_EVENT_NAME = addNamespace(swipeEventSwipe, LIST_EDIT_DECORATOR);\r\nvar SWIPE_END_EVENT_NAME = addNamespace(swipeEventEnd, LIST_EDIT_DECORATOR);\r\nvar EditDecorator = Class.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._init()\r\n },\r\n _init: noop,\r\n _shouldHandleSwipe: false,\r\n _attachSwipeEvent: function(config) {\r\n var swipeConfig = {\r\n itemSizeFunc: function() {\r\n if (this._clearSwipeCache) {\r\n this._itemWidthCache = getWidth(this._list.$element());\r\n this._clearSwipeCache = false\r\n }\r\n return this._itemWidthCache\r\n }.bind(this)\r\n };\r\n eventsEngine.on(config.$itemElement, SWIPE_START_EVENT_NAME, swipeConfig, this._itemSwipeStartHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_UPDATE_EVENT_NAME, this._itemSwipeUpdateHandler.bind(this));\r\n eventsEngine.on(config.$itemElement, SWIPE_END_EVENT_NAME, this._itemSwipeEndHandler.bind(this))\r\n },\r\n _itemSwipeStartHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n clearTimeout(this._list._inkRippleTimer);\r\n this._swipeStartHandler($itemElement, e)\r\n },\r\n _itemSwipeUpdateHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeUpdateHandler($itemElement, e)\r\n },\r\n _itemSwipeEndHandler: function(e) {\r\n var $itemElement = $(e.currentTarget);\r\n this._swipeEndHandler($itemElement, e);\r\n this._clearSwipeCache = true\r\n },\r\n beforeBag: noop,\r\n afterBag: noop,\r\n _commonOptions: function() {\r\n return {\r\n activeStateEnabled: this._list.option(\"activeStateEnabled\"),\r\n hoverStateEnabled: this._list.option(\"hoverStateEnabled\"),\r\n focusStateEnabled: this._list.option(\"focusStateEnabled\")\r\n }\r\n },\r\n modifyElement: function(config) {\r\n if (this._shouldHandleSwipe) {\r\n this._attachSwipeEvent(config);\r\n this._clearSwipeCache = true\r\n }\r\n },\r\n afterRender: noop,\r\n handleClick: noop,\r\n handleKeyboardEvents: noop,\r\n handleEnterPressing: noop,\r\n handleContextMenu: noop,\r\n _swipeStartHandler: noop,\r\n _swipeUpdateHandler: noop,\r\n _swipeEndHandler: noop,\r\n visibilityChange: noop,\r\n getExcludedSelectors: noop,\r\n dispose: noop\r\n});\r\nexport default EditDecorator;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.decorator_registry.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nexport var registry = {};\r\nexport function register(option, type, decoratorClass) {\r\n var decoratorsRegistry = registry;\r\n var decoratorConfig = {};\r\n decoratorConfig[option] = decoratorsRegistry[option] ? decoratorsRegistry[option] : {};\r\n decoratorConfig[option][type] = decoratorClass;\r\n extend(decoratorsRegistry, decoratorConfig)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.strategy.grouped.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport storeHelper from \"../../data/store_helper\";\r\nimport query from \"../../data/query\";\r\nimport EditStrategy from \"../collection/ui.collection_widget.edit.strategy.plain\";\r\nvar LIST_ITEM_CLASS = \"dx-list-item\";\r\nvar LIST_GROUP_CLASS = \"dx-list-group\";\r\nvar SELECTION_SHIFT = 20;\r\nvar SELECTION_MASK = (1 << SELECTION_SHIFT) - 1;\r\nvar combineIndex = function(indices) {\r\n return (indices.group << SELECTION_SHIFT) + indices.item\r\n};\r\nvar splitIndex = function(combinedIndex) {\r\n return {\r\n group: combinedIndex >> SELECTION_SHIFT,\r\n item: combinedIndex & SELECTION_MASK\r\n }\r\n};\r\nvar GroupedEditStrategy = EditStrategy.inherit({\r\n _groupElements: function() {\r\n return this._collectionWidget._itemContainer().find(\".\" + LIST_GROUP_CLASS)\r\n },\r\n _groupItemElements: function($group) {\r\n return $group.find(\".\" + LIST_ITEM_CLASS)\r\n },\r\n getIndexByItemData: function(itemData) {\r\n var groups = this._collectionWidget.option(\"items\");\r\n var index = false;\r\n if (!itemData) {\r\n return false\r\n }\r\n if (itemData.items && itemData.items.length) {\r\n itemData = itemData.items[0]\r\n }\r\n each(groups, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return false\r\n }\r\n each(group.items, (function(itemIndex, item) {\r\n if (item !== itemData) {\r\n return true\r\n }\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }));\r\n if (index) {\r\n return false\r\n }\r\n }));\r\n return index\r\n },\r\n getItemDataByIndex: function(index) {\r\n var items = this._collectionWidget.option(\"items\");\r\n if (isNumeric(index)) {\r\n return this.itemsGetter()[index]\r\n }\r\n return index && items[index.group] && items[index.group].items[index.item] || null\r\n },\r\n itemsGetter: function() {\r\n var resultItems = [];\r\n var items = this._collectionWidget.option(\"items\");\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n resultItems = resultItems.concat(items[i].items)\r\n } else {\r\n resultItems.push(items[i])\r\n }\r\n }\r\n return resultItems\r\n },\r\n deleteItemAtIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var itemGroup = this._collectionWidget.option(\"items\")[indices.group].items;\r\n itemGroup.splice(indices.item, 1)\r\n },\r\n getKeysByItems: function(items) {\r\n var plainItems = [];\r\n var i;\r\n for (i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n var result = [];\r\n for (i = 0; i < plainItems.length; i++) {\r\n result.push(this._collectionWidget.keyOf(plainItems[i]))\r\n }\r\n return result\r\n },\r\n getIndexByKey: function(key, items) {\r\n var groups = items || this._collectionWidget.option(\"items\");\r\n var index = -1;\r\n var that = this;\r\n each(groups, (function(groupIndex, group) {\r\n if (!group.items) {\r\n return\r\n }\r\n each(group.items, (function(itemIndex, item) {\r\n var itemKey = that._collectionWidget.keyOf(item);\r\n if (that._equalKeys(itemKey, key)) {\r\n index = {\r\n group: groupIndex,\r\n item: itemIndex\r\n };\r\n return false\r\n }\r\n }));\r\n if (-1 !== index) {\r\n return false\r\n }\r\n }));\r\n return index\r\n },\r\n _getGroups: function(items) {\r\n var dataController = this._collectionWidget._dataController;\r\n var group = dataController.group();\r\n if (group) {\r\n return storeHelper.queryByOptions(query(items), {\r\n group: group\r\n }).toArray()\r\n }\r\n return this._collectionWidget.option(\"items\")\r\n },\r\n getItemsByKeys: function(keys, items) {\r\n var result = [];\r\n var groups = this._getGroups(items);\r\n var groupItemByKeyMap = {};\r\n var getItemMeta = key => {\r\n var index = this.getIndexByKey(key, groups);\r\n var group = index && groups[index.group];\r\n if (!group) {\r\n return\r\n }\r\n return {\r\n groupKey: group.key,\r\n item: group.items[index.item]\r\n }\r\n };\r\n each(keys, (function(_, key) {\r\n var itemMeta = getItemMeta(key);\r\n if (!itemMeta) {\r\n return\r\n }\r\n var groupKey = itemMeta.groupKey;\r\n var item = itemMeta.item;\r\n var selectedGroup = groupItemByKeyMap[groupKey];\r\n if (!selectedGroup) {\r\n selectedGroup = {\r\n key: groupKey,\r\n items: []\r\n };\r\n groupItemByKeyMap[groupKey] = selectedGroup;\r\n result.push(selectedGroup)\r\n }\r\n selectedGroup.items.push(item)\r\n }));\r\n return result\r\n },\r\n moveItemAtIndexToIndex: function(movingIndex, destinationIndex) {\r\n var items = this._collectionWidget.option(\"items\");\r\n var movingIndices = splitIndex(movingIndex);\r\n var destinationIndices = splitIndex(destinationIndex);\r\n var movingItemGroup = items[movingIndices.group].items;\r\n var destinationItemGroup = items[destinationIndices.group].items;\r\n var movedItemData = movingItemGroup[movingIndices.item];\r\n movingItemGroup.splice(movingIndices.item, 1);\r\n destinationItemGroup.splice(destinationIndices.item, 0, movedItemData)\r\n },\r\n _isItemIndex: function(index) {\r\n return index && isNumeric(index.group) && isNumeric(index.item)\r\n },\r\n _getNormalizedItemIndex: function(itemElement) {\r\n var $item = $(itemElement);\r\n var $group = $item.closest(\".\" + LIST_GROUP_CLASS);\r\n if (!$group.length) {\r\n return -1\r\n }\r\n return combineIndex({\r\n group: this._groupElements().index($group),\r\n item: this._groupItemElements($group).index($item)\r\n })\r\n },\r\n _normalizeItemIndex: function(index) {\r\n return combineIndex(index)\r\n },\r\n _denormalizeItemIndex: function(index) {\r\n return splitIndex(index)\r\n },\r\n _getItemByNormalizedIndex: function(index) {\r\n var indices = splitIndex(index);\r\n var $group = this._groupElements().eq(indices.group);\r\n return this._groupItemElements($group).eq(indices.item)\r\n },\r\n _itemsFromSameParent: function(firstIndex, secondIndex) {\r\n return splitIndex(firstIndex).group === splitIndex(secondIndex).group\r\n }\r\n});\r\nexport default GroupedEditStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.provider.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n registry\r\n} from \"./ui.list.edit.decorator_registry\";\r\nvar editOptionsRegistry = [];\r\nvar registerOption = function(enabledFunc, decoratorTypeFunc, decoratorSubTypeFunc) {\r\n editOptionsRegistry.push({\r\n enabled: enabledFunc,\r\n decoratorType: decoratorTypeFunc,\r\n decoratorSubType: decoratorSubTypeFunc\r\n })\r\n};\r\nregisterOption((function() {\r\n return this.option(\"menuItems\").length\r\n}), (function() {\r\n return \"menu\"\r\n}), (function() {\r\n return this.option(\"menuMode\")\r\n}));\r\nregisterOption((function() {\r\n return !this.option(\"menuItems\").length && this.option(\"allowItemDeleting\")\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n return \"toggle\" === mode || \"slideButton\" === mode || \"swipe\" === mode || \"static\" === mode ? \"delete\" : \"menu\"\r\n}), (function() {\r\n var mode = this.option(\"itemDeleteMode\");\r\n if (\"slideItem\" === mode) {\r\n mode = \"slide\"\r\n }\r\n return mode\r\n}));\r\nregisterOption((function() {\r\n return \"none\" !== this.option(\"selectionMode\") && this.option(\"showSelectionControls\")\r\n}), (function() {\r\n return \"selection\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nregisterOption((function() {\r\n return this.option(\"itemDragging.allowReordering\") || this.option(\"itemDragging.allowDropInsideItem\") || this.option(\"itemDragging.group\")\r\n}), (function() {\r\n return \"reorder\"\r\n}), (function() {\r\n return \"default\"\r\n}));\r\nvar LIST_ITEM_BEFORE_BAG_CLASS = \"dx-list-item-before-bag\";\r\nvar LIST_ITEM_AFTER_BAG_CLASS = \"dx-list-item-after-bag\";\r\nvar DECORATOR_BEFORE_BAG_CREATE_METHOD = \"beforeBag\";\r\nvar DECORATOR_AFTER_BAG_CREATE_METHOD = \"afterBag\";\r\nvar DECORATOR_MODIFY_ELEMENT_METHOD = \"modifyElement\";\r\nvar DECORATOR_AFTER_RENDER_METHOD = \"afterRender\";\r\nvar DECORATOR_GET_EXCLUDED_SELECTORS_METHOD = \"getExcludedSelectors\";\r\nvar EditProvider = Class.inherit({\r\n ctor: function(list) {\r\n this._list = list;\r\n this._fetchRequiredDecorators()\r\n },\r\n dispose: function() {\r\n if (this._decorators && this._decorators.length) {\r\n each(this._decorators, (function(_, decorator) {\r\n decorator.dispose()\r\n }))\r\n }\r\n },\r\n _fetchRequiredDecorators: function() {\r\n this._decorators = [];\r\n each(editOptionsRegistry, function(_, option) {\r\n var optionEnabled = option.enabled.call(this._list);\r\n if (optionEnabled) {\r\n var decoratorType = option.decoratorType.call(this._list);\r\n var decoratorSubType = option.decoratorSubType.call(this._list);\r\n var decorator = this._createDecorator(decoratorType, decoratorSubType);\r\n this._decorators.push(decorator)\r\n }\r\n }.bind(this))\r\n },\r\n _createDecorator: function(type, subType) {\r\n var decoratorClass = this._findDecorator(type, subType);\r\n return new decoratorClass(this._list)\r\n },\r\n _findDecorator: function(type, subType) {\r\n var _registry$type;\r\n var foundDecorator = null === (_registry$type = registry[type]) || void 0 === _registry$type ? void 0 : _registry$type[subType];\r\n if (!foundDecorator) {\r\n throw errors.Error(\"E1012\", type, subType)\r\n }\r\n return foundDecorator\r\n },\r\n modifyItemElement: function(args) {\r\n var $itemElement = $(args.itemElement);\r\n var config = {\r\n $itemElement: $itemElement\r\n };\r\n this._prependBeforeBags($itemElement, config);\r\n this._appendAfterBags($itemElement, config);\r\n this._applyDecorators(DECORATOR_MODIFY_ELEMENT_METHOD, config)\r\n },\r\n afterItemsRendered: function() {\r\n this._applyDecorators(DECORATOR_AFTER_RENDER_METHOD)\r\n },\r\n _prependBeforeBags: function($itemElement, config) {\r\n var $beforeBags = this._collectDecoratorsMarkup(DECORATOR_BEFORE_BAG_CREATE_METHOD, config, LIST_ITEM_BEFORE_BAG_CLASS);\r\n $itemElement.prepend($beforeBags)\r\n },\r\n _appendAfterBags: function($itemElement, config) {\r\n var $afterBags = this._collectDecoratorsMarkup(DECORATOR_AFTER_BAG_CREATE_METHOD, config, LIST_ITEM_AFTER_BAG_CLASS);\r\n $itemElement.append($afterBags)\r\n },\r\n _collectDecoratorsMarkup: function(method, config, containerClass) {\r\n var $collector = $(\"<div>\");\r\n each(this._decorators, (function() {\r\n var $container = $(\"<div>\").addClass(containerClass);\r\n this[method](extend({\r\n $container: $container\r\n }, config));\r\n if ($container.children().length) {\r\n $collector.append($container)\r\n }\r\n }));\r\n return $collector.children()\r\n },\r\n _applyDecorators: function(method, config) {\r\n each(this._decorators, (function() {\r\n this[method](config)\r\n }))\r\n },\r\n _handlerExists: function(name) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n if (decorators[i][name] !== noop) {\r\n return true\r\n }\r\n }\r\n return false\r\n },\r\n _eventHandler: function(name, $itemElement, e) {\r\n if (!this._decorators) {\r\n return false\r\n }\r\n var response = false;\r\n var decorators = this._decorators;\r\n var length = decorators.length;\r\n for (var i = 0; i < length; i++) {\r\n response = decorators[i][name]($itemElement, e);\r\n if (response) {\r\n break\r\n }\r\n }\r\n return response\r\n },\r\n handleClick: function($itemElement, e) {\r\n return this._eventHandler(\"handleClick\", $itemElement, e)\r\n },\r\n handleKeyboardEvents: function(currentFocusedIndex, moveFocusUp) {\r\n return this._eventHandler(\"handleKeyboardEvents\", currentFocusedIndex, moveFocusUp)\r\n },\r\n handleEnterPressing: function(e) {\r\n return this._eventHandler(\"handleEnterPressing\", e)\r\n },\r\n contextMenuHandlerExists: function() {\r\n return this._handlerExists(\"handleContextMenu\")\r\n },\r\n handleContextMenu: function($itemElement, e) {\r\n return this._eventHandler(\"handleContextMenu\", $itemElement, e)\r\n },\r\n getExcludedItemSelectors: function() {\r\n var excludedSelectors = [];\r\n this._applyDecorators(DECORATOR_GET_EXCLUDED_SELECTORS_METHOD, excludedSelectors);\r\n return excludedSelectors.join(\",\")\r\n }\r\n});\r\nexport default EditProvider;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isTouchEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport GroupedEditStrategy from \"./ui.list.edit.strategy.grouped\";\r\nimport localizationMessage from \"../../localization/message\";\r\nimport EditProvider from \"./ui.list.edit.provider\";\r\nimport {\r\n ListBase\r\n} from \"./ui.list.base\";\r\nvar LIST_ITEM_SELECTED_CLASS = \"dx-list-item-selected\";\r\nvar LIST_ITEM_RESPONSE_WAIT_CLASS = \"dx-list-item-response-wait\";\r\nvar ListEdit = ListBase.inherit({\r\n _supportedKeys() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var moveFocusedItem = (e, moveUp) => {\r\n var editStrategy = this._editStrategy;\r\n var focusedElement = this.option(\"focusedElement\");\r\n var focusedItemIndex = editStrategy.getNormalizedIndex(focusedElement);\r\n var isLastIndexFocused = focusedItemIndex === this._getLastItemIndex();\r\n if (isLastIndexFocused && this._dataController.isLoading()) {\r\n return\r\n }\r\n if (e.shiftKey && that.option(\"itemDragging.allowReordering\")) {\r\n var nextItemIndex = focusedItemIndex + (moveUp ? -1 : 1);\r\n var $nextItem = editStrategy.getItemElement(nextItemIndex);\r\n this.reorderItem(focusedElement, $nextItem);\r\n this.scrollToItem(focusedElement);\r\n e.preventDefault()\r\n } else {\r\n var editProvider = this._editProvider;\r\n var isInternalMoving = editProvider.handleKeyboardEvents(focusedItemIndex, moveUp);\r\n if (!isInternalMoving) {\r\n moveUp ? parent.upArrow(e) : parent.downArrow(e)\r\n }\r\n }\r\n };\r\n return extend({}, parent, {\r\n del: e => {\r\n if (that.option(\"allowItemDeleting\")) {\r\n e.preventDefault();\r\n that.deleteItem(that.option(\"focusedElement\"))\r\n }\r\n },\r\n upArrow: e => moveFocusedItem(e, true),\r\n downArrow: e => moveFocusedItem(e),\r\n enter: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.enter.apply(this, arguments)\r\n }\r\n },\r\n space: function(e) {\r\n if (!this._editProvider.handleEnterPressing(e)) {\r\n parent.space.apply(this, arguments)\r\n }\r\n }\r\n })\r\n },\r\n _updateSelection() {\r\n this._editProvider.afterItemsRendered();\r\n this.callBase()\r\n },\r\n _getLastItemIndex() {\r\n return this._itemElements().length - 1\r\n },\r\n _refreshItemElements() {\r\n this.callBase();\r\n var excludedSelectors = this._editProvider.getExcludedItemSelectors();\r\n if (excludedSelectors.length) {\r\n this._itemElementsCache = this._itemElementsCache.not(excludedSelectors)\r\n }\r\n },\r\n _isItemStrictEquals: function(item1, item2) {\r\n var privateKey = item1 && item1.__dx_key__;\r\n if (privateKey && !this.key() && this._selection.isItemSelected(privateKey)) {\r\n return false\r\n }\r\n return this.callBase(item1, item2)\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n showSelectionControls: false,\r\n selectionMode: \"none\",\r\n selectAllMode: \"page\",\r\n onSelectAllValueChanged: null,\r\n selectAllText: localizationMessage.format(\"dxList-selectAll\"),\r\n menuItems: [],\r\n menuMode: \"context\",\r\n allowItemDeleting: false,\r\n itemDeleteMode: \"static\",\r\n itemDragging: {}\r\n })\r\n },\r\n _defaultOptionsRules() {\r\n return this.callBase().concat([{\r\n device: _device => \"ios\" === _device.platform,\r\n options: {\r\n menuMode: \"slide\",\r\n itemDeleteMode: \"slideItem\"\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n itemDeleteMode: \"swipe\"\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initEditProvider()\r\n },\r\n _initDataSource() {\r\n this.callBase();\r\n if (!this._isPageSelectAll()) {\r\n this._dataSource && this._dataSource.requireTotalCount(true)\r\n }\r\n },\r\n _isPageSelectAll() {\r\n return \"page\" === this.option(\"selectAllMode\")\r\n },\r\n _initEditProvider() {\r\n this._editProvider = new EditProvider(this)\r\n },\r\n _disposeEditProvider() {\r\n if (this._editProvider) {\r\n this._editProvider.dispose()\r\n }\r\n },\r\n _refreshEditProvider() {\r\n this._disposeEditProvider();\r\n this._initEditProvider()\r\n },\r\n _initEditStrategy() {\r\n if (this.option(\"grouped\")) {\r\n this._editStrategy = new GroupedEditStrategy(this)\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _initMarkup() {\r\n this._refreshEditProvider();\r\n this.callBase()\r\n },\r\n _renderItems() {\r\n this.callBase(...arguments);\r\n this._editProvider.afterItemsRendered()\r\n },\r\n _selectedItemClass: () => LIST_ITEM_SELECTED_CLASS,\r\n _itemResponseWaitClass: () => LIST_ITEM_RESPONSE_WAIT_CLASS,\r\n _itemClickHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = this._editProvider.handleClick($itemElement, e);\r\n if (handledByEditProvider) {\r\n return\r\n }\r\n this._saveSelectionChangeEvent(e);\r\n this.callBase(...arguments)\r\n },\r\n _shouldFireContextMenuEvent() {\r\n return this.callBase(...arguments) || this._editProvider.contextMenuHandlerExists()\r\n },\r\n _itemHoldHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = isTouchEvent(e) && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.handledByEditProvider = true;\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _getItemContainer: function(changeData) {\r\n if (this.option(\"grouped\")) {\r\n var _this$_editStrategy$g;\r\n var groupIndex = null === (_this$_editStrategy$g = this._editStrategy.getIndexByItemData(changeData)) || void 0 === _this$_editStrategy$g ? void 0 : _this$_editStrategy$g.group;\r\n return this._getGroupContainerByIndex(groupIndex)\r\n } else {\r\n return this.callBase(changeData)\r\n }\r\n },\r\n _itemContextMenuHandler(e) {\r\n var $itemElement = $(e.currentTarget);\r\n if ($itemElement.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n return\r\n }\r\n var handledByEditProvider = !e.handledByEditProvider && this._editProvider.handleContextMenu($itemElement, e);\r\n if (handledByEditProvider) {\r\n e.preventDefault();\r\n return\r\n }\r\n this.callBase(...arguments)\r\n },\r\n _postprocessRenderItem(args) {\r\n this.callBase(...arguments);\r\n this._editProvider.modifyItemElement(args)\r\n },\r\n _clean() {\r\n this._disposeEditProvider();\r\n this.callBase()\r\n },\r\n focusListItem(index) {\r\n var $item = this._editStrategy.getItemElement(index);\r\n this.option(\"focusedElement\", $item);\r\n this.focus();\r\n this.scrollToItem(this.option(\"focusedElement\"))\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"selectAllMode\":\r\n this._initDataSource();\r\n this._dataController.pageIndex(0);\r\n this._dataController.load();\r\n break;\r\n case \"grouped\":\r\n this._clearSelectedItems();\r\n delete this._renderingGroupIndex;\r\n this._initEditStrategy();\r\n this.callBase(args);\r\n break;\r\n case \"showSelectionControls\":\r\n case \"menuItems\":\r\n case \"menuMode\":\r\n case \"allowItemDeleting\":\r\n case \"itemDeleteMode\":\r\n case \"itemDragging\":\r\n case \"selectAllText\":\r\n this._invalidate();\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n selectAll() {\r\n return this._selection.selectAll(this._isPageSelectAll())\r\n },\r\n unselectAll() {\r\n return this._selection.deselectAll(this._isPageSelectAll())\r\n },\r\n isSelectAll() {\r\n return this._selection.getSelectAllState(this._isPageSelectAll())\r\n },\r\n getFlatIndexByItemElement(itemElement) {\r\n return this._itemElements().index(itemElement)\r\n },\r\n getItemElementByFlatIndex(flatIndex) {\r\n var $itemElements = this._itemElements();\r\n if (flatIndex < 0 || flatIndex >= $itemElements.length) {\r\n return $()\r\n }\r\n return $itemElements.eq(flatIndex)\r\n },\r\n getItemByIndex(index) {\r\n return this._editStrategy.getItemDataByIndex(index)\r\n }\r\n});\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/ui/list/ui.list.edit.search.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./ui.list.edit\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nvar ListSearch = ListEdit.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"dx-list-\" + className\r\n },\r\n _getCombinedFilter: function() {\r\n var dataController = this._dataController;\r\n var storeLoadOptions = {\r\n filter: dataController.filter()\r\n };\r\n dataController.addSearchFilter(storeLoadOptions);\r\n var filter = storeLoadOptions.filter;\r\n return filter\r\n },\r\n _initDataSource: function() {\r\n var value = this.option(\"searchValue\");\r\n var expr = this.option(\"searchExpr\");\r\n var mode = this.option(\"searchMode\");\r\n this.callBase();\r\n var dataController = this._dataController;\r\n value && value.length && dataController.searchValue(value);\r\n mode.length && dataController.searchOperation(searchBoxMixin.getOperationBySearchMode(mode));\r\n expr && dataController.searchExpr(expr)\r\n }\r\n});\r\nexport default ListSearch;\r\n","/**\r\n * DevExtreme (esm/ui/list_light.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ListEdit from \"./list/ui.list.edit.search\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nregisterComponent(\"dxList\", ListEdit);\r\nexport default ListEdit;\r\n","/**\r\n * DevExtreme (esm/ui/load_indicator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n getNavigator\r\n} from \"../core/utils/window\";\r\nvar navigator = getNavigator();\r\nimport {\r\n animation\r\n} from \"../core/utils/support\";\r\nimport {\r\n current,\r\n isMaterial,\r\n isGeneric\r\n} from \"./themes\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Widget from \"./widget/ui.widget\";\r\nvar LOADINDICATOR_CLASS = \"dx-loadindicator\";\r\nvar LOADINDICATOR_WRAPPER_CLASS = \"dx-loadindicator-wrapper\";\r\nvar LOADINDICATOR_CONTENT_CLASS = \"dx-loadindicator-content\";\r\nvar LOADINDICATOR_ICON_CLASS = \"dx-loadindicator-icon\";\r\nvar LOADINDICATOR_SEGMENT_CLASS = \"dx-loadindicator-segment\";\r\nvar LOADINDICATOR_SEGMENT_INNER_CLASS = \"dx-loadindicator-segment-inner\";\r\nvar LOADINDICATOR_IMAGE_CLASS = \"dx-loadindicator-image\";\r\nvar LoadIndicator = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n indicatorSrc: \"\",\r\n activeStateEnabled: false,\r\n hoverStateEnabled: false,\r\n _animatingSegmentCount: 1,\r\n _animatingSegmentInner: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.real();\r\n var obsoleteAndroid = \"android\" === realDevice.platform && !/chrome/i.test(navigator.userAgent);\r\n return obsoleteAndroid\r\n },\r\n options: {\r\n viaImage: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n _animatingSegmentCount: 2,\r\n _animatingSegmentInner: true\r\n }\r\n }, {\r\n device: function() {\r\n return isGeneric(themeName)\r\n },\r\n options: {\r\n _animatingSegmentCount: 7\r\n }\r\n }])\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADINDICATOR_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderWrapper();\r\n this._renderIndicatorContent();\r\n this._renderMarkup()\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"<div>\").addClass(LOADINDICATOR_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _renderIndicatorContent: function() {\r\n this._$content = $(\"<div>\").addClass(LOADINDICATOR_CONTENT_CLASS);\r\n this._$wrapper.append(this._$content)\r\n },\r\n _renderMarkup: function() {\r\n if (animation() && !this.option(\"viaImage\") && !this.option(\"indicatorSrc\")) {\r\n this._renderMarkupForAnimation()\r\n } else {\r\n this._renderMarkupForImage()\r\n }\r\n },\r\n _renderMarkupForAnimation: function() {\r\n var animatingSegmentInner = this.option(\"_animatingSegmentInner\");\r\n this._$indicator = $(\"<div>\").addClass(LOADINDICATOR_ICON_CLASS);\r\n this._$content.append(this._$indicator);\r\n for (var i = this.option(\"_animatingSegmentCount\"); i >= 0; --i) {\r\n var $segment = $(\"<div>\").addClass(LOADINDICATOR_SEGMENT_CLASS).addClass(LOADINDICATOR_SEGMENT_CLASS + i);\r\n if (animatingSegmentInner) {\r\n $segment.append($(\"<div>\").addClass(LOADINDICATOR_SEGMENT_INNER_CLASS))\r\n }\r\n this._$indicator.append($segment)\r\n }\r\n },\r\n _renderMarkupForImage: function() {\r\n var indicatorSrc = this.option(\"indicatorSrc\");\r\n this._$wrapper.addClass(LOADINDICATOR_IMAGE_CLASS);\r\n if (indicatorSrc) {\r\n this._$wrapper.css(\"backgroundImage\", \"url(\" + indicatorSrc + \")\")\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._updateContentSizeForAnimation()\r\n },\r\n _updateContentSizeForAnimation: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n var width = this.option(\"width\");\r\n var height = this.option(\"height\");\r\n if (width || height) {\r\n width = getWidth(this.$element());\r\n height = getHeight(this.$element());\r\n var minDimension = Math.min(height, width);\r\n this._$wrapper.css({\r\n height: minDimension,\r\n width: minDimension,\r\n fontSize: minDimension\r\n })\r\n }\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeMarkupForAnimation();\r\n this._removeMarkupForImage()\r\n },\r\n _removeMarkupForAnimation: function() {\r\n if (!this._$indicator) {\r\n return\r\n }\r\n this._$indicator.remove();\r\n delete this._$indicator\r\n },\r\n _removeMarkupForImage: function() {\r\n this._$wrapper.css(\"backgroundImage\", \"none\")\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"_animatingSegmentCount\":\r\n case \"_animatingSegmentInner\":\r\n case \"indicatorSrc\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxLoadIndicator\", LoadIndicator);\r\nexport default LoadIndicator;\r\n","/**\r\n * DevExtreme (esm/ui/load_panel.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n noop\r\n} from \"../core/utils/common\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport LoadIndicator from \"./load_indicator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isMaterial\r\n} from \"./themes\";\r\nvar LOADPANEL_CLASS = \"dx-loadpanel\";\r\nvar LOADPANEL_WRAPPER_CLASS = \"dx-loadpanel-wrapper\";\r\nvar LOADPANEL_INDICATOR_CLASS = \"dx-loadpanel-indicator\";\r\nvar LOADPANEL_MESSAGE_CLASS = \"dx-loadpanel-message\";\r\nvar LOADPANEL_CONTENT_CLASS = \"dx-loadpanel-content\";\r\nvar LOADPANEL_CONTENT_WRAPPER_CLASS = \"dx-loadpanel-content-wrapper\";\r\nvar LOADPANEL_PANE_HIDDEN_CLASS = \"dx-loadpanel-pane-hidden\";\r\nvar LoadPanel = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n escape: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n message: messageLocalization.format(\"Loading\"),\r\n width: 222,\r\n height: 90,\r\n animation: null,\r\n showIndicator: true,\r\n indicatorSrc: \"\",\r\n showPane: true,\r\n delay: 0,\r\n templatesRenderAsynchronously: false,\r\n hideTopOverlayHandler: null,\r\n focusStateEnabled: false,\r\n propagateOutsideClick: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n shadingColor: \"transparent\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n message: \"\",\r\n width: 60,\r\n height: 60,\r\n maxHeight: 60,\r\n maxWidth: 60\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(LOADPANEL_CLASS);\r\n this.$wrapper().addClass(LOADPANEL_WRAPPER_CLASS)\r\n },\r\n _renderContentImpl: function() {\r\n this.callBase();\r\n this.$content().addClass(LOADPANEL_CONTENT_CLASS);\r\n this._$loadPanelContentWrapper = $(\"<div>\").addClass(LOADPANEL_CONTENT_WRAPPER_CLASS);\r\n this._$loadPanelContentWrapper.appendTo(this.$content());\r\n this._togglePaneVisible();\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage()\r\n },\r\n _show: function() {\r\n var delay = this.option(\"delay\");\r\n if (!delay) {\r\n return this.callBase()\r\n }\r\n var deferred = new Deferred;\r\n var callBase = this.callBase.bind(this);\r\n this._clearShowTimeout();\r\n this._showTimeout = setTimeout((function() {\r\n callBase().done((function() {\r\n deferred.resolve()\r\n }))\r\n }), delay);\r\n return deferred.promise()\r\n },\r\n _hide: function() {\r\n this._clearShowTimeout();\r\n return this.callBase()\r\n },\r\n _clearShowTimeout: function() {\r\n clearTimeout(this._showTimeout)\r\n },\r\n _renderMessage: function() {\r\n if (!this._$loadPanelContentWrapper) {\r\n return\r\n }\r\n var message = this.option(\"message\");\r\n if (!message) {\r\n return\r\n }\r\n var $message = $(\"<div>\").addClass(LOADPANEL_MESSAGE_CLASS).text(message);\r\n this._$loadPanelContentWrapper.append($message)\r\n },\r\n _renderLoadIndicator: function() {\r\n if (!this._$loadPanelContentWrapper || !this.option(\"showIndicator\")) {\r\n return\r\n }\r\n if (!this._$indicator) {\r\n this._$indicator = $(\"<div>\").addClass(LOADPANEL_INDICATOR_CLASS).appendTo(this._$loadPanelContentWrapper)\r\n }\r\n this._createComponent(this._$indicator, LoadIndicator, {\r\n indicatorSrc: this.option(\"indicatorSrc\")\r\n })\r\n },\r\n _cleanPreviousContent: function() {\r\n this.$content().find(\".\" + LOADPANEL_MESSAGE_CLASS).remove();\r\n this.$content().find(\".\" + LOADPANEL_INDICATOR_CLASS).remove();\r\n delete this._$indicator\r\n },\r\n _togglePaneVisible: function() {\r\n this.$content().toggleClass(LOADPANEL_PANE_HIDDEN_CLASS, !this.option(\"showPane\"))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"delay\":\r\n break;\r\n case \"message\":\r\n case \"showIndicator\":\r\n this._cleanPreviousContent();\r\n this._renderLoadIndicator();\r\n this._renderMessage();\r\n break;\r\n case \"showPane\":\r\n this._togglePaneVisible();\r\n break;\r\n case \"indicatorSrc\":\r\n this._renderLoadIndicator();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _dispose: function() {\r\n this._clearShowTimeout();\r\n this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxLoadPanel\", LoadPanel);\r\nexport default LoadPanel;\r\n","/**\r\n * DevExtreme (esm/ui/toast/ui.toast.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterial\r\n} from \"../themes\";\r\nvar ready = readyCallbacks.add;\r\nvar TOAST_CLASS = \"dx-toast\";\r\nvar TOAST_CLASS_PREFIX = TOAST_CLASS + \"-\";\r\nvar TOAST_WRAPPER_CLASS = TOAST_CLASS_PREFIX + \"wrapper\";\r\nvar TOAST_CONTENT_CLASS = TOAST_CLASS_PREFIX + \"content\";\r\nvar TOAST_MESSAGE_CLASS = TOAST_CLASS_PREFIX + \"message\";\r\nvar TOAST_ICON_CLASS = TOAST_CLASS_PREFIX + \"icon\";\r\nvar WIDGET_NAME = \"dxToast\";\r\nvar toastTypes = [\"info\", \"warning\", \"error\", \"success\"];\r\nvar TOAST_STACK = [];\r\nvar FIRST_Z_INDEX_OFFSET = 8e3;\r\nvar visibleToastInstance = null;\r\nvar POSITION_ALIASES = {\r\n top: {\r\n my: \"top\",\r\n at: \"top\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n bottom: {\r\n my: \"bottom\",\r\n at: \"bottom\",\r\n of: null,\r\n offset: \"0 -20\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n right: {\r\n my: \"center right\",\r\n at: \"center right\",\r\n of: null,\r\n offset: \"0 0\"\r\n },\r\n left: {\r\n my: \"center left\",\r\n at: \"center left\",\r\n of: null,\r\n offset: \"0 0\"\r\n }\r\n};\r\nvar DEFAULT_BOUNDARY_OFFSET = {\r\n h: 0,\r\n v: 0\r\n};\r\nready((function() {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), pointerEvents.down, (function(e) {\r\n for (var i = TOAST_STACK.length - 1; i >= 0; i--) {\r\n if (!TOAST_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n }))\r\n}));\r\nvar Toast = Overlay.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n message: \"\",\r\n type: \"info\",\r\n displayTime: 2e3,\r\n position: \"bottom center\",\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n shading: false,\r\n height: \"auto\",\r\n hideTopOverlayHandler: null,\r\n closeOnSwipe: true,\r\n closeOnClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n hideOnOutsideClick: true,\r\n width: \"auto\",\r\n position: {\r\n at: \"bottom left\",\r\n my: \"bottom left\",\r\n offset: \"20 -20\"\r\n },\r\n animation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 200,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 200,\r\n to: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\",\r\n of: window\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }, {\r\n device: function(_device) {\r\n var isPhone = \"phone\" === _device.deviceType;\r\n var isAndroid = \"android\" === _device.platform;\r\n return isPhone && isAndroid\r\n },\r\n options: {\r\n width: \"100vw\",\r\n position: {\r\n at: \"bottom center\",\r\n my: \"bottom center\",\r\n offset: \"0 0\"\r\n }\r\n }\r\n }, {\r\n device: function(_device2) {\r\n return \"phone\" === _device2.deviceType\r\n },\r\n options: {\r\n width: \"100vw\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n minWidth: 344,\r\n maxWidth: 568,\r\n displayTime: 4e3\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._posStringToObject()\r\n },\r\n _renderContentImpl: function() {\r\n if (this.option(\"message\")) {\r\n this._message = $(\"<div>\").addClass(TOAST_MESSAGE_CLASS).text(this.option(\"message\")).appendTo(this.$content())\r\n }\r\n this.setAria(\"role\", \"alert\", this._message);\r\n if (toastTypes.includes(this.option(\"type\").toLowerCase())) {\r\n this.$content().prepend($(\"<div>\").addClass(TOAST_ICON_CLASS))\r\n }\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(TOAST_CLASS);\r\n this.$wrapper().addClass(TOAST_WRAPPER_CLASS);\r\n this.$content().addClass(TOAST_CLASS_PREFIX + String(this.option(\"type\")).toLowerCase());\r\n this.$content().addClass(TOAST_CONTENT_CLASS);\r\n this._toggleCloseEvents(\"Swipe\");\r\n this._toggleCloseEvents(\"Click\")\r\n },\r\n _renderScrollTerminator: noop,\r\n _toggleCloseEvents: function(event) {\r\n var dxEvent = \"dx\" + event.toLowerCase();\r\n eventsEngine.off(this.$content(), dxEvent);\r\n this.option(\"closeOn\" + event) && eventsEngine.on(this.$content(), dxEvent, this.hide.bind(this))\r\n },\r\n _posStringToObject: function() {\r\n if (!isString(this.option(\"position\"))) {\r\n return\r\n }\r\n var verticalPosition = this.option(\"position\").split(\" \")[0];\r\n var horizontalPosition = this.option(\"position\").split(\" \")[1];\r\n this.option(\"position\", extend({\r\n boundaryOffset: DEFAULT_BOUNDARY_OFFSET\r\n }, POSITION_ALIASES[verticalPosition]));\r\n switch (horizontalPosition) {\r\n case \"center\":\r\n case \"left\":\r\n case \"right\":\r\n this.option(\"position\").at += \" \" + horizontalPosition;\r\n this.option(\"position\").my += \" \" + horizontalPosition\r\n }\r\n },\r\n _show: function() {\r\n if (visibleToastInstance && visibleToastInstance !== this) {\r\n clearTimeout(visibleToastInstance._hideTimeout);\r\n visibleToastInstance.hide()\r\n }\r\n visibleToastInstance = this;\r\n return this.callBase.apply(this, arguments).done(function() {\r\n clearTimeout(this._hideTimeout);\r\n this._hideTimeout = setTimeout(this.hide.bind(this), this.option(\"displayTime\"))\r\n }.bind(this))\r\n },\r\n _hide: function() {\r\n visibleToastInstance = null;\r\n return this.callBase.apply(this, arguments)\r\n },\r\n _overlayStack: function() {\r\n return TOAST_STACK\r\n },\r\n _zIndexInitValue: function() {\r\n return this.callBase() + FIRST_Z_INDEX_OFFSET\r\n },\r\n _dispose: function() {\r\n clearTimeout(this._hideTimeout);\r\n visibleToastInstance = null;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"type\":\r\n this.$content().removeClass(TOAST_CLASS_PREFIX + args.previousValue);\r\n this.$content().addClass(TOAST_CLASS_PREFIX + String(args.value).toLowerCase());\r\n break;\r\n case \"message\":\r\n if (this._message) {\r\n this._message.text(args.value)\r\n }\r\n break;\r\n case \"closeOnSwipe\":\r\n this._toggleCloseEvents(\"Swipe\");\r\n break;\r\n case \"closeOnClick\":\r\n this._toggleCloseEvents(\"Click\");\r\n break;\r\n case \"displayTime\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(WIDGET_NAME, Toast);\r\nexport default Toast;\r\n","/**\r\n * DevExtreme (esm/ui/toast.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Toast from \"./toast/ui.toast\";\r\nexport default Toast;\r\n","/**\r\n * DevExtreme (esm/ui/notify.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport Action from \"../core/action\";\r\nimport {\r\n value as viewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject,\r\n isString\r\n} from \"../core/utils/type\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport Toast from \"./toast\";\r\nvar window = getWindow();\r\nvar $notify = null;\r\nvar $containers = {};\r\n\r\nfunction notify(message, typeOrStack, displayTime) {\r\n var options = isPlainObject(message) ? message : {\r\n message: message\r\n };\r\n var stack = isPlainObject(typeOrStack) ? typeOrStack : void 0;\r\n var type = isPlainObject(typeOrStack) ? void 0 : typeOrStack;\r\n var {\r\n onHidden: userHiddenAction\r\n } = options;\r\n if (null !== stack && void 0 !== stack && stack.position) {\r\n var {\r\n position: position\r\n } = stack;\r\n var direction = stack.direction || getDefaultDirection(position);\r\n var containerKey = isString(position) ? position : \"\".concat(position.top, \"-\").concat(position.left, \"-\").concat(position.bottom, \"-\").concat(position.right);\r\n var {\r\n onShowing: userShowingAction\r\n } = options;\r\n var $container = getStackContainer(containerKey);\r\n setContainerClasses($container, direction);\r\n extend(options, {\r\n container: $container,\r\n onShowing: function(args) {\r\n setContainerStyles($container, direction, position);\r\n new Action(userShowingAction, {\r\n context: args.model\r\n }).execute(arguments)\r\n }\r\n })\r\n }\r\n extend(options, {\r\n type: type,\r\n displayTime: displayTime,\r\n onHidden: function(args) {\r\n $(args.element).remove();\r\n new Action(userHiddenAction, {\r\n context: args.model\r\n }).execute(arguments)\r\n }\r\n });\r\n $notify = $(\"<div>\").appendTo(viewPort());\r\n new Toast($notify, options).show()\r\n}\r\nvar getDefaultDirection = position => isString(position) && position.includes(\"top\") ? \"down-push\" : \"up-push\";\r\nvar createStackContainer = key => {\r\n var $container = $(\"<div>\").appendTo(viewPort());\r\n $containers[key] = $container;\r\n return $container\r\n};\r\nvar getStackContainer = key => {\r\n var $container = $containers[key];\r\n return $container ? $container : createStackContainer(key)\r\n};\r\nvar setContainerClasses = (container, direction) => {\r\n var containerClasses = \"dx-toast-stack dx-toast-stack-\".concat(direction, \"-direction\");\r\n container.removeAttr(\"class\").addClass(containerClasses)\r\n};\r\nvar setContainerStyles = (container, direction, position) => {\r\n var {\r\n offsetWidth: toastWidth,\r\n offsetHeight: toastHeight\r\n } = container.children().first().get(0);\r\n var dimensions = {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: window.innerHeight,\r\n windowWidth: window.innerWidth\r\n };\r\n var coordinates = isString(position) ? getCoordinatesByAlias(position, dimensions) : position;\r\n var styles = getPositionStylesByCoordinates(direction, coordinates, dimensions);\r\n container.css(styles)\r\n};\r\nvar getCoordinatesByAlias = (alias, _ref) => {\r\n var {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: windowHeight,\r\n windowWidth: windowWidth\r\n } = _ref;\r\n switch (alias) {\r\n case \"top left\":\r\n return {\r\n top: 10, left: 10\r\n };\r\n case \"top right\":\r\n return {\r\n top: 10, right: 10\r\n };\r\n case \"bottom left\":\r\n return {\r\n bottom: 10, left: 10\r\n };\r\n case \"bottom right\":\r\n return {\r\n bottom: 10, right: 10\r\n };\r\n case \"top center\":\r\n return {\r\n top: 10, left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n };\r\n case \"left center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), left: 10\r\n };\r\n case \"right center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), right: 10\r\n };\r\n case \"center\":\r\n return {\r\n top: Math.round(windowHeight / 2 - toastHeight / 2), left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n };\r\n case \"bottom center\":\r\n default:\r\n return {\r\n bottom: 10, left: Math.round(windowWidth / 2 - toastWidth / 2)\r\n }\r\n }\r\n};\r\nvar getPositionStylesByCoordinates = (direction, coordinates, dimensions) => {\r\n var _coordinates$bottom, _coordinates$left, _coordinates$right, _coordinates$top, _coordinates$left2, _coordinates$right2, _coordinates$right3, _coordinates$top2, _coordinates$bottom2, _coordinates$left3, _coordinates$top3, _coordinates$bottom3;\r\n var {\r\n toastWidth: toastWidth,\r\n toastHeight: toastHeight,\r\n windowHeight: windowHeight,\r\n windowWidth: windowWidth\r\n } = dimensions;\r\n switch (direction.replace(/-push|-stack/g, \"\")) {\r\n case \"up\":\r\n return {\r\n bottom: null !== (_coordinates$bottom = coordinates.bottom) && void 0 !== _coordinates$bottom ? _coordinates$bottom : windowHeight - toastHeight - coordinates.top, top: \"\", left: null !== (_coordinates$left = coordinates.left) && void 0 !== _coordinates$left ? _coordinates$left : \"\", right: null !== (_coordinates$right = coordinates.right) && void 0 !== _coordinates$right ? _coordinates$right : \"\"\r\n };\r\n case \"down\":\r\n return {\r\n top: null !== (_coordinates$top = coordinates.top) && void 0 !== _coordinates$top ? _coordinates$top : windowHeight - toastHeight - coordinates.bottom, bottom: \"\", left: null !== (_coordinates$left2 = coordinates.left) && void 0 !== _coordinates$left2 ? _coordinates$left2 : \"\", right: null !== (_coordinates$right2 = coordinates.right) && void 0 !== _coordinates$right2 ? _coordinates$right2 : \"\"\r\n };\r\n case \"left\":\r\n return {\r\n right: null !== (_coordinates$right3 = coordinates.right) && void 0 !== _coordinates$right3 ? _coordinates$right3 : windowWidth - toastWidth - coordinates.left, left: \"\", top: null !== (_coordinates$top2 = coordinates.top) && void 0 !== _coordinates$top2 ? _coordinates$top2 : \"\", bottom: null !== (_coordinates$bottom2 = coordinates.bottom) && void 0 !== _coordinates$bottom2 ? _coordinates$bottom2 : \"\"\r\n };\r\n case \"right\":\r\n return {\r\n left: null !== (_coordinates$left3 = coordinates.left) && void 0 !== _coordinates$left3 ? _coordinates$left3 : windowWidth - toastWidth - coordinates.right, right: \"\", top: null !== (_coordinates$top3 = coordinates.top) && void 0 !== _coordinates$top3 ? _coordinates$top3 : \"\", bottom: null !== (_coordinates$bottom3 = coordinates.bottom) && void 0 !== _coordinates$bottom3 ? _coordinates$bottom3 : \"\"\r\n }\r\n }\r\n};\r\nexport default notify;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n adjust\r\n} from \"../../core/utils/math\";\r\nvar getRealSeparatorIndex = function(str) {\r\n var quoteBalance = 0;\r\n var separatorCount = 0;\r\n for (var i = 0; i < str.length; ++i) {\r\n if (\"'\" === str[i]) {\r\n quoteBalance++\r\n }\r\n if (\".\" === str[i]) {\r\n ++separatorCount;\r\n if (quoteBalance % 2 === 0) {\r\n return {\r\n occurrence: separatorCount,\r\n index: i\r\n }\r\n }\r\n }\r\n }\r\n return {\r\n occurrence: 1,\r\n index: -1\r\n }\r\n};\r\nvar getNthOccurrence = function(str, c, n) {\r\n var i = -1;\r\n while (n-- && i++ < str.length) {\r\n i = str.indexOf(c, i)\r\n }\r\n return i\r\n};\r\nvar splitByIndex = function(str, index) {\r\n if (-1 === index) {\r\n return [str]\r\n }\r\n return [str.slice(0, index), str.slice(index + 1)]\r\n};\r\nvar adjustPercentValue = function(rawValue, precision) {\r\n return rawValue && adjust(rawValue / 100, precision)\r\n};\r\nexport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.caret.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex\r\n} from \"./utils\";\r\nexport var getCaretBoundaries = function(text, format) {\r\n if (\"string\" === typeof format) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n format = signParts[sign < 0 ? 1 : 0];\r\n format = (str = format, str.replace(/'([^']*)'/g, str => str.split(\"\").map(() => \" \").join(\"\").substr(2)));\r\n var prefixStubLength = /^[^#0.,]*/.exec(format)[0].length;\r\n var postfixStubLength = /[^#0.,]*$/.exec(format)[0].length;\r\n return {\r\n start: prefixStubLength,\r\n end: text.length - postfixStubLength\r\n }\r\n } else {\r\n return {\r\n start: 0,\r\n end: text.length\r\n }\r\n }\r\n var str\r\n};\r\nvar _getDigitCountBeforeIndex = function(index, text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var regExp = new RegExp(\"[^0-9\" + escapeRegExp(decimalSeparator) + \"]\", \"g\");\r\n var textBeforePosition = text.slice(0, index);\r\n return textBeforePosition.replace(regExp, \"\").length\r\n};\r\nvar _reverseText = function(text) {\r\n return text.split(\"\").reverse().join(\"\")\r\n};\r\nvar _getDigitPositionByIndex = function(digitIndex, text) {\r\n if (!digitIndex) {\r\n return -1\r\n }\r\n var regExp = /[0-9]/g;\r\n var counter = 1;\r\n var index = null;\r\n var result = regExp.exec(text);\r\n while (result) {\r\n index = result.index;\r\n if (counter >= digitIndex) {\r\n return index\r\n }\r\n counter++;\r\n result = regExp.exec(text)\r\n }\r\n return null === index ? text.length : index\r\n};\r\nvar _trimNonNumericCharsFromEnd = function(text) {\r\n return text.replace(/[^0-9e]+$/, \"\")\r\n};\r\nexport var getCaretWithOffset = function(caret, offset) {\r\n if (void 0 === caret.start) {\r\n caret = {\r\n start: caret,\r\n end: caret\r\n }\r\n }\r\n return {\r\n start: caret.start + offset,\r\n end: caret.end + offset\r\n }\r\n};\r\nexport var getCaretAfterFormat = function(text, formatted, caret, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var point = number.getDecimalSeparator();\r\n var isSeparatorBasedText = isSeparatorBasedString(text);\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(format).occurrence;\r\n var pointPosition = isSeparatorBasedText ? 0 : getNthOccurrence(text, point, realSeparatorOccurrenceIndex);\r\n var newPointPosition = getNthOccurrence(formatted, point, realSeparatorOccurrenceIndex);\r\n var textParts = splitByIndex(text, pointPosition);\r\n var formattedParts = splitByIndex(formatted, newPointPosition);\r\n var isCaretOnFloat = -1 !== pointPosition && caret.start > pointPosition;\r\n if (isCaretOnFloat) {\r\n var relativeIndex = caret.start - pointPosition - 1;\r\n var digitsBefore = _getDigitCountBeforeIndex(relativeIndex, textParts[1]);\r\n var newPosition = formattedParts[1] ? newPointPosition + 1 + _getDigitPositionByIndex(digitsBefore, formattedParts[1]) + 1 : formatted.length;\r\n return getCaretInBoundaries(newPosition, formatted, format)\r\n } else {\r\n var formattedIntPart = _trimNonNumericCharsFromEnd(formattedParts[0]);\r\n var positionFromEnd = textParts[0].length - caret.start;\r\n var digitsFromEnd = _getDigitCountBeforeIndex(positionFromEnd, _reverseText(textParts[0]));\r\n var newPositionFromEnd = _getDigitPositionByIndex(digitsFromEnd, _reverseText(formattedIntPart));\r\n var newPositionFromBegin = formattedIntPart.length - (newPositionFromEnd + 1);\r\n return getCaretInBoundaries(newPositionFromBegin, formatted, format)\r\n }\r\n};\r\n\r\nfunction isSeparatorBasedString(text) {\r\n return 1 === text.length && !!text.match(/^[,.][0-9]*$/g)\r\n}\r\nexport var isCaretInBoundaries = function(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretInBoundaries(caret, text, format);\r\n return caret.start >= boundaries.start && caret.end <= boundaries.end\r\n};\r\nexport function getCaretInBoundaries(caret, text, format) {\r\n caret = getCaretWithOffset(caret, 0);\r\n var boundaries = getCaretBoundaries(text, format);\r\n var adjustedCaret = {\r\n start: fitIntoRange(caret.start, boundaries.start, boundaries.end),\r\n end: fitIntoRange(caret.end, boundaries.start, boundaries.end)\r\n };\r\n return adjustedCaret\r\n}\r\nexport var getCaretOffset = function(previousText, newText, format) {\r\n var previousBoundaries = getCaretBoundaries(previousText, format);\r\n var newBoundaries = getCaretBoundaries(newText, format);\r\n return newBoundaries.start - previousBoundaries.start\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spin.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n lock\r\n} from \"../../events/core/emitter.feedback\";\r\nimport holdEvent from \"../../events/hold\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_BUTTON_CLASS = \"dx-numberbox-spin-button\";\r\nvar SPIN_HOLD_DELAY = 100;\r\nvar NUMBER_BOX = \"dxNumberBox\";\r\nvar POINTERUP_EVENT_NAME = addNamespace(pointerEvents.up, NUMBER_BOX);\r\nvar POINTERCANCEL_EVENT_NAME = addNamespace(pointerEvents.cancel, NUMBER_BOX);\r\nvar SpinButton = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: \"up\",\r\n onChange: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n var direction = SPIN_CLASS + \"-\" + this.option(\"direction\");\r\n this.$element().addClass(SPIN_BUTTON_CLASS).addClass(direction);\r\n this._spinIcon = $(\"<div>\").addClass(direction + \"-icon\").appendTo(this.$element())\r\n },\r\n _render: function() {\r\n this.callBase();\r\n var eventName = addNamespace(pointerEvents.down, this.NAME);\r\n var $element = this.$element();\r\n eventsEngine.off($element, eventName);\r\n eventsEngine.on($element, eventName, this._spinDownHandler.bind(this));\r\n this._spinChangeHandler = this._createActionByOption(\"onChange\")\r\n },\r\n _spinDownHandler: function(e) {\r\n e.preventDefault();\r\n this._clearTimer();\r\n eventsEngine.on(this.$element(), holdEvent.name, function() {\r\n this._feedBackDeferred = new Deferred;\r\n lock(this._feedBackDeferred);\r\n this._spinChangeHandler({\r\n event: e\r\n });\r\n this._holdTimer = setInterval(this._spinChangeHandler, SPIN_HOLD_DELAY, {\r\n event: e\r\n })\r\n }.bind(this));\r\n var document = domAdapter.getDocument();\r\n eventsEngine.on(document, POINTERUP_EVENT_NAME, this._clearTimer.bind(this));\r\n eventsEngine.on(document, POINTERCANCEL_EVENT_NAME, this._clearTimer.bind(this));\r\n this._spinChangeHandler({\r\n event: e\r\n })\r\n },\r\n _dispose: function() {\r\n this._clearTimer();\r\n this.callBase()\r\n },\r\n _clearTimer: function() {\r\n eventsEngine.off(this.$element(), holdEvent.name);\r\n var document = domAdapter.getDocument();\r\n eventsEngine.off(document, POINTERUP_EVENT_NAME);\r\n eventsEngine.off(document, POINTERCANCEL_EVENT_NAME);\r\n if (this._feedBackDeferred) {\r\n this._feedBackDeferred.resolve()\r\n }\r\n if (this._holdTimer) {\r\n clearInterval(this._holdTimer)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onChange\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default SpinButton;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.spins.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"../text_box/texteditor_button_collection/button\";\r\nimport SpinButton from \"./number_box.spin\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar SPIN_CLASS = \"dx-numberbox-spin\";\r\nvar SPIN_CONTAINER_CLASS = \"dx-numberbox-spin-container\";\r\nvar SPIN_TOUCH_FRIENDLY_CLASS = \"dx-numberbox-spin-touch-friendly\";\r\nexport default class SpinButtons extends TextEditorButton {\r\n _attachEvents(instance, $spinContainer) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var eventName = addNamespace(pointer.down, editor.NAME);\r\n var $spinContainerChildren = $spinContainer.children();\r\n var pointerDownAction = editor._createAction(e => editor._spinButtonsPointerDownHandler(e));\r\n eventsEngine.off($spinContainer, eventName);\r\n eventsEngine.on($spinContainer, eventName, e => pointerDownAction({\r\n event: e\r\n }));\r\n SpinButton.getInstance($spinContainerChildren.eq(0)).option(\"onChange\", e => editor._spinUpChangeHandler(e));\r\n SpinButton.getInstance($spinContainerChildren.eq(1)).option(\"onChange\", e => editor._spinDownChangeHandler(e))\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $spinContainer = $(\"<div>\").addClass(SPIN_CONTAINER_CLASS);\r\n var $spinUp = $(\"<div>\").appendTo($spinContainer);\r\n var $spinDown = $(\"<div>\").appendTo($spinContainer);\r\n var options = this._getOptions();\r\n this._addToContainer($spinContainer);\r\n editor._createComponent($spinUp, SpinButton, extend({\r\n direction: \"up\"\r\n }, options));\r\n editor._createComponent($spinDown, SpinButton, extend({\r\n direction: \"down\"\r\n }, options));\r\n this._legacyRender(editor.$element(), this._isTouchFriendly(), options.visible);\r\n return {\r\n instance: $spinContainer,\r\n $element: $spinContainer\r\n }\r\n }\r\n _getOptions() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var visible = this._isVisible();\r\n var disabled = editor.option(\"disabled\");\r\n return {\r\n visible: visible,\r\n disabled: disabled\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return super._isVisible() && editor.option(\"showSpinButtons\")\r\n }\r\n _isTouchFriendly() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"showSpinButtons\") && editor.option(\"useLargeSpinButtons\")\r\n }\r\n _legacyRender($editor, isTouchFriendly, isVisible) {\r\n $editor.toggleClass(SPIN_TOUCH_FRIENDLY_CLASS, isTouchFriendly);\r\n $editor.toggleClass(SPIN_CLASS, isVisible)\r\n }\r\n update() {\r\n var shouldUpdate = super.update();\r\n if (shouldUpdate) {\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n var isTouchFriendly = this._isTouchFriendly();\r\n var $spinButtons = instance.children();\r\n var spinUp = SpinButton.getInstance($spinButtons.eq(0));\r\n var spinDown = SpinButton.getInstance($spinButtons.eq(1));\r\n var options = this._getOptions();\r\n spinUp.option(options);\r\n spinDown.option(options);\r\n this._legacyRender($editor, isTouchFriendly, isVisible)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n applyServerDecimalSeparator,\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport TextEditor from \"../text_box/ui.text_editor\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport SpinButtons from \"./number_box.spins\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar math = Math;\r\nvar WIDGET_CLASS = \"dx-numberbox\";\r\nvar FIREFOX_CONTROL_KEYS = [\"tab\", \"del\", \"backspace\", \"leftArrow\", \"rightArrow\", \"home\", \"end\", \"enter\"];\r\nvar FORCE_VALUECHANGE_EVENT_NAMESPACE = \"NumberBoxForceValueChange\";\r\nvar NumberBoxBase = TextEditor.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinUpChangeHandler(e)\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (!isCommandKeyPressed(e)) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n this._spinDownChangeHandler(e)\r\n }\r\n },\r\n enter: function() {}\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: 0,\r\n min: void 0,\r\n max: void 0,\r\n step: 1,\r\n showSpinButtons: false,\r\n useLargeSpinButtons: true,\r\n mode: \"text\",\r\n invalidValueMessage: messageLocalization.format(\"dxNumberBox-invalidValueMessage\"),\r\n buttons: void 0\r\n })\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _getDefaultButtons: function() {\r\n return this.callBase().concat([{\r\n name: \"spins\",\r\n Ctor: SpinButtons\r\n }])\r\n },\r\n _isSupportInputMode: function() {\r\n var version = parseFloat(browser.version);\r\n return browser.chrome && version >= 66 || browser.safari && version >= 12\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return devices.real().generic && !devices.isSimulator()\r\n },\r\n options: {\r\n useLargeSpinButtons: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType && !this._isSupportInputMode()\r\n }.bind(this),\r\n options: {\r\n mode: \"number\"\r\n }\r\n }])\r\n },\r\n _initMarkup: function() {\r\n this._renderSubmitElement();\r\n this.$element().addClass(WIDGET_CLASS);\r\n this.callBase()\r\n },\r\n _getDefaultAttributes: function() {\r\n var attributes = this.callBase();\r\n attributes.inputmode = \"decimal\";\r\n return attributes\r\n },\r\n _renderContentImpl: function() {\r\n this.option(\"isValid\") && this._validateValue(this.option(\"value\"));\r\n this.setAria(\"role\", \"spinbutton\")\r\n },\r\n _renderSubmitElement: function() {\r\n this._$submitElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this.$element());\r\n this._setSubmitValue(this.option(\"value\"))\r\n },\r\n _setSubmitValue: function(value) {\r\n this._getSubmitElement().val(applyServerDecimalSeparator(value))\r\n },\r\n _getSubmitElement: function() {\r\n return this._$submitElement\r\n },\r\n _keyPressHandler: function(e) {\r\n this.callBase(e);\r\n var char = getChar(e);\r\n var isInputCharValid = /[\\d.,eE\\-+]/.test(char);\r\n if (!isInputCharValid) {\r\n var keyName = normalizeKeyName(e);\r\n if (isCommandKeyPressed(e) || keyName && FIREFOX_CONTROL_KEYS.includes(keyName)) {\r\n return\r\n }\r\n e.preventDefault();\r\n return false\r\n }\r\n this._keyPressed = true\r\n },\r\n _onMouseWheel: function(dxEvent) {\r\n dxEvent.delta > 0 ? this._spinValueChange(1, dxEvent) : this._spinValueChange(-1, dxEvent)\r\n },\r\n _renderValue: function() {\r\n var inputValue = this._input().val();\r\n var value = this.option(\"value\");\r\n if (!inputValue.length || Number(inputValue) !== value) {\r\n this._forceValueRender();\r\n this._toggleEmptinessEventHandler()\r\n }\r\n var valueText = isDefined(value) ? null : messageLocalization.format(\"dxNumberBox-noDataText\");\r\n this.setAria({\r\n valuenow: ensureDefined(value, \"\"),\r\n valuetext: valueText\r\n });\r\n this.option(\"text\", this._input().val());\r\n this._updateButtons();\r\n return (new Deferred).resolve()\r\n },\r\n _forceValueRender: function() {\r\n var value = this.option(\"value\");\r\n var number = Number(value);\r\n var formattedValue = isNaN(number) ? \"\" : this._applyDisplayValueFormatter(value);\r\n this._renderDisplayText(formattedValue)\r\n },\r\n _applyDisplayValueFormatter: function(value) {\r\n return this.option(\"displayValueFormatter\")(value)\r\n },\r\n _renderProps: function() {\r\n this._input().prop({\r\n min: this.option(\"min\"),\r\n max: this.option(\"max\"),\r\n step: this.option(\"step\")\r\n });\r\n this.setAria({\r\n valuemin: ensureDefined(this.option(\"min\"), \"\"),\r\n valuemax: ensureDefined(this.option(\"max\"), \"\")\r\n })\r\n },\r\n _spinButtonsPointerDownHandler: function() {\r\n var $input = this._input();\r\n if (!this.option(\"useLargeSpinButtons\") && domAdapter.getActiveElement() !== $input[0]) {\r\n eventsEngine.trigger($input, \"focus\")\r\n }\r\n },\r\n _spinUpChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(1, e.event || e)\r\n }\r\n },\r\n _spinDownChangeHandler: function(e) {\r\n if (!this.option(\"readOnly\")) {\r\n this._spinValueChange(-1, e.event || e)\r\n }\r\n },\r\n _spinValueChange: function(sign, dxEvent) {\r\n var step = parseFloat(this.option(\"step\"));\r\n if (0 === step) {\r\n return\r\n }\r\n var value = parseFloat(this._normalizeInputValue()) || 0;\r\n value = this._correctRounding(value, step * sign);\r\n var min = this.option(\"min\");\r\n var max = this.option(\"max\");\r\n if (isDefined(min)) {\r\n value = Math.max(min, value)\r\n }\r\n if (isDefined(max)) {\r\n value = Math.min(max, value)\r\n }\r\n this._saveValueChangeEvent(dxEvent);\r\n this.option(\"value\", value)\r\n },\r\n _correctRounding: function(value, step) {\r\n var regex = /[,.](.*)/;\r\n var isFloatValue = regex.test(value);\r\n var isFloatStep = regex.test(step);\r\n if (isFloatValue || isFloatStep) {\r\n var valueAccuracy = isFloatValue ? regex.exec(value)[0].length : 0;\r\n var stepAccuracy = isFloatStep ? regex.exec(step)[0].length : 0;\r\n var accuracy = math.max(valueAccuracy, stepAccuracy);\r\n value = this._round(value + step, accuracy);\r\n return value\r\n }\r\n return value + step\r\n },\r\n _round: function(value, precision) {\r\n precision = precision || 0;\r\n var multiplier = Math.pow(10, precision);\r\n value *= multiplier;\r\n value = Math.round(value) / multiplier;\r\n return value\r\n },\r\n _renderValueChangeEvent: function() {\r\n this.callBase();\r\n var forceValueChangeEvent = addNamespace(\"focusout\", FORCE_VALUECHANGE_EVENT_NAMESPACE);\r\n eventsEngine.off(this.element(), forceValueChangeEvent);\r\n eventsEngine.on(this.element(), forceValueChangeEvent, this._forceRefreshInputValue.bind(this))\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (\"number\" === this.option(\"mode\")) {\r\n return\r\n }\r\n var $input = this._input();\r\n var formattedValue = this._applyDisplayValueFormatter(this.option(\"value\"));\r\n $input.val(null);\r\n $input.val(formattedValue)\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = this._normalizeText();\r\n var value = this._parseValue(inputValue);\r\n var valueHasDigits = \".\" !== inputValue && \"-\" !== inputValue;\r\n if (this._isValueValid() && !this._validateValue(value)) {\r\n $input.val(this._applyDisplayValueFormatter(value));\r\n return\r\n }\r\n if (valueHasDigits) {\r\n this.callBase(e, isNaN(value) ? null : value)\r\n }\r\n this._applyValueBoundaries(inputValue, value);\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n })\r\n },\r\n _applyValueBoundaries: function(inputValue, parsedValue) {\r\n var isValueIncomplete = this._isValueIncomplete(inputValue);\r\n var isValueCorrect = this._isValueInRange(inputValue);\r\n if (!isValueIncomplete && !isValueCorrect && null !== parsedValue) {\r\n if (Number(inputValue) !== parsedValue) {\r\n this._input().val(this._applyDisplayValueFormatter(parsedValue))\r\n }\r\n }\r\n },\r\n _replaceCommaWithPoint: function(value) {\r\n return value.replace(\",\", \".\")\r\n },\r\n _inputIsInvalid: function() {\r\n var isNumberMode = \"number\" === this.option(\"mode\");\r\n var validityState = this._input().get(0).validity;\r\n return isNumberMode && validityState && validityState.badInput\r\n },\r\n _renderDisplayText: function(text) {\r\n if (this._inputIsInvalid()) {\r\n return\r\n }\r\n this.callBase(text)\r\n },\r\n _isValueIncomplete: function(value) {\r\n return /(^-$)|(^-?\\d*\\.$)|(\\d+e-?$)/i.test(value)\r\n },\r\n _isValueInRange: function(value) {\r\n return inRange(value, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _isNumber: function(value) {\r\n return null !== this._parseValue(value)\r\n },\r\n _validateValue: function(value) {\r\n var inputValue = this._normalizeText();\r\n var isValueValid = this._isValueValid();\r\n var isValid = true;\r\n var isNumber = this._isNumber(inputValue);\r\n if (isNaN(Number(value))) {\r\n isValid = false\r\n }\r\n if (!value && isValueValid) {\r\n isValid = true\r\n } else if (!isNumber && !isValueValid) {\r\n isValid = false\r\n }\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"invalidValueMessage\")\r\n }\r\n });\r\n return isValid\r\n },\r\n _normalizeInputValue: function() {\r\n return this._parseValue(this._normalizeText())\r\n },\r\n _normalizeText: function() {\r\n var value = this._input().val().trim();\r\n return this._replaceCommaWithPoint(value)\r\n },\r\n _parseValue: function(value) {\r\n var number = parseFloat(value);\r\n if (isNaN(number)) {\r\n return null\r\n }\r\n return fitIntoRange(number, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _clearValue: function() {\r\n if (this._inputIsInvalid()) {\r\n this._input().val(\"\");\r\n this._validateValue()\r\n }\r\n this.callBase()\r\n },\r\n reset: function() {\r\n if (null === this.option(\"value\")) {\r\n this.option(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", null)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"value\":\r\n this._validateValue(args.value);\r\n this._setSubmitValue(args.value);\r\n this.callBase(args);\r\n this._resumeValueChangeAction();\r\n break;\r\n case \"step\":\r\n this._renderProps();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._renderProps();\r\n this.option(\"value\", this._parseValue(this.option(\"value\")));\r\n break;\r\n case \"showSpinButtons\":\r\n case \"useLargeSpinButtons\":\r\n this._updateButtons([\"spins\"]);\r\n break;\r\n case \"invalidValueMessage\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default NumberBoxBase;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.mask.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isNumeric,\r\n isDefined,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../../core/utils/math\";\r\nimport number from \"../../localization/number\";\r\nimport {\r\n getCaretWithOffset,\r\n isCaretInBoundaries,\r\n getCaretInBoundaries,\r\n getCaretBoundaries,\r\n getCaretAfterFormat,\r\n getCaretOffset\r\n} from \"./number_box.caret\";\r\nimport {\r\n getFormat as getLDMLFormat\r\n} from \"../../localization/ldml/number\";\r\nimport NumberBoxBase from \"./number_box.base\";\r\nimport {\r\n addNamespace,\r\n getChar,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n ensureDefined,\r\n escapeRegExp\r\n} from \"../../core/utils/common\";\r\nimport {\r\n getRealSeparatorIndex,\r\n getNthOccurrence,\r\n splitByIndex,\r\n adjustPercentValue\r\n} from \"./utils\";\r\nvar NUMBER_FORMATTER_NAMESPACE = \"dxNumberFormatter\";\r\nvar MOVE_FORWARD = 1;\r\nvar MOVE_BACKWARD = -1;\r\nvar MINUS = \"-\";\r\nvar MINUS_KEY = \"minus\";\r\nvar INPUT_EVENT = \"input\";\r\nvar CARET_TIMEOUT_DURATION = 0;\r\nvar NumberBoxMask = NumberBoxBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n useMaskBehavior: true,\r\n format: null\r\n })\r\n },\r\n _isDeleteKey: function(key) {\r\n return \"del\" === key\r\n },\r\n _supportedKeys: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n return extend(this.callBase(), {\r\n minus: this._revertSign.bind(this),\r\n del: this._removeHandler.bind(this),\r\n backspace: this._removeHandler.bind(this),\r\n leftArrow: this._arrowHandler.bind(this, MOVE_BACKWARD),\r\n rightArrow: this._arrowHandler.bind(this, MOVE_FORWARD),\r\n home: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_FORWARD),\r\n enter: this._updateFormattedValue.bind(this),\r\n end: this._moveCaretToBoundaryEventHandler.bind(this, MOVE_BACKWARD)\r\n })\r\n },\r\n _getTextSeparatorIndex: function(text) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var realSeparatorOccurrenceIndex = getRealSeparatorIndex(this.option(\"format\")).occurrence;\r\n return getNthOccurrence(text, decimalSeparator, realSeparatorOccurrenceIndex)\r\n },\r\n _focusInHandler: function(e) {\r\n if (!this._preventNestedFocusEvent(e)) {\r\n this.clearCaretTimeout();\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n var caret = this._caret();\r\n if (caret.start === caret.end && this._useMaskBehavior()) {\r\n var text = this._getInputVal();\r\n var decimalSeparatorIndex = this._getTextSeparatorIndex(text);\r\n if (decimalSeparatorIndex >= 0) {\r\n this._caret({\r\n start: decimalSeparatorIndex,\r\n end: decimalSeparatorIndex\r\n })\r\n } else {\r\n this._moveCaretToBoundaryEventHandler(MOVE_BACKWARD, e)\r\n }\r\n }\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n this.callBase(e)\r\n },\r\n _focusOutHandler: function(e) {\r\n var shouldHandleEvent = !this._preventNestedFocusEvent(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = true;\r\n if (this._useMaskBehavior()) {\r\n this._updateFormattedValue()\r\n }\r\n }\r\n this.callBase(e);\r\n if (shouldHandleEvent) {\r\n this._focusOutOccurs = false\r\n }\r\n },\r\n _hasValueBeenChanged(inputValue) {\r\n var format = this._getFormatPattern();\r\n var value = this.option(\"value\");\r\n var formatted = this._format(value, format) || \"\";\r\n return formatted !== inputValue\r\n },\r\n _updateFormattedValue: function() {\r\n var inputValue = this._getInputVal();\r\n if (this._hasValueBeenChanged(inputValue)) {\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this._setTextByParsedValue();\r\n if (this._parsedValue !== this.option(\"value\")) {\r\n eventsEngine.trigger(this._input(), \"change\")\r\n }\r\n }\r\n },\r\n _arrowHandler: function(step, e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var text = this._getInputVal();\r\n var format = this._getFormatPattern();\r\n var nextCaret = getCaretWithOffset(this._caret(), step);\r\n if (!isCaretInBoundaries(nextCaret, text, format)) {\r\n nextCaret = step === MOVE_FORWARD ? nextCaret.end : nextCaret.start;\r\n e.preventDefault();\r\n this._caret(getCaretInBoundaries(nextCaret, text, format))\r\n }\r\n },\r\n _moveCaretToBoundary: function(direction) {\r\n var boundaries = getCaretBoundaries(this._getInputVal(), this._getFormatPattern());\r\n var newCaret = getCaretWithOffset(direction === MOVE_FORWARD ? boundaries.start : boundaries.end, 0);\r\n this._caret(newCaret)\r\n },\r\n _moveCaretToBoundaryEventHandler: function(direction, e) {\r\n if (!this._useMaskBehavior() || e && e.shiftKey) {\r\n return\r\n }\r\n this._moveCaretToBoundary(direction);\r\n e && e.preventDefault()\r\n },\r\n _shouldMoveCaret: function(text, caret) {\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalSeparatorNext = text.charAt(caret.end) === decimalSeparator;\r\n var moveToFloat = (this._lastKey === decimalSeparator || \".\" === this._lastKey || \",\" === this._lastKey) && isDecimalSeparatorNext;\r\n return moveToFloat\r\n },\r\n _getInputVal: function() {\r\n return number.convertDigits(this._input().val(), true)\r\n },\r\n _keyboardHandler: function(e) {\r\n this.clearCaretTimeout();\r\n this._lastKey = number.convertDigits(getChar(e), true);\r\n this._lastKeyName = normalizeKeyName(e);\r\n if (!this._shouldHandleKey(e.originalEvent)) {\r\n return this.callBase(e)\r\n }\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var enteredChar = this._lastKeyName === MINUS_KEY ? \"\" : this._lastKey;\r\n var newValue = this._tryParse(normalizedText, caret, enteredChar);\r\n if (this._shouldMoveCaret(normalizedText, caret)) {\r\n this._moveCaret(1);\r\n e.originalEvent.preventDefault()\r\n }\r\n if (void 0 === newValue) {\r\n if (this._lastKeyName !== MINUS_KEY) {\r\n e.originalEvent.preventDefault()\r\n }\r\n } else {\r\n this._parsedValue = newValue\r\n }\r\n return this.callBase(e)\r\n },\r\n _keyPressHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n this.callBase(e)\r\n }\r\n },\r\n _removeHandler: function(e) {\r\n var caret = this._caret();\r\n var text = this._getInputVal();\r\n var start = caret.start;\r\n var end = caret.end;\r\n this._lastKey = getChar(e);\r\n this._lastKeyName = normalizeKeyName(e);\r\n var isDeleteKey = this._isDeleteKey(this._lastKeyName);\r\n var isBackspaceKey = !isDeleteKey;\r\n if (start === end) {\r\n var caretPosition = start;\r\n var canDelete = isBackspaceKey && caretPosition > 0 || isDeleteKey && caretPosition < text.length;\r\n if (canDelete) {\r\n isDeleteKey && end++;\r\n isBackspaceKey && start--\r\n } else {\r\n e.preventDefault();\r\n return\r\n }\r\n }\r\n var char = text.slice(start, end);\r\n if (this._isStub(char)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n if (this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0) {\r\n this._revertSign(e);\r\n this._setTextByParsedValue()\r\n }\r\n e.preventDefault();\r\n return\r\n }\r\n var decimalSeparator = number.getDecimalSeparator();\r\n if (char === decimalSeparator) {\r\n var decimalSeparatorIndex = text.indexOf(decimalSeparator);\r\n if (this._isNonStubAfter(decimalSeparatorIndex + 1)) {\r\n this._moveCaret(isDeleteKey ? 1 : -1);\r\n e.preventDefault()\r\n }\r\n return\r\n }\r\n if (end - start < text.length) {\r\n var editedText = this._replaceSelectedText(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n var noDigits = editedText.search(/[0-9]/) < 0;\r\n if (noDigits && this._isValueInRange(0)) {\r\n this._parsedValue = this._parsedValue < 0 || 1 / this._parsedValue === -1 / 0 ? -0 : 0;\r\n return\r\n }\r\n }\r\n var valueAfterRemoving = this._tryParse(text, {\r\n start: start,\r\n end: end\r\n }, \"\");\r\n if (void 0 === valueAfterRemoving) {\r\n e.preventDefault()\r\n } else {\r\n this._parsedValue = valueAfterRemoving\r\n }\r\n },\r\n _isPercentFormat: function() {\r\n var format = this._getFormatPattern();\r\n var noEscapedFormat = format.replace(/'[^']+'/g, \"\");\r\n return -1 !== noEscapedFormat.indexOf(\"%\")\r\n },\r\n _parse: function(text, format) {\r\n var formatOption = this.option(\"format\");\r\n var isCustomParser = isFunction(formatOption.parser);\r\n var parser = isCustomParser ? formatOption.parser : number.parse;\r\n var integerPartStartIndex = 0;\r\n if (!isCustomParser) {\r\n var formatPointIndex = getRealSeparatorIndex(format).index;\r\n var textPointIndex = this._getTextSeparatorIndex(text);\r\n var formatIntegerPartLength = -1 !== formatPointIndex ? formatPointIndex : format.length;\r\n var textIntegerPartLength = -1 !== textPointIndex ? textPointIndex : text.length;\r\n if (textIntegerPartLength > formatIntegerPartLength && -1 === format.indexOf(\"#\")) {\r\n integerPartStartIndex = textIntegerPartLength - formatIntegerPartLength\r\n }\r\n }\r\n text = text.substr(integerPartStartIndex);\r\n return parser(text, format)\r\n },\r\n _format: function(value, format) {\r\n var formatOption = this.option(\"format\");\r\n var customFormatter = (null === formatOption || void 0 === formatOption ? void 0 : formatOption.formatter) || formatOption;\r\n var formatter = isFunction(customFormatter) ? customFormatter : number.format;\r\n var formattedValue = null === value ? \"\" : formatter(value, format);\r\n return formattedValue\r\n },\r\n _getFormatPattern: function() {\r\n if (!this._currentFormat) {\r\n this._updateFormat()\r\n }\r\n return this._currentFormat\r\n },\r\n _updateFormat: function() {\r\n var format = this.option(\"format\");\r\n var isCustomParser = isFunction(null === format || void 0 === format ? void 0 : format.parser);\r\n var isLDMLPattern = isString(format) && (format.indexOf(\"0\") >= 0 || format.indexOf(\"#\") >= 0);\r\n var isExponentialFormat = \"exponential\" === format || \"exponential\" === (null === format || void 0 === format ? void 0 : format.type);\r\n var shouldUseFormatAsIs = isCustomParser || isLDMLPattern || isExponentialFormat;\r\n this._currentFormat = shouldUseFormatAsIs ? format : getLDMLFormat(value => {\r\n var text = this._format(value, format);\r\n return number.convertDigits(text, true)\r\n })\r\n },\r\n _getFormatForSign: function(text) {\r\n var format = this._getFormatPattern();\r\n if (isString(format)) {\r\n var signParts = format.split(\";\");\r\n var sign = number.getSign(text, format);\r\n signParts[1] = signParts[1] || \"-\" + signParts[0];\r\n return sign < 0 ? signParts[1] : signParts[0]\r\n } else {\r\n var _sign = number.getSign(text);\r\n return _sign < 0 ? \"-\" : \"\"\r\n }\r\n },\r\n _removeStubs: function(text, excludeComma) {\r\n var format = this._getFormatForSign(text);\r\n var thousandsSeparator = number.getThousandsSeparator();\r\n var stubs = this._getStubs(format);\r\n var result = text;\r\n if (stubs.length) {\r\n var prefixStubs = stubs[0];\r\n var postfixRegex = new RegExp(\"(\" + escapeRegExp(stubs[1] || \"\") + \")$\", \"g\");\r\n var decoratorsRegex = new RegExp(\"[-\" + escapeRegExp(excludeComma ? \"\" : thousandsSeparator) + \"]\", \"g\");\r\n result = result.replace(prefixStubs, \"\").replace(postfixRegex, \"\").replace(decoratorsRegex, \"\")\r\n }\r\n return result\r\n },\r\n _getStubs: function(format) {\r\n var regExpResult = /[^']([#0.,]+)/g.exec(format);\r\n var pattern = regExpResult && regExpResult[0].trim();\r\n return format.split(pattern).map((function(stub) {\r\n return stub.replace(/'/g, \"\")\r\n }))\r\n },\r\n _truncateToPrecision: function(value, maxPrecision) {\r\n if (isDefined(value)) {\r\n var strValue = value.toString();\r\n var decimalSeparatorIndex = strValue.indexOf(\".\");\r\n if (strValue && decimalSeparatorIndex > -1) {\r\n var parsedValue = parseFloat(strValue.substr(0, decimalSeparatorIndex + maxPrecision + 1));\r\n return isNaN(parsedValue) ? value : parsedValue\r\n }\r\n }\r\n return value\r\n },\r\n _tryParse: function(text, selection, char) {\r\n var editedText = this._replaceSelectedText(text, selection, char);\r\n var format = this._getFormatPattern();\r\n var isTextSelected = selection.start !== selection.end;\r\n var parsedValue = this._getParsedValue(editedText, format);\r\n var maxPrecision = !format.parser && this._getPrecisionLimits(editedText).max;\r\n var isValueChanged = parsedValue !== this._parsedValue;\r\n var decimalSeparator = number.getDecimalSeparator();\r\n var isDecimalPointRestricted = char === decimalSeparator && 0 === maxPrecision;\r\n var isUselessCharRestricted = !isTextSelected && !isValueChanged && char !== MINUS && !this._isValueIncomplete(editedText) && this._isStub(char);\r\n if (isDecimalPointRestricted || isUselessCharRestricted) {\r\n return\r\n }\r\n if (\"\" === this._removeStubs(editedText)) {\r\n parsedValue = Math.abs(0 * this._parsedValue)\r\n }\r\n if (isNaN(parsedValue)) {\r\n return\r\n }\r\n var value = null === parsedValue ? this._parsedValue : parsedValue;\r\n parsedValue = maxPrecision ? this._truncateToPrecision(value, maxPrecision) : parsedValue;\r\n return !format.parser && this._isPercentFormat() ? adjustPercentValue(parsedValue, maxPrecision) : parsedValue\r\n },\r\n _getParsedValue: function(text, format) {\r\n var sign = number.getSign(text, (null === format || void 0 === format ? void 0 : format.formatter) || format);\r\n var textWithoutStubs = this._removeStubs(text, true);\r\n var parsedValue = this._parse(textWithoutStubs, format);\r\n var parsedValueSign = parsedValue < 0 ? -1 : 1;\r\n var parsedValueWithSign = isNumeric(parsedValue) && sign !== parsedValueSign ? sign * parsedValue : parsedValue;\r\n return parsedValueWithSign\r\n },\r\n _isValueIncomplete: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n var caret = this._caret();\r\n var point = number.getDecimalSeparator();\r\n var pointIndex = this._getTextSeparatorIndex(text);\r\n var isCaretOnFloat = pointIndex >= 0 && pointIndex < caret.start;\r\n var textParts = this._removeStubs(text, true).split(point);\r\n if (!isCaretOnFloat || 2 !== textParts.length) {\r\n return false\r\n }\r\n var floatLength = textParts[1].length;\r\n var format = this._getFormatPattern();\r\n var isCustomParser = !!format.parser;\r\n var precision = !isCustomParser && this._getPrecisionLimits(this._getFormatPattern(), text);\r\n var isPrecisionInRange = isCustomParser ? true : inRange(floatLength, precision.min, precision.max);\r\n var endsWithZero = \"0\" === textParts[1].charAt(floatLength - 1);\r\n return isPrecisionInRange && (endsWithZero || !floatLength)\r\n },\r\n _isValueInRange: function(value) {\r\n var min = ensureDefined(this.option(\"min\"), -1 / 0);\r\n var max = ensureDefined(this.option(\"max\"), 1 / 0);\r\n return inRange(value, min, max)\r\n },\r\n _setInputText: function(text) {\r\n var normalizedText = number.convertDigits(text, true);\r\n var newCaret = getCaretAfterFormat(this._getInputVal(), normalizedText, this._caret(), this._getFormatPattern());\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler();\r\n this._formattedValue = text;\r\n if (!this._focusOutOccurs) {\r\n this._caret(newCaret)\r\n }\r\n },\r\n _useMaskBehavior: function() {\r\n return !!this.option(\"format\") && this.option(\"useMaskBehavior\")\r\n },\r\n _renderInputType: function() {\r\n var isNumberType = \"number\" === this.option(\"mode\");\r\n var isDesktop = \"desktop\" === devices.real().deviceType;\r\n if (this._useMaskBehavior() && isNumberType) {\r\n this._setInputType(isDesktop || this._isSupportInputMode() ? \"text\" : \"tel\")\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _isChar: function(str) {\r\n return isString(str) && 1 === str.length\r\n },\r\n _moveCaret: function(offset) {\r\n if (!offset) {\r\n return\r\n }\r\n var newCaret = getCaretWithOffset(this._caret(), offset);\r\n var adjustedCaret = getCaretInBoundaries(newCaret, this._getInputVal(), this._getFormatPattern());\r\n this._caret(adjustedCaret)\r\n },\r\n _shouldHandleKey: function(e) {\r\n var keyName = normalizeKeyName(e);\r\n var isSpecialChar = isCommandKeyPressed(e) || e.altKey || e.shiftKey || !this._isChar(keyName);\r\n var isMinusKey = keyName === MINUS_KEY;\r\n var useMaskBehavior = this._useMaskBehavior();\r\n return useMaskBehavior && !isSpecialChar && !isMinusKey\r\n },\r\n _renderInput: function() {\r\n this.callBase();\r\n this._renderFormatter()\r\n },\r\n _renderFormatter: function() {\r\n this._clearCache();\r\n this._detachFormatterEvents();\r\n if (this._useMaskBehavior()) {\r\n this._attachFormatterEvents()\r\n }\r\n },\r\n _detachFormatterEvents: function() {\r\n eventsEngine.off(this._input(), \".\" + NUMBER_FORMATTER_NAMESPACE)\r\n },\r\n _isInputFromPaste: function(e) {\r\n var inputType = e.originalEvent && e.originalEvent.inputType;\r\n if (isDefined(inputType)) {\r\n return \"insertFromPaste\" === inputType\r\n } else {\r\n return this._isValuePasted\r\n }\r\n },\r\n _attachFormatterEvents: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, addNamespace(INPUT_EVENT, NUMBER_FORMATTER_NAMESPACE), function(e) {\r\n this._formatValue(e);\r\n this._isValuePasted = false\r\n }.bind(this));\r\n eventsEngine.on($input, addNamespace(\"dxclick\", NUMBER_FORMATTER_NAMESPACE), function() {\r\n if (!this._caretTimeout) {\r\n this._caretTimeout = setTimeout(function() {\r\n this._caretTimeout = void 0;\r\n this._caret(getCaretInBoundaries(this._caret(), this._getInputVal(), this._getFormatPattern()))\r\n }.bind(this), CARET_TIMEOUT_DURATION)\r\n }\r\n }.bind(this));\r\n eventsEngine.on($input, \"dxdblclick\", function() {\r\n this.clearCaretTimeout()\r\n }.bind(this))\r\n },\r\n clearCaretTimeout: function() {\r\n clearTimeout(this._caretTimeout);\r\n this._caretTimeout = void 0\r\n },\r\n _forceRefreshInputValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase()\r\n }\r\n },\r\n _isNonStubAfter: function(index) {\r\n var text = this._getInputVal().slice(index);\r\n return text && !this._isStub(text, true)\r\n },\r\n _isStub: function(str, isString) {\r\n var escapedDecimalSeparator = escapeRegExp(number.getDecimalSeparator());\r\n var regExpString = \"^[^0-9\" + escapedDecimalSeparator + \"]+$\";\r\n var stubRegExp = new RegExp(regExpString, \"g\");\r\n return stubRegExp.test(str) && (isString || this._isChar(str))\r\n },\r\n _parseValue: function(text) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(text)\r\n }\r\n return this._parsedValue\r\n },\r\n _getPrecisionLimits: function(text) {\r\n var currentFormat = this._getFormatForSign(text);\r\n var realSeparatorIndex = getRealSeparatorIndex(currentFormat).index;\r\n var floatPart = (splitByIndex(currentFormat, realSeparatorIndex)[1] || \"\").replace(/[^#0]/g, \"\");\r\n var minPrecision = floatPart.replace(/^(0*)#*/, \"$1\").length;\r\n var maxPrecision = floatPart.length;\r\n return {\r\n min: minPrecision,\r\n max: maxPrecision\r\n }\r\n },\r\n _revertSign: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n if (caret.start !== caret.end) {\r\n if (normalizeKeyName(e) === MINUS_KEY) {\r\n this._applyRevertedSign(e, caret, true);\r\n return\r\n } else {\r\n this._caret(getCaretInBoundaries(0, this._getInputVal(), this._getFormatPattern()))\r\n }\r\n }\r\n this._applyRevertedSign(e, caret)\r\n },\r\n _applyRevertedSign: function(e, caret, preserveSelectedText) {\r\n var newValue = -1 * ensureDefined(this._parsedValue, null);\r\n if (this._isValueInRange(newValue) || 0 === newValue) {\r\n this._parsedValue = newValue;\r\n if (preserveSelectedText) {\r\n var format = this._getFormatPattern();\r\n var previousText = this._getInputVal();\r\n this._setTextByParsedValue();\r\n e.preventDefault();\r\n var currentText = this._getInputVal();\r\n var offset = getCaretOffset(previousText, currentText, format);\r\n caret = getCaretWithOffset(caret, offset);\r\n var caretInBoundaries = getCaretInBoundaries(caret, currentText, format);\r\n this._caret(caretInBoundaries)\r\n }\r\n }\r\n },\r\n _removeMinusFromText: function(text, caret) {\r\n var isMinusPressed = this._lastKeyName === MINUS_KEY && text.charAt(caret.start - 1) === MINUS;\r\n return isMinusPressed ? this._replaceSelectedText(text, {\r\n start: caret.start - 1,\r\n end: caret.start\r\n }, \"\") : text\r\n },\r\n _setTextByParsedValue: function() {\r\n var format = this._getFormatPattern();\r\n var parsed = this._parseValue();\r\n var formatted = this._format(parsed, format) || \"\";\r\n this._setInputText(formatted)\r\n },\r\n _formatValue: function(e) {\r\n var normalizedText = this._getInputVal();\r\n var caret = this._caret();\r\n var textWithoutMinus = this._removeMinusFromText(normalizedText, caret);\r\n var wasMinusRemoved = textWithoutMinus !== normalizedText;\r\n normalizedText = textWithoutMinus;\r\n if (!this._isInputFromPaste(e) && this._isValueIncomplete(textWithoutMinus)) {\r\n this._formattedValue = normalizedText;\r\n if (wasMinusRemoved) {\r\n this._setTextByParsedValue()\r\n }\r\n return\r\n }\r\n var textWasChanged = number.convertDigits(this._formattedValue, true) !== normalizedText;\r\n if (textWasChanged) {\r\n var value = this._tryParse(normalizedText, caret, \"\");\r\n if (isDefined(value)) {\r\n this._parsedValue = value\r\n }\r\n }\r\n this._setTextByParsedValue()\r\n },\r\n _renderDisplayText: function() {\r\n if (this._useMaskBehavior()) {\r\n this._toggleEmptinessEventHandler()\r\n } else {\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._useMaskBehavior()) {\r\n this._parsedValue = this.option(\"value\");\r\n this._setTextByParsedValue()\r\n }\r\n return this.callBase()\r\n },\r\n _updateParsedValue: function() {\r\n var inputValue = this._getInputVal();\r\n this._parsedValue = this._tryParse(inputValue, this._caret())\r\n },\r\n _adjustParsedValue: function() {\r\n if (!this._useMaskBehavior()) {\r\n return\r\n }\r\n var clearedText = this._removeStubs(this._getInputVal());\r\n var parsedValue = clearedText ? this._parseValue() : null;\r\n if (!isNumeric(parsedValue)) {\r\n this._parsedValue = parsedValue;\r\n return\r\n }\r\n this._parsedValue = fitIntoRange(parsedValue, this.option(\"min\"), this.option(\"max\"))\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._useMaskBehavior()) {\r\n return this.callBase(e)\r\n }\r\n var caret = this._caret();\r\n this._saveValueChangeEvent(e);\r\n this._lastKey = null;\r\n this._lastKeyName = null;\r\n this._updateParsedValue();\r\n this._adjustParsedValue();\r\n this.option(\"value\", this._parsedValue);\r\n if (caret) {\r\n this._caret(caret)\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"format\":\r\n case \"useMaskBehavior\":\r\n this._renderInputType();\r\n this._updateFormat();\r\n this._renderFormatter();\r\n this._renderValue();\r\n this._refreshValueChangeEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"min\":\r\n case \"max\":\r\n this._adjustParsedValue();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clearCache: function() {\r\n delete this._formattedValue;\r\n delete this._lastKey;\r\n delete this._lastKeyName;\r\n delete this._parsedValue;\r\n delete this._focusOutOccurs;\r\n clearTimeout(this._caretTimeout);\r\n delete this._caretTimeout\r\n },\r\n _clean: function() {\r\n this._clearCache();\r\n this.callBase()\r\n }\r\n});\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box/number_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport NumberBoxMask from \"./number_box.mask\";\r\nregisterComponent(\"dxNumberBox\", NumberBoxMask);\r\nexport default NumberBoxMask;\r\n","/**\r\n * DevExtreme (esm/ui/number_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport NumberBox from \"./number_box/number_box\";\r\nexport default NumberBox;\r\n","/**\r\n * DevExtreme (esm/ui/overlay/overlay_position_controller.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isWindow,\r\n isEvent\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n resetPosition,\r\n move,\r\n locate\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport swatch from \"../widget/swatch_container\";\r\nvar window = getWindow();\r\nvar OVERLAY_POSITION_ALIASES = {\r\n top: {\r\n my: \"top center\",\r\n at: \"top center\"\r\n },\r\n bottom: {\r\n my: \"bottom center\",\r\n at: \"bottom center\"\r\n },\r\n right: {\r\n my: \"right center\",\r\n at: \"right center\"\r\n },\r\n left: {\r\n my: \"left center\",\r\n at: \"left center\"\r\n },\r\n center: {\r\n my: \"center\",\r\n at: \"center\"\r\n },\r\n \"right bottom\": {\r\n my: \"right bottom\",\r\n at: \"right bottom\"\r\n },\r\n \"right top\": {\r\n my: \"right top\",\r\n at: \"right top\"\r\n },\r\n \"left bottom\": {\r\n my: \"left bottom\",\r\n at: \"left bottom\"\r\n },\r\n \"left top\": {\r\n my: \"left top\",\r\n at: \"left top\"\r\n }\r\n};\r\nvar OVERLAY_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 0,\r\n v: 0\r\n};\r\nclass OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n position: position,\r\n container: container,\r\n visualContainer: visualContainer,\r\n $root: $root,\r\n $content: $content,\r\n $wrapper: $wrapper,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition\r\n } = _ref;\r\n this._props = {\r\n position: position,\r\n container: container,\r\n visualContainer: visualContainer,\r\n restorePosition: restorePosition,\r\n onPositioned: onPositioned,\r\n onVisualPositionChanged: onVisualPositionChanged,\r\n _fixWrapperPosition: _fixWrapperPosition\r\n };\r\n this._$root = $root;\r\n this._$content = $content;\r\n this._$wrapper = $wrapper;\r\n this._$markupContainer = void 0;\r\n this._$visualContainer = void 0;\r\n this._shouldRenderContentInitialPosition = true;\r\n this._visualPosition = void 0;\r\n this._initialPosition = void 0;\r\n this._previousVisualPosition = void 0;\r\n this.updateContainer(container);\r\n this.updatePosition(position);\r\n this.updateVisualContainer(visualContainer)\r\n }\r\n get $container() {\r\n this.updateContainer();\r\n return this._$markupContainer\r\n }\r\n get $visualContainer() {\r\n return this._$visualContainer\r\n }\r\n get position() {\r\n return this._position\r\n }\r\n set fixWrapperPosition(fixWrapperPosition) {\r\n this._props._fixWrapperPosition = fixWrapperPosition;\r\n this.styleWrapperPosition()\r\n }\r\n set restorePosition(restorePosition) {\r\n this._props.restorePosition = restorePosition\r\n }\r\n restorePositionOnNextRender(value) {\r\n this._shouldRenderContentInitialPosition = value || !this._visualPosition\r\n }\r\n openingHandled() {\r\n var shouldRestorePosition = this._props.restorePosition;\r\n this.restorePositionOnNextRender(shouldRestorePosition)\r\n }\r\n updatePosition(positionProp) {\r\n this._props.position = positionProp;\r\n this._position = this._normalizePosition(positionProp);\r\n this.updateVisualContainer()\r\n }\r\n updateContainer() {\r\n var containerProp = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._props.container;\r\n this._props.container = containerProp;\r\n this._$markupContainer = containerProp ? $(containerProp) : swatch.getSwatchContainer(this._$root);\r\n this.updateVisualContainer(this._props.visualContainer)\r\n }\r\n updateVisualContainer() {\r\n var visualContainer = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._props.visualContainer;\r\n this._props.visualContainer = visualContainer;\r\n this._$visualContainer = this._getVisualContainer()\r\n }\r\n detectVisualPositionChange(event) {\r\n this._updateVisualPositionValue();\r\n this._raisePositionedEvents(event)\r\n }\r\n positionContent() {\r\n if (this._shouldRenderContentInitialPosition) {\r\n this._renderContentInitialPosition()\r\n } else {\r\n move(this._$content, this._visualPosition);\r\n this.detectVisualPositionChange()\r\n }\r\n }\r\n positionWrapper() {\r\n if (this._$visualContainer) {\r\n positionUtils.setup(this._$wrapper, {\r\n my: \"top left\",\r\n at: \"top left\",\r\n of: this._$visualContainer\r\n })\r\n }\r\n }\r\n styleWrapperPosition() {\r\n var useFixed = isWindow(this.$visualContainer.get(0)) || this._props._fixWrapperPosition;\r\n var positionStyle = useFixed ? \"fixed\" : \"absolute\";\r\n this._$wrapper.css(\"position\", positionStyle)\r\n }\r\n _updateVisualPositionValue() {\r\n this._previousVisualPosition = this._visualPosition;\r\n this._visualPosition = locate(this._$content)\r\n }\r\n _renderContentInitialPosition() {\r\n this._renderBoundaryOffset();\r\n resetPosition(this._$content);\r\n var wrapperOverflow = this._$wrapper.css(\"overflow\");\r\n this._$wrapper.css(\"overflow\", \"hidden\");\r\n var resultPosition = positionUtils.setup(this._$content, this._position);\r\n this._$wrapper.css(\"overflow\", wrapperOverflow);\r\n this._initialPosition = resultPosition;\r\n this.detectVisualPositionChange()\r\n }\r\n _raisePositionedEvents(event) {\r\n var previousPosition = this._previousVisualPosition;\r\n var newPosition = this._visualPosition;\r\n var isVisualPositionChanged = (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.top) !== newPosition.top || (null === previousPosition || void 0 === previousPosition ? void 0 : previousPosition.left) !== newPosition.left;\r\n if (isVisualPositionChanged) {\r\n this._props.onVisualPositionChanged({\r\n previousPosition: previousPosition,\r\n position: newPosition,\r\n event: event\r\n })\r\n }\r\n this._props.onPositioned({\r\n position: this._initialPosition\r\n })\r\n }\r\n _renderBoundaryOffset() {\r\n var _this$_position;\r\n var boundaryOffset = null !== (_this$_position = this._position) && void 0 !== _this$_position ? _this$_position : {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n this._$content.css(\"margin\", \"\".concat(boundaryOffset.v, \"px \").concat(boundaryOffset.h, \"px\"))\r\n }\r\n _getVisualContainer() {\r\n var _this$_props$position, _this$_props$position2;\r\n var containerProp = this._props.container;\r\n var visualContainerProp = this._props.visualContainer;\r\n var positionOf = isEvent(null === (_this$_props$position = this._props.position) || void 0 === _this$_props$position ? void 0 : _this$_props$position.of) ? this._props.position.of.target : null === (_this$_props$position2 = this._props.position) || void 0 === _this$_props$position2 ? void 0 : _this$_props$position2.of;\r\n if (visualContainerProp) {\r\n return $(visualContainerProp)\r\n }\r\n if (containerProp) {\r\n return $(containerProp)\r\n }\r\n if (positionOf) {\r\n return $(positionOf)\r\n }\r\n return $(window)\r\n }\r\n _normalizePosition(positionProp) {\r\n var defaultPositionConfig = {\r\n boundaryOffset: OVERLAY_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n if (isDefined(positionProp)) {\r\n return extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n } else {\r\n return defaultPositionConfig\r\n }\r\n }\r\n _positionToObject(position) {\r\n if (isString(position)) {\r\n return extend({}, OVERLAY_POSITION_ALIASES[position])\r\n }\r\n return position\r\n }\r\n}\r\nexport {\r\n OVERLAY_POSITION_ALIASES,\r\n OverlayPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/mobile/hide_callback.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var hideCallback = function() {\r\n var callbacks = [];\r\n return {\r\n add: function(callback) {\r\n if (!callbacks.includes(callback)) {\r\n callbacks.push(callback)\r\n }\r\n },\r\n remove: function(callback) {\r\n var indexOfCallback = callbacks.indexOf(callback);\r\n if (-1 !== indexOfCallback) {\r\n callbacks.splice(indexOfCallback, 1)\r\n }\r\n },\r\n fire: function() {\r\n var callback = callbacks.pop();\r\n var result = !!callback;\r\n if (result) {\r\n callback()\r\n }\r\n return result\r\n },\r\n hasCallback: function() {\r\n return callbacks.length > 0\r\n }\r\n }\r\n}();\r\n","/**\r\n * DevExtreme (esm/ui/overlay/ui.overlay.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport fx from \"../../animation/fx\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n contains,\r\n resetActiveElement\r\n} from \"../../core/utils/dom\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport readyCallbacks from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n isFunction,\r\n isObject,\r\n isPromise,\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport {\r\n changeCallback\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport errors from \"../../core/errors\";\r\nimport uiErrors from \"../widget/ui.errors\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n move as dragEventMove\r\n} from \"../../events/drag\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n keyboard\r\n} from \"../../events/short\";\r\nimport {\r\n addNamespace,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n triggerHidingEvent,\r\n triggerResizeEvent,\r\n triggerShownEvent\r\n} from \"../../events/visibility_change\";\r\nimport {\r\n hideCallback as hideTopOverlayCallback\r\n} from \"../../mobile/hide_callback\";\r\nimport {\r\n tabbable\r\n} from \"../widget/selectors\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport * as zIndexPool from \"./z_index\";\r\nimport {\r\n OverlayPositionController,\r\n OVERLAY_POSITION_ALIASES\r\n} from \"./overlay_position_controller\";\r\nvar ready = readyCallbacks.add;\r\nvar window = getWindow();\r\nvar viewPortChanged = changeCallback;\r\nvar OVERLAY_CLASS = \"dx-overlay\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nvar OVERLAY_SHADER_CLASS = \"dx-overlay-shader\";\r\nvar INNER_OVERLAY_CLASS = \"dx-inner-overlay\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar RTL_DIRECTION_CLASS = \"dx-rtl\";\r\nvar OVERLAY_STACK = [];\r\nvar PREVENT_SAFARI_SCROLLING_CLASS = \"dx-prevent-safari-scrolling\";\r\nvar TAB_KEY = \"tab\";\r\nready(() => {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), pointerEvents.down, e => {\r\n for (var i = OVERLAY_STACK.length - 1; i >= 0; i--) {\r\n if (!OVERLAY_STACK[i]._proxiedDocumentDownHandler(e)) {\r\n return\r\n }\r\n }\r\n })\r\n});\r\nvar Overlay = Widget.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n escape: function() {\r\n this.hide()\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n activeStateEnabled: false,\r\n visible: false,\r\n deferRendering: true,\r\n shading: true,\r\n shadingColor: \"\",\r\n wrapperAttr: {},\r\n position: extend({}, OVERLAY_POSITION_ALIASES.center),\r\n width: \"80vw\",\r\n minWidth: null,\r\n maxWidth: null,\r\n height: \"80vh\",\r\n minHeight: null,\r\n maxHeight: null,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n scale: .55\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 300,\r\n from: {\r\n opacity: 1,\r\n scale: 1\r\n },\r\n to: {\r\n opacity: 0,\r\n scale: .55\r\n }\r\n }\r\n },\r\n closeOnOutsideClick: false,\r\n hideOnOutsideClick: false,\r\n copyRootClassesToWrapper: false,\r\n _ignoreCopyRootClassesToWrapperDeprecation: false,\r\n _ignoreElementAttrDeprecation: false,\r\n onShowing: null,\r\n onShown: null,\r\n onHiding: null,\r\n onHidden: null,\r\n contentTemplate: \"content\",\r\n innerOverlay: false,\r\n restorePosition: true,\r\n container: void 0,\r\n visualContainer: void 0,\r\n hideTopOverlayHandler: () => {\r\n this.hide()\r\n },\r\n hideOnParentScroll: false,\r\n onPositioned: null,\r\n propagateOutsideClick: false,\r\n ignoreChildEvents: true,\r\n _checkParentVisibility: true,\r\n _fixWrapperPosition: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !hasWindow()\r\n },\r\n options: {\r\n width: null,\r\n height: null,\r\n animation: null,\r\n _checkParentVisibility: false\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n animation: true\r\n })\r\n },\r\n $wrapper: function() {\r\n return this._$wrapper\r\n },\r\n _eventBindingTarget: function() {\r\n return this._$content\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n closeOnOutsideClick: {\r\n since: \"22.1\",\r\n alias: \"hideOnOutsideClick\"\r\n }\r\n })\r\n },\r\n ctor: function(element, options) {\r\n this.callBase(element, options);\r\n if (options) {\r\n if (options.copyRootClassesToWrapper && !options._ignoreCopyRootClassesToWrapperDeprecation) {\r\n this._logDeprecatedOptionWarning(\"copyRootClassesToWrapper\", {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n })\r\n }\r\n if (options.elementAttr && !options._ignoreElementAttrDeprecation) {\r\n this._logDeprecatedOptionWarning(\"elementAttr\", {\r\n since: \"21.2\",\r\n message: 'Use the \"wrapperAttr\" option instead'\r\n })\r\n }\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initActions();\r\n this._initHideOnOutsideClickHandler();\r\n this._initTabTerminatorHandler();\r\n this._customWrapperClass = null;\r\n this._$wrapper = $(\"<div>\").addClass(OVERLAY_WRAPPER_CLASS);\r\n this._$content = $(\"<div>\").addClass(OVERLAY_CONTENT_CLASS);\r\n this._initInnerOverlayClass();\r\n var $element = this.$element();\r\n if (this.option(\"copyRootClassesToWrapper\")) {\r\n this._$wrapper.addClass($element.attr(\"class\"))\r\n }\r\n $element.addClass(OVERLAY_CLASS);\r\n this._$wrapper.attr(\"data-bind\", \"dxControlsDescendantBindings: true\");\r\n this._toggleViewPortSubscription(true);\r\n this._initHideTopOverlayHandler(this.option(\"hideTopOverlayHandler\"));\r\n this._parentsScrollSubscriptionInfo = {\r\n handler: e => {\r\n this._hideOnParentsScrollHandler(e)\r\n }\r\n };\r\n this.warnPositionAsFunction()\r\n },\r\n warnPositionAsFunction() {\r\n if (isFunction(this.option(\"position\"))) {\r\n errors.log(\"W0018\")\r\n }\r\n },\r\n _initInnerOverlayClass: function() {\r\n this._$content.toggleClass(INNER_OVERLAY_CLASS, this.option(\"innerOverlay\"))\r\n },\r\n _initHideTopOverlayHandler: function(handler) {\r\n this._hideTopOverlayHandler = handler\r\n },\r\n _getActionsList: function() {\r\n return [\"onShowing\", \"onShown\", \"onHiding\", \"onHidden\", \"onPositioned\", \"onVisualPositionChanged\"]\r\n },\r\n _initActions: function() {\r\n this._actions = {};\r\n var actions = this._getActionsList();\r\n each(actions, (_, action) => {\r\n this._actions[action] = this._createActionByOption(action, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }) || noop\r\n })\r\n },\r\n _initHideOnOutsideClickHandler: function() {\r\n var _this = this;\r\n this._proxiedDocumentDownHandler = function() {\r\n return _this._documentDownHandler(...arguments)\r\n }\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._renderWrapperAttributes();\r\n this._initPositionController()\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._showAnimationProcessing) {\r\n this._stopAnimation()\r\n }\r\n var isAttachedTarget = $(window.document).is(e.target) || contains(window.document, e.target) || contains(window.document, e.target.getRootNode().host);\r\n var isInnerOverlay = $(e.target).closest(\".\".concat(INNER_OVERLAY_CLASS)).length;\r\n var outsideClick = isAttachedTarget && !isInnerOverlay && !(this._$content.is(e.target) || contains(this._$content.get(0), e.target));\r\n if (outsideClick && this._shouldHideOnOutsideClick(e)) {\r\n this._outsideClickHandler(e)\r\n }\r\n return this.option(\"propagateOutsideClick\")\r\n },\r\n _shouldHideOnOutsideClick: function(e) {\r\n var {\r\n hideOnOutsideClick: hideOnOutsideClick\r\n } = this.option();\r\n if (isFunction(hideOnOutsideClick)) {\r\n return hideOnOutsideClick(e)\r\n }\r\n return hideOnOutsideClick\r\n },\r\n _outsideClickHandler(e) {\r\n if (this.option(\"shading\")) {\r\n e.preventDefault()\r\n }\r\n this.hide()\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase()\r\n },\r\n _isTopOverlay: function() {\r\n var overlayStack = this._overlayStack();\r\n for (var i = overlayStack.length - 1; i >= 0; i--) {\r\n var tabbableElements = overlayStack[i]._findTabbableBounds();\r\n if (tabbableElements.first || tabbableElements.last) {\r\n return overlayStack[i] === this\r\n }\r\n }\r\n return false\r\n },\r\n _overlayStack: function() {\r\n return OVERLAY_STACK\r\n },\r\n _zIndexInitValue: function() {\r\n return Overlay.baseZIndex()\r\n },\r\n _toggleViewPortSubscription: function(toggle) {\r\n var _this2 = this;\r\n viewPortChanged.remove(this._viewPortChangeHandle);\r\n if (toggle) {\r\n this._viewPortChangeHandle = function() {\r\n _this2._viewPortChangeHandler(...arguments)\r\n };\r\n viewPortChanged.add(this._viewPortChangeHandle)\r\n }\r\n },\r\n _viewPortChangeHandler: function() {\r\n this._positionController.updateContainer(this.option(\"container\"));\r\n this._refresh()\r\n },\r\n _renderWrapperAttributes() {\r\n var {\r\n wrapperAttr: wrapperAttr\r\n } = this.option();\r\n var attributes = extend({}, wrapperAttr);\r\n var classNames = attributes.class;\r\n delete attributes.class;\r\n this.$wrapper().attr(attributes).removeClass(this._customWrapperClass).addClass(classNames);\r\n this._customWrapperClass = classNames\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n this._stopAnimation();\r\n return visible ? this._show() : this._hide()\r\n },\r\n _getAnimationConfig: function() {\r\n return this._getOptionValue(\"animation\", this)\r\n },\r\n _animateShowing: function() {\r\n var _this$_getAnimationCo, _showAnimation$start, _showAnimation$comple, _this3 = this;\r\n var animation = null !== (_this$_getAnimationCo = this._getAnimationConfig()) && void 0 !== _this$_getAnimationCo ? _this$_getAnimationCo : {};\r\n var showAnimation = this._normalizeAnimation(animation.show, \"to\");\r\n var startShowAnimation = null !== (_showAnimation$start = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.start) && void 0 !== _showAnimation$start ? _showAnimation$start : noop;\r\n var completeShowAnimation = null !== (_showAnimation$comple = null === showAnimation || void 0 === showAnimation ? void 0 : showAnimation.complete) && void 0 !== _showAnimation$comple ? _showAnimation$comple : noop;\r\n this._animate(showAnimation, (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n if (_this3.option(\"focusStateEnabled\")) {\r\n eventsEngine.trigger(_this3._focusTarget(), \"focus\")\r\n }\r\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\r\n args[_key] = arguments[_key]\r\n }\r\n completeShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = false;\r\n _this3._isHidden = false;\r\n _this3._actions.onShown();\r\n _this3._toggleSafariScrolling();\r\n _this3._showingDeferred.resolve()\r\n }), (function() {\r\n if (_this3._isAnimationPaused) {\r\n return\r\n }\r\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\r\n args[_key2] = arguments[_key2]\r\n }\r\n startShowAnimation.call(_this3, ...args);\r\n _this3._showAnimationProcessing = true\r\n }))\r\n },\r\n _processShowingHidingCancel: function(cancelArg, applyFunction, cancelFunction) {\r\n if (isPromise(cancelArg)) {\r\n cancelArg.then(shouldCancel => {\r\n if (shouldCancel) {\r\n cancelFunction()\r\n } else {\r\n applyFunction()\r\n }\r\n }).catch(() => applyFunction())\r\n } else {\r\n cancelArg ? cancelFunction() : applyFunction()\r\n }\r\n },\r\n _show: function() {\r\n this._showingDeferred = new Deferred;\r\n this._parentHidden = this._isParentHidden();\r\n this._showingDeferred.done(() => {\r\n delete this._parentHidden\r\n });\r\n if (this._parentHidden) {\r\n this._isHidden = true;\r\n return this._showingDeferred.resolve()\r\n }\r\n if (this._currentVisible) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = true;\r\n if (this._isHidingActionCanceled) {\r\n delete this._isHidingActionCanceled;\r\n this._showingDeferred.reject()\r\n } else {\r\n var show = () => {\r\n this._stopAnimation();\r\n this._toggleVisibility(true);\r\n this._$content.css(\"visibility\", \"hidden\");\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, false);\r\n this._updateZIndexStackPosition(true);\r\n this._positionController.openingHandled();\r\n this._renderContent();\r\n var showingArgs = {\r\n cancel: false\r\n };\r\n this._actions.onShowing(showingArgs);\r\n this._processShowingHidingCancel(showingArgs.cancel, () => {\r\n this._$content.css(\"visibility\", \"\");\r\n this._renderVisibility(true);\r\n this._animateShowing()\r\n }, () => {\r\n this._toggleVisibility(false);\r\n this._$content.css(\"visibility\", \"\");\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, true);\r\n this._isShowingActionCanceled = true;\r\n this._moveFromContainer();\r\n this.option(\"visible\", false);\r\n this._showingDeferred.resolve()\r\n })\r\n };\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._stopShowTimer();\r\n this._asyncShowTimeout = setTimeout(show)\r\n } else {\r\n show()\r\n }\r\n }\r\n return this._showingDeferred.promise()\r\n },\r\n _normalizeAnimation: function(showHideConfig, direction) {\r\n if (showHideConfig) {\r\n showHideConfig = extend({\r\n type: \"slide\",\r\n skipElementInitialStyles: true\r\n }, showHideConfig);\r\n if (isObject(showHideConfig[direction])) {\r\n extend(showHideConfig[direction], {\r\n position: this._positionController.position\r\n })\r\n }\r\n }\r\n return showHideConfig\r\n },\r\n _animateHiding: function() {\r\n var _this$_getAnimationCo2, _hideAnimation$start, _hideAnimation$comple, _this4 = this;\r\n var animation = null !== (_this$_getAnimationCo2 = this._getAnimationConfig()) && void 0 !== _this$_getAnimationCo2 ? _this$_getAnimationCo2 : {};\r\n var hideAnimation = this._normalizeAnimation(animation.hide, \"from\");\r\n var startHideAnimation = null !== (_hideAnimation$start = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.start) && void 0 !== _hideAnimation$start ? _hideAnimation$start : noop;\r\n var completeHideAnimation = null !== (_hideAnimation$comple = null === hideAnimation || void 0 === hideAnimation ? void 0 : hideAnimation.complete) && void 0 !== _hideAnimation$comple ? _hideAnimation$comple : noop;\r\n this._animate(hideAnimation, (function() {\r\n var _this4$_actions;\r\n _this4._$content.css(\"pointerEvents\", \"\");\r\n _this4._renderVisibility(false);\r\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\r\n args[_key3] = arguments[_key3]\r\n }\r\n completeHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = false;\r\n null === (_this4$_actions = _this4._actions) || void 0 === _this4$_actions ? void 0 : _this4$_actions.onHidden();\r\n _this4._hidingDeferred.resolve()\r\n }), (function() {\r\n _this4._$content.css(\"pointerEvents\", \"none\");\r\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\r\n args[_key4] = arguments[_key4]\r\n }\r\n startHideAnimation.call(_this4, ...args);\r\n _this4._hideAnimationProcessing = true\r\n }))\r\n },\r\n _hide: function() {\r\n if (!this._currentVisible) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n this._currentVisible = false;\r\n this._hidingDeferred = new Deferred;\r\n var hidingArgs = {\r\n cancel: false\r\n };\r\n if (this._isShowingActionCanceled) {\r\n delete this._isShowingActionCanceled;\r\n this._hidingDeferred.reject()\r\n } else {\r\n this._actions.onHiding(hidingArgs);\r\n this._toggleSafariScrolling();\r\n this._processShowingHidingCancel(hidingArgs.cancel, () => {\r\n this._forceFocusLost();\r\n this._toggleShading(false);\r\n this._toggleSubscriptions(false);\r\n this._stopShowTimer();\r\n this._animateHiding()\r\n }, () => {\r\n this._isHidingActionCanceled = true;\r\n this.option(\"visible\", true);\r\n this._hidingDeferred.resolve()\r\n })\r\n }\r\n return this._hidingDeferred.promise()\r\n },\r\n _forceFocusLost: function() {\r\n var activeElement = domAdapter.getActiveElement();\r\n var shouldResetActiveElement = !!this._$content.find(activeElement).length;\r\n if (shouldResetActiveElement) {\r\n resetActiveElement()\r\n }\r\n },\r\n _animate: function(animation, completeCallback, startCallback) {\r\n if (animation) {\r\n startCallback = startCallback || animation.start || noop;\r\n fx.animate(this._$content, extend({}, animation, {\r\n start: startCallback,\r\n complete: completeCallback\r\n }))\r\n } else {\r\n completeCallback()\r\n }\r\n },\r\n _stopAnimation: function() {\r\n fx.stop(this._$content, true)\r\n },\r\n _renderVisibility: function(visible) {\r\n if (visible && this._isParentHidden()) {\r\n return\r\n }\r\n this._currentVisible = visible;\r\n this._stopAnimation();\r\n if (!visible) {\r\n triggerHidingEvent(this._$content)\r\n }\r\n if (visible) {\r\n this._checkContainerExists();\r\n this._moveToContainer();\r\n this._renderGeometry();\r\n triggerShownEvent(this._$content);\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this._toggleVisibility(visible);\r\n this._$content.toggleClass(INVISIBLE_STATE_CLASS, !visible);\r\n this._updateZIndexStackPosition(visible);\r\n this._moveFromContainer()\r\n }\r\n this._toggleShading(visible);\r\n this._toggleSubscriptions(visible)\r\n },\r\n _updateZIndexStackPosition: function(pushToStack) {\r\n var overlayStack = this._overlayStack();\r\n var index = overlayStack.indexOf(this);\r\n if (pushToStack) {\r\n if (-1 === index) {\r\n this._zIndex = zIndexPool.create(this._zIndexInitValue());\r\n overlayStack.push(this)\r\n }\r\n this._$wrapper.css(\"zIndex\", this._zIndex);\r\n this._$content.css(\"zIndex\", this._zIndex)\r\n } else if (-1 !== index) {\r\n overlayStack.splice(index, 1);\r\n zIndexPool.remove(this._zIndex)\r\n }\r\n },\r\n _toggleShading: function(visible) {\r\n this._$wrapper.toggleClass(OVERLAY_SHADER_CLASS, visible && this.option(\"shading\"));\r\n this._$wrapper.css(\"backgroundColor\", this.option(\"shading\") ? this.option(\"shadingColor\") : \"\");\r\n this._toggleTabTerminator(visible && this.option(\"shading\"))\r\n },\r\n _initTabTerminatorHandler: function() {\r\n var _this5 = this;\r\n this._proxiedTabTerminatorHandler = function() {\r\n _this5._tabKeyHandler(...arguments)\r\n }\r\n },\r\n _toggleTabTerminator: function(enabled) {\r\n var eventName = addNamespace(\"keydown\", this.NAME);\r\n if (enabled) {\r\n eventsEngine.on(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n } else {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, this._proxiedTabTerminatorHandler)\r\n }\r\n },\r\n _findTabbableBounds: function() {\r\n var $elements = this._$wrapper.find(\"*\");\r\n var elementsCount = $elements.length - 1;\r\n var result = {\r\n first: null,\r\n last: null\r\n };\r\n for (var i = 0; i <= elementsCount; i++) {\r\n if (!result.first && $elements.eq(i).is(tabbable)) {\r\n result.first = $elements.eq(i)\r\n }\r\n if (!result.last && $elements.eq(elementsCount - i).is(tabbable)) {\r\n result.last = $elements.eq(elementsCount - i)\r\n }\r\n if (result.first && result.last) {\r\n break\r\n }\r\n }\r\n return result\r\n },\r\n _tabKeyHandler: function(e) {\r\n if (normalizeKeyName(e) !== TAB_KEY || !this._isTopOverlay()) {\r\n return\r\n }\r\n var tabbableElements = this._findTabbableBounds();\r\n var $firstTabbable = tabbableElements.first;\r\n var $lastTabbable = tabbableElements.last;\r\n var isTabOnLast = !e.shiftKey && e.target === $lastTabbable.get(0);\r\n var isShiftTabOnFirst = e.shiftKey && e.target === $firstTabbable.get(0);\r\n var isEmptyTabList = 0 === tabbableElements.length;\r\n var isOutsideTarget = !contains(this._$wrapper.get(0), e.target);\r\n if (isTabOnLast || isShiftTabOnFirst || isEmptyTabList || isOutsideTarget) {\r\n e.preventDefault();\r\n var $focusElement = e.shiftKey ? $lastTabbable : $firstTabbable;\r\n eventsEngine.trigger($focusElement, \"focusin\");\r\n eventsEngine.trigger($focusElement, \"focus\")\r\n }\r\n },\r\n _toggleSubscriptions: function(enabled) {\r\n if (hasWindow()) {\r\n this._toggleHideTopOverlayCallback(enabled);\r\n this._toggleHideOnParentsScrollSubscription(enabled)\r\n }\r\n },\r\n _toggleHideTopOverlayCallback: function(subscribe) {\r\n if (!this._hideTopOverlayHandler) {\r\n return\r\n }\r\n if (subscribe) {\r\n hideTopOverlayCallback.add(this._hideTopOverlayHandler)\r\n } else {\r\n hideTopOverlayCallback.remove(this._hideTopOverlayHandler)\r\n }\r\n },\r\n _toggleHideOnParentsScrollSubscription: function(needSubscribe) {\r\n var _this$_parentsScrollS;\r\n var scrollEvent = addNamespace(\"scroll\", this.NAME);\r\n var {\r\n prevTargets: prevTargets,\r\n handler: handler\r\n } = null !== (_this$_parentsScrollS = this._parentsScrollSubscriptionInfo) && void 0 !== _this$_parentsScrollS ? _this$_parentsScrollS : {};\r\n eventsEngine.off(prevTargets, scrollEvent, handler);\r\n var closeOnScroll = this.option(\"hideOnParentScroll\");\r\n if (needSubscribe && closeOnScroll) {\r\n var $parents = this._hideOnParentScrollTarget().parents();\r\n if (\"desktop\" === devices.real().deviceType) {\r\n $parents = $parents.add(window)\r\n }\r\n eventsEngine.on($parents, scrollEvent, handler);\r\n this._parentsScrollSubscriptionInfo.prevTargets = $parents\r\n }\r\n },\r\n _hideOnParentsScrollHandler: function(e) {\r\n var closeHandled = false;\r\n var closeOnScroll = this.option(\"hideOnParentScroll\");\r\n if (isFunction(closeOnScroll)) {\r\n closeHandled = closeOnScroll(e)\r\n }\r\n if (!closeHandled && !this._showAnimationProcessing) {\r\n this.hide()\r\n }\r\n },\r\n _hideOnParentScrollTarget: function() {\r\n return this._$wrapper\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._appendContentToElement();\r\n this._renderVisibilityAnimate(this.option(\"visible\"))\r\n },\r\n _appendContentToElement: function() {\r\n if (!this._$content.parent().is(this.$element())) {\r\n this._$content.appendTo(this.$element())\r\n }\r\n },\r\n _renderContent: function() {\r\n var shouldDeferRendering = !this._currentVisible && this.option(\"deferRendering\");\r\n var isParentHidden = this.option(\"visible\") && this._isParentHidden();\r\n if (isParentHidden) {\r\n this._isHidden = true;\r\n return\r\n }\r\n if (this._contentAlreadyRendered || shouldDeferRendering) {\r\n return\r\n }\r\n this._contentAlreadyRendered = true;\r\n this._appendContentToElement();\r\n this.callBase()\r\n },\r\n _isParentHidden: function() {\r\n if (!this.option(\"_checkParentVisibility\")) {\r\n return false\r\n }\r\n if (void 0 !== this._parentHidden) {\r\n return this._parentHidden\r\n }\r\n var $parent = this.$element().parent();\r\n if ($parent.is(\":visible\")) {\r\n return false\r\n }\r\n var isHidden = false;\r\n $parent.add($parent.parents()).each((function() {\r\n var $element = $(this);\r\n if (\"none\" === $element.css(\"display\")) {\r\n isHidden = true;\r\n return false\r\n }\r\n }));\r\n return isHidden || !domAdapter.getBody().contains($parent.get(0))\r\n },\r\n _renderContentImpl: function() {\r\n var whenContentRendered = new Deferred;\r\n var contentTemplateOption = this.option(\"contentTemplate\");\r\n var contentTemplate = this._getTemplate(contentTemplateOption);\r\n var transclude = this._templateManager.anonymousTemplateName === contentTemplateOption;\r\n contentTemplate && contentTemplate.render({\r\n container: getPublicElement(this.$content()),\r\n noModel: true,\r\n transclude: transclude,\r\n onRendered: () => {\r\n whenContentRendered.resolve();\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._dimensionChanged()\r\n }\r\n }\r\n });\r\n this._renderScrollTerminator();\r\n whenContentRendered.done(() => {\r\n if (this.option(\"visible\")) {\r\n this._moveToContainer()\r\n }\r\n });\r\n return whenContentRendered.promise()\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n container: container,\r\n visualContainer: visualContainer,\r\n _fixWrapperPosition: _fixWrapperPosition,\r\n restorePosition: restorePosition\r\n } = this.option();\r\n return {\r\n container: container,\r\n visualContainer: visualContainer,\r\n $root: this.$element(),\r\n $content: this._$content,\r\n $wrapper: this._$wrapper,\r\n onPositioned: this._actions.onPositioned,\r\n onVisualPositionChanged: this._actions.onVisualPositionChanged,\r\n restorePosition: restorePosition,\r\n _fixWrapperPosition: _fixWrapperPosition\r\n }\r\n },\r\n _initPositionController() {\r\n this._positionController = new OverlayPositionController(this._getPositionControllerConfig())\r\n },\r\n _renderScrollTerminator: function() {\r\n var $scrollTerminator = this._$wrapper;\r\n var terminatorEventName = addNamespace(dragEventMove, this.NAME);\r\n eventsEngine.off($scrollTerminator, terminatorEventName);\r\n eventsEngine.on($scrollTerminator, terminatorEventName, {\r\n validate: function() {\r\n return true\r\n },\r\n getDirection: function() {\r\n return \"both\"\r\n },\r\n _toggleGestureCover: function(toggle) {\r\n if (!toggle) {\r\n this._toggleGestureCoverImpl(toggle)\r\n }\r\n },\r\n _clearSelection: noop,\r\n isNative: true\r\n }, e => {\r\n var originalEvent = e.originalEvent.originalEvent;\r\n var {\r\n type: type\r\n } = originalEvent || {};\r\n var isWheel = \"wheel\" === type;\r\n var isMouseMove = \"mousemove\" === type;\r\n var isScrollByWheel = isWheel && !isCommandKeyPressed(e);\r\n e._cancelPreventDefault = true;\r\n if (originalEvent && false !== e.cancelable && (!isMouseMove && !isWheel || isScrollByWheel)) {\r\n e.preventDefault()\r\n }\r\n })\r\n },\r\n _moveFromContainer: function() {\r\n this._$content.appendTo(this.$element());\r\n this._$wrapper.detach()\r\n },\r\n _checkContainerExists() {\r\n var $wrapperContainer = this._positionController.$container;\r\n var containerExists = $wrapperContainer.length > 0;\r\n if (!containerExists) {\r\n uiErrors.log(\"W1021\", this.NAME)\r\n }\r\n },\r\n _moveToContainer: function() {\r\n var $wrapperContainer = this._positionController.$container;\r\n this._$wrapper.appendTo($wrapperContainer);\r\n this._$content.appendTo(this._$wrapper)\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n this._stopAnimation();\r\n this._renderGeometryImpl()\r\n }\r\n },\r\n _renderGeometryImpl: function() {\r\n this._positionController.updatePosition(this._getOptionValue(\"position\"));\r\n this._renderWrapper();\r\n this._renderDimensions();\r\n this._renderPosition()\r\n },\r\n _renderPosition() {\r\n this._positionController.positionContent()\r\n },\r\n _isAllWindowCovered: function() {\r\n return isWindow(this._positionController.$visualContainer.get(0)) && this.option(\"shading\")\r\n },\r\n _toggleSafariScrolling: function() {\r\n var visible = this.option(\"visible\");\r\n var $body = $(domAdapter.getBody());\r\n var isIosSafari = \"ios\" === devices.real().platform && browser.safari;\r\n var isAllWindowCovered = this._isAllWindowCovered();\r\n var isScrollingPrevented = $body.hasClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n var shouldPreventScrolling = !isScrollingPrevented && visible && isAllWindowCovered;\r\n var shouldEnableScrolling = isScrollingPrevented && (!visible || !isAllWindowCovered || this._disposed);\r\n if (isIosSafari) {\r\n if (shouldEnableScrolling) {\r\n $body.removeClass(PREVENT_SAFARI_SCROLLING_CLASS);\r\n window.scrollTo(0, this._cachedBodyScrollTop);\r\n this._cachedBodyScrollTop = void 0\r\n } else if (shouldPreventScrolling) {\r\n this._cachedBodyScrollTop = window.pageYOffset;\r\n $body.addClass(PREVENT_SAFARI_SCROLLING_CLASS)\r\n }\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._positionController.styleWrapperPosition();\r\n this._renderWrapperDimensions();\r\n this._positionController.positionWrapper()\r\n },\r\n _renderWrapperDimensions: function() {\r\n var $visualContainer = this._positionController.$visualContainer;\r\n var documentElement = domAdapter.getDocumentElement();\r\n var isVisualContainerWindow = isWindow($visualContainer.get(0));\r\n var wrapperWidth = isVisualContainerWindow ? documentElement.clientWidth : getOuterWidth($visualContainer);\r\n var wrapperHeight = isVisualContainerWindow ? window.innerHeight : getOuterHeight($visualContainer);\r\n this._$wrapper.css({\r\n width: wrapperWidth,\r\n height: wrapperHeight\r\n })\r\n },\r\n _renderDimensions: function() {\r\n var content = this._$content.get(0);\r\n this._$content.css({\r\n minWidth: this._getOptionValue(\"minWidth\", content),\r\n maxWidth: this._getOptionValue(\"maxWidth\", content),\r\n minHeight: this._getOptionValue(\"minHeight\", content),\r\n maxHeight: this._getOptionValue(\"maxHeight\", content),\r\n width: this._getOptionValue(\"width\", content),\r\n height: this._getOptionValue(\"height\", content)\r\n })\r\n },\r\n _focusTarget: function() {\r\n return this._$content\r\n },\r\n _attachKeyboardEvents: function() {\r\n this._keyboardListenerId = keyboard.on(this._$content, null, opts => this._keyboardHandler(opts))\r\n },\r\n _keyboardHandler: function(options) {\r\n var e = options.originalEvent;\r\n var $target = $(e.target);\r\n if ($target.is(this._$content) || !this.option(\"ignoreChildEvents\")) {\r\n this.callBase(...arguments)\r\n }\r\n },\r\n _isVisible: function() {\r\n return this.option(\"visible\")\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n if (this.option(\"visible\")) {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n } else {\r\n this._renderVisibilityAnimate(visible)\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderGeometry()\r\n },\r\n _clean: function() {\r\n var options = this.option();\r\n if (!this._contentAlreadyRendered && !options.isRenovated) {\r\n this.$content().empty()\r\n }\r\n this._renderVisibility(false);\r\n this._stopShowTimer();\r\n this._cleanFocusState()\r\n },\r\n _stopShowTimer() {\r\n if (this._asyncShowTimeout) {\r\n clearTimeout(this._asyncShowTimeout)\r\n }\r\n this._asyncShowTimeout = null\r\n },\r\n _dispose: function() {\r\n fx.stop(this._$content, false);\r\n clearTimeout(this._deferShowTimer);\r\n this._toggleViewPortSubscription(false);\r\n this._toggleSubscriptions(false);\r\n this._updateZIndexStackPosition(false);\r\n this._toggleTabTerminator(false);\r\n this._actions = null;\r\n this._parentsScrollSubscriptionInfo = null;\r\n this.callBase();\r\n this._toggleSafariScrolling();\r\n this.option(\"visible\") && zIndexPool.remove(this._zIndex);\r\n this._$wrapper.remove();\r\n this._$content.remove()\r\n },\r\n _toggleRTLDirection: function(rtl) {\r\n this._$content.toggleClass(RTL_DIRECTION_CLASS, rtl)\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n if (this._getActionsList().includes(args.name)) {\r\n this._initActions();\r\n return\r\n }\r\n switch (args.name) {\r\n case \"animation\":\r\n break;\r\n case \"shading\":\r\n this._toggleShading(this.option(\"visible\"));\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"shadingColor\":\r\n this._toggleShading(this.option(\"visible\"));\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this._renderGeometry();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n this._renderGeometry();\r\n break;\r\n case \"position\":\r\n this._positionController.updatePosition(this.option(\"position\"));\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visible\":\r\n this._renderVisibilityAnimate(value).done(() => {\r\n var _this$_animateDeferre;\r\n return null === (_this$_animateDeferre = this._animateDeferred) || void 0 === _this$_animateDeferre ? void 0 : _this$_animateDeferre.resolveWith(this)\r\n }).fail(() => {\r\n var _this$_animateDeferre2;\r\n return null === (_this$_animateDeferre2 = this._animateDeferred) || void 0 === _this$_animateDeferre2 ? void 0 : _this$_animateDeferre2.reject()\r\n });\r\n break;\r\n case \"container\":\r\n this._positionController.updateContainer(value);\r\n this._invalidate();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"visualContainer\":\r\n this._positionController.updateVisualContainer(value);\r\n this._renderWrapper();\r\n this._toggleSafariScrolling();\r\n break;\r\n case \"innerOverlay\":\r\n this._initInnerOverlayClass();\r\n break;\r\n case \"deferRendering\":\r\n case \"contentTemplate\":\r\n this._contentAlreadyRendered = false;\r\n this._clean();\r\n this._invalidate();\r\n break;\r\n case \"hideTopOverlayHandler\":\r\n this._toggleHideTopOverlayCallback(false);\r\n this._initHideTopOverlayHandler(args.value);\r\n this._toggleHideTopOverlayCallback(this.option(\"visible\"));\r\n break;\r\n case \"hideOnParentScroll\":\r\n this._toggleHideOnParentsScrollSubscription(this.option(\"visible\"));\r\n break;\r\n case \"closeOnOutsideClick\":\r\n case \"hideOnOutsideClick\":\r\n case \"propagateOutsideClick\":\r\n break;\r\n case \"rtlEnabled\":\r\n this._contentAlreadyRendered = false;\r\n this.callBase(args);\r\n break;\r\n case \"_fixWrapperPosition\":\r\n this._positionController.fixWrapperPosition = value;\r\n break;\r\n case \"wrapperAttr\":\r\n this._renderWrapperAttributes();\r\n break;\r\n case \"restorePosition\":\r\n this._positionController.restorePosition = args.value;\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n toggle: function(showing) {\r\n showing = void 0 === showing ? !this.option(\"visible\") : showing;\r\n var result = new Deferred;\r\n if (showing === this.option(\"visible\")) {\r\n return result.resolveWith(this, [showing]).promise()\r\n }\r\n var animateDeferred = new Deferred;\r\n this._animateDeferred = animateDeferred;\r\n this.option(\"visible\", showing);\r\n animateDeferred.promise().done(() => {\r\n delete this._animateDeferred;\r\n result.resolveWith(this, [this.option(\"visible\")])\r\n }).fail(() => {\r\n delete this._animateDeferred;\r\n result.reject()\r\n });\r\n return result.promise()\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n show: function() {\r\n return this.toggle(true)\r\n },\r\n hide: function() {\r\n return this.toggle(false)\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content)\r\n },\r\n repaint: function() {\r\n if (this._contentAlreadyRendered) {\r\n this._positionController.restorePositionOnNextRender(true);\r\n this._renderGeometry({\r\n forceStopAnimation: true\r\n });\r\n triggerResizeEvent(this._$content)\r\n } else {\r\n this.callBase()\r\n }\r\n }\r\n});\r\nOverlay.baseZIndex = zIndex => zIndexPool.base(zIndex);\r\nregisterComponent(\"dxOverlay\", Overlay);\r\nexport default Overlay;\r\n","/**\r\n * DevExtreme (esm/ui/overlay/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getInnerHeight,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isNumeric\r\n} from \"../../core/utils/type\";\r\nvar WINDOW_HEIGHT_PERCENT = .9;\r\nexport var getElementMaxHeightByWindow = ($element, startLocation) => {\r\n var $window = $(getWindow());\r\n var {\r\n top: elementOffset\r\n } = $element.offset();\r\n var actualOffset;\r\n if (isNumeric(startLocation)) {\r\n if (startLocation < elementOffset) {\r\n return elementOffset - startLocation\r\n } else {\r\n actualOffset = getInnerHeight($window) - startLocation + $window.scrollTop()\r\n }\r\n } else {\r\n var offsetTop = elementOffset - $window.scrollTop();\r\n var offsetBottom = getInnerHeight($window) - offsetTop - getOuterHeight($element);\r\n actualOffset = Math.max(offsetTop, offsetBottom)\r\n }\r\n return actualOffset * WINDOW_HEIGHT_PERCENT\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/overlay/z_index.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nvar baseZIndex = 1500;\r\nvar zIndexStack = [];\r\nexport var base = ZIndex => {\r\n baseZIndex = ensureDefined(ZIndex, baseZIndex);\r\n return baseZIndex\r\n};\r\nexport var create = function() {\r\n var baseIndex = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : baseZIndex;\r\n var length = zIndexStack.length;\r\n var index = (length ? zIndexStack[length - 1] : baseIndex) + 1;\r\n zIndexStack.push(index);\r\n return index\r\n};\r\nexport var remove = zIndex => {\r\n var position = zIndexStack.indexOf(zIndex);\r\n if (position >= 0) {\r\n zIndexStack.splice(position, 1)\r\n }\r\n};\r\nexport var isLastZIndexInStack = zIndex => zIndexStack.length && zIndexStack[zIndexStack.length - 1] === zIndex;\r\nexport var clearStack = () => {\r\n zIndexStack = []\r\n};\r\n","/**\r\n * DevExtreme (esm/renovation/ui/resizable/utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isWindow\r\n} from \"../../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport {\r\n getOuterWidth,\r\n getInnerWidth,\r\n getOuterHeight,\r\n getInnerHeight,\r\n getOffset\r\n} from \"../../../core/utils/size\";\r\nexport var borderWidthStyles = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\n\r\nfunction getBorderWidth(el, direction) {\r\n if (!isWindow(el)) {\r\n var borderWidth = el.style[borderWidthStyles[direction]];\r\n return parseInt(borderWidth, 10) || 0\r\n }\r\n return 0\r\n}\r\nvar correctGeometry = function(area, mainEl) {\r\n var el = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : void 0;\r\n var {\r\n height: height,\r\n offset: offset,\r\n width: width\r\n } = area;\r\n var {\r\n left: left,\r\n top: top\r\n } = offset;\r\n var areaBorderLeft = el ? getBorderWidth(el, \"left\") : 0;\r\n var areaBorderTop = el ? getBorderWidth(el, \"top\") : 0;\r\n return {\r\n width: width - getOuterWidth(mainEl) - getInnerWidth(mainEl),\r\n height: height - getOuterHeight(mainEl) - getInnerHeight(mainEl),\r\n offset: {\r\n left: left + areaBorderLeft + getBorderWidth(mainEl, \"left\"),\r\n top: top + areaBorderTop + getBorderWidth(mainEl, \"top\")\r\n }\r\n }\r\n};\r\nexport var getAreaFromElement = (el, mainEl) => correctGeometry({\r\n width: getInnerWidth(el),\r\n height: getInnerHeight(el),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow(el) ? {} : getOffset(el))\r\n}, mainEl, el);\r\nexport var getAreaFromObject = (_ref, mainEl) => {\r\n var {\r\n bottom: bottom,\r\n left: left,\r\n right: right,\r\n top: top\r\n } = _ref;\r\n return correctGeometry({\r\n width: right - left,\r\n height: bottom - top,\r\n offset: {\r\n left: left,\r\n top: top\r\n }\r\n }, mainEl)\r\n};\r\nexport var getMovingSides = el => {\r\n var {\r\n className: className\r\n } = el;\r\n var hasCornerTopLeftClass = className.includes(\"dx-resizable-handle-corner-top-left\");\r\n var hasCornerTopRightClass = className.includes(\"dx-resizable-handle-corner-top-right\");\r\n var hasCornerBottomLeftClass = className.includes(\"dx-resizable-handle-corner-bottom-left\");\r\n var hasCornerBottomRightClass = className.includes(\"dx-resizable-handle-corner-bottom-right\");\r\n return {\r\n top: className.includes(\"dx-resizable-handle-top\") || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: className.includes(\"dx-resizable-handle-left\") || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: className.includes(\"dx-resizable-handle-bottom\") || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: className.includes(\"dx-resizable-handle-right\") || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n};\r\nexport function getDragOffsets(area, handleEl, areaProp) {\r\n var hWidth = getOuterWidth(handleEl);\r\n var hHeight = getOuterHeight(handleEl);\r\n var hOffset = getOffset(handleEl);\r\n var areaOffset = area.offset;\r\n var isAreaWindow = isWindow(areaProp);\r\n var scrollOffset_scrollX = isAreaWindow ? areaProp.pageXOffset : 0,\r\n scrollOffset_scrollY = isAreaWindow ? areaProp.pageYOffset : 0;\r\n return {\r\n maxLeftOffset: hOffset.left - areaOffset.left - scrollOffset_scrollX,\r\n maxRightOffset: areaOffset.left + area.width - hOffset.left - hWidth + scrollOffset_scrollX,\r\n maxTopOffset: hOffset.top - areaOffset.top - scrollOffset_scrollY,\r\n maxBottomOffset: areaOffset.top + area.height - hOffset.top - hHeight + scrollOffset_scrollY\r\n }\r\n}\r\nexport var filterOffsets = (offset, handleEl) => {\r\n var sides = getMovingSides(handleEl);\r\n var offsetX = !sides.left && !sides.right ? 0 : offset.x;\r\n var offsetY = !sides.top && !sides.bottom ? 0 : offset.y;\r\n return {\r\n x: offsetX,\r\n y: offsetY\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popover/popover_position_controller.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"shading\", \"target\", \"$arrow\"];\r\nimport {\r\n isDefined,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n pairToObject\r\n} from \"../../core/utils/common\";\r\nimport {\r\n borderWidthStyles\r\n} from \"../../renovation/ui/resizable/utils\";\r\nimport {\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar WEIGHT_OF_SIDES = {\r\n left: -1,\r\n top: -1,\r\n center: 0,\r\n right: 1,\r\n bottom: 1\r\n};\r\nvar POPOVER_POSITION_ALIASES = {\r\n top: {\r\n my: \"bottom center\",\r\n at: \"top center\",\r\n collision: \"fit flip\"\r\n },\r\n bottom: {\r\n my: \"top center\",\r\n at: \"bottom center\",\r\n collision: \"fit flip\"\r\n },\r\n right: {\r\n my: \"left center\",\r\n at: \"right center\",\r\n collision: \"flip fit\"\r\n },\r\n left: {\r\n my: \"right center\",\r\n at: \"left center\",\r\n collision: \"flip fit\"\r\n }\r\n};\r\nvar POPOVER_DEFAULT_BOUNDARY_OFFSET = {\r\n h: 10,\r\n v: 10\r\n};\r\nclass PopoverPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n shading: shading,\r\n target: target,\r\n $arrow: $arrow\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n shading: shading,\r\n target: target\r\n });\r\n this._$arrow = $arrow;\r\n this._positionSide = void 0;\r\n this.updatePosition(this._props.position)\r\n }\r\n positionWrapper() {\r\n if (this._props.shading) {\r\n this._$wrapper.css({\r\n top: 0,\r\n left: 0\r\n })\r\n }\r\n }\r\n updateTarget(target) {\r\n this._props.target = target;\r\n this.updatePosition(this._props.position)\r\n }\r\n _renderBoundaryOffset() {}\r\n _getContainerPosition() {\r\n var offset = pairToObject(this._position.offset || \"\");\r\n var {\r\n h: hOffset,\r\n v: vOffset\r\n } = offset;\r\n var isVerticalSide = this._isVerticalSide();\r\n var isHorizontalSide = this._isHorizontalSide();\r\n if (isVerticalSide || isHorizontalSide) {\r\n var isPopoverInside = this._isPopoverInside();\r\n var sign = (isPopoverInside ? -1 : 1) * WEIGHT_OF_SIDES[this._positionSide];\r\n var arrowSize = isVerticalSide ? getHeight(this._$arrow) : getWidth(this._$arrow);\r\n var arrowSizeCorrection = this._getContentBorderWidth(this._positionSide);\r\n var arrowOffset = sign * (arrowSize - arrowSizeCorrection);\r\n isVerticalSide ? vOffset += arrowOffset : hOffset += arrowOffset\r\n }\r\n return extend({}, this._position, {\r\n offset: hOffset + \" \" + vOffset\r\n })\r\n }\r\n _getContentBorderWidth(side) {\r\n var borderWidth = this._$content.css(borderWidthStyles[side]);\r\n return parseInt(borderWidth) || 0\r\n }\r\n _isPopoverInside() {\r\n var my = positionUtils.setup.normalizeAlign(this._position.my);\r\n var at = positionUtils.setup.normalizeAlign(this._position.at);\r\n return my.h === at.h && my.v === at.v\r\n }\r\n _isVerticalSide() {\r\n var side = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._positionSide;\r\n return \"top\" === side || \"bottom\" === side\r\n }\r\n _isHorizontalSide() {\r\n var side = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._positionSide;\r\n return \"left\" === side || \"right\" === side\r\n }\r\n _getDisplaySide(position) {\r\n var my = positionUtils.setup.normalizeAlign(position.my);\r\n var at = positionUtils.setup.normalizeAlign(position.at);\r\n var weightSign = WEIGHT_OF_SIDES[my.h] === WEIGHT_OF_SIDES[at.h] && WEIGHT_OF_SIDES[my.v] === WEIGHT_OF_SIDES[at.v] ? -1 : 1;\r\n var horizontalWeight = Math.abs(WEIGHT_OF_SIDES[my.h] - weightSign * WEIGHT_OF_SIDES[at.h]);\r\n var verticalWeight = Math.abs(WEIGHT_OF_SIDES[my.v] - weightSign * WEIGHT_OF_SIDES[at.v]);\r\n return horizontalWeight > verticalWeight ? at.h : at.v\r\n }\r\n _normalizePosition(positionProp) {\r\n var defaultPositionConfig = {\r\n of: this._props.target,\r\n boundaryOffset: POPOVER_DEFAULT_BOUNDARY_OFFSET\r\n };\r\n var resultPosition;\r\n if (isDefined(positionProp)) {\r\n resultPosition = extend(true, {}, defaultPositionConfig, this._positionToObject(positionProp))\r\n } else {\r\n resultPosition = defaultPositionConfig\r\n }\r\n this._positionSide = this._getDisplaySide(resultPosition);\r\n return resultPosition\r\n }\r\n _positionToObject(positionProp) {\r\n if (isString(positionProp)) {\r\n return extend({}, POPOVER_POSITION_ALIASES[positionProp])\r\n }\r\n return positionProp\r\n }\r\n}\r\nexport {\r\n PopoverPositionController,\r\n POPOVER_POSITION_ALIASES\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popover/ui.popover.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n setWidth,\r\n getHeight,\r\n setHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport positionUtils from \"../../animation/position\";\r\nimport {\r\n isObject,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n PopoverPositionController,\r\n POPOVER_POSITION_ALIASES\r\n} from \"./popover_position_controller\";\r\nvar POPOVER_CLASS = \"dx-popover\";\r\nvar POPOVER_WRAPPER_CLASS = \"dx-popover-wrapper\";\r\nvar POPOVER_ARROW_CLASS = \"dx-popover-arrow\";\r\nvar POPOVER_WITHOUT_TITLE_CLASS = \"dx-popover-without-title\";\r\nvar POSITION_FLIP_MAP = {\r\n left: \"right\",\r\n top: \"bottom\",\r\n right: \"left\",\r\n bottom: \"top\",\r\n center: \"center\"\r\n};\r\nvar getEventNameByOption = function(optionValue) {\r\n return isObject(optionValue) ? optionValue.name : optionValue\r\n};\r\nvar getEventName = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return getEventNameByOption(optionValue)\r\n};\r\nvar getEventDelay = function(that, optionName) {\r\n var optionValue = that.option(optionName);\r\n return isObject(optionValue) && optionValue.delay\r\n};\r\nvar attachEvent = function(that, name) {\r\n var {\r\n target: target,\r\n shading: shading,\r\n disabled: disabled,\r\n hideEvent: hideEvent\r\n } = that.option();\r\n var isSelector = isString(target);\r\n var shouldIgnoreHideEvent = shading && \"hide\" === name;\r\n var event = shouldIgnoreHideEvent ? null : getEventName(that, \"\".concat(name, \"Event\"));\r\n if (shouldIgnoreHideEvent && hideEvent) {\r\n errors.log(\"W1020\")\r\n }\r\n if (!event || disabled) {\r\n return\r\n }\r\n var eventName = addNamespace(event, that.NAME);\r\n var action = that._createAction(function() {\r\n var delay = getEventDelay(that, name + \"Event\");\r\n this._clearEventsTimeouts();\r\n if (delay) {\r\n this._timeouts[name] = setTimeout((function() {\r\n that[name]()\r\n }), delay)\r\n } else {\r\n that[name]()\r\n }\r\n }.bind(that), {\r\n validatingTargetName: \"target\"\r\n });\r\n var handler = function(e) {\r\n action({\r\n event: e,\r\n target: $(e.currentTarget)\r\n })\r\n };\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (isSelector) {\r\n that[EVENT_HANDLER_NAME] = handler;\r\n eventsEngine.on(domAdapter.getDocument(), eventName, target, handler)\r\n } else {\r\n var targetElement = getPublicElement($(target));\r\n that[EVENT_HANDLER_NAME] = void 0;\r\n eventsEngine.on(targetElement, eventName, handler)\r\n }\r\n};\r\nvar detachEvent = function(that, target, name, event) {\r\n var eventName = event || getEventName(that, name + \"Event\");\r\n if (!eventName) {\r\n return\r\n }\r\n eventName = addNamespace(eventName, that.NAME);\r\n var EVENT_HANDLER_NAME = \"_\" + name + \"EventHandler\";\r\n if (that[EVENT_HANDLER_NAME]) {\r\n eventsEngine.off(domAdapter.getDocument(), eventName, target, that[EVENT_HANDLER_NAME])\r\n } else {\r\n eventsEngine.off(getPublicElement($(target)), eventName)\r\n }\r\n};\r\nvar Popover = Popup.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n target: void 0,\r\n shading: false,\r\n position: extend({}, POPOVER_POSITION_ALIASES.bottom),\r\n hideOnOutsideClick: true,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n from: 1,\r\n to: 0\r\n }\r\n },\r\n showTitle: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n dragEnabled: false,\r\n resizeEnabled: false,\r\n fullScreen: false,\r\n hideOnParentScroll: true,\r\n arrowPosition: \"\",\r\n arrowOffset: 0,\r\n _fixWrapperPosition: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return [{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n arrowPosition: {\r\n boundaryOffset: {\r\n h: 20,\r\n v: -10\r\n },\r\n collision: \"fit\"\r\n }\r\n }\r\n }, {\r\n device: function() {\r\n return !hasWindow()\r\n },\r\n options: {\r\n animation: null\r\n }\r\n }]\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._renderArrow();\r\n this._timeouts = {};\r\n this.$element().addClass(POPOVER_CLASS);\r\n this.$wrapper().addClass(POPOVER_WRAPPER_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase.apply(this, arguments);\r\n this._detachEvents(this.option(\"target\"));\r\n this._attachEvents()\r\n },\r\n _detachEvents: function(target) {\r\n detachEvent(this, target, \"show\");\r\n detachEvent(this, target, \"hide\")\r\n },\r\n _attachEvents: function() {\r\n attachEvent(this, \"show\");\r\n attachEvent(this, \"hide\")\r\n },\r\n _renderArrow: function() {\r\n this._$arrow = $(\"<div>\").addClass(POPOVER_ARROW_CLASS).prependTo(this.$overlayContent())\r\n },\r\n _documentDownHandler: function(e) {\r\n if (this._isOutsideClick(e)) {\r\n return this.callBase(e)\r\n }\r\n return true\r\n },\r\n _isOutsideClick: function(e) {\r\n return !$(e.target).closest(this.option(\"target\")).length\r\n },\r\n _animate: function(animation) {\r\n if (animation && animation.to && \"object\" === typeof animation.to) {\r\n extend(animation.to, {\r\n position: this._getContainerPosition()\r\n })\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _stopAnimation: function() {\r\n this.callBase.apply(this, arguments)\r\n },\r\n _renderTitle: function() {\r\n this.$wrapper().toggleClass(POPOVER_WITHOUT_TITLE_CLASS, !this.option(\"showTitle\"));\r\n this.callBase()\r\n },\r\n _renderPosition: function() {\r\n var shouldUpdateDimensions = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : true;\r\n this.callBase();\r\n this._renderOverlayPosition(shouldUpdateDimensions);\r\n this._actions.onPositioned()\r\n },\r\n _renderOverlayPosition: function(shouldUpdateDimensions) {\r\n this._resetOverlayPosition(shouldUpdateDimensions);\r\n this._updateContentSize(shouldUpdateDimensions);\r\n var contentPosition = this._getContainerPosition();\r\n var resultLocation = positionUtils.setup(this.$overlayContent(), contentPosition);\r\n var positionSide = this._getSideByLocation(resultLocation);\r\n this._togglePositionClass(\"dx-position-\" + positionSide);\r\n this._toggleFlippedClass(resultLocation.h.flip, resultLocation.v.flip);\r\n var isArrowVisible = this._isHorizontalSide() || this._isVerticalSide();\r\n if (isArrowVisible) {\r\n this._renderArrowPosition(positionSide)\r\n }\r\n },\r\n _resetOverlayPosition: function(shouldUpdateDimensions) {\r\n this._setContentHeight(shouldUpdateDimensions);\r\n this._togglePositionClass(\"dx-position-\" + this._positionController._positionSide);\r\n move(this.$overlayContent(), {\r\n left: 0,\r\n top: 0\r\n });\r\n this._$arrow.css({\r\n top: \"auto\",\r\n right: \"auto\",\r\n bottom: \"auto\",\r\n left: \"auto\"\r\n })\r\n },\r\n _updateContentSize: function(shouldUpdateDimensions) {\r\n if (!this.$content() || !shouldUpdateDimensions) {\r\n return\r\n }\r\n var containerLocation = positionUtils.calculate(this.$overlayContent(), this._getContainerPosition());\r\n if (containerLocation.h.oversize > 0 && this._isHorizontalSide() && !containerLocation.h.fit) {\r\n var newContainerWidth = getWidth(this.$overlayContent()) - containerLocation.h.oversize;\r\n setWidth(this.$overlayContent(), newContainerWidth)\r\n }\r\n if (containerLocation.v.oversize > 0 && this._isVerticalSide() && !containerLocation.v.fit) {\r\n var newOverlayContentHeight = getHeight(this.$overlayContent()) - containerLocation.v.oversize;\r\n var newPopupContentHeight = getHeight(this.$content()) - containerLocation.v.oversize;\r\n setHeight(this.$overlayContent(), newOverlayContentHeight);\r\n setHeight(this.$content(), newPopupContentHeight)\r\n }\r\n },\r\n _getContainerPosition: function() {\r\n return this._positionController._getContainerPosition()\r\n },\r\n _hideOnParentScrollTarget: function() {\r\n return $(this._positionController._position.of || this.callBase())\r\n },\r\n _getSideByLocation: function(location) {\r\n var isFlippedByVertical = location.v.flip;\r\n var isFlippedByHorizontal = location.h.flip;\r\n return this._isVerticalSide() && isFlippedByVertical || this._isHorizontalSide() && isFlippedByHorizontal || this._isPopoverInside() ? POSITION_FLIP_MAP[this._positionController._positionSide] : this._positionController._positionSide\r\n },\r\n _togglePositionClass: function(positionClass) {\r\n this.$wrapper().removeClass(\"dx-position-left dx-position-right dx-position-top dx-position-bottom\").addClass(positionClass)\r\n },\r\n _toggleFlippedClass: function(isFlippedHorizontal, isFlippedVertical) {\r\n this.$wrapper().toggleClass(\"dx-popover-flipped-horizontal\", isFlippedHorizontal).toggleClass(\"dx-popover-flipped-vertical\", isFlippedVertical)\r\n },\r\n _renderArrowPosition: function(side) {\r\n var arrowRect = getBoundingRect(this._$arrow.get(0));\r\n var arrowFlip = -(this._isVerticalSide(side) ? arrowRect.height : arrowRect.width);\r\n this._$arrow.css(POSITION_FLIP_MAP[side], arrowFlip);\r\n var axis = this._isVerticalSide(side) ? \"left\" : \"top\";\r\n var sizeProperty = this._isVerticalSide(side) ? \"width\" : \"height\";\r\n var $target = $(this._positionController._position.of);\r\n var targetOffset = positionUtils.offset($target) || {\r\n top: 0,\r\n left: 0\r\n };\r\n var contentOffset = positionUtils.offset(this.$overlayContent());\r\n var arrowSize = arrowRect[sizeProperty];\r\n var contentLocation = contentOffset[axis];\r\n var contentSize = getBoundingRect(this.$overlayContent().get(0))[sizeProperty];\r\n var targetLocation = targetOffset[axis];\r\n var targetElement = $target.get(0);\r\n var targetSize = targetElement && !targetElement.preventDefault ? getBoundingRect(targetElement)[sizeProperty] : 0;\r\n var min = Math.max(contentLocation, targetLocation);\r\n var max = Math.min(contentLocation + contentSize, targetLocation + targetSize);\r\n var arrowLocation;\r\n if (\"start\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = min - contentLocation\r\n } else if (\"end\" === this.option(\"arrowPosition\")) {\r\n arrowLocation = max - contentLocation - arrowSize\r\n } else {\r\n arrowLocation = (min + max) / 2 - contentLocation - arrowSize / 2\r\n }\r\n var borderWidth = this._positionController._getContentBorderWidth(side);\r\n var finalArrowLocation = fitIntoRange(arrowLocation - borderWidth + this.option(\"arrowOffset\"), borderWidth, contentSize - arrowSize - 2 * borderWidth);\r\n this._$arrow.css(axis, finalArrowLocation)\r\n },\r\n _isPopoverInside: function() {\r\n return this._positionController._isPopoverInside()\r\n },\r\n _setContentHeight: function(fullUpdate) {\r\n if (fullUpdate) {\r\n this.callBase()\r\n }\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n shading: shading,\r\n target: target\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n target: target,\r\n shading: shading,\r\n $arrow: this._$arrow\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopoverPositionController(this._getPositionControllerConfig())\r\n },\r\n _renderWrapperDimensions: function() {\r\n if (this.option(\"shading\")) {\r\n this.$wrapper().css({\r\n width: \"100%\",\r\n height: \"100%\"\r\n })\r\n }\r\n },\r\n _isVerticalSide: function(side) {\r\n return this._positionController._isVerticalSide(side)\r\n },\r\n _isHorizontalSide: function(side) {\r\n return this._positionController._isHorizontalSide(side)\r\n },\r\n _clearEventTimeout: function(name) {\r\n clearTimeout(this._timeouts[name])\r\n },\r\n _clearEventsTimeouts: function() {\r\n this._clearEventTimeout(\"show\");\r\n this._clearEventTimeout(\"hide\")\r\n },\r\n _clean: function() {\r\n this._detachEvents(this.option(\"target\"));\r\n this.callBase.apply(this, arguments)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"arrowPosition\":\r\n case \"arrowOffset\":\r\n this._renderGeometry();\r\n break;\r\n case \"fullScreen\":\r\n if (args.value) {\r\n this.option(\"fullScreen\", false)\r\n }\r\n break;\r\n case \"target\":\r\n args.previousValue && this._detachEvents(args.previousValue);\r\n this._positionController.updateTarget(args.value);\r\n this._invalidate();\r\n break;\r\n case \"showEvent\":\r\n case \"hideEvent\":\r\n var name = args.name.substring(0, 4);\r\n var event = getEventNameByOption(args.previousValue);\r\n this.hide();\r\n detachEvent(this, this.option(\"target\"), name, event);\r\n attachEvent(this, name);\r\n break;\r\n case \"visible\":\r\n this._clearEventTimeout(args.value ? \"show\" : \"hide\");\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n show: function(target) {\r\n if (target) {\r\n this.option(\"target\", target)\r\n }\r\n return this.callBase()\r\n }\r\n});\r\nregisterComponent(\"dxPopover\", Popover);\r\nexport default Popover;\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.full.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport \"../toolbar\";\r\nimport Popup from \"../popup/ui.popup\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nexport default class PopupFull extends Popup {\r\n _getToolbarName() {\r\n return \"dxToolbar\"\r\n }\r\n}\r\nregisterComponent(\"dxPopup\", PopupFull);\r\n","/**\r\n * DevExtreme (esm/ui/popup.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Popup from \"./popup/ui.popup.full\";\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_drag.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n locate,\r\n move\r\n} from \"../../animation/translator\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n getOffset,\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n fitIntoRange\r\n} from \"../../core/utils/math\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n start as dragStartEvent,\r\n move as dragMoveEvent,\r\n end as dragEndEvent\r\n} from \"../../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nvar KEYBOARD_DRAG_STEP = 5;\r\nclass PopupDrag {\r\n constructor(config) {\r\n this.init(config)\r\n }\r\n init(_ref) {\r\n var {\r\n dragEnabled: dragEnabled,\r\n handle: handle,\r\n draggableElement: draggableElement,\r\n positionController: positionController\r\n } = _ref;\r\n this._positionController = positionController;\r\n this._draggableElement = draggableElement;\r\n this._handle = handle;\r\n this._dragEnabled = dragEnabled;\r\n this.unsubscribe();\r\n if (!dragEnabled) {\r\n return\r\n }\r\n this.subscribe()\r\n }\r\n moveDown(e) {\r\n this._moveTo(KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveUp(e) {\r\n this._moveTo(-KEYBOARD_DRAG_STEP, 0, e)\r\n }\r\n moveLeft(e) {\r\n this._moveTo(0, -KEYBOARD_DRAG_STEP, e)\r\n }\r\n moveRight(e) {\r\n this._moveTo(0, KEYBOARD_DRAG_STEP, e)\r\n }\r\n subscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.on(this._handle, eventNames.startEventName, e => {\r\n this._dragStartHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.updateEventName, e => {\r\n this._dragUpdateHandler(e)\r\n });\r\n eventsEngine.on(this._handle, eventNames.endEventName, e => {\r\n this._dragEndHandler(e)\r\n })\r\n }\r\n unsubscribe() {\r\n var eventNames = this._getEventNames();\r\n eventsEngine.off(this._handle, eventNames.startEventName);\r\n eventsEngine.off(this._handle, eventNames.updateEventName);\r\n eventsEngine.off(this._handle, eventNames.endEventName)\r\n }\r\n _getEventNames() {\r\n var startEventName = addNamespace(dragStartEvent, \"overlayDrag\");\r\n var updateEventName = addNamespace(dragMoveEvent, \"overlayDrag\");\r\n var endEventName = addNamespace(dragEndEvent, \"overlayDrag\");\r\n return {\r\n startEventName: startEventName,\r\n updateEventName: updateEventName,\r\n endEventName: endEventName\r\n }\r\n }\r\n _dragStartHandler(e) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n this._prevOffset = {\r\n x: 0,\r\n y: 0\r\n };\r\n e.targetElements = [];\r\n e.maxTopOffset = allowedOffsets.top;\r\n e.maxBottomOffset = allowedOffsets.bottom;\r\n e.maxLeftOffset = allowedOffsets.left;\r\n e.maxRightOffset = allowedOffsets.right\r\n }\r\n _dragUpdateHandler(e) {\r\n var targetOffset = {\r\n top: e.offset.y - this._prevOffset.y,\r\n left: e.offset.x - this._prevOffset.x\r\n };\r\n this._moveByOffset(targetOffset);\r\n this._prevOffset = e.offset\r\n }\r\n _dragEndHandler(event) {\r\n this._positionController.dragHandled();\r\n this._positionController.detectVisualPositionChange(event)\r\n }\r\n _moveTo(top, left, e) {\r\n if (!this._dragEnabled) {\r\n return\r\n }\r\n e.preventDefault();\r\n e.stopPropagation();\r\n var offset = this._fitOffsetIntoAllowedRange(top, left);\r\n this._moveByOffset(offset);\r\n this._dragEndHandler(e)\r\n }\r\n _fitOffsetIntoAllowedRange(top, left) {\r\n var allowedOffsets = this._getAllowedOffsets();\r\n return {\r\n top: fitIntoRange(top, -allowedOffsets.top, allowedOffsets.bottom),\r\n left: fitIntoRange(left, -allowedOffsets.left, allowedOffsets.right)\r\n }\r\n }\r\n _getContainerDimensions() {\r\n var document = domAdapter.getDocument();\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n var containerWidth = getOuterWidth(container);\r\n var containerHeight = getOuterHeight(container);\r\n if (isWindow(container)) {\r\n containerHeight = Math.max(document.body.clientHeight, containerHeight);\r\n containerWidth = Math.max(document.body.clientWidth, containerWidth)\r\n }\r\n return {\r\n width: containerWidth,\r\n height: containerHeight\r\n }\r\n }\r\n _getContainerPosition() {\r\n var container = this._positionController.$dragResizeContainer.get(0);\r\n return isWindow(container) ? {\r\n top: 0,\r\n left: 0\r\n } : getOffset(container)\r\n }\r\n _getElementPosition() {\r\n return getOffset(this._draggableElement)\r\n }\r\n _getInnerDelta() {\r\n var containerDimensions = this._getContainerDimensions();\r\n var elementDimensions = this._getElementDimensions();\r\n return {\r\n x: containerDimensions.width - elementDimensions.width,\r\n y: containerDimensions.height - elementDimensions.height\r\n }\r\n }\r\n _getOuterDelta() {\r\n var {\r\n width: width,\r\n height: height\r\n } = this._getElementDimensions();\r\n var outsideDragFactor = this._positionController.outsideDragFactor;\r\n return {\r\n x: width * outsideDragFactor,\r\n y: height * outsideDragFactor\r\n }\r\n }\r\n _getFullDelta() {\r\n var fullDelta = this._getInnerDelta();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n x: fullDelta.x + outerDelta.x,\r\n y: fullDelta.y + outerDelta.y\r\n }\r\n }\r\n _getElementDimensions() {\r\n return {\r\n width: this._draggableElement.offsetWidth,\r\n height: this._draggableElement.offsetHeight\r\n }\r\n }\r\n _getAllowedOffsets() {\r\n var fullDelta = this._getFullDelta();\r\n var isDragAllowed = fullDelta.y >= 0 && fullDelta.x >= 0;\r\n if (!isDragAllowed) {\r\n return {\r\n top: 0,\r\n bottom: 0,\r\n left: 0,\r\n right: 0\r\n }\r\n }\r\n var elementPosition = this._getElementPosition();\r\n var containerPosition = this._getContainerPosition();\r\n var outerDelta = this._getOuterDelta();\r\n return {\r\n top: elementPosition.top - containerPosition.top + outerDelta.y,\r\n bottom: -elementPosition.top + containerPosition.top + fullDelta.y,\r\n left: elementPosition.left - containerPosition.left + outerDelta.x,\r\n right: -elementPosition.left + containerPosition.left + fullDelta.x\r\n }\r\n }\r\n _moveByOffset(offset) {\r\n var currentPosition = locate(this._draggableElement);\r\n var newPosition = {\r\n left: currentPosition.left + offset.left,\r\n top: currentPosition.top + offset.top\r\n };\r\n move(this._draggableElement, newPosition)\r\n }\r\n}\r\nexport default PopupDrag;\r\n","/**\r\n * DevExtreme (esm/ui/resizable.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight,\r\n getInnerWidth,\r\n getInnerHeight,\r\n getWidth,\r\n getHeight\r\n} from \"../core/utils/size\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n pairToObject\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n fitIntoRange,\r\n inRange\r\n} from \"../core/utils/math\";\r\nimport {\r\n isPlainObject,\r\n isFunction,\r\n isWindow\r\n} from \"../core/utils/type\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd\r\n} from \"../events/drag\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nvar RESIZABLE = \"dxResizable\";\r\nvar RESIZABLE_CLASS = \"dx-resizable\";\r\nvar RESIZABLE_RESIZING_CLASS = \"dx-resizable-resizing\";\r\nvar RESIZABLE_HANDLE_CLASS = \"dx-resizable-handle\";\r\nvar RESIZABLE_HANDLE_TOP_CLASS = \"dx-resizable-handle-top\";\r\nvar RESIZABLE_HANDLE_BOTTOM_CLASS = \"dx-resizable-handle-bottom\";\r\nvar RESIZABLE_HANDLE_LEFT_CLASS = \"dx-resizable-handle-left\";\r\nvar RESIZABLE_HANDLE_RIGHT_CLASS = \"dx-resizable-handle-right\";\r\nvar RESIZABLE_HANDLE_CORNER_CLASS = \"dx-resizable-handle-corner\";\r\nvar DRAGSTART_START_EVENT_NAME = addNamespace(dragEventStart, RESIZABLE);\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventMove, RESIZABLE);\r\nvar DRAGSTART_END_EVENT_NAME = addNamespace(dragEventEnd, RESIZABLE);\r\nvar SIDE_BORDER_WIDTH_STYLES = {\r\n left: \"borderLeftWidth\",\r\n top: \"borderTopWidth\",\r\n right: \"borderRightWidth\",\r\n bottom: \"borderBottomWidth\"\r\n};\r\nvar Resizable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n handles: \"all\",\r\n step: \"1\",\r\n stepPrecision: \"simple\",\r\n area: void 0,\r\n minWidth: 30,\r\n maxWidth: 1 / 0,\r\n minHeight: 30,\r\n maxHeight: 1 / 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n roundStepValue: true,\r\n keepAspectRatio: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(RESIZABLE_CLASS)\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderHandles()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderActions()\r\n },\r\n _renderActions: function() {\r\n this._resizeStartAction = this._createActionByOption(\"onResizeStart\");\r\n this._resizeEndAction = this._createActionByOption(\"onResizeEnd\");\r\n this._resizeAction = this._createActionByOption(\"onResize\")\r\n },\r\n _renderHandles: function() {\r\n this._handles = [];\r\n var handles = this.option(\"handles\");\r\n if (\"none\" === handles || !handles) {\r\n return\r\n }\r\n var directions = \"all\" === handles ? [\"top\", \"bottom\", \"left\", \"right\"] : handles.split(\" \");\r\n var activeHandlesMap = {};\r\n each(directions, (index, handleName) => {\r\n activeHandlesMap[handleName] = true;\r\n this._renderHandle(handleName)\r\n });\r\n activeHandlesMap.bottom && activeHandlesMap.right && this._renderHandle(\"corner-bottom-right\");\r\n activeHandlesMap.bottom && activeHandlesMap.left && this._renderHandle(\"corner-bottom-left\");\r\n activeHandlesMap.top && activeHandlesMap.right && this._renderHandle(\"corner-top-right\");\r\n activeHandlesMap.top && activeHandlesMap.left && this._renderHandle(\"corner-top-left\");\r\n this._attachEventHandlers()\r\n },\r\n _renderHandle: function(handleName) {\r\n var $handle = $(\"<div>\").addClass(RESIZABLE_HANDLE_CLASS).addClass(RESIZABLE_HANDLE_CLASS + \"-\" + handleName).appendTo(this.$element());\r\n this._handles.push($handle)\r\n },\r\n _attachEventHandlers: function() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var handlers = {};\r\n handlers[DRAGSTART_START_EVENT_NAME] = this._dragStartHandler.bind(this);\r\n handlers[DRAGSTART_EVENT_NAME] = this._dragHandler.bind(this);\r\n handlers[DRAGSTART_END_EVENT_NAME] = this._dragEndHandler.bind(this);\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.on(handleElement, handlers, {\r\n direction: \"both\",\r\n immediate: true\r\n })\r\n })\r\n },\r\n _detachEventHandlers: function() {\r\n this._handles.forEach(handleElement => {\r\n eventsEngine.off(handleElement)\r\n })\r\n },\r\n _toggleEventHandlers: function(shouldAttachEvents) {\r\n shouldAttachEvents ? this._attachEventHandlers() : this._detachEventHandlers()\r\n },\r\n _getElementSize: function() {\r\n var $element = this.$element();\r\n return \"border-box\" === $element.css(\"boxSizing\") ? {\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element)\r\n } : {\r\n width: getWidth($element),\r\n height: getHeight($element)\r\n }\r\n },\r\n _dragStartHandler: function(e) {\r\n var $element = this.$element();\r\n if ($element.is(\".dx-state-disabled, .dx-state-disabled *\")) {\r\n e.cancel = true;\r\n return\r\n }\r\n this._toggleResizingClass(true);\r\n this._movingSides = this._getMovingSides(e);\r\n this._elementLocation = locate($element);\r\n this._elementSize = this._getElementSize();\r\n this._renderDragOffsets(e);\r\n this._resizeStartAction({\r\n event: e,\r\n width: this._elementSize.width,\r\n height: this._elementSize.height,\r\n handles: this._movingSides\r\n });\r\n e.targetElements = null\r\n },\r\n _toggleResizingClass: function(value) {\r\n this.$element().toggleClass(RESIZABLE_RESIZING_CLASS, value)\r\n },\r\n _renderDragOffsets: function(e) {\r\n var area = this._getArea();\r\n if (!area) {\r\n return\r\n }\r\n var $handle = $(e.target).closest(\".\" + RESIZABLE_HANDLE_CLASS);\r\n var handleWidth = getOuterWidth($handle);\r\n var handleHeight = getOuterHeight($handle);\r\n var handleOffset = $handle.offset();\r\n var areaOffset = area.offset;\r\n var scrollOffset = this._getAreaScrollOffset();\r\n e.maxLeftOffset = this._leftMaxOffset = handleOffset.left - areaOffset.left - scrollOffset.scrollX;\r\n e.maxRightOffset = this._rightMaxOffset = areaOffset.left + area.width - handleOffset.left - handleWidth + scrollOffset.scrollX;\r\n e.maxTopOffset = this._topMaxOffset = handleOffset.top - areaOffset.top - scrollOffset.scrollY;\r\n e.maxBottomOffset = this._bottomMaxOffset = areaOffset.top + area.height - handleOffset.top - handleHeight + scrollOffset.scrollY\r\n },\r\n _getBorderWidth: function($element, direction) {\r\n if (isWindow($element.get(0))) {\r\n return 0\r\n }\r\n var borderWidth = $element.css(SIDE_BORDER_WIDTH_STYLES[direction]);\r\n return parseInt(borderWidth) || 0\r\n },\r\n _proportionate: function(direction, value) {\r\n var size = this._elementSize;\r\n var factor = \"x\" === direction ? size.width / size.height : size.height / size.width;\r\n return value * factor\r\n },\r\n _getProportionalDelta: function(_ref) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref;\r\n var proportionalY = this._proportionate(\"y\", x);\r\n if (proportionalY >= y) {\r\n return {\r\n x: x,\r\n y: proportionalY\r\n }\r\n }\r\n var proportionalX = this._proportionate(\"x\", y);\r\n if (proportionalX >= x) {\r\n return {\r\n x: proportionalX,\r\n y: y\r\n }\r\n }\r\n return {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _getDirectionName: function(axis) {\r\n var sides = this._movingSides;\r\n if (\"x\" === axis) {\r\n return sides.left ? \"left\" : \"right\"\r\n } else {\r\n return sides.top ? \"top\" : \"bottom\"\r\n }\r\n },\r\n _fitIntoArea: function(axis, value) {\r\n var _this;\r\n var directionName = this._getDirectionName(axis);\r\n return Math.min(value, null !== (_this = this[\"_\".concat(directionName, \"MaxOffset\")]) && void 0 !== _this ? _this : 1 / 0)\r\n },\r\n _fitDeltaProportionally: function(delta) {\r\n var fittedDelta = _extends({}, delta);\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n var getWidth = () => size.width + fittedDelta.x;\r\n var getHeight = () => size.height + fittedDelta.y;\r\n var isInArea = axis => fittedDelta[axis] === this._fitIntoArea(axis, fittedDelta[axis]);\r\n var isFittedX = () => inRange(getWidth(), minWidth, maxWidth) && isInArea(\"x\");\r\n var isFittedY = () => inRange(getHeight(), minHeight, maxHeight) && isInArea(\"y\");\r\n if (!isFittedX()) {\r\n var x = this._fitIntoArea(\"x\", fitIntoRange(getWidth(), minWidth, maxWidth) - size.width);\r\n fittedDelta = {\r\n x: x,\r\n y: this._proportionate(\"y\", x)\r\n }\r\n }\r\n if (!isFittedY()) {\r\n var y = this._fitIntoArea(\"y\", fitIntoRange(getHeight(), minHeight, maxHeight) - size.height);\r\n fittedDelta = {\r\n x: this._proportionate(\"x\", y),\r\n y: y\r\n }\r\n }\r\n return isFittedX() && isFittedY() ? fittedDelta : {\r\n x: 0,\r\n y: 0\r\n }\r\n },\r\n _fitDelta: function(_ref2) {\r\n var {\r\n x: x,\r\n y: y\r\n } = _ref2;\r\n var size = this._elementSize;\r\n var {\r\n minWidth: minWidth,\r\n minHeight: minHeight,\r\n maxWidth: maxWidth,\r\n maxHeight: maxHeight\r\n } = this.option();\r\n return {\r\n x: fitIntoRange(size.width + x, minWidth, maxWidth) - size.width,\r\n y: fitIntoRange(size.height + y, minHeight, maxHeight) - size.height\r\n }\r\n },\r\n _getDeltaByOffset: function(offset) {\r\n var sides = this._movingSides;\r\n var shouldKeepAspectRatio = this._isCornerHandler(sides) && this.option(\"keepAspectRatio\");\r\n var delta = {\r\n x: offset.x * (sides.left ? -1 : 1),\r\n y: offset.y * (sides.top ? -1 : 1)\r\n };\r\n if (shouldKeepAspectRatio) {\r\n var proportionalDelta = this._getProportionalDelta(delta);\r\n var fittedProportionalDelta = this._fitDeltaProportionally(proportionalDelta);\r\n delta = fittedProportionalDelta\r\n } else {\r\n var fittedDelta = this._fitDelta(delta);\r\n var roundedFittedDelta = this._roundByStep(fittedDelta);\r\n delta = roundedFittedDelta\r\n }\r\n return delta\r\n },\r\n _updatePosition: function(delta, _ref3) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref3;\r\n var location = this._elementLocation;\r\n var sides = this._movingSides;\r\n var $element = this.$element();\r\n var elementRect = this._getElementSize();\r\n var offsetTop = delta.y * (sides.top ? -1 : 1) - ((elementRect.height || height) - height);\r\n var offsetLeft = delta.x * (sides.left ? -1 : 1) - ((elementRect.width || width) - width);\r\n move($element, {\r\n top: location.top + (sides.top ? offsetTop : 0),\r\n left: location.left + (sides.left ? offsetLeft : 0)\r\n })\r\n },\r\n _dragHandler: function(e) {\r\n var offset = this._getOffset(e);\r\n var delta = this._getDeltaByOffset(offset);\r\n var dimensions = this._updateDimensions(delta);\r\n this._updatePosition(delta, dimensions);\r\n this._triggerResizeAction(e, dimensions)\r\n },\r\n _updateDimensions: function(delta) {\r\n var isAbsoluteSize = size => \"px\" === size.substring(size.length - 2);\r\n var isStepPrecisionStrict = \"strict\" === this.option(\"stepPrecision\");\r\n var size = this._elementSize;\r\n var width = size.width + delta.x;\r\n var height = size.height + delta.y;\r\n var elementStyle = this.$element().get(0).style;\r\n var shouldRenderWidth = delta.x || isStepPrecisionStrict || isAbsoluteSize(elementStyle.width);\r\n var shouldRenderHeight = delta.y || isStepPrecisionStrict || isAbsoluteSize(elementStyle.height);\r\n if (shouldRenderWidth) {\r\n this.option({\r\n width: width\r\n })\r\n }\r\n if (shouldRenderHeight) {\r\n this.option({\r\n height: height\r\n })\r\n }\r\n return {\r\n width: shouldRenderWidth ? width : size.width,\r\n height: shouldRenderHeight ? height : size.height\r\n }\r\n },\r\n _triggerResizeAction: function(e, _ref4) {\r\n var {\r\n width: width,\r\n height: height\r\n } = _ref4;\r\n this._resizeAction({\r\n event: e,\r\n width: this.option(\"width\") || width,\r\n height: this.option(\"height\") || height,\r\n handles: this._movingSides\r\n });\r\n triggerResizeEvent(this.$element())\r\n },\r\n _isCornerHandler: sides => 0 === Object.values(sides).reduce((xor, value) => xor ^ value, 0),\r\n _getOffset: function(e) {\r\n var offset = e.offset;\r\n var sides = this._movingSides;\r\n if (!sides.left && !sides.right) {\r\n offset.x = 0\r\n }\r\n if (!sides.top && !sides.bottom) {\r\n offset.y = 0\r\n }\r\n return offset\r\n },\r\n _roundByStep: function(delta) {\r\n return \"strict\" === this.option(\"stepPrecision\") ? this._roundStrict(delta) : this._roundNotStrict(delta)\r\n },\r\n _getSteps: function() {\r\n return pairToObject(this.option(\"step\"), !this.option(\"roundStepValue\"))\r\n },\r\n _roundNotStrict: function(delta) {\r\n var steps = this._getSteps();\r\n return {\r\n x: delta.x - delta.x % steps.h,\r\n y: delta.y - delta.y % steps.v\r\n }\r\n },\r\n _roundStrict: function(delta) {\r\n var sides = this._movingSides;\r\n var offset = {\r\n x: delta.x * (sides.left ? -1 : 1),\r\n y: delta.y * (sides.top ? -1 : 1)\r\n };\r\n var steps = this._getSteps();\r\n var location = this._elementLocation;\r\n var size = this._elementSize;\r\n var xPos = sides.left ? location.left : location.left + size.width;\r\n var yPos = sides.top ? location.top : location.top + size.height;\r\n var newXShift = (xPos + offset.x) % steps.h;\r\n var newYShift = (yPos + offset.y) % steps.v;\r\n var sign = Math.sign || (x => {\r\n x = +x;\r\n if (0 === x || isNaN(x)) {\r\n return x\r\n }\r\n return x > 0 ? 1 : -1\r\n });\r\n var separatorOffset = (steps, offset) => (1 + .2 * sign(offset)) % 1 * steps;\r\n var isSmallOffset = (offset, steps) => Math.abs(offset) < .2 * steps;\r\n var newOffsetX = offset.x - newXShift;\r\n var newOffsetY = offset.y - newYShift;\r\n if (newXShift > separatorOffset(steps.h, offset.x)) {\r\n newOffsetX += steps.h\r\n }\r\n if (newYShift > separatorOffset(steps.v, offset.y)) {\r\n newOffsetY += steps.v\r\n }\r\n var roundedOffset_x = (sides.left || sides.right) && !isSmallOffset(offset.x, steps.h) ? newOffsetX : 0,\r\n roundedOffset_y = (sides.top || sides.bottom) && !isSmallOffset(offset.y, steps.v) ? newOffsetY : 0;\r\n return {\r\n x: roundedOffset_x * (sides.left ? -1 : 1),\r\n y: roundedOffset_y * (sides.top ? -1 : 1)\r\n }\r\n },\r\n _getMovingSides: function(e) {\r\n var $target = $(e.target);\r\n var hasCornerTopLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-left\");\r\n var hasCornerTopRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-top-right\");\r\n var hasCornerBottomLeftClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-left\");\r\n var hasCornerBottomRightClass = $target.hasClass(RESIZABLE_HANDLE_CORNER_CLASS + \"-bottom-right\");\r\n return {\r\n top: $target.hasClass(RESIZABLE_HANDLE_TOP_CLASS) || hasCornerTopLeftClass || hasCornerTopRightClass,\r\n left: $target.hasClass(RESIZABLE_HANDLE_LEFT_CLASS) || hasCornerTopLeftClass || hasCornerBottomLeftClass,\r\n bottom: $target.hasClass(RESIZABLE_HANDLE_BOTTOM_CLASS) || hasCornerBottomLeftClass || hasCornerBottomRightClass,\r\n right: $target.hasClass(RESIZABLE_HANDLE_RIGHT_CLASS) || hasCornerTopRightClass || hasCornerBottomRightClass\r\n }\r\n },\r\n _getArea: function() {\r\n var area = this.option(\"area\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n if (isPlainObject(area)) {\r\n return this._getAreaFromObject(area)\r\n }\r\n return this._getAreaFromElement(area)\r\n },\r\n _getAreaScrollOffset: function() {\r\n var area = this.option(\"area\");\r\n var isElement = !isFunction(area) && !isPlainObject(area);\r\n var scrollOffset = {\r\n scrollY: 0,\r\n scrollX: 0\r\n };\r\n if (isElement) {\r\n var areaElement = $(area)[0];\r\n if (isWindow(areaElement)) {\r\n scrollOffset.scrollX = areaElement.pageXOffset;\r\n scrollOffset.scrollY = areaElement.pageYOffset\r\n }\r\n }\r\n return scrollOffset\r\n },\r\n _getAreaFromObject: function(area) {\r\n var result = {\r\n width: area.right - area.left,\r\n height: area.bottom - area.top,\r\n offset: {\r\n left: area.left,\r\n top: area.top\r\n }\r\n };\r\n this._correctAreaGeometry(result);\r\n return result\r\n },\r\n _getAreaFromElement: function(area) {\r\n var $area = $(area);\r\n var result;\r\n if ($area.length) {\r\n result = {\r\n width: getInnerWidth($area),\r\n height: getInnerHeight($area),\r\n offset: extend({\r\n top: 0,\r\n left: 0\r\n }, isWindow($area[0]) ? {} : $area.offset())\r\n };\r\n this._correctAreaGeometry(result, $area)\r\n }\r\n return result\r\n },\r\n _correctAreaGeometry: function(result, $area) {\r\n var areaBorderLeft = $area ? this._getBorderWidth($area, \"left\") : 0;\r\n var areaBorderTop = $area ? this._getBorderWidth($area, \"top\") : 0;\r\n result.offset.left += areaBorderLeft + this._getBorderWidth(this.$element(), \"left\");\r\n result.offset.top += areaBorderTop + this._getBorderWidth(this.$element(), \"top\");\r\n result.width -= getOuterWidth(this.$element()) - getInnerWidth(this.$element());\r\n result.height -= getOuterHeight(this.$element()) - getInnerHeight(this.$element())\r\n },\r\n _dragEndHandler: function(e) {\r\n var $element = this.$element();\r\n this._resizeEndAction({\r\n event: e,\r\n width: getOuterWidth($element),\r\n height: getOuterHeight($element),\r\n handles: this._movingSides\r\n });\r\n this._toggleResizingClass(false)\r\n },\r\n _renderWidth: function(width) {\r\n this.option(\"width\", fitIntoRange(width, this.option(\"minWidth\"), this.option(\"maxWidth\")))\r\n },\r\n _renderHeight: function(height) {\r\n this.option(\"height\", fitIntoRange(height, this.option(\"minHeight\"), this.option(\"maxHeight\")))\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"disabled\":\r\n this._toggleEventHandlers(!args.value);\r\n this.callBase(args);\r\n break;\r\n case \"handles\":\r\n this._invalidate();\r\n break;\r\n case \"minWidth\":\r\n case \"maxWidth\":\r\n hasWindow() && this._renderWidth(getOuterWidth(this.$element()));\r\n break;\r\n case \"minHeight\":\r\n case \"maxHeight\":\r\n hasWindow() && this._renderHeight(getOuterHeight(this.$element()));\r\n break;\r\n case \"onResize\":\r\n case \"onResizeStart\":\r\n case \"onResizeEnd\":\r\n this._renderActions();\r\n break;\r\n case \"area\":\r\n case \"stepPrecision\":\r\n case \"step\":\r\n case \"roundStepValue\":\r\n case \"keepAspectRatio\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n this.$element().find(\".\" + RESIZABLE_HANDLE_CLASS).remove()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(RESIZABLE, Resizable);\r\nexport default Resizable;\r\n","/**\r\n * DevExtreme (esm/ui/popup/popup_position_controller.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\r\nvar _excluded = [\"fullScreen\", \"forceApplyBindings\", \"dragOutsideBoundary\", \"dragAndResizeArea\", \"outsideDragFactor\"];\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n originalViewPort\r\n} from \"../../core/utils/view_port\";\r\nimport {\r\n OverlayPositionController\r\n} from \"../overlay/overlay_position_controller\";\r\nvar window = getWindow();\r\nclass PopupPositionController extends OverlayPositionController {\r\n constructor(_ref) {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = _ref, args = _objectWithoutPropertiesLoose(_ref, _excluded);\r\n super(args);\r\n this._props = _extends({}, this._props, {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n });\r\n this._$dragResizeContainer = void 0;\r\n this._outsideDragFactor = void 0;\r\n this._lastPositionBeforeFullScreen = void 0;\r\n this._updateDragResizeContainer();\r\n this._updateOutsideDragFactor()\r\n }\r\n set fullScreen(fullScreen) {\r\n this._props.fullScreen = fullScreen;\r\n if (fullScreen) {\r\n this._fullScreenEnabled()\r\n } else {\r\n this._fullScreenDisabled()\r\n }\r\n }\r\n get $dragResizeContainer() {\r\n return this._$dragResizeContainer\r\n }\r\n get outsideDragFactor() {\r\n return this._outsideDragFactor\r\n }\r\n set dragAndResizeArea(dragAndResizeArea) {\r\n this._props.dragAndResizeArea = dragAndResizeArea;\r\n this._updateDragResizeContainer()\r\n }\r\n set dragOutsideBoundary(dragOutsideBoundary) {\r\n this._props.dragOutsideBoundary = dragOutsideBoundary;\r\n this._updateDragResizeContainer();\r\n this._updateOutsideDragFactor()\r\n }\r\n set outsideDragFactor(outsideDragFactor) {\r\n this._props.outsideDragFactor = outsideDragFactor;\r\n this._updateOutsideDragFactor()\r\n }\r\n updateContainer(containerProp) {\r\n super.updateContainer(containerProp);\r\n this._updateDragResizeContainer()\r\n }\r\n dragHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n resizeHandled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n positionContent() {\r\n if (this._props.fullScreen) {\r\n move(this._$content, {\r\n top: 0,\r\n left: 0\r\n });\r\n this.detectVisualPositionChange()\r\n } else {\r\n var _this$_props$forceApp, _this$_props;\r\n null === (_this$_props$forceApp = (_this$_props = this._props).forceApplyBindings) || void 0 === _this$_props$forceApp ? void 0 : _this$_props$forceApp.call(_this$_props);\r\n if (!this._shouldRenderContentInitialPosition && this._lastPositionBeforeFullScreen) {\r\n move(this._$content, this._lastPositionBeforeFullScreen);\r\n this._lastPositionBeforeFullScreen = void 0;\r\n this.detectVisualPositionChange()\r\n } else {\r\n super.positionContent()\r\n }\r\n }\r\n }\r\n _updateOutsideDragFactor() {\r\n this._outsideDragFactor = this._getOutsideDragFactor()\r\n }\r\n _getOutsideDragFactor() {\r\n if (this._props.dragOutsideBoundary) {\r\n return 1\r\n }\r\n return this._props.outsideDragFactor\r\n }\r\n _updateDragResizeContainer() {\r\n this._$dragResizeContainer = this._getDragResizeContainer()\r\n }\r\n _getDragResizeContainer() {\r\n if (this._props.dragOutsideBoundary) {\r\n return $(window)\r\n }\r\n if (this._props.dragAndResizeArea) {\r\n return $(this._props.dragAndResizeArea)\r\n }\r\n var isContainerDefined = originalViewPort().get(0) || this._props.container;\r\n return isContainerDefined ? this._$markupContainer : $(window)\r\n }\r\n _getVisualContainer() {\r\n if (this._props.fullScreen) {\r\n return $(window)\r\n }\r\n return super._getVisualContainer()\r\n }\r\n _fullScreenEnabled() {\r\n this.restorePositionOnNextRender(false);\r\n this._lastPositionBeforeFullScreen = this._visualPosition\r\n }\r\n _fullScreenDisabled() {\r\n this.restorePositionOnNextRender(false)\r\n }\r\n}\r\nexport {\r\n PopupPositionController\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/popup/ui.popup.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../../core/templates/empty_template\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n camelize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getVisibleHeight,\r\n addOffsetToMaxHeight,\r\n addOffsetToMinHeight,\r\n getVerticalOffsets,\r\n getOuterWidth,\r\n getWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../../events/visibility_change\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport PopupDrag from \"./popup_drag\";\r\nimport Resizable from \"../resizable\";\r\nimport Button from \"../button\";\r\nimport Overlay from \"../overlay/ui.overlay\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"../themes\";\r\nimport \"../toolbar/ui.toolbar.base\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nimport * as zIndexPool from \"../overlay/z_index\";\r\nimport {\r\n PopupPositionController\r\n} from \"./popup_position_controller\";\r\nvar window = getWindow();\r\nvar POPUP_CLASS = \"dx-popup\";\r\nvar POPUP_WRAPPER_CLASS = \"dx-popup-wrapper\";\r\nvar POPUP_FULL_SCREEN_CLASS = \"dx-popup-fullscreen\";\r\nvar POPUP_FULL_SCREEN_WIDTH_CLASS = \"dx-popup-fullscreen-width\";\r\nvar POPUP_NORMAL_CLASS = \"dx-popup-normal\";\r\nvar POPUP_CONTENT_CLASS = \"dx-popup-content\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar POPUP_DRAGGABLE_CLASS = \"dx-popup-draggable\";\r\nvar POPUP_TITLE_CLASS = \"dx-popup-title\";\r\nvar POPUP_TITLE_CLOSEBUTTON_CLASS = \"dx-closebutton\";\r\nvar POPUP_BOTTOM_CLASS = \"dx-popup-bottom\";\r\nvar POPUP_HAS_CLOSE_BUTTON_CLASS = \"dx-has-close-button\";\r\nvar TEMPLATE_WRAPPER_CLASS = \"dx-template-wrapper\";\r\nvar POPUP_CONTENT_FLEX_HEIGHT_CLASS = \"dx-popup-flex-height\";\r\nvar POPUP_CONTENT_INHERIT_HEIGHT_CLASS = \"dx-popup-inherit-height\";\r\nvar ALLOWED_TOOLBAR_ITEM_ALIASES = [\"cancel\", \"clear\", \"done\"];\r\nvar BUTTON_DEFAULT_TYPE = \"default\";\r\nvar BUTTON_NORMAL_TYPE = \"normal\";\r\nvar BUTTON_TEXT_MODE = \"text\";\r\nvar BUTTON_CONTAINED_MODE = \"contained\";\r\nvar IS_OLD_SAFARI = browser.safari && compareVersions(browser.version, [11]) < 0;\r\nvar HEIGHT_STRATEGIES = {\r\n static: \"\",\r\n inherit: POPUP_CONTENT_INHERIT_HEIGHT_CLASS,\r\n flex: POPUP_CONTENT_FLEX_HEIGHT_CLASS\r\n};\r\nvar getButtonPlace = name => {\r\n var device = devices.current();\r\n var platform = device.platform;\r\n var toolbar = \"bottom\";\r\n var location = \"before\";\r\n if (\"ios\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n toolbar = \"top\";\r\n break;\r\n case \"clear\":\r\n toolbar = \"top\";\r\n location = \"after\";\r\n break;\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n } else if (\"android\" === platform) {\r\n switch (name) {\r\n case \"cancel\":\r\n case \"done\":\r\n location = \"after\"\r\n }\r\n }\r\n return {\r\n toolbar: toolbar,\r\n location: location\r\n }\r\n};\r\nvar Popup = Overlay.inherit({\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n upArrow: e => {\r\n var _this$_drag;\r\n null === (_this$_drag = this._drag) || void 0 === _this$_drag ? void 0 : _this$_drag.moveUp(e)\r\n },\r\n downArrow: e => {\r\n var _this$_drag2;\r\n null === (_this$_drag2 = this._drag) || void 0 === _this$_drag2 ? void 0 : _this$_drag2.moveDown(e)\r\n },\r\n leftArrow: e => {\r\n var _this$_drag3;\r\n null === (_this$_drag3 = this._drag) || void 0 === _this$_drag3 ? void 0 : _this$_drag3.moveLeft(e)\r\n },\r\n rightArrow: e => {\r\n var _this$_drag4;\r\n null === (_this$_drag4 = this._drag) || void 0 === _this$_drag4 ? void 0 : _this$_drag4.moveRight(e)\r\n }\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n fullScreen: false,\r\n title: \"\",\r\n showTitle: true,\r\n titleTemplate: \"title\",\r\n onTitleRendered: null,\r\n dragOutsideBoundary: false,\r\n dragEnabled: false,\r\n dragAndResizeArea: void 0,\r\n outsideDragFactor: 0,\r\n onResizeStart: null,\r\n onResize: null,\r\n onResizeEnd: null,\r\n resizeEnabled: false,\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n bottomTemplate: \"bottom\",\r\n useDefaultToolbarButtons: false,\r\n useFlatToolbarButtons: false,\r\n autoResizeEnabled: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n animation: this._iosAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"android\"\r\n },\r\n options: {\r\n animation: this._androidAnimation\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n showCloseButton: true\r\n }\r\n }, {\r\n device: function(_device) {\r\n return \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n dragEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useDefaultToolbarButtons: true,\r\n useFlatToolbarButtons: true,\r\n showCloseButton: false\r\n }\r\n }])\r\n },\r\n _iosAnimation: {\r\n show: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n },\r\n to: {\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 400,\r\n from: {\r\n opacity: 1,\r\n position: {\r\n my: \"center\",\r\n at: \"center\"\r\n }\r\n },\r\n to: {\r\n opacity: 1,\r\n position: {\r\n my: \"top\",\r\n at: \"bottom\"\r\n }\r\n }\r\n }\r\n },\r\n _androidAnimation: function() {\r\n return this.option(\"fullScreen\") ? {\r\n show: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: \"30%\",\r\n opacity: 0\r\n },\r\n to: {\r\n top: 0,\r\n opacity: 1\r\n }\r\n },\r\n hide: {\r\n type: \"slide\",\r\n duration: 300,\r\n from: {\r\n top: 0,\r\n opacity: 1\r\n },\r\n to: {\r\n top: \"30%\",\r\n opacity: 0\r\n }\r\n }\r\n } : {\r\n show: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n duration: 400,\r\n from: 1,\r\n to: 0\r\n }\r\n }\r\n },\r\n _init: function() {\r\n var popupWrapperClassExternal = this.option(\"_wrapperClassExternal\");\r\n var popupWrapperClasses = popupWrapperClassExternal ? \"\".concat(POPUP_WRAPPER_CLASS, \" \").concat(popupWrapperClassExternal) : POPUP_WRAPPER_CLASS;\r\n this.callBase();\r\n this._updateResizeCallbackSkipCondition();\r\n this.$element().addClass(POPUP_CLASS);\r\n this.$wrapper().addClass(popupWrapperClasses);\r\n this._$popupContent = this._$content.wrapInner($(\"<div>\").addClass(POPUP_CONTENT_CLASS)).children().eq(0)\r\n },\r\n _render: function() {\r\n var isFullscreen = this.option(\"fullScreen\");\r\n this._toggleFullScreenClass(isFullscreen);\r\n this.callBase()\r\n },\r\n _toggleFullScreenClass: function(value) {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_CLASS, value).toggleClass(POPUP_NORMAL_CLASS, !value)\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new EmptyTemplate,\r\n bottom: new EmptyTemplate\r\n })\r\n },\r\n _getActionsList: function() {\r\n return this.callBase().concat([\"onResizeStart\", \"onResize\", \"onResizeEnd\"])\r\n },\r\n _contentResizeHandler: function(entry) {\r\n if (!this._shouldSkipContentResize(entry)) {\r\n this._renderGeometry({\r\n shouldOnlyReposition: true\r\n })\r\n }\r\n },\r\n _doesShowAnimationChangeDimensions: function() {\r\n var animation = this.option(\"animation\");\r\n return [\"to\", \"from\"].some(prop => {\r\n var _animation$show;\r\n var config = null === animation || void 0 === animation ? void 0 : null === (_animation$show = animation.show) || void 0 === _animation$show ? void 0 : _animation$show[prop];\r\n return isObject(config) && (\"width\" in config || \"height\" in config)\r\n })\r\n },\r\n _updateResizeCallbackSkipCondition() {\r\n var doesShowAnimationChangeDimensions = this._doesShowAnimationChangeDimensions();\r\n this._shouldSkipContentResize = entry => doesShowAnimationChangeDimensions && this._showAnimationProcessing || this._areContentDimensionsRendered(entry)\r\n },\r\n _observeContentResize: function(shouldObserve) {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n var contentElement = this._$content.get(0);\r\n if (shouldObserve) {\r\n resizeObserverSingleton.observe(contentElement, entry => {\r\n this._contentResizeHandler(entry)\r\n })\r\n } else {\r\n resizeObserverSingleton.unobserve(contentElement)\r\n }\r\n },\r\n _areContentDimensionsRendered: function(entry) {\r\n var _entry$contentBoxSize, _this$_renderedDimens3, _this$_renderedDimens4;\r\n var contentBox = null === (_entry$contentBoxSize = entry.contentBoxSize) || void 0 === _entry$contentBoxSize ? void 0 : _entry$contentBoxSize[0];\r\n if (contentBox) {\r\n var _this$_renderedDimens, _this$_renderedDimens2;\r\n return parseInt(contentBox.inlineSize, 10) === (null === (_this$_renderedDimens = this._renderedDimensions) || void 0 === _this$_renderedDimens ? void 0 : _this$_renderedDimens.width) && parseInt(contentBox.blockSize, 10) === (null === (_this$_renderedDimens2 = this._renderedDimensions) || void 0 === _this$_renderedDimens2 ? void 0 : _this$_renderedDimens2.height)\r\n }\r\n var contentRect = entry.contentRect;\r\n return parseInt(contentRect.width, 10) === (null === (_this$_renderedDimens3 = this._renderedDimensions) || void 0 === _this$_renderedDimens3 ? void 0 : _this$_renderedDimens3.width) && parseInt(contentRect.height, 10) === (null === (_this$_renderedDimens4 = this._renderedDimensions) || void 0 === _this$_renderedDimens4 ? void 0 : _this$_renderedDimens4.height)\r\n },\r\n _renderContentImpl: function() {\r\n this._renderTitle();\r\n this.callBase();\r\n this._renderResize();\r\n this._renderBottom()\r\n },\r\n _renderTitle: function() {\r\n var items = this._getToolbarItems(\"top\");\r\n var titleText = this.option(\"title\");\r\n var showTitle = this.option(\"showTitle\");\r\n if (showTitle && !!titleText) {\r\n items.unshift({\r\n location: devices.current().ios ? \"center\" : \"before\",\r\n text: titleText\r\n })\r\n }\r\n if (showTitle || items.length > 0) {\r\n this._$title && this._$title.remove();\r\n var $title = $(\"<div>\").addClass(POPUP_TITLE_CLASS).insertBefore(this.$content());\r\n this._$title = this._renderTemplateByType(\"titleTemplate\", items, $title).addClass(POPUP_TITLE_CLASS);\r\n this._renderDrag();\r\n this._executeTitleRenderAction(this._$title);\r\n this._$title.toggleClass(POPUP_HAS_CLOSE_BUTTON_CLASS, this._hasCloseButton())\r\n } else if (this._$title) {\r\n this._$title.detach()\r\n }\r\n },\r\n _renderTemplateByType: function(optionName, data, $container, additionalToolbarOptions) {\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n useDefaultToolbarButtons: useDefaultToolbarButtons,\r\n useFlatToolbarButtons: useFlatToolbarButtons,\r\n disabled: disabled\r\n } = this.option();\r\n var template = this._getTemplateByOption(optionName);\r\n var toolbarTemplate = template instanceof EmptyTemplate;\r\n if (toolbarTemplate) {\r\n var integrationOptions = extend({}, this.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\", \"title\"]\r\n });\r\n var toolbarOptions = extend(additionalToolbarOptions, {\r\n items: data,\r\n rtlEnabled: rtlEnabled,\r\n useDefaultButtons: useDefaultToolbarButtons,\r\n useFlatButtons: useFlatToolbarButtons,\r\n disabled: disabled,\r\n integrationOptions: integrationOptions\r\n });\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: {\r\n widget: this._getToolbarName(),\r\n options: toolbarOptions\r\n }\r\n });\r\n var $toolbar = $container.children(\"div\");\r\n $container.replaceWith($toolbar);\r\n return $toolbar\r\n } else {\r\n var $result = $(template.render({\r\n container: getPublicElement($container)\r\n }));\r\n if ($result.hasClass(TEMPLATE_WRAPPER_CLASS)) {\r\n $container.replaceWith($result);\r\n $container = $result\r\n }\r\n return $container\r\n }\r\n },\r\n _getToolbarName: function() {\r\n return \"dxToolbarBase\"\r\n },\r\n _renderVisibilityAnimate: function(visible) {\r\n this._observeContentResize(visible);\r\n return this.callBase(visible)\r\n },\r\n _executeTitleRenderAction: function($titleElement) {\r\n this._getTitleRenderAction()({\r\n titleElement: getPublicElement($titleElement)\r\n })\r\n },\r\n _getTitleRenderAction: function() {\r\n return this._titleRenderAction || this._createTitleRenderAction()\r\n },\r\n _createTitleRenderAction: function() {\r\n return this._titleRenderAction = this._createActionByOption(\"onTitleRendered\", {\r\n element: this.element(),\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _getCloseButton: function() {\r\n return {\r\n toolbar: \"top\",\r\n location: \"after\",\r\n template: this._getCloseButtonRenderer()\r\n }\r\n },\r\n _getCloseButtonRenderer: function() {\r\n return (_, __, container) => {\r\n var $button = $(\"<div>\").addClass(POPUP_TITLE_CLOSEBUTTON_CLASS);\r\n this._createComponent($button, Button, {\r\n icon: \"close\",\r\n onClick: this._createToolbarItemAction(void 0),\r\n stylingMode: \"text\",\r\n integrationOptions: {}\r\n });\r\n $(container).append($button)\r\n }\r\n },\r\n _getToolbarItems: function(toolbar) {\r\n var toolbarItems = this.option(\"toolbarItems\");\r\n var toolbarsItems = [];\r\n this._toolbarItemClasses = [];\r\n var currentPlatform = devices.current().platform;\r\n var index = 0;\r\n each(toolbarItems, (_, data) => {\r\n var isShortcut = isDefined(data.shortcut);\r\n var item = isShortcut ? getButtonPlace(data.shortcut) : data;\r\n if (isShortcut && \"ios\" === currentPlatform && index < 2) {\r\n item.toolbar = \"top\";\r\n index++\r\n }\r\n item.toolbar = data.toolbar || item.toolbar || \"top\";\r\n if (item && item.toolbar === toolbar) {\r\n if (isShortcut) {\r\n extend(item, {\r\n location: data.location\r\n }, this._getToolbarItemByAlias(data))\r\n }\r\n var isLTROrder = \"generic\" === currentPlatform;\r\n if (\"done\" === data.shortcut && isLTROrder || \"cancel\" === data.shortcut && !isLTROrder) {\r\n toolbarsItems.unshift(item)\r\n } else {\r\n toolbarsItems.push(item)\r\n }\r\n }\r\n });\r\n if (\"top\" === toolbar && this._hasCloseButton()) {\r\n toolbarsItems.push(this._getCloseButton())\r\n }\r\n return toolbarsItems\r\n },\r\n _hasCloseButton() {\r\n return this.option(\"showCloseButton\") && this.option(\"showTitle\")\r\n },\r\n _getLocalizationKey: itemType => \"done\" === itemType.toLowerCase() ? \"OK\" : camelize(itemType, true),\r\n _getToolbarItemByAlias: function(data) {\r\n var that = this;\r\n var itemType = data.shortcut;\r\n if (!ALLOWED_TOOLBAR_ITEM_ALIASES.includes(itemType)) {\r\n return false\r\n }\r\n var itemConfig = extend({\r\n text: messageLocalization.format(this._getLocalizationKey(itemType)),\r\n onClick: this._createToolbarItemAction(data.onClick),\r\n integrationOptions: {},\r\n type: that.option(\"useDefaultToolbarButtons\") ? BUTTON_DEFAULT_TYPE : BUTTON_NORMAL_TYPE,\r\n stylingMode: that.option(\"useFlatToolbarButtons\") ? BUTTON_TEXT_MODE : BUTTON_CONTAINED_MODE\r\n }, data.options || {});\r\n var itemClass = POPUP_CLASS + \"-\" + itemType;\r\n this._toolbarItemClasses.push(itemClass);\r\n return {\r\n template: function(_, __, container) {\r\n var $toolbarItem = $(\"<div>\").addClass(itemClass).appendTo(container);\r\n that._createComponent($toolbarItem, Button, itemConfig)\r\n }\r\n }\r\n },\r\n _createToolbarItemAction: function(clickAction) {\r\n return this._createAction(clickAction, {\r\n afterExecute: function(e) {\r\n e.component.hide()\r\n }\r\n })\r\n },\r\n _renderBottom: function() {\r\n var items = this._getToolbarItems(\"bottom\");\r\n if (items.length) {\r\n this._$bottom && this._$bottom.remove();\r\n var $bottom = $(\"<div>\").addClass(POPUP_BOTTOM_CLASS).insertAfter(this.$content());\r\n this._$bottom = this._renderTemplateByType(\"bottomTemplate\", items, $bottom, {\r\n compactMode: true\r\n }).addClass(POPUP_BOTTOM_CLASS);\r\n this._toggleClasses()\r\n } else {\r\n this._$bottom && this._$bottom.detach()\r\n }\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase(...arguments);\r\n this.$content().toggleClass(DISABLED_STATE_CLASS, Boolean(value))\r\n },\r\n _toggleClasses: function() {\r\n var aliases = ALLOWED_TOOLBAR_ITEM_ALIASES;\r\n each(aliases, (_, alias) => {\r\n var className = POPUP_CLASS + \"-\" + alias;\r\n if (this._toolbarItemClasses.includes(className)) {\r\n this.$wrapper().addClass(className + \"-visible\");\r\n this._$bottom.addClass(className)\r\n } else {\r\n this.$wrapper().removeClass(className + \"-visible\");\r\n this._$bottom.removeClass(className)\r\n }\r\n })\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n this.callBase(isFocused, $element);\r\n if (isFocused && !zIndexPool.isLastZIndexInStack(this._zIndex)) {\r\n var zIndex = zIndexPool.create(this._zIndexInitValue());\r\n zIndexPool.remove(this._zIndex);\r\n this._zIndex = zIndex;\r\n this._$wrapper.css(\"zIndex\", zIndex);\r\n this._$content.css(\"zIndex\", zIndex)\r\n }\r\n },\r\n _getPositionControllerConfig() {\r\n var {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n } = this.option();\r\n return extend({}, this.callBase(), {\r\n fullScreen: fullScreen,\r\n forceApplyBindings: forceApplyBindings,\r\n dragOutsideBoundary: dragOutsideBoundary,\r\n dragAndResizeArea: dragAndResizeArea,\r\n outsideDragFactor: outsideDragFactor\r\n })\r\n },\r\n _initPositionController() {\r\n this._positionController = new PopupPositionController(this._getPositionControllerConfig())\r\n },\r\n _getDragTarget: function() {\r\n return this.topToolbar()\r\n },\r\n _renderGeometry: function(options) {\r\n var {\r\n visible: visible,\r\n useResizeObserver: useResizeObserver\r\n } = this.option();\r\n if (visible && hasWindow()) {\r\n var isAnimated = this._showAnimationProcessing;\r\n var shouldRepeatAnimation = isAnimated && !(null !== options && void 0 !== options && options.forceStopAnimation) && useResizeObserver;\r\n this._isAnimationPaused = shouldRepeatAnimation || void 0;\r\n this._stopAnimation();\r\n if (null !== options && void 0 !== options && options.shouldOnlyReposition) {\r\n this._renderPosition(false)\r\n } else {\r\n this._renderGeometryImpl(null === options || void 0 === options ? void 0 : options.isDimensionChange)\r\n }\r\n if (shouldRepeatAnimation) {\r\n this._animateShowing();\r\n this._isAnimationPaused = void 0\r\n }\r\n }\r\n },\r\n _cacheDimensions: function() {\r\n if (!this.option(\"useResizeObserver\")) {\r\n return\r\n }\r\n this._renderedDimensions = {\r\n width: parseInt(getWidth(this._$content), 10),\r\n height: parseInt(getHeight(this._$content), 10)\r\n }\r\n },\r\n _renderGeometryImpl: function() {\r\n var isDimensionChange = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n if (!isDimensionChange) {\r\n this._resetContentHeight()\r\n }\r\n this.callBase();\r\n this._cacheDimensions();\r\n this._setContentHeight()\r\n },\r\n _resetContentHeight: function() {\r\n var height = this._getOptionValue(\"height\");\r\n if (\"auto\" === height) {\r\n this.$content().css({\r\n height: \"auto\",\r\n maxHeight: \"none\"\r\n })\r\n }\r\n },\r\n _renderDrag: function() {\r\n var $dragTarget = this._getDragTarget();\r\n var dragEnabled = this.option(\"dragEnabled\");\r\n if (!$dragTarget) {\r\n return\r\n }\r\n var config = {\r\n dragEnabled: dragEnabled,\r\n handle: $dragTarget.get(0),\r\n draggableElement: this._$content.get(0),\r\n positionController: this._positionController\r\n };\r\n if (this._drag) {\r\n this._drag.init(config)\r\n } else {\r\n this._drag = new PopupDrag(config)\r\n }\r\n this.$overlayContent().toggleClass(POPUP_DRAGGABLE_CLASS, dragEnabled)\r\n },\r\n _renderResize: function() {\r\n this._resizable = this._createComponent(this._$content, Resizable, {\r\n handles: this.option(\"resizeEnabled\") ? \"all\" : \"none\",\r\n onResizeEnd: e => {\r\n this._resizeEndHandler(e);\r\n this._observeContentResize(true)\r\n },\r\n onResize: e => {\r\n this._setContentHeight();\r\n this._actions.onResize(e)\r\n },\r\n onResizeStart: e => {\r\n this._observeContentResize(false);\r\n this._actions.onResizeStart(e)\r\n },\r\n minHeight: 100,\r\n minWidth: 100,\r\n area: this._positionController.$dragResizeContainer,\r\n keepAspectRatio: false\r\n })\r\n },\r\n _resizeEndHandler: function(e) {\r\n var width = this._resizable.option(\"width\");\r\n var height = this._resizable.option(\"height\");\r\n width && this._setOptionWithoutOptionChange(\"width\", width);\r\n height && this._setOptionWithoutOptionChange(\"height\", height);\r\n this._cacheDimensions();\r\n this._positionController.resizeHandled();\r\n this._positionController.detectVisualPositionChange(e.event);\r\n this._actions.onResizeEnd(e)\r\n },\r\n _setContentHeight: function() {\r\n (this.option(\"forceApplyBindings\") || noop)();\r\n var overlayContent = this.$overlayContent().get(0);\r\n var currentHeightStrategyClass = this._chooseHeightStrategy(overlayContent);\r\n this.$content().css(this._getHeightCssStyles(currentHeightStrategyClass, overlayContent));\r\n this._setHeightClasses(this.$overlayContent(), currentHeightStrategyClass)\r\n },\r\n _heightStrategyChangeOffset: function(currentHeightStrategyClass, popupVerticalPaddings) {\r\n return currentHeightStrategyClass === HEIGHT_STRATEGIES.flex ? -popupVerticalPaddings : 0\r\n },\r\n _chooseHeightStrategy: function(overlayContent) {\r\n var isAutoWidth = \"auto\" === overlayContent.style.width || \"\" === overlayContent.style.width;\r\n var currentHeightStrategyClass = HEIGHT_STRATEGIES.static;\r\n if (this._isAutoHeight() && this.option(\"autoResizeEnabled\")) {\r\n if (isAutoWidth || IS_OLD_SAFARI) {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.inherit\r\n } else {\r\n currentHeightStrategyClass = HEIGHT_STRATEGIES.flex\r\n }\r\n }\r\n return currentHeightStrategyClass\r\n },\r\n _getHeightCssStyles: function(currentHeightStrategyClass, overlayContent) {\r\n var cssStyles = {};\r\n var contentMaxHeight = this._getOptionValue(\"maxHeight\", overlayContent);\r\n var contentMinHeight = this._getOptionValue(\"minHeight\", overlayContent);\r\n var popupHeightParts = this._splitPopupHeight();\r\n var toolbarsAndVerticalOffsetsHeight = popupHeightParts.header + popupHeightParts.footer + popupHeightParts.contentVerticalOffsets + popupHeightParts.popupVerticalOffsets + this._heightStrategyChangeOffset(currentHeightStrategyClass, popupHeightParts.popupVerticalPaddings);\r\n if (currentHeightStrategyClass === HEIGHT_STRATEGIES.static) {\r\n if (!this._isAutoHeight() || contentMaxHeight || contentMinHeight) {\r\n var overlayHeight = this.option(\"fullScreen\") ? Math.min(getBoundingRect(overlayContent).height, getWindow().innerHeight) : getBoundingRect(overlayContent).height;\r\n var contentHeight = overlayHeight - toolbarsAndVerticalOffsetsHeight;\r\n cssStyles = {\r\n height: Math.max(0, contentHeight),\r\n minHeight: \"auto\",\r\n maxHeight: \"auto\"\r\n }\r\n }\r\n } else {\r\n var container = $(this._positionController.$visualContainer).get(0);\r\n var maxHeightValue = addOffsetToMaxHeight(contentMaxHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n var minHeightValue = addOffsetToMinHeight(contentMinHeight, -toolbarsAndVerticalOffsetsHeight, container);\r\n cssStyles = {\r\n height: \"auto\",\r\n minHeight: minHeightValue,\r\n maxHeight: maxHeightValue\r\n }\r\n }\r\n return cssStyles\r\n },\r\n _setHeightClasses: function($container, currentClass) {\r\n var excessClasses = \"\";\r\n for (var name in HEIGHT_STRATEGIES) {\r\n if (HEIGHT_STRATEGIES[name] !== currentClass) {\r\n excessClasses += \" \" + HEIGHT_STRATEGIES[name]\r\n }\r\n }\r\n $container.removeClass(excessClasses).addClass(currentClass)\r\n },\r\n _isAutoHeight: function() {\r\n return \"auto\" === this.$overlayContent().get(0).style.height\r\n },\r\n _splitPopupHeight: function() {\r\n var topToolbar = this.topToolbar();\r\n var bottomToolbar = this.bottomToolbar();\r\n return {\r\n header: getVisibleHeight(topToolbar && topToolbar.get(0)),\r\n footer: getVisibleHeight(bottomToolbar && bottomToolbar.get(0)),\r\n contentVerticalOffsets: getVerticalOffsets(this.$overlayContent().get(0), true),\r\n popupVerticalOffsets: getVerticalOffsets(this.$content().get(0), true),\r\n popupVerticalPaddings: getVerticalOffsets(this.$content().get(0), false)\r\n }\r\n },\r\n _isAllWindowCovered: function() {\r\n return this.callBase() || this.option(\"fullScreen\")\r\n },\r\n _renderDimensions: function() {\r\n if (this.option(\"fullScreen\")) {\r\n this.$overlayContent().css({\r\n width: \"100%\",\r\n height: \"100%\",\r\n minWidth: \"\",\r\n maxWidth: \"\",\r\n minHeight: \"\",\r\n maxHeight: \"\"\r\n })\r\n } else {\r\n this.callBase()\r\n }\r\n if (hasWindow()) {\r\n this._renderFullscreenWidthClass()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderGeometry({\r\n isDimensionChange: true\r\n })\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._observeContentResize(false)\r\n },\r\n _renderFullscreenWidthClass: function() {\r\n this.$overlayContent().toggleClass(POPUP_FULL_SCREEN_WIDTH_CLASS, getOuterWidth(this.$overlayContent()) === getWidth(window))\r\n },\r\n refreshPosition: function() {\r\n this._renderPosition()\r\n },\r\n _optionChanged: function(args) {\r\n var _this$_resizable2;\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"disabled\":\r\n this.callBase(args);\r\n this._renderTitle();\r\n this._renderBottom();\r\n break;\r\n case \"animation\":\r\n this._updateResizeCallbackSkipCondition();\r\n break;\r\n case \"showTitle\":\r\n case \"title\":\r\n case \"titleTemplate\":\r\n this._renderTitle();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"bottomTemplate\":\r\n this._renderBottom();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"container\":\r\n this.callBase(args);\r\n if (this.option(\"resizeEnabled\")) {\r\n var _this$_resizable;\r\n null === (_this$_resizable = this._resizable) || void 0 === _this$_resizable ? void 0 : _this$_resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"width\":\r\n case \"height\":\r\n this.callBase(args);\r\n null === (_this$_resizable2 = this._resizable) || void 0 === _this$_resizable2 ? void 0 : _this$_resizable2.option(args.name, args.value);\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderAction(args.value);\r\n break;\r\n case \"toolbarItems\":\r\n case \"useDefaultToolbarButtons\":\r\n case \"useFlatToolbarButtons\":\r\n var shouldRenderGeometry = !args.fullName.match(/^toolbarItems((\\[\\d+\\])(\\.(options|visible).*)?)?$/);\r\n this._renderTitle();\r\n this._renderBottom();\r\n if (shouldRenderGeometry) {\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent())\r\n }\r\n break;\r\n case \"dragEnabled\":\r\n this._renderDrag();\r\n break;\r\n case \"dragAndResizeArea\":\r\n this._positionController.dragAndResizeArea = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n this._positionController.positionContent();\r\n break;\r\n case \"dragOutsideBoundary\":\r\n this._positionController.dragOutsideBoundary = value;\r\n if (this.option(\"resizeEnabled\")) {\r\n this._resizable.option(\"area\", this._positionController.$dragResizeContainer)\r\n }\r\n break;\r\n case \"outsideDragFactor\":\r\n this._positionController.outsideDragFactor = value;\r\n break;\r\n case \"resizeEnabled\":\r\n this._renderResize();\r\n this._renderGeometry();\r\n break;\r\n case \"autoResizeEnabled\":\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"fullScreen\":\r\n this._positionController.fullScreen = args.value;\r\n this._toggleFullScreenClass(args.value);\r\n this._toggleSafariScrolling();\r\n this._renderGeometry();\r\n triggerResizeEvent(this.$overlayContent());\r\n break;\r\n case \"showCloseButton\":\r\n this._renderTitle();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n bottomToolbar: function() {\r\n return this._$bottom\r\n },\r\n topToolbar: function() {\r\n return this._$title\r\n },\r\n $content: function() {\r\n return this._$popupContent\r\n },\r\n content: function() {\r\n return getPublicElement(this.$content())\r\n },\r\n $overlayContent: function() {\r\n return this._$content\r\n }\r\n});\r\nregisterComponent(\"dxPopup\", Popup);\r\nexport default Popup;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.pull_down.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar PULLDOWN_RELEASE_TIME = 400;\r\nvar PullDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$refreshingText = scrollView._$refreshingText;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$pullDownText = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"<div>\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"<div>\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"<div>\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n update: function() {\r\n this.callBase();\r\n this._setTopPocketOffset()\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n _setTopPocketOffset: function() {\r\n this._$topPocket.css({\r\n top: -this._topPocketSize\r\n })\r\n },\r\n handleEnd: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this.callBase();\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_READY) {\r\n this._setPullDownOffset(this._topPocketSize);\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n this._pullDownRefreshTimeout = setTimeout(function() {\r\n this._pullDownRefreshing()\r\n }.bind(this), 400)\r\n }\r\n },\r\n _setPullDownOffset: function(offset) {\r\n move(this._$topPocket, {\r\n top: offset\r\n });\r\n move(this._$scrollViewContent, {\r\n top: offset\r\n })\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = (this._location || 0) - currentLocation;\r\n this._location = currentLocation;\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= this._topPocketSize\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n pullDownEnable: function(enabled) {\r\n if (enabled) {\r\n this._updateDimensions();\r\n this._setTopPocketOffset()\r\n }\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n if (this._state === STATE_LOADING) {\r\n this._state = STATE_RELEASED\r\n }\r\n this._releaseTimeout = setTimeout(function() {\r\n this._setPullDownOffset(0);\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), PULLDOWN_RELEASE_TIME);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default PullDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.native.swipe_down.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport {\r\n eventData\r\n} from \"../../events/utils/index\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-refreshing\";\r\nvar PULLDOWN_ICON_CLASS = \"dx-icon-pulldown\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_TOUCHED = 4;\r\nvar STATE_PULLED = 5;\r\nvar SwipeDownNativeScrollViewStrategy = NativeStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$scrollViewContent = $(scrollView.content());\r\n this._$container = $(scrollView.container());\r\n this._initCallbacks();\r\n this._location = 0\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this.callBase();\r\n this._renderPullDown();\r\n this._releaseState()\r\n },\r\n _renderPullDown: function() {\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n this._$icon = $(\"<div>\").addClass(PULLDOWN_ICON_CLASS);\r\n this._$pullDown.empty().append(this._$icon).append($loadContainer.append($loadIndicator))\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._releasePullDown();\r\n this._updateDimensions()\r\n },\r\n _releasePullDown: function() {\r\n this._$pullDown.css({\r\n opacity: 0\r\n })\r\n },\r\n _updateDimensions: function() {\r\n this.callBase();\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n var contentEl = this._$scrollViewContent.get(0);\r\n var containerEl = this._$container.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - containerEl.clientHeight, 0)\r\n },\r\n _allowedDirections: function() {\r\n var allowedDirections = this.callBase();\r\n allowedDirections.vertical = allowedDirections.vertical || this._pullDownEnabled;\r\n return allowedDirections\r\n },\r\n handleInit: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_RELEASED && 0 === this._location) {\r\n this._startClientY = eventData(e.originalEvent).y;\r\n this._state = STATE_TOUCHED\r\n }\r\n },\r\n handleMove: function(e) {\r\n this.callBase(e);\r\n this._deltaY = eventData(e.originalEvent).y - this._startClientY;\r\n if (this._state === STATE_TOUCHED) {\r\n if (this._pullDownEnabled && this._deltaY > 0) {\r\n this._state = STATE_PULLED\r\n } else {\r\n this._complete()\r\n }\r\n }\r\n if (this._state === STATE_PULLED) {\r\n e.preventDefault();\r\n this._movePullDown()\r\n }\r\n },\r\n _movePullDown: function() {\r\n var pullDownHeight = this._getPullDownHeight();\r\n var top = Math.min(3 * pullDownHeight, this._deltaY + this._getPullDownStartPosition());\r\n var angle = 180 * top / pullDownHeight / 3;\r\n this._$pullDown.css({\r\n opacity: 1\r\n }).toggleClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS, top < pullDownHeight);\r\n move(this._$pullDown, {\r\n top: top\r\n });\r\n this._$icon.css({\r\n transform: \"rotate(\" + angle + \"deg)\"\r\n })\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._state === STATE_PULLED && this._deltaY >= this._getPullDownHeight() - this._getPullDownStartPosition()\r\n },\r\n _getPullDownHeight: function() {\r\n return Math.round(.05 * getOuterHeight(this._$element))\r\n },\r\n _getPullDownStartPosition: function() {\r\n return -Math.round(1.5 * getOuterHeight(this._$pullDown))\r\n },\r\n handleEnd: function() {\r\n if (this._isPullDown()) {\r\n this._pullDownRefreshing()\r\n }\r\n this._complete()\r\n },\r\n handleStop: function() {\r\n this._complete()\r\n },\r\n _complete: function() {\r\n if (this._state === STATE_TOUCHED || this._state === STATE_PULLED) {\r\n this._releaseState()\r\n }\r\n },\r\n handleScroll: function(e) {\r\n this.callBase(e);\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n var currentLocation = this.location().top;\r\n var scrollDelta = this._location - currentLocation;\r\n this._location = currentLocation;\r\n if (scrollDelta > 0 && this._isReachBottom()) {\r\n this._reachBottom()\r\n } else {\r\n this._stateReleased()\r\n }\r\n },\r\n _isReachBottom: function() {\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary + Math.floor(this._location)) <= 1\r\n },\r\n _reachBottom: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n this._releaseState()\r\n },\r\n _pullDownRefreshing: function() {\r\n this._state = STATE_REFRESHING;\r\n this._pullDownRefreshHandler()\r\n },\r\n _pullDownRefreshHandler: function() {\r\n this._refreshPullDown();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _refreshPullDown: function() {\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS);\r\n move(this._$pullDown, {\r\n top: this._getPullDownHeight()\r\n })\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._$topPocket.toggle(enabled);\r\n this._pullDownEnabled = enabled\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._reachBottomEnabled = enabled\r\n },\r\n pendingRelease: function() {\r\n this._state = STATE_READY\r\n },\r\n release: function() {\r\n var deferred = new Deferred;\r\n this._updateDimensions();\r\n clearTimeout(this._releaseTimeout);\r\n this._releaseTimeout = setTimeout(function() {\r\n this._stateReleased();\r\n this.releaseCallbacks.fire();\r\n this._updateAction();\r\n deferred.resolve()\r\n }.bind(this), 800);\r\n return deferred.promise()\r\n },\r\n dispose: function() {\r\n clearTimeout(this._pullDownRefreshTimeout);\r\n clearTimeout(this._releaseTimeout);\r\n this.callBase()\r\n }\r\n});\r\nexport default SwipeDownNativeScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.simulated.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport Callbacks from \"../../core/utils/callbacks\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n executeAsync\r\n} from \"../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nvar math = Math;\r\nimport {\r\n Scroller,\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nvar SCROLLVIEW_PULLDOWN_REFRESHING_CLASS = \"dx-scrollview-pull-down-loading\";\r\nvar SCROLLVIEW_PULLDOWN_READY_CLASS = \"dx-scrollview-pull-down-ready\";\r\nvar SCROLLVIEW_PULLDOWN_IMAGE_CLASS = \"dx-scrollview-pull-down-image\";\r\nvar SCROLLVIEW_PULLDOWN_INDICATOR_CLASS = \"dx-scrollview-pull-down-indicator\";\r\nvar SCROLLVIEW_PULLDOWN_TEXT_CLASS = \"dx-scrollview-pull-down-text\";\r\nvar SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS = \"dx-scrollview-pull-down-text-visible\";\r\nvar STATE_RELEASED = 0;\r\nvar STATE_READY = 1;\r\nvar STATE_REFRESHING = 2;\r\nvar STATE_LOADING = 3;\r\nvar ScrollViewScroller = Scroller.inherit({\r\n ctor: function() {\r\n this._topPocketSize = 0;\r\n this._bottomPocketSize = 0;\r\n this.callBase.apply(this, arguments);\r\n this._initCallbacks();\r\n this._releaseState()\r\n },\r\n _releaseState: function() {\r\n this._state = STATE_RELEASED;\r\n this._refreshPullDownText()\r\n },\r\n _refreshPullDownText: function() {\r\n var that = this;\r\n var pullDownTextItems = [{\r\n element: this._$pullingDownText,\r\n visibleState: STATE_RELEASED\r\n }, {\r\n element: this._$pulledDownText,\r\n visibleState: STATE_READY\r\n }, {\r\n element: this._$refreshingText,\r\n visibleState: STATE_REFRESHING\r\n }];\r\n each(pullDownTextItems, (function(_, item) {\r\n var action = that._state === item.visibleState ? \"addClass\" : \"removeClass\";\r\n item.element[action](SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS)\r\n }))\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n _updateBounds: function() {\r\n var considerPockets = \"horizontal\" !== this._direction;\r\n if (considerPockets) {\r\n this._topPocketSize = this._$topPocket.get(0).clientHeight;\r\n this._bottomPocketSize = this._$bottomPocket.get(0).clientHeight;\r\n var containerEl = this._$container.get(0);\r\n var contentEl = this._$content.get(0);\r\n this._bottomBoundary = Math.max(contentEl.clientHeight - this._bottomPocketSize - containerEl.clientHeight, 0)\r\n }\r\n this.callBase()\r\n },\r\n _updateScrollbar: function() {\r\n this._scrollbar.option({\r\n containerSize: this._containerSize(),\r\n contentSize: this._contentSize() - this._topPocketSize - this._bottomPocketSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n },\r\n _moveContent: function() {\r\n this.callBase();\r\n if (this._isPullDown()) {\r\n this._pullDownReady()\r\n } else if (this._isReachBottom()) {\r\n this._reachBottomReady()\r\n } else if (this._state !== STATE_RELEASED) {\r\n this._stateReleased()\r\n }\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._topPocketSize + this._location)\r\n },\r\n _isPullDown: function() {\r\n return this._pullDownEnabled && this._location >= 0\r\n },\r\n _isReachBottom: function() {\r\n var containerEl = this._$container.get(0);\r\n return this._reachBottomEnabled && Math.round(this._bottomBoundary - Math.ceil(containerEl.scrollTop)) <= 1\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds() && this._state === STATE_READY) {\r\n this._pullDownRefreshing()\r\n } else if (this._inBounds() && this._state === STATE_LOADING) {\r\n this._reachBottomLoading()\r\n } else {\r\n this.callBase()\r\n }\r\n },\r\n _reachBottomReady: function() {\r\n if (this._state === STATE_LOADING) {\r\n return\r\n }\r\n this._state = STATE_LOADING;\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return -this._topPocketSize\r\n },\r\n _getMinOffset: function() {\r\n return math.min(this.callBase(), -this._topPocketSize)\r\n },\r\n _reachBottomLoading: function() {\r\n this.reachBottomCallbacks.fire()\r\n },\r\n _pullDownReady: function() {\r\n if (this._state === STATE_READY) {\r\n return\r\n }\r\n this._state = STATE_READY;\r\n this._maxOffset = 0;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText()\r\n },\r\n _stateReleased: function() {\r\n if (this._state === STATE_RELEASED) {\r\n return\r\n }\r\n this._releaseState();\r\n this._updateBounds();\r\n this._$pullDown.removeClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this.releaseCallbacks.fire()\r\n },\r\n _pullDownRefreshing: function() {\r\n if (this._state === STATE_REFRESHING) {\r\n return\r\n }\r\n this._state = STATE_REFRESHING;\r\n this._$pullDown.addClass(SCROLLVIEW_PULLDOWN_REFRESHING_CLASS).removeClass(SCROLLVIEW_PULLDOWN_READY_CLASS);\r\n this._refreshPullDownText();\r\n this.pullDownCallbacks.fire()\r\n },\r\n _releaseHandler: function() {\r\n if (this._state === STATE_RELEASED) {\r\n this._moveToBounds()\r\n }\r\n this._update();\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this._releaseTask = executeAsync(this._release.bind(this));\r\n return this._releaseTask.promise\r\n },\r\n _release: function() {\r\n this._stateReleased();\r\n this._scrollComplete()\r\n },\r\n _reachBottomEnablingHandler: function(enabled) {\r\n if (this._reachBottomEnabled === enabled) {\r\n return\r\n }\r\n this._reachBottomEnabled = enabled;\r\n this._updateBounds()\r\n },\r\n _pullDownEnablingHandler: function(enabled) {\r\n if (this._pullDownEnabled === enabled) {\r\n return\r\n }\r\n this._pullDownEnabled = enabled;\r\n this._considerTopPocketChange();\r\n this._updateHandler()\r\n },\r\n _considerTopPocketChange: function() {\r\n this._location -= getHeight(this._$topPocket) || -this._topPocketSize;\r\n this._maxOffset = 0;\r\n this._move()\r\n },\r\n _pendingReleaseHandler: function() {\r\n this._state = STATE_READY\r\n },\r\n dispose: function() {\r\n if (this._releaseTask) {\r\n this._releaseTask.abort()\r\n }\r\n this.callBase()\r\n }\r\n});\r\nvar SimulatedScrollViewStrategy = SimulatedStrategy.inherit({\r\n _init: function(scrollView) {\r\n this.callBase(scrollView);\r\n this._$pullDown = scrollView._$pullDown;\r\n this._$topPocket = scrollView._$topPocket;\r\n this._$bottomPocket = scrollView._$bottomPocket;\r\n this._initCallbacks()\r\n },\r\n _initCallbacks: function() {\r\n this.pullDownCallbacks = Callbacks();\r\n this.releaseCallbacks = Callbacks();\r\n this.reachBottomCallbacks = Callbacks()\r\n },\r\n render: function() {\r\n this._renderPullDown();\r\n this.callBase()\r\n },\r\n _renderPullDown: function() {\r\n var $image = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_IMAGE_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$pullDownText = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_TEXT_CLASS);\r\n this._$pullingDownText = $(\"<div>\").text(this.option(\"pullingDownText\")).appendTo($text);\r\n this._$pulledDownText = $(\"<div>\").text(this.option(\"pulledDownText\")).appendTo($text);\r\n this._$refreshingText = $(\"<div>\").text(this.option(\"refreshingText\")).appendTo($text);\r\n this._$pullDown.empty().append($image).append($loadContainer.append($loadIndicator)).append($text)\r\n },\r\n pullDownEnable: function(enabled) {\r\n this._eventHandler(\"pullDownEnabling\", enabled)\r\n },\r\n reachBottomEnable: function(enabled) {\r\n this._eventHandler(\"reachBottomEnabling\", enabled)\r\n },\r\n _createScroller: function(direction) {\r\n var that = this;\r\n var scroller = that._scrollers[direction] = new ScrollViewScroller(that._scrollerOptions(direction));\r\n scroller.pullDownCallbacks.add((function() {\r\n that.pullDownCallbacks.fire()\r\n }));\r\n scroller.releaseCallbacks.add((function() {\r\n that.releaseCallbacks.fire()\r\n }));\r\n scroller.reachBottomCallbacks.add((function() {\r\n that.reachBottomCallbacks.fire()\r\n }))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return extend(this.callBase(direction), {\r\n $topPocket: this._$topPocket,\r\n $bottomPocket: this._$bottomPocket,\r\n $pullDown: this._$pullDown,\r\n $pullDownText: this._$pullDownText,\r\n $pullingDownText: this._$pullingDownText,\r\n $pulledDownText: this._$pulledDownText,\r\n $refreshingText: this._$refreshingText\r\n })\r\n },\r\n pendingRelease: function() {\r\n this._eventHandler(\"pendingRelease\")\r\n },\r\n release: function() {\r\n return this._eventHandler(\"release\").done(this._updateAction)\r\n },\r\n location: function() {\r\n var location = this.callBase();\r\n location.top += getHeight(this._$topPocket);\r\n return location\r\n },\r\n dispose: function() {\r\n each(this._scrollers, (function() {\r\n this.dispose()\r\n }));\r\n this.callBase()\r\n }\r\n});\r\nexport default SimulatedScrollViewStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scroll_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport PullDownStrategy from \"./ui.scroll_view.native.pull_down\";\r\nimport SwipeDownStrategy from \"./ui.scroll_view.native.swipe_down\";\r\nimport SimulatedStrategy from \"./ui.scroll_view.simulated\";\r\nimport Scrollable from \"./ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n isMaterial\r\n} from \"./../themes\";\r\nimport LoadPanel from \"../load_panel\";\r\nvar SCROLLVIEW_CLASS = \"dx-scrollview\";\r\nvar SCROLLVIEW_CONTENT_CLASS = SCROLLVIEW_CLASS + \"-content\";\r\nvar SCROLLVIEW_TOP_POCKET_CLASS = SCROLLVIEW_CLASS + \"-top-pocket\";\r\nvar SCROLLVIEW_BOTTOM_POCKET_CLASS = SCROLLVIEW_CLASS + \"-bottom-pocket\";\r\nvar SCROLLVIEW_PULLDOWN_CLASS = SCROLLVIEW_CLASS + \"-pull-down\";\r\nvar SCROLLVIEW_REACHBOTTOM_CLASS = SCROLLVIEW_CLASS + \"-scrollbottom\";\r\nvar SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-indicator\";\r\nvar SCROLLVIEW_REACHBOTTOM_TEXT_CLASS = SCROLLVIEW_REACHBOTTOM_CLASS + \"-text\";\r\nvar SCROLLVIEW_LOADPANEL = SCROLLVIEW_CLASS + \"-loadpanel\";\r\nvar refreshStrategies = {\r\n pullDown: PullDownStrategy,\r\n swipeDown: SwipeDownStrategy,\r\n simulated: SimulatedStrategy\r\n};\r\nvar isServerSide = !hasWindow();\r\nvar scrollViewServerConfig = {\r\n finishLoading: noop,\r\n release: noop,\r\n refresh: noop,\r\n scrollOffset: () => ({\r\n top: 0,\r\n left: 0\r\n }),\r\n _optionChanged: function(args) {\r\n if (\"onUpdated\" !== args.name) {\r\n return this.callBase.apply(this, arguments)\r\n }\r\n }\r\n};\r\nvar ScrollView = Scrollable.inherit(isServerSide ? scrollViewServerConfig : {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n pullingDownText: messageLocalization.format(\"dxScrollView-pullingDownText\"),\r\n pulledDownText: messageLocalization.format(\"dxScrollView-pulledDownText\"),\r\n refreshingText: messageLocalization.format(\"dxScrollView-refreshingText\"),\r\n reachBottomText: messageLocalization.format(\"dxScrollView-reachBottomText\"),\r\n onPullDown: null,\r\n onReachBottom: null,\r\n refreshStrategy: \"pullDown\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var realDevice = devices.real();\r\n return \"android\" === realDevice.platform\r\n },\r\n options: {\r\n refreshStrategy: \"swipeDown\"\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n pullingDownText: \"\",\r\n pulledDownText: \"\",\r\n refreshingText: \"\",\r\n reachBottomText: \"\"\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._loadingIndicatorEnabled = true\r\n },\r\n _initScrollableMarkup: function() {\r\n this.callBase();\r\n this.$element().addClass(SCROLLVIEW_CLASS);\r\n this._initContent();\r\n this._initTopPocket();\r\n this._initBottomPocket();\r\n this._initLoadPanel()\r\n },\r\n _initContent: function() {\r\n var $content = $(\"<div>\").addClass(SCROLLVIEW_CONTENT_CLASS);\r\n this._$content.wrapInner($content)\r\n },\r\n _initTopPocket: function() {\r\n var $topPocket = this._$topPocket = $(\"<div>\").addClass(SCROLLVIEW_TOP_POCKET_CLASS);\r\n var $pullDown = this._$pullDown = $(\"<div>\").addClass(SCROLLVIEW_PULLDOWN_CLASS);\r\n $topPocket.append($pullDown);\r\n this._$content.prepend($topPocket)\r\n },\r\n _initBottomPocket: function() {\r\n var $bottomPocket = this._$bottomPocket = $(\"<div>\").addClass(SCROLLVIEW_BOTTOM_POCKET_CLASS);\r\n var $reachBottom = this._$reachBottom = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_CLASS);\r\n var $loadContainer = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS);\r\n var $loadIndicator = new LoadIndicator($(\"<div>\")).$element();\r\n var $text = this._$reachBottomText = $(\"<div>\").addClass(SCROLLVIEW_REACHBOTTOM_TEXT_CLASS);\r\n this._updateReachBottomText();\r\n $reachBottom.append($loadContainer.append($loadIndicator)).append($text);\r\n $bottomPocket.append($reachBottom);\r\n this._$content.append($bottomPocket)\r\n },\r\n _initLoadPanel: function() {\r\n var $loadPanelElement = $(\"<div>\").addClass(SCROLLVIEW_LOADPANEL).appendTo(this.$element());\r\n var loadPanelOptions = {\r\n shading: false,\r\n delay: 400,\r\n message: this.option(\"refreshingText\"),\r\n position: {\r\n of: this.$element()\r\n }\r\n };\r\n this._loadPanel = this._createComponent($loadPanelElement, LoadPanel, loadPanelOptions)\r\n },\r\n _updateReachBottomText: function() {\r\n this._$reachBottomText.text(this.option(\"reachBottomText\"))\r\n },\r\n _createStrategy: function() {\r\n var strategyName = this.option(\"useNative\") ? this.option(\"refreshStrategy\") : \"simulated\";\r\n var strategyClass = refreshStrategies[strategyName];\r\n this._strategy = new strategyClass(this);\r\n this._strategy.pullDownCallbacks.add(this._pullDownHandler.bind(this));\r\n this._strategy.releaseCallbacks.add(this._releaseHandler.bind(this));\r\n this._strategy.reachBottomCallbacks.add(this._reachBottomHandler.bind(this))\r\n },\r\n _createActions: function() {\r\n this.callBase();\r\n this._pullDownAction = this._createActionByOption(\"onPullDown\");\r\n this._reachBottomAction = this._createActionByOption(\"onReachBottom\");\r\n this._tryRefreshPocketState()\r\n },\r\n _tryRefreshPocketState: function() {\r\n this._pullDownEnable(this.hasActionSubscription(\"onPullDown\"));\r\n this._reachBottomEnable(this.hasActionSubscription(\"onReachBottom\"))\r\n },\r\n on: function(eventName) {\r\n var result = this.callBase.apply(this, arguments);\r\n if (\"pullDown\" === eventName || \"reachBottom\" === eventName) {\r\n this._tryRefreshPocketState()\r\n }\r\n return result\r\n },\r\n _pullDownEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._pullDownEnabled\r\n }\r\n if (this._$pullDown && this._strategy) {\r\n this._$pullDown.toggle(enabled);\r\n this._strategy.pullDownEnable(enabled);\r\n this._pullDownEnabled = enabled\r\n }\r\n },\r\n _reachBottomEnable: function(enabled) {\r\n if (0 === arguments.length) {\r\n return this._reachBottomEnabled\r\n }\r\n if (this._$reachBottom && this._strategy) {\r\n this._$reachBottom.toggle(enabled);\r\n this._strategy.reachBottomEnable(enabled);\r\n this._reachBottomEnabled = enabled\r\n }\r\n },\r\n _pullDownHandler: function() {\r\n this._loadingIndicator(false);\r\n this._pullDownLoading()\r\n },\r\n _loadingIndicator: function(value) {\r\n if (arguments.length < 1) {\r\n return this._loadingIndicatorEnabled\r\n }\r\n this._loadingIndicatorEnabled = value\r\n },\r\n _pullDownLoading: function() {\r\n this.startLoading();\r\n this._pullDownAction()\r\n },\r\n _reachBottomHandler: function() {\r\n this._loadingIndicator(false);\r\n this._reachBottomLoading()\r\n },\r\n _reachBottomLoading: function() {\r\n this.startLoading();\r\n this._reachBottomAction()\r\n },\r\n _releaseHandler: function() {\r\n this.finishLoading();\r\n this._loadingIndicator(true)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onPullDown\":\r\n case \"onReachBottom\":\r\n this._createActions();\r\n break;\r\n case \"pullingDownText\":\r\n case \"pulledDownText\":\r\n case \"refreshingText\":\r\n case \"refreshStrategy\":\r\n this._invalidate();\r\n break;\r\n case \"reachBottomText\":\r\n this._updateReachBottomText();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content.children().eq(1))\r\n },\r\n release: function(preventReachBottom) {\r\n if (void 0 !== preventReachBottom) {\r\n this.toggleLoading(!preventReachBottom)\r\n }\r\n return this._strategy.release()\r\n },\r\n toggleLoading: function(showOrHide) {\r\n this._reachBottomEnable(showOrHide)\r\n },\r\n refresh: function() {\r\n if (!this.hasActionSubscription(\"onPullDown\")) {\r\n return\r\n }\r\n this._strategy.pendingRelease();\r\n this._pullDownLoading()\r\n },\r\n startLoading: function() {\r\n if (this._loadingIndicator() && this.$element().is(\":visible\")) {\r\n this._loadPanel.show()\r\n }\r\n this._lock()\r\n },\r\n finishLoading: function() {\r\n this._loadPanel.hide();\r\n this._unlock()\r\n },\r\n _dispose: function() {\r\n this._strategy.dispose();\r\n this.callBase();\r\n if (this._loadPanel) {\r\n this._loadPanel.$element().remove()\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxScrollView\", ScrollView);\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport ScrollView from \"./scroll_view/ui.scroll_view\";\r\nexport default ScrollView;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/animator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Class from \"../../core/class\";\r\nvar abstract = Class.abstract;\r\nimport {\r\n requestAnimationFrame,\r\n cancelAnimationFrame\r\n} from \"../../animation/frame\";\r\nvar Animator = Class.inherit({\r\n ctor: function() {\r\n this._finished = true;\r\n this._stopped = false;\r\n this._proxiedStepCore = this._stepCore.bind(this)\r\n },\r\n start: function() {\r\n this._stopped = false;\r\n this._finished = false;\r\n this._stepCore()\r\n },\r\n stop: function() {\r\n this._stopped = true;\r\n cancelAnimationFrame(this._stepAnimationFrame)\r\n },\r\n _stepCore: function() {\r\n if (this._isStopped()) {\r\n this._stop();\r\n return\r\n }\r\n if (this._isFinished()) {\r\n this._finished = true;\r\n this._complete();\r\n return\r\n }\r\n this._step();\r\n this._stepAnimationFrame = requestAnimationFrame(this._proxiedStepCore)\r\n },\r\n _step: abstract,\r\n _isFinished: noop,\r\n _stop: noop,\r\n _complete: noop,\r\n _isStopped: function() {\r\n return this._stopped\r\n },\r\n inProgress: function() {\r\n return !(this._stopped || this._finished)\r\n }\r\n});\r\nexport default Animator;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.device.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n nativeScrolling,\r\n touch\r\n} from \"../../core/utils/support\";\r\nexport var deviceDependentOptions = function() {\r\n return [{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNative: false\r\n }\r\n }, {\r\n device: function(_device) {\r\n return !devices.isSimulator() && \"desktop\" === devices.real().deviceType && \"generic\" === _device.platform\r\n },\r\n options: {\r\n bounceEnabled: false,\r\n scrollByThumb: true,\r\n scrollByContent: touch,\r\n showScrollbar: \"onHover\"\r\n }\r\n }]\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Scrollable from \"./ui.scrollable.old\";\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.native.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDxMouseWheelEvent\r\n} from \"../../events/utils/index\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport devices from \"../../core/devices\";\r\nimport Class from \"../../core/class\";\r\nimport Scrollbar from \"./ui.scrollbar\";\r\nvar SCROLLABLE_NATIVE = \"dxNativeScrollable\";\r\nvar SCROLLABLE_NATIVE_CLASS = \"dx-scrollable-native\";\r\nvar SCROLLABLE_SCROLLBAR_SIMULATED = \"dx-scrollable-scrollbar-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_HIDDEN = \"dx-scrollable-scrollbars-hidden\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar HIDE_SCROLLBAR_TIMEOUT = 500;\r\nvar NativeStrategy = Class.inherit({\r\n ctor: function(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init: function(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = $(scrollable.container());\r\n this._$content = scrollable.$content();\r\n this._direction = scrollable.option(\"direction\");\r\n this._useSimulatedScrollbar = scrollable.option(\"useSimulatedScrollbar\");\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable);\r\n this._isRtlNativeStrategy = scrollable._isRtlNativeStrategy.bind(scrollable)\r\n },\r\n render: function() {\r\n var device = devices.real();\r\n var deviceType = device.platform;\r\n this._$element.addClass(SCROLLABLE_NATIVE_CLASS).addClass(SCROLLABLE_NATIVE_CLASS + \"-\" + deviceType).toggleClass(SCROLLABLE_SCROLLBARS_HIDDEN, !this._isScrollbarVisible());\r\n if (this._isScrollbarVisible() && this._useSimulatedScrollbar) {\r\n this._renderScrollbars()\r\n }\r\n },\r\n updateRtlPosition: function(isFirstRender) {\r\n if (isFirstRender && this.option(\"rtlEnabled\")) {\r\n if (this._isScrollbarVisible() && this._useSimulatedScrollbar) {\r\n this._moveScrollbars()\r\n }\r\n }\r\n },\r\n _renderScrollbars: function() {\r\n this._scrollbars = {};\r\n this._hideScrollbarTimeout = 0;\r\n this._$element.addClass(SCROLLABLE_SCROLLBAR_SIMULATED);\r\n this._renderScrollbar(VERTICAL);\r\n this._renderScrollbar(HORIZONTAL)\r\n },\r\n _renderScrollbar: function(direction) {\r\n if (!this._isDirection(direction)) {\r\n return\r\n }\r\n this._scrollbars[direction] = new Scrollbar($(\"<div>\").appendTo(this._$element), {\r\n direction: direction,\r\n expandable: this._component.option(\"scrollByThumb\")\r\n })\r\n },\r\n handleInit: noop,\r\n handleStart: noop,\r\n handleMove: function(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._allowedDirection()) {\r\n e.originalEvent.isScrollingEvent = true\r\n }\r\n },\r\n handleEnd: noop,\r\n handleCancel: noop,\r\n handleStop: noop,\r\n _eachScrollbar: function(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollbars || {}, (function(direction, scrollbar) {\r\n callback(scrollbar, direction)\r\n }))\r\n },\r\n createActions: function() {\r\n this._scrollAction = this._createActionByOption(\"onScroll\");\r\n this._updateAction = this._createActionByOption(\"onUpdated\")\r\n },\r\n _createActionArgs: function() {\r\n var {\r\n left: left,\r\n top: top\r\n } = this.location();\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._getScrollOffset(),\r\n reachedLeft: this._isRtlNativeStrategy() ? this._isReachedRight(-left) : this._isReachedLeft(left),\r\n reachedRight: this._isRtlNativeStrategy() ? this._isReachedLeft(-Math.abs(left)) : this._isReachedRight(left),\r\n reachedTop: this._isDirection(VERTICAL) ? Math.round(top) >= 0 : void 0,\r\n reachedBottom: this._isDirection(VERTICAL) ? Math.round(Math.abs(top) - this._getMaxOffset().top) >= 0 : void 0\r\n }\r\n },\r\n _getScrollOffset: function() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this.location();\r\n return {\r\n top: -top,\r\n left: this._normalizeOffsetLeft(-left)\r\n }\r\n },\r\n _normalizeOffsetLeft(scrollLeft) {\r\n if (this._isRtlNativeStrategy()) {\r\n return this._getMaxOffset().left + scrollLeft\r\n }\r\n return scrollLeft\r\n },\r\n _isReachedLeft: function(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(left) >= 0 : void 0\r\n },\r\n _isReachedRight: function(left) {\r\n return this._isDirection(HORIZONTAL) ? Math.round(Math.abs(left) - this._getMaxOffset().left) >= 0 : void 0\r\n },\r\n _isScrollbarVisible: function() {\r\n var {\r\n showScrollbar: showScrollbar\r\n } = this.option();\r\n return \"never\" !== showScrollbar && false !== showScrollbar\r\n },\r\n handleScroll: function(e) {\r\n this._eventForUserAction = e;\r\n this._moveScrollbars();\r\n this._scrollAction(this._createActionArgs())\r\n },\r\n _moveScrollbars: function() {\r\n var {\r\n top: top,\r\n left: left\r\n } = this._getScrollOffset();\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.moveTo({\r\n top: -top,\r\n left: -left\r\n });\r\n scrollbar.option(\"visible\", true)\r\n }));\r\n this._hideScrollbars()\r\n },\r\n _hideScrollbars: function() {\r\n clearTimeout(this._hideScrollbarTimeout);\r\n this._hideScrollbarTimeout = setTimeout(function() {\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.option(\"visible\", false)\r\n }))\r\n }.bind(this), HIDE_SCROLLBAR_TIMEOUT)\r\n },\r\n location: function() {\r\n return {\r\n left: -this._$container.scrollLeft(),\r\n top: -this._$container.scrollTop()\r\n }\r\n },\r\n disabledChanged: noop,\r\n update: function() {\r\n this._update();\r\n this._updateAction(this._createActionArgs())\r\n },\r\n _update: function() {\r\n this._updateDimensions();\r\n this._updateScrollbars()\r\n },\r\n _updateDimensions: function() {\r\n this._containerSize = {\r\n height: getHeight(this._$container),\r\n width: getWidth(this._$container)\r\n };\r\n this._componentContentSize = {\r\n height: getHeight(this._component.$content()),\r\n width: getWidth(this._component.$content())\r\n };\r\n this._contentSize = {\r\n height: getHeight(this._$content),\r\n width: getWidth(this._$content)\r\n }\r\n },\r\n _updateScrollbars: function() {\r\n this._eachScrollbar((function(scrollbar, direction) {\r\n var dimension = direction === VERTICAL ? \"height\" : \"width\";\r\n scrollbar.option({\r\n containerSize: this._containerSize[dimension],\r\n contentSize: this._componentContentSize[dimension]\r\n });\r\n scrollbar.update()\r\n }))\r\n },\r\n _allowedDirections: function() {\r\n return {\r\n vertical: this._isDirection(VERTICAL) && this._contentSize.height > this._containerSize.height,\r\n horizontal: this._isDirection(HORIZONTAL) && this._contentSize.width > this._containerSize.width\r\n }\r\n },\r\n dispose: function() {\r\n var className = this._$element.get(0).className;\r\n var scrollableNativeRegexp = new RegExp(SCROLLABLE_NATIVE_CLASS + \"\\\\S*\", \"g\");\r\n if (scrollableNativeRegexp.test(className)) {\r\n this._$element.removeClass(className.match(scrollableNativeRegexp).join(\" \"))\r\n }\r\n eventsEngine.off(this._$element, \".\" + SCROLLABLE_NATIVE);\r\n eventsEngine.off(this._$container, \".\" + SCROLLABLE_NATIVE);\r\n this._removeScrollbars();\r\n clearTimeout(this._hideScrollbarTimeout)\r\n },\r\n _removeScrollbars: function() {\r\n this._eachScrollbar((function(scrollbar) {\r\n scrollbar.$element().remove()\r\n }))\r\n },\r\n scrollBy: function(distance) {\r\n var location = this.location();\r\n this._$container.scrollTop(Math.round(-location.top - distance.top));\r\n this._$container.scrollLeft(Math.round(-location.left - distance.left))\r\n },\r\n validate: function(e) {\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (isDxMouseWheelEvent(e) && this._isScrolledInMaxDirection(e)) {\r\n return false\r\n }\r\n return !!this._allowedDirection()\r\n },\r\n _isScrolledInMaxDirection(e) {\r\n var container = this._$container.get(0);\r\n var result;\r\n if (e.delta > 0) {\r\n result = e.shiftKey ? !container.scrollLeft : !container.scrollTop\r\n } else if (e.shiftKey) {\r\n result = container.scrollLeft >= this._getMaxOffset().left\r\n } else {\r\n result = container.scrollTop >= this._getMaxOffset().top\r\n }\r\n return result\r\n },\r\n getDirection: function() {\r\n return this._allowedDirection()\r\n }\r\n});\r\nexport default NativeStrategy;\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_element_location_internal.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n titleize\r\n} from \"../../../../core/utils/inflector\";\r\nimport {\r\n getRelativeOffset\r\n} from \"./get_relative_offset\";\r\nimport {\r\n DIRECTION_VERTICAL,\r\n SCROLLABLE_CONTENT_CLASS\r\n} from \"../common/consts\";\r\nexport function getElementLocationInternal(targetElement, direction, containerElement, scrollOffset, offset) {\r\n var additionalOffset = _extends({\r\n top: 0,\r\n left: 0,\r\n right: 0,\r\n bottom: 0\r\n }, offset);\r\n var isVertical = direction === DIRECTION_VERTICAL;\r\n var prop = isVertical ? \"top\" : \"left\";\r\n var inverseProp = isVertical ? \"bottom\" : \"right\";\r\n var dimension = isVertical ? \"height\" : \"width\";\r\n var containerOffsetSize = containerElement[\"offset\".concat(titleize(dimension))];\r\n var containerClientSize = containerElement[\"client\".concat(titleize(dimension))];\r\n var containerSize = containerElement.getBoundingClientRect()[dimension];\r\n var elementSize = targetElement.getBoundingClientRect()[dimension];\r\n var scale = 1;\r\n if (Math.abs(containerSize - containerOffsetSize) > 1) {\r\n scale = containerSize / containerOffsetSize\r\n }\r\n var relativeElementOffset = getRelativeOffset(SCROLLABLE_CONTENT_CLASS, targetElement)[prop] / scale;\r\n var containerScrollOffset = scrollOffset[prop];\r\n var relativeStartOffset = containerScrollOffset - relativeElementOffset + additionalOffset[prop];\r\n var relativeEndOffset = containerScrollOffset - relativeElementOffset - elementSize / scale + containerClientSize - additionalOffset[inverseProp];\r\n if (relativeStartOffset <= 0 && relativeEndOffset >= 0) {\r\n return containerScrollOffset\r\n }\r\n return containerScrollOffset - (Math.abs(relativeStartOffset) > Math.abs(relativeEndOffset) ? relativeEndOffset : relativeStartOffset)\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.old.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n ensureDefined\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport devices from \"../../core/devices\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport scrollEvents from \"../../events/gesture/emitter.gesture.scroll\";\r\nimport {\r\n SimulatedStrategy\r\n} from \"./ui.scrollable.simulated\";\r\nimport NativeStrategy from \"./ui.scrollable.native\";\r\nimport {\r\n deviceDependentOptions\r\n} from \"./ui.scrollable.device\";\r\nimport {\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n getElementLocationInternal\r\n} from \"../../renovation/ui/scroll_view/utils/get_element_location_internal\";\r\nvar SCROLLABLE = \"dxScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_CLASS = \"dx-scrollable\";\r\nvar SCROLLABLE_DISABLED_CLASS = \"dx-scrollable-disabled\";\r\nvar SCROLLABLE_CONTAINER_CLASS = \"dx-scrollable-container\";\r\nvar SCROLLABLE_WRAPPER_CLASS = \"dx-scrollable-wrapper\";\r\nvar SCROLLABLE_CONTENT_CLASS = \"dx-scrollable-content\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar BOTH = \"both\";\r\nvar Scrollable = DOMComponent.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n disabled: false,\r\n onScroll: null,\r\n direction: VERTICAL,\r\n showScrollbar: \"onScroll\",\r\n useNative: true,\r\n bounceEnabled: true,\r\n scrollByContent: true,\r\n scrollByThumb: false,\r\n onUpdated: null,\r\n onStart: null,\r\n onEnd: null,\r\n onBounce: null,\r\n useSimulatedScrollbar: false,\r\n useKeyboard: true,\r\n inertiaEnabled: true,\r\n updateManually: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat(deviceDependentOptions(), [{\r\n device: function() {\r\n return nativeScrolling && \"android\" === devices.real().platform && !browser.mozilla\r\n },\r\n options: {\r\n useSimulatedScrollbar: true\r\n }\r\n }])\r\n },\r\n _initOptions: function(options) {\r\n this.callBase(options);\r\n if (!(\"useSimulatedScrollbar\" in options)) {\r\n this._setUseSimulatedScrollbar()\r\n }\r\n },\r\n _setUseSimulatedScrollbar: function() {\r\n if (!this.initialOption(\"useSimulatedScrollbar\")) {\r\n this.option(\"useSimulatedScrollbar\", !this.option(\"useNative\"))\r\n }\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initScrollableMarkup();\r\n this._locked = false\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this.update();\r\n this._updateRtlPosition();\r\n this._savedScrollOffset && this.scrollTo(this._savedScrollOffset);\r\n delete this._savedScrollOffset\r\n } else {\r\n this._savedScrollOffset = this.scrollOffset()\r\n }\r\n },\r\n _initScrollableMarkup: function() {\r\n var $element = this.$element().addClass(SCROLLABLE_CLASS);\r\n var $container = this._$container = $(\"<div>\").addClass(SCROLLABLE_CONTAINER_CLASS);\r\n var $wrapper = this._$wrapper = $(\"<div>\").addClass(SCROLLABLE_WRAPPER_CLASS);\r\n var $content = this._$content = $(\"<div>\").addClass(SCROLLABLE_CONTENT_CLASS);\r\n $content.append($element.contents()).appendTo($container);\r\n $container.appendTo($wrapper);\r\n $wrapper.appendTo($element)\r\n },\r\n _dimensionChanged: function() {\r\n this.update();\r\n this._updateRtlPosition()\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._renderDirection()\r\n },\r\n _render: function() {\r\n this._renderStrategy();\r\n this._attachEventHandlers();\r\n this._renderDisabledState();\r\n this._createActions();\r\n this.update();\r\n this.callBase();\r\n this._updateRtlPosition(true)\r\n },\r\n _updateRtlPosition: function(needInitializeRtlConfig) {\r\n this._strategy.updateRtlPosition(needInitializeRtlConfig)\r\n },\r\n _getMaxOffset: function() {\r\n var {\r\n scrollWidth: scrollWidth,\r\n clientWidth: clientWidth,\r\n scrollHeight: scrollHeight,\r\n clientHeight: clientHeight\r\n } = $(this.container()).get(0);\r\n return {\r\n left: scrollWidth - clientWidth,\r\n top: scrollHeight - clientHeight\r\n }\r\n },\r\n _attachEventHandlers: function() {\r\n var strategy = this._strategy;\r\n var initEventData = {\r\n getDirection: strategy.getDirection.bind(strategy),\r\n validate: this._validate.bind(this),\r\n isNative: this.option(\"useNative\"),\r\n scrollTarget: this._$container\r\n };\r\n eventsEngine.off(this._$wrapper, \".\" + SCROLLABLE);\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.init, SCROLLABLE), initEventData, this._initHandler.bind(this));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.start, SCROLLABLE), strategy.handleStart.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.move, SCROLLABLE), strategy.handleMove.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.end, SCROLLABLE), strategy.handleEnd.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.cancel, SCROLLABLE), strategy.handleCancel.bind(strategy));\r\n eventsEngine.on(this._$wrapper, addNamespace(scrollEvents.stop, SCROLLABLE), strategy.handleStop.bind(strategy));\r\n eventsEngine.off(this._$container, \".\" + SCROLLABLE);\r\n eventsEngine.on(this._$container, addNamespace(\"scroll\", SCROLLABLE), strategy.handleScroll.bind(strategy))\r\n },\r\n _validate: function(e) {\r\n if (this._isLocked()) {\r\n return false\r\n }\r\n this._updateIfNeed();\r\n return this._moveIsAllowed(e)\r\n },\r\n _moveIsAllowed(e) {\r\n return this._strategy.validate(e)\r\n },\r\n handleMove(e) {\r\n this._strategy.handleMove(e)\r\n },\r\n _prepareDirections(value) {\r\n this._strategy._prepareDirections(value)\r\n },\r\n _initHandler: function() {\r\n var strategy = this._strategy;\r\n strategy.handleInit.apply(strategy, arguments)\r\n },\r\n _renderDisabledState: function() {\r\n this.$element().toggleClass(SCROLLABLE_DISABLED_CLASS, this.option(\"disabled\"));\r\n if (this.option(\"disabled\")) {\r\n this._lock()\r\n } else {\r\n this._unlock()\r\n }\r\n },\r\n _renderDirection: function() {\r\n this.$element().removeClass(\"dx-scrollable-\" + HORIZONTAL).removeClass(\"dx-scrollable-\" + VERTICAL).removeClass(\"dx-scrollable-\" + BOTH).addClass(\"dx-scrollable-\" + this.option(\"direction\"))\r\n },\r\n _renderStrategy: function() {\r\n this._createStrategy();\r\n this._strategy.render();\r\n this.$element().data(SCROLLABLE_STRATEGY, this._strategy)\r\n },\r\n _createStrategy: function() {\r\n this._strategy = this.option(\"useNative\") ? new NativeStrategy(this) : new SimulatedStrategy(this)\r\n },\r\n _createActions: function() {\r\n this._strategy && this._strategy.createActions()\r\n },\r\n _clean: function() {\r\n this._strategy && this._strategy.dispose()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"onStart\":\r\n case \"onEnd\":\r\n case \"onUpdated\":\r\n case \"onScroll\":\r\n case \"onBounce\":\r\n this._createActions();\r\n break;\r\n case \"direction\":\r\n this._resetInactiveDirection();\r\n this._invalidate();\r\n break;\r\n case \"useNative\":\r\n this._setUseSimulatedScrollbar();\r\n this._invalidate();\r\n break;\r\n case \"inertiaEnabled\":\r\n case \"scrollByThumb\":\r\n case \"bounceEnabled\":\r\n case \"useKeyboard\":\r\n case \"showScrollbar\":\r\n case \"useSimulatedScrollbar\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n this._renderDisabledState();\r\n this._strategy && this._strategy.disabledChanged();\r\n break;\r\n case \"updateManually\":\r\n case \"scrollByContent\":\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._updateRtlPosition();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _resetInactiveDirection: function() {\r\n var inactiveProp = this._getInactiveProp();\r\n if (!inactiveProp || !hasWindow()) {\r\n return\r\n }\r\n var scrollOffset = this.scrollOffset();\r\n scrollOffset[inactiveProp] = 0;\r\n this.scrollTo(scrollOffset)\r\n },\r\n _getInactiveProp: function() {\r\n var direction = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return \"left\"\r\n }\r\n if (direction === HORIZONTAL) {\r\n return \"top\"\r\n }\r\n },\r\n _location: function() {\r\n return this._strategy.location()\r\n },\r\n _normalizeLocation: function(location) {\r\n if (isPlainObject(location)) {\r\n var left = ensureDefined(location.left, location.x);\r\n var top = ensureDefined(location.top, location.y);\r\n return {\r\n left: isDefined(left) ? -left : void 0,\r\n top: isDefined(top) ? -top : void 0\r\n }\r\n } else {\r\n var direction = this.option(\"direction\");\r\n return {\r\n left: direction !== VERTICAL ? -location : void 0,\r\n top: direction !== HORIZONTAL ? -location : void 0\r\n }\r\n }\r\n },\r\n _isLocked: function() {\r\n return this._locked\r\n },\r\n _lock: function() {\r\n this._locked = true\r\n },\r\n _unlock: function() {\r\n if (!this.option(\"disabled\")) {\r\n this._locked = false\r\n }\r\n },\r\n _isDirection: function(direction) {\r\n var current = this.option(\"direction\");\r\n if (direction === VERTICAL) {\r\n return current !== HORIZONTAL\r\n }\r\n if (direction === HORIZONTAL) {\r\n return current !== VERTICAL\r\n }\r\n return current === direction\r\n },\r\n _updateAllowedDirection: function() {\r\n var allowedDirections = this._strategy._allowedDirections();\r\n if (this._isDirection(BOTH) && allowedDirections.vertical && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = BOTH\r\n } else if (this._isDirection(HORIZONTAL) && allowedDirections.horizontal) {\r\n this._allowedDirectionValue = HORIZONTAL\r\n } else if (this._isDirection(VERTICAL) && allowedDirections.vertical) {\r\n this._allowedDirectionValue = VERTICAL\r\n } else {\r\n this._allowedDirectionValue = null\r\n }\r\n },\r\n _allowedDirection: function() {\r\n return this._allowedDirectionValue\r\n },\r\n $content: function() {\r\n return this._$content\r\n },\r\n content: function() {\r\n return getPublicElement(this._$content)\r\n },\r\n container: function() {\r\n return getPublicElement(this._$container)\r\n },\r\n scrollOffset: function() {\r\n return this._strategy._getScrollOffset()\r\n },\r\n _isRtlNativeStrategy: function() {\r\n var {\r\n useNative: useNative,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n return useNative && rtlEnabled\r\n },\r\n scrollTop: function() {\r\n return this.scrollOffset().top\r\n },\r\n scrollLeft: function() {\r\n return this.scrollOffset().left\r\n },\r\n clientHeight: function() {\r\n return getHeight(this._$container)\r\n },\r\n scrollHeight: function() {\r\n return getOuterHeight(this.$content())\r\n },\r\n clientWidth: function() {\r\n return getWidth(this._$container)\r\n },\r\n scrollWidth: function() {\r\n return getOuterWidth(this.$content())\r\n },\r\n update: function() {\r\n if (!this._strategy) {\r\n return\r\n }\r\n return when(this._strategy.update()).done(function() {\r\n this._updateAllowedDirection()\r\n }.bind(this))\r\n },\r\n scrollBy: function(distance) {\r\n distance = this._normalizeLocation(distance);\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._updateIfNeed();\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollTo: function(targetLocation) {\r\n targetLocation = this._normalizeLocation(targetLocation);\r\n this._updateIfNeed();\r\n var location = this._location();\r\n if (!this.option(\"useNative\")) {\r\n targetLocation = this._strategy._applyScaleRatio(targetLocation);\r\n location = this._strategy._applyScaleRatio(location)\r\n }\r\n if (this._isRtlNativeStrategy()) {\r\n location.left = location.left - this._getMaxOffset().left\r\n }\r\n var distance = this._normalizeLocation({\r\n left: location.left - ensureDefined(targetLocation.left, location.left),\r\n top: location.top - ensureDefined(targetLocation.top, location.top)\r\n });\r\n if (!distance.top && !distance.left) {\r\n return\r\n }\r\n this._strategy.scrollBy(distance)\r\n },\r\n scrollToElement: function(element, offset) {\r\n var $element = $(element);\r\n var elementInsideContent = this.$content().find(element).length;\r\n var elementIsInsideContent = $element.parents(\".\" + SCROLLABLE_CLASS).length - $element.parents(\".\" + SCROLLABLE_CONTENT_CLASS).length === 0;\r\n if (!elementInsideContent || !elementIsInsideContent) {\r\n return\r\n }\r\n var scrollPosition = {\r\n top: 0,\r\n left: 0\r\n };\r\n var direction = this.option(\"direction\");\r\n if (direction !== VERTICAL) {\r\n scrollPosition.left = this.getScrollElementPosition($element, HORIZONTAL, offset)\r\n }\r\n if (direction !== HORIZONTAL) {\r\n scrollPosition.top = this.getScrollElementPosition($element, VERTICAL, offset)\r\n }\r\n this.scrollTo(scrollPosition)\r\n },\r\n getScrollElementPosition: function($element, direction, offset) {\r\n var scrollOffset = this.scrollOffset();\r\n return getElementLocationInternal($element.get(0), direction, $(this.container()).get(0), scrollOffset, offset)\r\n },\r\n _updateIfNeed: function() {\r\n if (!this.option(\"updateManually\")) {\r\n this.update()\r\n }\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n isRenovated: function() {\r\n return !!Scrollable.IS_RENOVATED_WIDGET\r\n }\r\n});\r\nregisterComponent(SCROLLABLE, Scrollable);\r\nexport default Scrollable;\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollable.simulated.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n titleize\r\n} from \"../../core/utils/inflector\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n each,\r\n map\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport {\r\n resetPosition,\r\n move,\r\n locate\r\n} from \"../../animation/translator\";\r\nimport Class from \"../../core/class\";\r\nimport Animator from \"./animator\";\r\nimport {\r\n isDxMouseWheelEvent,\r\n addNamespace as addEventNamespace,\r\n normalizeKeyName,\r\n isCommandKeyPressed\r\n} from \"../../events/utils/index\";\r\nimport {\r\n deferUpdate,\r\n deferUpdater,\r\n deferRender,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport Scrollbar from \"./ui.scrollbar\";\r\nimport {\r\n when,\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nvar SCROLLABLE_SIMULATED = \"dxSimulatedScrollable\";\r\nvar SCROLLABLE_STRATEGY = \"dxScrollableStrategy\";\r\nvar SCROLLABLE_SIMULATED_CURSOR = SCROLLABLE_SIMULATED + \"Cursor\";\r\nvar SCROLLABLE_SIMULATED_KEYBOARD = SCROLLABLE_SIMULATED + \"Keyboard\";\r\nvar SCROLLABLE_SIMULATED_CLASS = \"dx-scrollable-simulated\";\r\nvar SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE = \"dx-scrollable-scrollbars-alwaysvisible\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar VERTICAL = \"vertical\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar ACCELERATION = .92;\r\nvar OUT_BOUNDS_ACCELERATION = .5;\r\nvar MIN_VELOCITY_LIMIT = 1;\r\nvar FRAME_DURATION = Math.round(1e3 / 60);\r\nvar SCROLL_LINE_HEIGHT = 40;\r\nvar VALIDATE_WHEEL_TIMEOUT = 500;\r\nvar BOUNCE_MIN_VELOCITY_LIMIT = MIN_VELOCITY_LIMIT / 5;\r\nvar BOUNCE_DURATION = 400;\r\nvar BOUNCE_FRAMES = BOUNCE_DURATION / FRAME_DURATION;\r\nvar BOUNCE_ACCELERATION_SUM = (1 - Math.pow(ACCELERATION, BOUNCE_FRAMES)) / (1 - ACCELERATION);\r\nvar KEY_CODES = {\r\n PAGE_UP: \"pageUp\",\r\n PAGE_DOWN: \"pageDown\",\r\n END: \"end\",\r\n HOME: \"home\",\r\n LEFT: \"leftArrow\",\r\n UP: \"upArrow\",\r\n RIGHT: \"rightArrow\",\r\n DOWN: \"downArrow\",\r\n TAB: \"tab\"\r\n};\r\nvar InertiaAnimator = Animator.inherit({\r\n ctor: function(scroller) {\r\n this.callBase();\r\n this.scroller = scroller\r\n },\r\n VELOCITY_LIMIT: MIN_VELOCITY_LIMIT,\r\n _isFinished: function() {\r\n return Math.abs(this.scroller._velocity) <= this.VELOCITY_LIMIT\r\n },\r\n _step: function() {\r\n this.scroller._scrollStep(this.scroller._velocity);\r\n this.scroller._velocity *= this._acceleration()\r\n },\r\n _acceleration: function() {\r\n return this.scroller._inBounds() ? ACCELERATION : OUT_BOUNDS_ACCELERATION\r\n },\r\n _complete: function() {\r\n this.scroller._scrollComplete()\r\n }\r\n});\r\nvar BounceAnimator = InertiaAnimator.inherit({\r\n VELOCITY_LIMIT: BOUNCE_MIN_VELOCITY_LIMIT,\r\n _isFinished: function() {\r\n return this.scroller._crossBoundOnNextStep() || this.callBase()\r\n },\r\n _acceleration: function() {\r\n return ACCELERATION\r\n },\r\n _complete: function() {\r\n this.scroller._move(this.scroller._bounceLocation);\r\n this.callBase()\r\n }\r\n});\r\nexport var Scroller = Class.inherit({\r\n ctor: function(options) {\r\n this._initOptions(options);\r\n this._initAnimators();\r\n this._initScrollbar()\r\n },\r\n _initOptions: function(options) {\r\n this._location = 0;\r\n this._topReached = false;\r\n this._bottomReached = false;\r\n this._axis = options.direction === HORIZONTAL ? \"x\" : \"y\";\r\n this._prop = options.direction === HORIZONTAL ? \"left\" : \"top\";\r\n this._dimension = options.direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._scrollProp = options.direction === HORIZONTAL ? \"scrollLeft\" : \"scrollTop\";\r\n each(options, (optionName, optionValue) => {\r\n this[\"_\" + optionName] = optionValue\r\n })\r\n },\r\n _initAnimators: function() {\r\n this._inertiaAnimator = new InertiaAnimator(this);\r\n this._bounceAnimator = new BounceAnimator(this)\r\n },\r\n _initScrollbar: function() {\r\n this._scrollbar = new Scrollbar($(\"<div>\").appendTo(this._$container), {\r\n direction: this._direction,\r\n visible: this._scrollByThumb,\r\n visibilityMode: this._visibilityModeNormalize(this._scrollbarVisible),\r\n expandable: this._scrollByThumb\r\n });\r\n this._$scrollbar = this._scrollbar.$element()\r\n },\r\n _visibilityModeNormalize: function(mode) {\r\n return true === mode ? \"onScroll\" : false === mode ? \"never\" : mode\r\n },\r\n _scrollStep: function(delta) {\r\n var prevLocation = this._location;\r\n this._location += delta;\r\n this._suppressBounce();\r\n this._move();\r\n if (Math.abs(prevLocation - this._location) < 1) {\r\n return\r\n }\r\n eventsEngine.triggerHandler(this._$container, {\r\n type: \"scroll\"\r\n })\r\n },\r\n _suppressBounce: function() {\r\n if (this._bounceEnabled || this._inBounds(this._location)) {\r\n return\r\n }\r\n this._velocity = 0;\r\n this._location = this._boundLocation()\r\n },\r\n _boundLocation: function(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return Math.max(Math.min(location, this._maxOffset), this._minOffset)\r\n },\r\n _move: function(location) {\r\n this._location = void 0 !== location ? location * this._getScaleRatio() : this._location;\r\n this._moveContent();\r\n this._moveScrollbar()\r\n },\r\n _moveContent: function() {\r\n var location = this._location;\r\n this._$container[this._scrollProp](-location / this._getScaleRatio());\r\n this._moveContentByTranslator(location)\r\n },\r\n _getScaleRatio: function() {\r\n if (hasWindow() && !this._scaleRatio) {\r\n var element = this._$element.get(0);\r\n var realDimension = this._getRealDimension(element, this._dimension);\r\n var baseDimension = this._getBaseDimension(element, this._dimension);\r\n this._scaleRatio = Math.round(realDimension / baseDimension * 100) / 100\r\n }\r\n return this._scaleRatio || 1\r\n },\r\n _getRealDimension: function(element, dimension) {\r\n return Math.round(getBoundingRect(element)[dimension])\r\n },\r\n _getBaseDimension: function(element, dimension) {\r\n var dimensionName = \"offset\" + titleize(dimension);\r\n return element[dimensionName]\r\n },\r\n _moveContentByTranslator: function(location) {\r\n var translateOffset;\r\n var minOffset = -this._maxScrollPropValue;\r\n if (location > 0) {\r\n translateOffset = location\r\n } else if (location <= minOffset) {\r\n translateOffset = location - minOffset\r\n } else {\r\n translateOffset = location % 1\r\n }\r\n if (this._translateOffset === translateOffset) {\r\n return\r\n }\r\n var targetLocation = {};\r\n targetLocation[this._prop] = translateOffset;\r\n this._translateOffset = translateOffset;\r\n if (0 === translateOffset) {\r\n resetPosition(this._$content);\r\n return\r\n }\r\n move(this._$content, targetLocation)\r\n },\r\n _moveScrollbar: function() {\r\n this._scrollbar.moveTo(this._location)\r\n },\r\n _scrollComplete: function() {\r\n if (this._inBounds()) {\r\n this._hideScrollbar();\r\n if (this._completeDeferred) {\r\n this._completeDeferred.resolve()\r\n }\r\n }\r\n this._scrollToBounds()\r\n },\r\n _scrollToBounds: function() {\r\n if (this._inBounds()) {\r\n return\r\n }\r\n this._bounceAction();\r\n this._setupBounce();\r\n this._bounceAnimator.start()\r\n },\r\n _setupBounce: function() {\r\n var boundLocation = this._bounceLocation = this._boundLocation();\r\n var bounceDistance = boundLocation - this._location;\r\n this._velocity = bounceDistance / BOUNCE_ACCELERATION_SUM\r\n },\r\n _inBounds: function(location) {\r\n location = void 0 !== location ? location : this._location;\r\n return this._boundLocation(location) === location\r\n },\r\n _crossBoundOnNextStep: function() {\r\n var location = this._location;\r\n var nextLocation = location + this._velocity;\r\n return location < this._minOffset && nextLocation >= this._minOffset || location > this._maxOffset && nextLocation <= this._maxOffset\r\n },\r\n _initHandler: function(e) {\r\n this._stopScrolling();\r\n this._prepareThumbScrolling(e)\r\n },\r\n _stopScrolling: deferRenderer((function() {\r\n this._hideScrollbar();\r\n this._inertiaAnimator.stop();\r\n this._bounceAnimator.stop()\r\n })),\r\n _prepareThumbScrolling: function(e) {\r\n if (isDxMouseWheelEvent(e.originalEvent)) {\r\n return\r\n }\r\n var $target = $(e.originalEvent.target);\r\n var scrollbarClicked = this._isScrollbar($target);\r\n if (scrollbarClicked) {\r\n this._moveToMouseLocation(e)\r\n }\r\n this._thumbScrolling = scrollbarClicked || this._isThumb($target);\r\n this._crossThumbScrolling = !this._thumbScrolling && this._isAnyThumbScrolling($target);\r\n if (this._thumbScrolling) {\r\n this._scrollbar.feedbackOn()\r\n }\r\n },\r\n _isThumbScrollingHandler: function($target) {\r\n return this._isThumb($target)\r\n },\r\n _moveToMouseLocation: function(e) {\r\n var mouseLocation = e[\"page\" + this._axis.toUpperCase()] - this._$element.offset()[this._prop];\r\n var location = this._location + mouseLocation / this._containerToContentRatio() - getHeight(this._$container) / 2;\r\n this._scrollStep(-Math.round(location))\r\n },\r\n _startHandler: function() {\r\n this._showScrollbar()\r\n },\r\n _moveHandler: function(delta) {\r\n if (this._crossThumbScrolling) {\r\n return\r\n }\r\n if (this._thumbScrolling) {\r\n delta[this._axis] = -Math.round(delta[this._axis] / this._containerToContentRatio())\r\n }\r\n this._scrollBy(delta)\r\n },\r\n _scrollBy: function(delta) {\r\n delta = delta[this._axis];\r\n if (!this._inBounds()) {\r\n delta *= OUT_BOUNDS_ACCELERATION\r\n }\r\n this._scrollStep(delta)\r\n },\r\n _scrollByHandler: function(delta) {\r\n this._scrollBy(delta);\r\n this._scrollComplete()\r\n },\r\n _containerToContentRatio: function() {\r\n return this._scrollbar.containerToContentRatio()\r\n },\r\n _endHandler: function(velocity) {\r\n this._completeDeferred = new Deferred;\r\n this._velocity = velocity[this._axis];\r\n this._inertiaHandler();\r\n this._resetThumbScrolling();\r\n return this._completeDeferred.promise()\r\n },\r\n _inertiaHandler: function() {\r\n this._suppressInertia();\r\n this._inertiaAnimator.start()\r\n },\r\n _suppressInertia: function() {\r\n if (!this._inertiaEnabled || this._thumbScrolling) {\r\n this._velocity = 0\r\n }\r\n },\r\n _resetThumbScrolling: function() {\r\n this._thumbScrolling = false;\r\n this._crossThumbScrolling = false\r\n },\r\n _stopHandler: function() {\r\n if (this._thumbScrolling) {\r\n this._scrollComplete()\r\n }\r\n this._resetThumbScrolling();\r\n this._scrollToBounds()\r\n },\r\n _disposeHandler: function() {\r\n this._stopScrolling();\r\n this._$scrollbar.remove()\r\n },\r\n _updateHandler: function() {\r\n this._update();\r\n this._moveToBounds()\r\n },\r\n _update: function() {\r\n this._stopScrolling();\r\n return deferUpdate(() => {\r\n this._resetScaleRatio();\r\n this._updateLocation();\r\n this._updateBounds();\r\n this._updateScrollbar();\r\n deferRender(() => {\r\n this._moveScrollbar();\r\n this._scrollbar.update()\r\n })\r\n })\r\n },\r\n _resetScaleRatio: function() {\r\n this._scaleRatio = null\r\n },\r\n _updateLocation: function() {\r\n this._location = (locate(this._$content)[this._prop] - this._$container[this._scrollProp]()) * this._getScaleRatio()\r\n },\r\n _updateBounds: function() {\r\n this._maxOffset = this._getMaxOffset();\r\n this._minOffset = this._getMinOffset()\r\n },\r\n _getMaxOffset: function() {\r\n return 0\r\n },\r\n _getMinOffset: function() {\r\n this._maxScrollPropValue = Math.max(this._contentSize() - this._containerSize(), 0);\r\n return -this._maxScrollPropValue\r\n },\r\n _updateScrollbar: deferUpdater((function() {\r\n var containerSize = this._containerSize();\r\n var contentSize = this._contentSize();\r\n var baseContainerSize = this._getBaseDimension(this._$container.get(0), this._dimension);\r\n var baseContentSize = this._getBaseDimension(this._$content.get(0), this._dimension);\r\n deferRender(() => {\r\n this._scrollbar.option({\r\n containerSize: containerSize,\r\n contentSize: contentSize,\r\n baseContainerSize: baseContainerSize,\r\n baseContentSize: baseContentSize,\r\n scaleRatio: this._getScaleRatio()\r\n })\r\n })\r\n })),\r\n _moveToBounds: deferRenderer(deferUpdater(deferRenderer((function() {\r\n var location = this._boundLocation();\r\n var locationChanged = location !== this._location;\r\n this._location = location;\r\n this._move();\r\n if (locationChanged) {\r\n this._scrollAction()\r\n }\r\n })))),\r\n _createActionsHandler: function(actions) {\r\n this._scrollAction = actions.scroll;\r\n this._bounceAction = actions.bounce\r\n },\r\n _showScrollbar: function() {\r\n this._scrollbar.option(\"visible\", true)\r\n },\r\n _hideScrollbar: function() {\r\n this._scrollbar.option(\"visible\", false)\r\n },\r\n _containerSize: function() {\r\n return this._getRealDimension(this._$container.get(0), this._dimension)\r\n },\r\n _contentSize: function() {\r\n var isOverflowHidden = \"hidden\" === this._$content.css(\"overflow\" + this._axis.toUpperCase());\r\n var contentSize = this._getRealDimension(this._$content.get(0), this._dimension);\r\n if (!isOverflowHidden) {\r\n var containerScrollSize = this._$content[0][\"scroll\" + titleize(this._dimension)] * this._getScaleRatio();\r\n contentSize = Math.max(containerScrollSize, contentSize)\r\n }\r\n return contentSize\r\n },\r\n _validateEvent: function(e) {\r\n var $target = $(e.originalEvent.target);\r\n return this._isThumb($target) || this._isScrollbar($target)\r\n },\r\n _isThumb: function($element) {\r\n return this._scrollByThumb && this._scrollbar.isThumb($element)\r\n },\r\n _isScrollbar: function($element) {\r\n return this._scrollByThumb && $element && $element.is(this._$scrollbar)\r\n },\r\n _reachedMin: function() {\r\n return Math.round(this._location - this._minOffset) <= 0\r\n },\r\n _reachedMax: function() {\r\n return Math.round(this._location - this._maxOffset) >= 0\r\n },\r\n _cursorEnterHandler: function() {\r\n this._resetScaleRatio();\r\n this._updateScrollbar();\r\n this._scrollbar.cursorEnter()\r\n },\r\n _cursorLeaveHandler: function() {\r\n this._scrollbar.cursorLeave()\r\n },\r\n dispose: noop\r\n});\r\nvar hoveredScrollable;\r\nvar activeScrollable;\r\nexport var SimulatedStrategy = Class.inherit({\r\n ctor: function(scrollable) {\r\n this._init(scrollable)\r\n },\r\n _init: function(scrollable) {\r\n this._component = scrollable;\r\n this._$element = scrollable.$element();\r\n this._$container = $(scrollable.container());\r\n this._$wrapper = scrollable._$wrapper;\r\n this._$content = scrollable.$content();\r\n this.option = scrollable.option.bind(scrollable);\r\n this._createActionByOption = scrollable._createActionByOption.bind(scrollable);\r\n this._isLocked = scrollable._isLocked.bind(scrollable);\r\n this._isDirection = scrollable._isDirection.bind(scrollable);\r\n this._allowedDirection = scrollable._allowedDirection.bind(scrollable);\r\n this._getMaxOffset = scrollable._getMaxOffset.bind(scrollable)\r\n },\r\n render: function() {\r\n this._$element.addClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._createScrollers();\r\n if (this.option(\"useKeyboard\")) {\r\n this._$container.prop(\"tabIndex\", 0)\r\n }\r\n this._attachKeyboardHandler();\r\n this._attachCursorHandlers()\r\n },\r\n _createScrollers: function() {\r\n this._scrollers = {};\r\n if (this._isDirection(HORIZONTAL)) {\r\n this._createScroller(HORIZONTAL)\r\n }\r\n if (this._isDirection(VERTICAL)) {\r\n this._createScroller(VERTICAL)\r\n }\r\n this._$element.toggleClass(SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE, \"always\" === this.option(\"showScrollbar\"))\r\n },\r\n _createScroller: function(direction) {\r\n this._scrollers[direction] = new Scroller(this._scrollerOptions(direction))\r\n },\r\n _scrollerOptions: function(direction) {\r\n return {\r\n direction: direction,\r\n $content: this._$content,\r\n $container: this._$container,\r\n $wrapper: this._$wrapper,\r\n $element: this._$element,\r\n scrollByThumb: this.option(\"scrollByThumb\"),\r\n scrollbarVisible: this.option(\"showScrollbar\"),\r\n bounceEnabled: this.option(\"bounceEnabled\"),\r\n inertiaEnabled: this.option(\"inertiaEnabled\"),\r\n isAnyThumbScrolling: this._isAnyThumbScrolling.bind(this)\r\n }\r\n },\r\n _applyScaleRatio: function(targetLocation) {\r\n for (var direction in this._scrollers) {\r\n var prop = this._getPropByDirection(direction);\r\n if (isDefined(targetLocation[prop])) {\r\n var scroller = this._scrollers[direction];\r\n targetLocation[prop] *= scroller._getScaleRatio()\r\n }\r\n }\r\n return targetLocation\r\n },\r\n _isAnyThumbScrolling: function($target) {\r\n var result = false;\r\n this._eventHandler(\"isThumbScrolling\", $target).done((function(isThumbScrollingVertical, isThumbScrollingHorizontal) {\r\n result = isThumbScrollingVertical || isThumbScrollingHorizontal\r\n }));\r\n return result\r\n },\r\n handleInit: function(e) {\r\n this._suppressDirections(e);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"init\", e)\r\n },\r\n _suppressDirections: function(e) {\r\n if (isDxMouseWheelEvent(e.originalEvent)) {\r\n this._prepareDirections(true);\r\n return\r\n }\r\n this._prepareDirections();\r\n this._eachScroller((function(scroller, direction) {\r\n var $target = $(e.originalEvent.target);\r\n var isValid = scroller._validateEvent(e) || this.option(\"scrollByContent\") && this._isContent($target);\r\n this._validDirections[direction] = isValid\r\n }))\r\n },\r\n _isContent: function($element) {\r\n return !!$element.closest(this._$element).length\r\n },\r\n _prepareDirections: function(value) {\r\n value = value || false;\r\n this._validDirections = {};\r\n this._validDirections[HORIZONTAL] = value;\r\n this._validDirections[VERTICAL] = value\r\n },\r\n _eachScroller: function(callback) {\r\n callback = callback.bind(this);\r\n each(this._scrollers, (function(direction, scroller) {\r\n callback(scroller, direction)\r\n }))\r\n },\r\n handleStart: function(e) {\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"start\").done(this._startAction)\r\n },\r\n _saveActive: function() {\r\n activeScrollable = this\r\n },\r\n _resetActive: function() {\r\n if (activeScrollable === this) {\r\n activeScrollable = null\r\n }\r\n },\r\n handleMove: function(e) {\r\n if (this._isLocked()) {\r\n e.cancel = true;\r\n this._resetActive();\r\n return\r\n }\r\n this._saveActive();\r\n e.preventDefault && e.preventDefault();\r\n this._adjustDistance(e, e.delta);\r\n this._eventForUserAction = e;\r\n this._eventHandler(\"move\", e.delta)\r\n },\r\n _adjustDistance: function(e, distance) {\r\n distance.x *= this._validDirections[HORIZONTAL];\r\n distance.y *= this._validDirections[VERTICAL];\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n if (devicePixelRatio && isDxMouseWheelEvent(e.originalEvent)) {\r\n distance.x = Math.round(distance.x / devicePixelRatio * 100) / 100;\r\n distance.y = Math.round(distance.y / devicePixelRatio * 100) / 100\r\n }\r\n },\r\n _tryGetDevicePixelRatio: function() {\r\n if (hasWindow()) {\r\n return getWindow().devicePixelRatio\r\n }\r\n },\r\n handleEnd: function(e) {\r\n this._resetActive();\r\n this._refreshCursorState(e.originalEvent && e.originalEvent.target);\r\n this._adjustDistance(e, e.velocity);\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", e.velocity).done(this._endAction)\r\n },\r\n handleCancel: function(e) {\r\n this._resetActive();\r\n this._eventForUserAction = e;\r\n return this._eventHandler(\"end\", {\r\n x: 0,\r\n y: 0\r\n })\r\n },\r\n handleStop: function() {\r\n this._resetActive();\r\n this._eventHandler(\"stop\")\r\n },\r\n handleScroll: function() {\r\n this._updateRtlConfig();\r\n this._scrollAction()\r\n },\r\n _attachKeyboardHandler: function() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD));\r\n if (!this.option(\"disabled\") && this.option(\"useKeyboard\")) {\r\n eventsEngine.on(this._$element, addEventNamespace(\"keydown\", SCROLLABLE_SIMULATED_KEYBOARD), this._keyDownHandler.bind(this))\r\n }\r\n },\r\n _keyDownHandler: function(e) {\r\n clearTimeout(this._updateHandlerTimeout);\r\n this._updateHandlerTimeout = setTimeout(() => {\r\n if (normalizeKeyName(e) === KEY_CODES.TAB) {\r\n this._eachScroller(scroller => {\r\n scroller._updateHandler()\r\n })\r\n }\r\n });\r\n if (!this._$container.is(domAdapter.getActiveElement(this._$container.get(0)))) {\r\n return\r\n }\r\n var handled = true;\r\n switch (normalizeKeyName(e)) {\r\n case KEY_CODES.DOWN:\r\n this._scrollByLine({\r\n y: 1\r\n });\r\n break;\r\n case KEY_CODES.UP:\r\n this._scrollByLine({\r\n y: -1\r\n });\r\n break;\r\n case KEY_CODES.RIGHT:\r\n this._scrollByLine({\r\n x: 1\r\n });\r\n break;\r\n case KEY_CODES.LEFT:\r\n this._scrollByLine({\r\n x: -1\r\n });\r\n break;\r\n case KEY_CODES.PAGE_DOWN:\r\n this._scrollByPage(1);\r\n break;\r\n case KEY_CODES.PAGE_UP:\r\n this._scrollByPage(-1);\r\n break;\r\n case KEY_CODES.HOME:\r\n this._scrollToHome();\r\n break;\r\n case KEY_CODES.END:\r\n this._scrollToEnd();\r\n break;\r\n default:\r\n handled = false\r\n }\r\n if (handled) {\r\n e.stopPropagation();\r\n e.preventDefault()\r\n }\r\n },\r\n _scrollByLine: function(lines) {\r\n var devicePixelRatio = this._tryGetDevicePixelRatio();\r\n var scrollOffset = SCROLL_LINE_HEIGHT;\r\n if (devicePixelRatio) {\r\n scrollOffset = Math.abs(scrollOffset / devicePixelRatio * 100) / 100\r\n }\r\n this.scrollBy({\r\n top: (lines.y || 0) * -scrollOffset,\r\n left: (lines.x || 0) * -scrollOffset\r\n })\r\n },\r\n _scrollByPage: function(page) {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n distance[prop] = page * -getter(this._$container);\r\n this.scrollBy(distance)\r\n },\r\n _dimensionByProp: function(prop) {\r\n return \"left\" === prop ? \"width\" : \"height\"\r\n },\r\n _getPropByDirection: function(direction) {\r\n return direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _scrollToHome: function() {\r\n var prop = this._wheelProp();\r\n var distance = {};\r\n distance[prop] = 0;\r\n this._component.scrollTo(distance)\r\n },\r\n _scrollToEnd: function() {\r\n var prop = this._wheelProp();\r\n var dimension = this._dimensionByProp(prop);\r\n var distance = {};\r\n var getter = \"width\" === dimension ? getWidth : getHeight;\r\n distance[prop] = getter(this._$content) - getter(this._$container);\r\n this._component.scrollTo(distance)\r\n },\r\n createActions: function() {\r\n this._startAction = this._createActionHandler(\"onStart\");\r\n this._endAction = this._createActionHandler(\"onEnd\");\r\n this._updateAction = this._createActionHandler(\"onUpdated\");\r\n this._createScrollerActions()\r\n },\r\n _createScrollerActions: function() {\r\n this._scrollAction = this._createActionHandler(\"onScroll\");\r\n this._bounceAction = this._createActionHandler(\"onBounce\");\r\n this._eventHandler(\"createActions\", {\r\n scroll: this._scrollAction,\r\n bounce: this._bounceAction\r\n })\r\n },\r\n _createActionHandler: function(optionName) {\r\n var actionHandler = this._createActionByOption(optionName);\r\n return () => {\r\n actionHandler(extend(this._createActionArgs(), arguments))\r\n }\r\n },\r\n _createActionArgs: function() {\r\n var {\r\n horizontal: scrollerX,\r\n vertical: scrollerY\r\n } = this._scrollers;\r\n var offset = this._getScrollOffset();\r\n this._scrollOffset = {\r\n top: scrollerY && offset.top,\r\n left: scrollerX && offset.left\r\n };\r\n return {\r\n event: this._eventForUserAction,\r\n scrollOffset: this._scrollOffset,\r\n reachedLeft: scrollerX && scrollerX._reachedMax(),\r\n reachedRight: scrollerX && scrollerX._reachedMin(),\r\n reachedTop: scrollerY && scrollerY._reachedMax(),\r\n reachedBottom: scrollerY && scrollerY._reachedMin()\r\n }\r\n },\r\n _getScrollOffset() {\r\n return {\r\n top: -this.location().top,\r\n left: -this.location().left\r\n }\r\n },\r\n _eventHandler: function(eventName) {\r\n var args = [].slice.call(arguments).slice(1);\r\n var deferreds = map(this._scrollers, scroller => scroller[\"_\" + eventName + \"Handler\"].apply(scroller, args));\r\n return when.apply($, deferreds).promise()\r\n },\r\n location: function() {\r\n var location = locate(this._$content);\r\n location.top -= this._$container.scrollTop();\r\n location.left -= this._$container.scrollLeft();\r\n return location\r\n },\r\n disabledChanged: function() {\r\n this._attachCursorHandlers()\r\n },\r\n _attachCursorHandlers: function() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n if (!this.option(\"disabled\") && this._isHoverMode()) {\r\n eventsEngine.on(this._$element, addEventNamespace(\"mouseenter\", SCROLLABLE_SIMULATED_CURSOR), this._cursorEnterHandler.bind(this));\r\n eventsEngine.on(this._$element, addEventNamespace(\"mouseleave\", SCROLLABLE_SIMULATED_CURSOR), this._cursorLeaveHandler.bind(this))\r\n }\r\n },\r\n _isHoverMode: function() {\r\n return \"onHover\" === this.option(\"showScrollbar\")\r\n },\r\n _cursorEnterHandler: function(e) {\r\n e = e || {};\r\n e.originalEvent = e.originalEvent || {};\r\n if (activeScrollable || e.originalEvent._hoverHandled) {\r\n return\r\n }\r\n if (hoveredScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n hoveredScrollable = this;\r\n this._eventHandler(\"cursorEnter\");\r\n e.originalEvent._hoverHandled = true\r\n },\r\n _cursorLeaveHandler: function(e) {\r\n if (hoveredScrollable !== this || activeScrollable === hoveredScrollable) {\r\n return\r\n }\r\n this._eventHandler(\"cursorLeave\");\r\n hoveredScrollable = null;\r\n this._refreshCursorState(e && e.relatedTarget)\r\n },\r\n _refreshCursorState: function(target) {\r\n if (!this._isHoverMode() && (!target || activeScrollable)) {\r\n return\r\n }\r\n var $target = $(target);\r\n var $scrollable = $target.closest(\".\".concat(SCROLLABLE_SIMULATED_CLASS, \":not(.dx-state-disabled)\"));\r\n var targetScrollable = $scrollable.length && $scrollable.data(SCROLLABLE_STRATEGY);\r\n if (hoveredScrollable && hoveredScrollable !== targetScrollable) {\r\n hoveredScrollable._cursorLeaveHandler()\r\n }\r\n if (targetScrollable) {\r\n targetScrollable._cursorEnterHandler()\r\n }\r\n },\r\n update: function() {\r\n var result = this._eventHandler(\"update\").done(this._updateAction);\r\n return when(result, deferUpdate(() => {\r\n var allowedDirections = this._allowedDirections();\r\n deferRender(() => {\r\n var touchDirection = allowedDirections.vertical ? \"pan-x\" : \"\";\r\n touchDirection = allowedDirections.horizontal ? \"pan-y\" : touchDirection;\r\n touchDirection = allowedDirections.vertical && allowedDirections.horizontal ? \"none\" : touchDirection;\r\n this._$container.css(\"touchAction\", touchDirection)\r\n });\r\n return when().promise()\r\n }))\r\n },\r\n _allowedDirections: function() {\r\n var bounceEnabled = this.option(\"bounceEnabled\");\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n return {\r\n vertical: verticalScroller && (verticalScroller._minOffset < 0 || bounceEnabled),\r\n horizontal: horizontalScroller && (horizontalScroller._minOffset < 0 || bounceEnabled)\r\n }\r\n },\r\n _updateBounds: function() {\r\n this._scrollers[HORIZONTAL] && this._scrollers[HORIZONTAL]._updateBounds()\r\n },\r\n _isHorizontalAndRtlEnabled: function() {\r\n return this.option(\"rtlEnabled\") && this.option(\"direction\") !== VERTICAL\r\n },\r\n updateRtlPosition: function(needInitializeRtlConfig) {\r\n if (needInitializeRtlConfig) {\r\n this._rtlConfig = {\r\n scrollRight: 0,\r\n clientWidth: this._$container.get(0).clientWidth,\r\n windowPixelRatio: this._getWindowDevicePixelRatio()\r\n }\r\n }\r\n this._updateBounds();\r\n if (this._isHorizontalAndRtlEnabled()) {\r\n deferUpdate(() => {\r\n var scrollLeft = this._getMaxOffset().left - this._rtlConfig.scrollRight;\r\n if (scrollLeft <= 0) {\r\n scrollLeft = 0;\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left\r\n }\r\n deferRender(() => {\r\n if (this._getScrollOffset().left !== scrollLeft) {\r\n this._rtlConfig.skipUpdating = true;\r\n this._component.scrollTo({\r\n left: scrollLeft\r\n });\r\n this._rtlConfig.skipUpdating = false\r\n }\r\n })\r\n })\r\n }\r\n },\r\n _updateRtlConfig: function() {\r\n if (this._isHorizontalAndRtlEnabled() && !this._rtlConfig.skipUpdating) {\r\n var {\r\n clientWidth: clientWidth,\r\n scrollLeft: scrollLeft\r\n } = this._$container.get(0);\r\n var windowPixelRatio = this._getWindowDevicePixelRatio();\r\n if (this._rtlConfig.windowPixelRatio === windowPixelRatio && this._rtlConfig.clientWidth === clientWidth) {\r\n this._rtlConfig.scrollRight = this._getMaxOffset().left - scrollLeft\r\n }\r\n this._rtlConfig.clientWidth = clientWidth;\r\n this._rtlConfig.windowPixelRatio = windowPixelRatio\r\n }\r\n },\r\n _getWindowDevicePixelRatio: function() {\r\n return hasWindow() ? getWindow().devicePixelRatio : 1\r\n },\r\n scrollBy: function(distance) {\r\n var verticalScroller = this._scrollers[VERTICAL];\r\n var horizontalScroller = this._scrollers[HORIZONTAL];\r\n if (verticalScroller) {\r\n distance.top = verticalScroller._boundLocation(distance.top + verticalScroller._location) - verticalScroller._location\r\n }\r\n if (horizontalScroller) {\r\n distance.left = horizontalScroller._boundLocation(distance.left + horizontalScroller._location) - horizontalScroller._location\r\n }\r\n this._prepareDirections(true);\r\n this._startAction();\r\n this._eventHandler(\"scrollBy\", {\r\n x: distance.left,\r\n y: distance.top\r\n });\r\n this._endAction();\r\n this._updateRtlConfig()\r\n },\r\n validate: function(e) {\r\n if (isDxMouseWheelEvent(e) && isCommandKeyPressed(e)) {\r\n return false\r\n }\r\n if (this.option(\"disabled\")) {\r\n return false\r\n }\r\n if (this.option(\"bounceEnabled\")) {\r\n return true\r\n }\r\n return isDxMouseWheelEvent(e) ? this._validateWheel(e) : this._validateMove(e)\r\n },\r\n _validateWheel: function(e) {\r\n var scroller = this._scrollers[this._wheelDirection(e)];\r\n var reachedMin = scroller._reachedMin();\r\n var reachedMax = scroller._reachedMax();\r\n var contentGreaterThanContainer = !reachedMin || !reachedMax;\r\n var locatedNotAtBound = !reachedMin && !reachedMax;\r\n var scrollFromMin = reachedMin && e.delta > 0;\r\n var scrollFromMax = reachedMax && e.delta < 0;\r\n var validated = contentGreaterThanContainer && (locatedNotAtBound || scrollFromMin || scrollFromMax);\r\n validated = validated || void 0 !== this._validateWheelTimer;\r\n if (validated) {\r\n clearTimeout(this._validateWheelTimer);\r\n this._validateWheelTimer = setTimeout(() => {\r\n this._validateWheelTimer = void 0\r\n }, VALIDATE_WHEEL_TIMEOUT)\r\n }\r\n return validated\r\n },\r\n _validateMove: function(e) {\r\n if (!this.option(\"scrollByContent\") && !$(e.target).closest(\".\".concat(SCROLLABLE_SCROLLBAR_CLASS)).length) {\r\n return false\r\n }\r\n return this._allowedDirection()\r\n },\r\n getDirection: function(e) {\r\n return isDxMouseWheelEvent(e) ? this._wheelDirection(e) : this._allowedDirection()\r\n },\r\n _wheelProp: function() {\r\n return this._wheelDirection() === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _wheelDirection: function(e) {\r\n switch (this.option(\"direction\")) {\r\n case HORIZONTAL:\r\n return HORIZONTAL;\r\n case VERTICAL:\r\n return VERTICAL;\r\n default:\r\n return e && e.shiftKey ? HORIZONTAL : VERTICAL\r\n }\r\n },\r\n dispose: function() {\r\n this._resetActive();\r\n if (hoveredScrollable === this) {\r\n hoveredScrollable = null\r\n }\r\n this._eventHandler(\"dispose\");\r\n this._detachEventHandlers();\r\n this._$element.removeClass(SCROLLABLE_SIMULATED_CLASS);\r\n this._eventForUserAction = null;\r\n clearTimeout(this._validateWheelTimer);\r\n clearTimeout(this._updateHandlerTimeout)\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this._$element, \".\".concat(SCROLLABLE_SIMULATED_CURSOR));\r\n eventsEngine.off(this._$container, \".\".concat(SCROLLABLE_SIMULATED_KEYBOARD))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/scroll_view/ui.scrollbar.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport readyCallback from \"../../core/utils/ready_callbacks\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nimport Widget from \"../widget/ui.widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport {\r\n deferRenderer\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nvar SCROLLBAR = \"dxScrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_CLASS = \"dx-scrollable-scrollbar\";\r\nvar SCROLLABLE_SCROLLBAR_ACTIVE_CLASS = \"\".concat(SCROLLABLE_SCROLLBAR_CLASS, \"-active\");\r\nvar SCROLLABLE_SCROLL_CLASS = \"dx-scrollable-scroll\";\r\nvar SCROLLABLE_SCROLL_CONTENT_CLASS = \"dx-scrollable-scroll-content\";\r\nvar HOVER_ENABLED_STATE = \"dx-scrollbar-hoverable\";\r\nvar HORIZONTAL = \"horizontal\";\r\nvar THUMB_MIN_SIZE = 15;\r\nvar SCROLLBAR_VISIBLE = {\r\n onScroll: \"onScroll\",\r\n onHover: \"onHover\",\r\n always: \"always\",\r\n never: \"never\"\r\n};\r\nvar activeScrollbar = null;\r\nvar Scrollbar = Widget.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n direction: null,\r\n visible: false,\r\n activeStateEnabled: false,\r\n visibilityMode: SCROLLBAR_VISIBLE.onScroll,\r\n containerSize: 0,\r\n contentSize: 0,\r\n expandable: true,\r\n scaleRatio: 1\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._isHovered = false\r\n },\r\n _initMarkup: function() {\r\n this._renderThumb();\r\n this.callBase()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._renderDirection();\r\n this._update();\r\n this._attachPointerDownHandler();\r\n this.option(\"hoverStateEnabled\", this._isHoverMode());\r\n this.$element().toggleClass(HOVER_ENABLED_STATE, this.option(\"hoverStateEnabled\"))\r\n },\r\n _renderThumb: function() {\r\n this._$thumb = $(\"<div>\").addClass(SCROLLABLE_SCROLL_CLASS);\r\n $(\"<div>\").addClass(SCROLLABLE_SCROLL_CONTENT_CLASS).appendTo(this._$thumb);\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_CLASS).append(this._$thumb)\r\n },\r\n isThumb: function($element) {\r\n return !!this.$element().find($element).length\r\n },\r\n _isHoverMode: function() {\r\n var visibilityMode = this.option(\"visibilityMode\");\r\n return (visibilityMode === SCROLLBAR_VISIBLE.onHover || visibilityMode === SCROLLBAR_VISIBLE.always) && this.option(\"expandable\")\r\n },\r\n _renderDirection: function() {\r\n var direction = this.option(\"direction\");\r\n this.$element().addClass(\"dx-scrollbar-\" + direction);\r\n this._dimension = direction === HORIZONTAL ? \"width\" : \"height\";\r\n this._prop = direction === HORIZONTAL ? \"left\" : \"top\"\r\n },\r\n _attachPointerDownHandler: function() {\r\n eventsEngine.on(this._$thumb, addNamespace(pointerEvents.down, SCROLLBAR), this.feedbackOn.bind(this))\r\n },\r\n feedbackOn: function() {\r\n this.$element().addClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = this\r\n },\r\n feedbackOff: function() {\r\n this.$element().removeClass(SCROLLABLE_SCROLLBAR_ACTIVE_CLASS);\r\n activeScrollbar = null\r\n },\r\n cursorEnter: function() {\r\n this._isHovered = true;\r\n if (this._needScrollbar()) {\r\n this.option(\"visible\", true)\r\n }\r\n },\r\n cursorLeave: function() {\r\n this._isHovered = false;\r\n this.option(\"visible\", false)\r\n },\r\n _renderDimensions: function() {\r\n this._$thumb.css({\r\n width: this.option(\"width\"),\r\n height: this.option(\"height\")\r\n })\r\n },\r\n _toggleVisibility: function(visible) {\r\n if (this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.onScroll) {\r\n this._$thumb.css(\"opacity\")\r\n }\r\n visible = this._adjustVisibility(visible);\r\n this.option().visible = visible;\r\n this._$thumb.toggleClass(\"dx-state-invisible\", !visible)\r\n },\r\n _adjustVisibility: function(visible) {\r\n if (this._baseContainerToContentRatio && !this._needScrollbar()) {\r\n return false\r\n }\r\n switch (this.option(\"visibilityMode\")) {\r\n case SCROLLBAR_VISIBLE.onScroll:\r\n break;\r\n case SCROLLBAR_VISIBLE.onHover:\r\n visible = visible || !!this._isHovered;\r\n break;\r\n case SCROLLBAR_VISIBLE.never:\r\n visible = false;\r\n break;\r\n case SCROLLBAR_VISIBLE.always:\r\n visible = true\r\n }\r\n return visible\r\n },\r\n moveTo: function(location) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n if (isPlainObject(location)) {\r\n location = location[this._prop] || 0\r\n }\r\n var scrollBarLocation = {};\r\n scrollBarLocation[this._prop] = this._calculateScrollBarPosition(location);\r\n move(this._$thumb, scrollBarLocation)\r\n },\r\n _calculateScrollBarPosition: function(location) {\r\n return -location * this._thumbRatio\r\n },\r\n _update: function() {\r\n var containerSize = Math.round(this.option(\"containerSize\"));\r\n var contentSize = Math.round(this.option(\"contentSize\"));\r\n var baseContainerSize = Math.round(this.option(\"baseContainerSize\"));\r\n var baseContentSize = Math.round(this.option(\"baseContentSize\"));\r\n if (isNaN(baseContainerSize)) {\r\n baseContainerSize = containerSize;\r\n baseContentSize = contentSize\r\n }\r\n this._baseContainerToContentRatio = baseContentSize ? baseContainerSize / baseContentSize : baseContainerSize;\r\n this._realContainerToContentRatio = contentSize ? containerSize / contentSize : containerSize;\r\n var thumbSize = Math.round(Math.max(Math.round(containerSize * this._realContainerToContentRatio), THUMB_MIN_SIZE));\r\n this._thumbRatio = (containerSize - thumbSize) / (this.option(\"scaleRatio\") * (contentSize - containerSize));\r\n this.option(this._dimension, thumbSize / this.option(\"scaleRatio\"));\r\n this.$element().css(\"display\", this._needScrollbar() ? \"\" : \"none\")\r\n },\r\n _isHidden: function() {\r\n return this.option(\"visibilityMode\") === SCROLLBAR_VISIBLE.never\r\n },\r\n _needScrollbar: function() {\r\n return !this._isHidden() && this._baseContainerToContentRatio < 1\r\n },\r\n containerToContentRatio: function() {\r\n return this._realContainerToContentRatio\r\n },\r\n _normalizeSize: function(size) {\r\n return isPlainObject(size) ? size[this._dimension] || 0 : size\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n if (this === activeScrollbar) {\r\n activeScrollbar = null\r\n }\r\n eventsEngine.off(this._$thumb, \".\" + SCROLLBAR)\r\n },\r\n _optionChanged: function(args) {\r\n if (this._isHidden()) {\r\n return\r\n }\r\n switch (args.name) {\r\n case \"containerSize\":\r\n case \"contentSize\":\r\n this.option()[args.name] = this._normalizeSize(args.value);\r\n this._update();\r\n break;\r\n case \"baseContentSize\":\r\n case \"baseContainerSize\":\r\n this._update();\r\n break;\r\n case \"visibilityMode\":\r\n case \"direction\":\r\n this._invalidate();\r\n break;\r\n case \"scaleRatio\":\r\n this._update();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments)\r\n }\r\n },\r\n update: deferRenderer((function() {\r\n this._adjustVisibility() && this.option(\"visible\", true)\r\n }))\r\n});\r\nreadyCallback.add((function() {\r\n eventsEngine.subscribeGlobal(domAdapter.getDocument(), addNamespace(pointerEvents.up, SCROLLBAR), (function() {\r\n if (activeScrollbar) {\r\n activeScrollbar.feedbackOff()\r\n }\r\n }))\r\n}));\r\nexport default Scrollbar;\r\n","/**\r\n * DevExtreme (esm/ui/drop_down_editor/ui.drop_down_list.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n noop,\r\n ensureDefined,\r\n grep\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isWindow,\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport DropDownEditor from \"./ui.drop_down_editor\";\r\nimport List from \"../list_light\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport devices from \"../../core/devices\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport DataExpressionMixin from \"../editor/ui.data_expression\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../core/templates/child_default_template\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport DataConverterMixin from \"../shared/grouped_data_converter_mixin\";\r\nvar LIST_ITEM_SELECTOR = \".dx-list-item\";\r\nvar LIST_ITEM_DATA_KEY = \"dxListItemData\";\r\nvar DROPDOWNLIST_POPUP_WRAPPER_CLASS = \"dx-dropdownlist-popup-wrapper\";\r\nvar SEARCH_EVENT = \"input\";\r\nvar SEARCH_MODES = [\"startswith\", \"contains\", \"endwith\", \"notcontains\"];\r\nvar useCompositionEvents = \"android\" !== devices.real().platform;\r\nvar DropDownList = DropDownEditor.inherit({\r\n _supportedKeys: function() {\r\n var parent = this.callBase();\r\n return extend({}, parent, {\r\n tab: function(e) {\r\n if (this._allowSelectItemByTab()) {\r\n this._saveValueChangeEvent(e);\r\n var $focusedItem = $(this._list.option(\"focusedElement\"));\r\n $focusedItem.length && this._setSelectedElement($focusedItem)\r\n }\r\n parent.tab.apply(this, arguments)\r\n },\r\n space: noop,\r\n home: noop,\r\n end: noop\r\n })\r\n },\r\n _allowSelectItemByTab: function() {\r\n return this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")\r\n },\r\n _setSelectedElement: function($element) {\r\n var value = this._valueGetter(this._list._getItemData($element));\r\n this._setValue(value)\r\n },\r\n _setValue: function(value) {\r\n this.option(\"value\", value)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), extend(DataExpressionMixin._dataExpressionDefaultOptions(), {\r\n displayValue: void 0,\r\n searchEnabled: false,\r\n searchMode: \"contains\",\r\n searchTimeout: 500,\r\n minSearchLength: 0,\r\n searchExpr: null,\r\n valueChangeEvent: \"input change keyup\",\r\n selectedItem: null,\r\n noDataText: messageLocalization.format(\"dxCollectionWidget-noDataText\"),\r\n encodeNoDataText: false,\r\n onSelectionChanged: null,\r\n onItemClick: noop,\r\n showDataBeforeSearch: false,\r\n grouped: false,\r\n groupTemplate: \"group\",\r\n popupPosition: {\r\n my: \"left top\",\r\n at: \"left bottom\",\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n collision: \"flip\"\r\n },\r\n wrapItemText: false,\r\n useItemTextAsTitle: false\r\n }))\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: {\r\n platform: \"ios\"\r\n },\r\n options: {\r\n popupPosition: {\r\n offset: {\r\n v: -1\r\n }\r\n }\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n buttonsLocation: \"bottom center\"\r\n }\r\n }])\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n value: true,\r\n selectedItem: true,\r\n displayValue: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initDataExpressions();\r\n this._initActions();\r\n this._setListDataSource();\r\n this._validateSearchMode();\r\n this._clearSelectedItem();\r\n this._initItems()\r\n },\r\n _setListFocusedElementOptionChange: function() {\r\n this._list._updateParentActiveDescendant = this._updateActiveDescendant.bind(this)\r\n },\r\n _initItems: function() {\r\n var items = this.option().items;\r\n if (items && !items.length && this._dataSource) {\r\n this.option().items = this._dataSource.items()\r\n }\r\n },\r\n _initActions: function() {\r\n this._initContentReadyAction();\r\n this._initSelectionChangedAction();\r\n this._initItemClickAction()\r\n },\r\n _initContentReadyAction: function() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initSelectionChangedAction: function() {\r\n this._selectionChangedAction = this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initItemClickAction: function() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new ChildDefaultTemplate(\"item\")\r\n })\r\n },\r\n _isEditable: function() {\r\n return this.callBase() || this.option(\"searchEnabled\")\r\n },\r\n _saveFocusOnWidget: function(e) {\r\n if (this._list && this._list.initialOption(\"focusStateEnabled\")) {\r\n this._focusInput()\r\n }\r\n },\r\n _fitIntoRange: function(value, start, end) {\r\n if (value > end) {\r\n return start\r\n }\r\n if (value < start) {\r\n return end\r\n }\r\n return value\r\n },\r\n _items: function() {\r\n var items = this._getPlainItems(!this._list && this._dataSource.items());\r\n var availableItems = new dataQuery(items).filter(\"disabled\", \"<>\", true).toArray();\r\n return availableItems\r\n },\r\n _calcNextItem: function(step) {\r\n var items = this._items();\r\n var nextIndex = this._fitIntoRange(this._getSelectedIndex() + step, 0, items.length - 1);\r\n return items[nextIndex]\r\n },\r\n _getSelectedIndex: function() {\r\n var items = this._items();\r\n var selectedItem = this.option(\"selectedItem\");\r\n var result = -1;\r\n each(items, function(index, item) {\r\n if (this._isValueEquals(item, selectedItem)) {\r\n result = index;\r\n return false\r\n }\r\n }.bind(this));\r\n return result\r\n },\r\n _createPopup: function() {\r\n this.callBase();\r\n this._updateCustomBoundaryContainer();\r\n this._popup.$wrapper().addClass(this._popupWrapperClass());\r\n var $popupContent = this._popup.$content();\r\n eventsEngine.off($popupContent, \"mouseup\");\r\n eventsEngine.on($popupContent, \"mouseup\", this._saveFocusOnWidget.bind(this))\r\n },\r\n _updateCustomBoundaryContainer: function() {\r\n var customContainer = this.option(\"dropDownOptions.container\");\r\n var $container = customContainer && $(customContainer);\r\n if ($container && $container.length && !isWindow($container.get(0))) {\r\n var $containerWithParents = [].slice.call($container.parents());\r\n $containerWithParents.unshift($container.get(0));\r\n each($containerWithParents, function(i, parent) {\r\n if (parent === $(\"body\").get(0)) {\r\n return false\r\n } else if (\"hidden\" === window.getComputedStyle(parent).overflowY) {\r\n this._$customBoundaryContainer = $(parent);\r\n return false\r\n }\r\n }.bind(this))\r\n }\r\n },\r\n _popupWrapperClass: function() {\r\n return DROPDOWNLIST_POPUP_WRAPPER_CLASS\r\n },\r\n _renderInputValue: function() {\r\n var value = this._getCurrentValue();\r\n this._rejectValueLoading();\r\n return this._loadInputValue(value, this._setSelectedItem.bind(this)).always(this.callBase.bind(this, value))\r\n },\r\n _loadInputValue: function(value, callback) {\r\n return this._loadItem(value).always(callback)\r\n },\r\n _getItemFromPlain: function(value, cache) {\r\n var plainItems;\r\n var selectedItem;\r\n if (cache && \"object\" !== typeof value) {\r\n if (!cache.itemByValue) {\r\n cache.itemByValue = {};\r\n plainItems = this._getPlainItems();\r\n plainItems.forEach((function(item) {\r\n cache.itemByValue[this._valueGetter(item)] = item\r\n }), this)\r\n }\r\n selectedItem = cache.itemByValue[value]\r\n }\r\n if (!selectedItem) {\r\n plainItems = this._getPlainItems();\r\n selectedItem = grep(plainItems, function(item) {\r\n return this._isValueEquals(this._valueGetter(item), value)\r\n }.bind(this))[0]\r\n }\r\n return selectedItem\r\n },\r\n _loadItem: function(value, cache) {\r\n var selectedItem = this._getItemFromPlain(value, cache);\r\n return void 0 !== selectedItem ? (new Deferred).resolve(selectedItem).promise() : this._loadValue(value)\r\n },\r\n _getPlainItems: function(items) {\r\n var plainItems = [];\r\n items = items || this.option(\"items\") || this._dataSource.items() || [];\r\n for (var i = 0; i < items.length; i++) {\r\n if (items[i] && items[i].items) {\r\n plainItems = plainItems.concat(items[i].items)\r\n } else {\r\n plainItems.push(items[i])\r\n }\r\n }\r\n return plainItems\r\n },\r\n _updateActiveDescendant() {\r\n var _this$_list;\r\n var opened = this.option(\"opened\");\r\n var listFocusedItemId = null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list.getFocusedItemId();\r\n var isElementOnDom = $(\"#\".concat(listFocusedItemId)).length > 0;\r\n var activedescendant = opened && isElementOnDom && listFocusedItemId;\r\n this.setAria({\r\n activedescendant: activedescendant || null\r\n })\r\n },\r\n _setSelectedItem: function(item) {\r\n var displayValue = this._displayValue(item);\r\n this.option(\"selectedItem\", ensureDefined(item, null));\r\n this.option(\"displayValue\", displayValue)\r\n },\r\n _displayValue: function(item) {\r\n return this._displayGetter(item)\r\n },\r\n _refreshSelected: function() {\r\n var cache = {};\r\n this._listItemElements().each(function(_, itemElement) {\r\n var $itemElement = $(itemElement);\r\n var itemValue = this._valueGetter($itemElement.data(LIST_ITEM_DATA_KEY));\r\n var isItemSelected = this._isSelectedValue(itemValue, cache);\r\n if (isItemSelected) {\r\n this._list.selectItem($itemElement)\r\n } else {\r\n this._list.unselectItem($itemElement)\r\n }\r\n }.bind(this))\r\n },\r\n _popupShownHandler: function() {\r\n this.callBase();\r\n this._setFocusPolicy()\r\n },\r\n _setFocusPolicy: function() {\r\n if (!this.option(\"focusStateEnabled\") || !this._list) {\r\n return\r\n }\r\n this._list.option(\"focusedElement\", null)\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _validateSearchMode: function() {\r\n var searchMode = this.option(\"searchMode\");\r\n var normalizedSearchMode = searchMode.toLowerCase();\r\n if (!SEARCH_MODES.includes(normalizedSearchMode)) {\r\n throw errors.Error(\"E1019\", searchMode)\r\n }\r\n },\r\n _clearSelectedItem: function() {\r\n this.option(\"selectedItem\", null)\r\n },\r\n _processDataSourceChanging: function() {\r\n this._initDataController();\r\n this._setListOption(\"_dataController\", this._dataController);\r\n this._setListDataSource();\r\n this._renderInputValue().fail(function() {\r\n if (this._isCustomValueAllowed()) {\r\n return\r\n }\r\n this._clearSelectedItem()\r\n }.bind(this))\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"displayCustomValue\")\r\n },\r\n reset: function() {\r\n this.callBase();\r\n this._clearFilter();\r\n this._clearSelectedItem()\r\n },\r\n _listItemElements: function() {\r\n return this._$list ? this._$list.find(LIST_ITEM_SELECTOR) : $()\r\n },\r\n _popupConfig: function() {\r\n return extend(this.callBase(), {\r\n templatesRenderAsynchronously: false,\r\n autoResizeEnabled: false,\r\n maxHeight: this._getMaxHeight.bind(this)\r\n })\r\n },\r\n _renderPopupContent: function() {\r\n this.callBase();\r\n this._renderList()\r\n },\r\n _getKeyboardListeners() {\r\n var canListHaveFocus = this._canListHaveFocus();\r\n return this.callBase().concat([!canListHaveFocus && this._list])\r\n },\r\n _setAriaTargetForList: function() {\r\n this._list._getAriaTarget = this._getAriaTarget.bind(this)\r\n },\r\n _renderList: function() {\r\n this._listId = \"dx-\" + (new Guid)._value;\r\n var $list = this._$list = $(\"<div>\").attr(\"id\", this._listId).appendTo(this._popup.$content());\r\n this._list = this._createComponent($list, List, this._listConfig());\r\n this._refreshList();\r\n this._setAriaTargetForList();\r\n this._list.option(\"_listAttributes\", {\r\n role: \"combobox\"\r\n });\r\n this._renderPreventBlurOnListClick();\r\n this._setListFocusedElementOptionChange()\r\n },\r\n _renderPreventBlurOnListClick: function() {\r\n var eventName = addNamespace(\"mousedown\", \"dxDropDownList\");\r\n eventsEngine.off(this._$list, eventName);\r\n eventsEngine.on(this._$list, eventName, e => e.preventDefault())\r\n },\r\n _getControlsAria() {\r\n return this._list && this._listId\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n this._list && this._updateActiveDescendant();\r\n this.setAria(\"owns\", this._popup && this._popupContentId)\r\n },\r\n _setDefaultAria: function() {\r\n this.setAria({\r\n haspopup: \"listbox\",\r\n autocomplete: \"list\"\r\n })\r\n },\r\n _refreshList: function() {\r\n if (this._list && this._shouldRefreshDataSource()) {\r\n this._setListDataSource()\r\n }\r\n },\r\n _shouldRefreshDataSource: function() {\r\n var dataSourceProvided = !!this._list.option(\"dataSource\");\r\n return dataSourceProvided !== this._needPassDataSourceToList()\r\n },\r\n _isDesktopDevice: function() {\r\n return \"desktop\" === devices.real().deviceType\r\n },\r\n _listConfig: function() {\r\n var options = {\r\n selectionMode: \"single\",\r\n _templates: this.option(\"_templates\"),\r\n templateProvider: this.option(\"templateProvider\"),\r\n noDataText: this.option(\"noDataText\"),\r\n encodeNoDataText: this.option(\"encodeNoDataText\"),\r\n grouped: this.option(\"grouped\"),\r\n wrapItemText: this.option(\"wrapItemText\"),\r\n useItemTextAsTitle: this.option(\"useItemTextAsTitle\"),\r\n onContentReady: this._listContentReadyHandler.bind(this),\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n indicateLoading: false,\r\n keyExpr: this._getCollectionKeyExpr(),\r\n displayExpr: this._displayGetterExpr(),\r\n groupTemplate: this.option(\"groupTemplate\"),\r\n onItemClick: this._listItemClickAction.bind(this),\r\n dataSource: this._getDataSource(),\r\n _dataController: this._dataController,\r\n hoverStateEnabled: this._isDesktopDevice() ? this.option(\"hoverStateEnabled\") : false,\r\n focusStateEnabled: this._isDesktopDevice() ? this.option(\"focusStateEnabled\") : false\r\n };\r\n if (!this._canListHaveFocus()) {\r\n options.tabIndex = null\r\n }\r\n return options\r\n },\r\n _canListHaveFocus: () => false,\r\n _getDataSource: function() {\r\n return this._needPassDataSourceToList() ? this._dataSource : null\r\n },\r\n _dataSourceOptions: function() {\r\n return {\r\n paginate: false\r\n }\r\n },\r\n _getGroupedOption: function() {\r\n return this.option(\"grouped\")\r\n },\r\n _dataSourceFromUrlLoadMode: function() {\r\n return \"raw\"\r\n },\r\n _listContentReadyHandler: function() {\r\n this._list = this._list || this._$list.dxList(\"instance\");\r\n if (!this.option(\"deferRendering\")) {\r\n this._refreshSelected()\r\n }\r\n this._dimensionChanged();\r\n this._contentReadyAction()\r\n },\r\n _setListOption: function(optionName, value) {\r\n this._setWidgetOption(\"_list\", arguments)\r\n },\r\n _listItemClickAction: function(e) {\r\n this._listItemClickHandler(e);\r\n this._itemClickAction(e)\r\n },\r\n _listItemClickHandler: noop,\r\n _setListDataSource: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n this._setListOption(\"dataSource\", this._getDataSource());\r\n if (!this._needPassDataSourceToList()) {\r\n this._setListOption(\"items\", [])\r\n }\r\n },\r\n _needPassDataSourceToList: function() {\r\n return this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded()\r\n },\r\n _isMinSearchLengthExceeded: function() {\r\n return this._searchValue().toString().length >= this.option(\"minSearchLength\")\r\n },\r\n _needClearFilter: function() {\r\n return this._canKeepDataSource() ? false : this._needPassDataSourceToList()\r\n },\r\n _canKeepDataSource: function() {\r\n var isMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n return this._dataController.isLoaded() && this.option(\"showDataBeforeSearch\") && this.option(\"minSearchLength\") && !isMinSearchLengthExceeded && !this._isLastMinSearchLengthExceeded\r\n },\r\n _searchValue: function() {\r\n return this._input().val() || \"\"\r\n },\r\n _getSearchEvent: function() {\r\n return addNamespace(SEARCH_EVENT, this.NAME + \"Search\")\r\n },\r\n _getCompositionStartEvent: function() {\r\n return addNamespace(\"compositionstart\", this.NAME + \"CompositionStart\")\r\n },\r\n _getCompositionEndEvent: function() {\r\n return addNamespace(\"compositionend\", this.NAME + \"CompositionEnd\")\r\n },\r\n _getSetFocusPolicyEvent: function() {\r\n return addNamespace(\"input\", this.NAME + \"FocusPolicy\")\r\n },\r\n _renderEvents: function() {\r\n this.callBase();\r\n eventsEngine.on(this._input(), this._getSetFocusPolicyEvent(), () => {\r\n this._setFocusPolicy()\r\n });\r\n if (this._shouldRenderSearchEvent()) {\r\n eventsEngine.on(this._input(), this._getSearchEvent(), e => {\r\n this._searchHandler(e)\r\n });\r\n if (useCompositionEvents) {\r\n eventsEngine.on(this._input(), this._getCompositionStartEvent(), () => {\r\n this._isTextCompositionInProgress(true)\r\n });\r\n eventsEngine.on(this._input(), this._getCompositionEndEvent(), e => {\r\n this._isTextCompositionInProgress(void 0);\r\n this._searchHandler(e, this._searchValue())\r\n })\r\n }\r\n }\r\n },\r\n _shouldRenderSearchEvent: function() {\r\n return this.option(\"searchEnabled\")\r\n },\r\n _refreshEvents: function() {\r\n eventsEngine.off(this._input(), this._getSearchEvent());\r\n eventsEngine.off(this._input(), this._getSetFocusPolicyEvent());\r\n if (useCompositionEvents) {\r\n eventsEngine.off(this._input(), this._getCompositionStartEvent());\r\n eventsEngine.off(this._input(), this._getCompositionEndEvent())\r\n }\r\n this.callBase()\r\n },\r\n _isTextCompositionInProgress: function(value) {\r\n if (arguments.length) {\r\n this._isTextComposition = value\r\n } else {\r\n return this._isTextComposition\r\n }\r\n },\r\n _searchHandler: function(e, searchValue) {\r\n if (this._isTextCompositionInProgress()) {\r\n return\r\n }\r\n if (!this._isMinSearchLengthExceeded()) {\r\n this._searchCanceled();\r\n return\r\n }\r\n var searchTimeout = this.option(\"searchTimeout\");\r\n if (searchTimeout) {\r\n this._clearSearchTimer();\r\n this._searchTimer = setTimeout(() => {\r\n this._searchDataSource(searchValue)\r\n }, searchTimeout)\r\n } else {\r\n this._searchDataSource(searchValue)\r\n }\r\n },\r\n _searchCanceled: function() {\r\n this._clearSearchTimer();\r\n if (this._needClearFilter()) {\r\n this._filterDataSource(null)\r\n }\r\n this._refreshList()\r\n },\r\n _searchDataSource: function() {\r\n var searchValue = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._searchValue();\r\n this._filterDataSource(searchValue)\r\n },\r\n _filterDataSource: function(searchValue) {\r\n this._clearSearchTimer();\r\n var dataController = this._dataController;\r\n dataController.searchExpr(this.option(\"searchExpr\") || this._displayGetterExpr());\r\n dataController.searchOperation(this.option(\"searchMode\"));\r\n dataController.searchValue(searchValue);\r\n dataController.load().done(this._dataSourceFiltered.bind(this, searchValue))\r\n },\r\n _clearFilter: function() {\r\n var dataController = this._dataController;\r\n dataController.searchValue() && dataController.searchValue(null)\r\n },\r\n _dataSourceFiltered: function() {\r\n this._isLastMinSearchLengthExceeded = this._isMinSearchLengthExceeded();\r\n this._refreshList();\r\n this._refreshPopupVisibility()\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._hasItemsToShow()\r\n },\r\n _refreshPopupVisibility: function() {\r\n if (this.option(\"readOnly\") || !this._searchValue()) {\r\n return\r\n }\r\n var shouldOpenPopup = this._shouldOpenPopup();\r\n if (shouldOpenPopup && !this._isFocused()) {\r\n return\r\n }\r\n this.option(\"opened\", shouldOpenPopup);\r\n if (shouldOpenPopup) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n if (0 === this._dataController.pageIndex()) {\r\n this.option().items = newItems\r\n } else {\r\n this.option().items = this.option().items.concat(newItems)\r\n }\r\n },\r\n _hasItemsToShow: function() {\r\n var dataController = this._dataController;\r\n var resultItems = dataController.items() || [];\r\n var resultAmount = resultItems.length;\r\n var isMinSearchLengthExceeded = this._needPassDataSourceToList();\r\n return !!(isMinSearchLengthExceeded && resultAmount)\r\n },\r\n _clearSearchTimer: function() {\r\n clearTimeout(this._searchTimer);\r\n delete this._searchTimer\r\n },\r\n _popupShowingHandler: function() {\r\n this._dimensionChanged()\r\n },\r\n _dimensionChanged: function() {\r\n this.callBase(arguments);\r\n this._popup && this._updatePopupDimensions()\r\n },\r\n _needPopupRepaint: function() {\r\n var dataController = this._dataController;\r\n var currentPageIndex = dataController.pageIndex();\r\n var needRepaint = isDefined(this._pageIndex) && currentPageIndex <= this._pageIndex || dataController.isLastPage() && !this._list._scrollViewIsFull();\r\n this._pageIndex = currentPageIndex;\r\n return needRepaint\r\n },\r\n _updatePopupDimensions: function() {\r\n if (this._needPopupRepaint()) {\r\n this._popup.repaint()\r\n }\r\n this._list && this._list.updateDimensions()\r\n },\r\n _getMaxHeight: function() {\r\n var $element = this.$element();\r\n var $customBoundaryContainer = this._$customBoundaryContainer;\r\n var offsetTop = $element.offset().top - ($customBoundaryContainer ? $customBoundaryContainer.offset().top : 0);\r\n var windowHeight = getOuterHeight(window);\r\n var containerHeight = $customBoundaryContainer ? Math.min(getOuterHeight($customBoundaryContainer), windowHeight) : windowHeight;\r\n var maxHeight = Math.max(offsetTop, containerHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(.5 * containerHeight, maxHeight)\r\n },\r\n _clean: function() {\r\n if (this._list) {\r\n delete this._list\r\n }\r\n delete this._isLastMinSearchLengthExceeded;\r\n this.callBase()\r\n },\r\n _dispose: function() {\r\n this._clearSearchTimer();\r\n this.callBase()\r\n },\r\n _setCollectionWidgetOption: function() {\r\n this._setListOption.apply(this, arguments)\r\n },\r\n _setSubmitValue: function() {\r\n var value = this.option(\"value\");\r\n var submitValue = this._shouldUseDisplayValue(value) ? this._displayGetter(value) : value;\r\n this._getSubmitElement().val(submitValue)\r\n },\r\n _shouldUseDisplayValue: function(value) {\r\n return \"this\" === this.option(\"valueExpr\") && isObject(value)\r\n },\r\n _optionChanged: function(args) {\r\n this._dataExpressionOptionChanged(args);\r\n switch (args.name) {\r\n case \"hoverStateEnabled\":\r\n case \"focusStateEnabled\":\r\n this._isDesktopDevice() && this._setListOption(args.name, args.value);\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n if (!this.option(\"dataSource\")) {\r\n this._processDataSourceChanging()\r\n }\r\n break;\r\n case \"dataSource\":\r\n this._processDataSourceChanging();\r\n break;\r\n case \"valueExpr\":\r\n this._renderValue();\r\n this._setListOption(\"keyExpr\", this._getCollectionKeyExpr());\r\n break;\r\n case \"displayExpr\":\r\n this._renderValue();\r\n this._setListOption(\"displayExpr\", this._displayGetterExpr());\r\n break;\r\n case \"searchMode\":\r\n this._validateSearchMode();\r\n break;\r\n case \"minSearchLength\":\r\n this._refreshList();\r\n break;\r\n case \"searchEnabled\":\r\n case \"showDataBeforeSearch\":\r\n case \"searchExpr\":\r\n this._invalidate();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n case \"onSelectionChanged\":\r\n this._initSelectionChangedAction();\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"grouped\":\r\n case \"groupTemplate\":\r\n case \"wrapItemText\":\r\n case \"noDataText\":\r\n case \"encodeNoDataText\":\r\n case \"useItemTextAsTitle\":\r\n this._setListOption(args.name);\r\n break;\r\n case \"displayValue\":\r\n this.option(\"text\", args.value);\r\n break;\r\n case \"itemTemplate\":\r\n case \"searchTimeout\":\r\n break;\r\n case \"selectedItem\":\r\n if (args.previousValue !== args.value) {\r\n this._selectionChangedAction({\r\n selectedItem: args.value\r\n })\r\n }\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n}).include(DataExpressionMixin, DataConverterMixin);\r\nregisterComponent(\"dxDropDownList\", DropDownList);\r\nexport default DropDownList;\r\n","/**\r\n * DevExtreme (esm/ui/select_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n noop,\r\n ensureDefined\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isPromise\r\n} from \"../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n Deferred,\r\n fromPromise\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport errors from \"../core/errors\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DropDownList from \"./drop_down_editor/ui.drop_down_list\";\r\nimport \"./list/modules/selection\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../events/utils/index\";\r\nvar DISABLED_STATE_SELECTOR = \".dx-state-disabled\";\r\nvar SELECTBOX_CLASS = \"dx-selectbox\";\r\nvar SELECTBOX_POPUP_CLASS = \"dx-selectbox-popup\";\r\nvar SELECTBOX_CONTAINER_CLASS = \"dx-selectbox-container\";\r\nvar SELECTBOX_POPUP_WRAPPER_CLASS = \"dx-selectbox-popup-wrapper\";\r\nvar SelectBox = DropDownList.inherit({\r\n _supportedKeys: function() {\r\n var that = this;\r\n var parent = this.callBase();\r\n var clearSelectBox = function(e) {\r\n var isEditable = this._isEditable();\r\n if (!isEditable) {\r\n if (this.option(\"showClearButton\")) {\r\n e.preventDefault();\r\n this.reset()\r\n }\r\n } else if (this._valueSubstituted()) {\r\n this._preventFiltering = true\r\n }\r\n this._savedTextRemoveEvent = e;\r\n this._preventSubstitution = true\r\n };\r\n var searchIfNeeded = function() {\r\n if (that.option(\"searchEnabled\") && that._valueSubstituted()) {\r\n that._searchHandler()\r\n }\r\n };\r\n return extend({}, parent, {\r\n tab: function() {\r\n if (this.option(\"opened\") && \"instantly\" === this.option(\"applyValueMode\")) {\r\n this._resetCaretPosition(true)\r\n }\r\n parent.tab && parent.tab.apply(this, arguments);\r\n this._cancelSearchIfNeed()\r\n },\r\n upArrow: function(e) {\r\n if (parent.upArrow && parent.upArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n downArrow: function(e) {\r\n if (parent.downArrow && parent.downArrow.apply(this, arguments)) {\r\n if (!this.option(\"opened\")) {\r\n this._setNextValue(e)\r\n }\r\n return true\r\n }\r\n },\r\n leftArrow: function() {\r\n searchIfNeeded();\r\n parent.leftArrow && parent.leftArrow.apply(this, arguments)\r\n },\r\n rightArrow: function() {\r\n searchIfNeeded();\r\n parent.rightArrow && parent.rightArrow.apply(this, arguments)\r\n },\r\n home: function() {\r\n searchIfNeeded();\r\n parent.home && parent.home.apply(this, arguments)\r\n },\r\n end: function() {\r\n searchIfNeeded();\r\n parent.end && parent.end.apply(this, arguments)\r\n },\r\n escape: function() {\r\n var result = parent.escape && parent.escape.apply(this, arguments);\r\n this._cancelEditing();\r\n return null !== result && void 0 !== result ? result : true\r\n },\r\n enter: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var inputText = this._input().val().trim();\r\n var isCustomText = inputText && this._list && !this._list.option(\"focusedElement\");\r\n if (!inputText && isDefined(this.option(\"value\")) && this.option(\"allowClearing\")) {\r\n this._saveValueChangeEvent(e);\r\n this.option({\r\n selectedItem: null,\r\n value: null\r\n });\r\n this.close()\r\n } else {\r\n if (this.option(\"acceptCustomValue\")) {\r\n e.preventDefault();\r\n if (isCustomText) {\r\n if (isOpened) {\r\n this._toggleOpenState()\r\n }\r\n this._valueChangeEventHandler(e)\r\n }\r\n return isOpened\r\n }\r\n if (parent.enter && parent.enter.apply(this, arguments)) {\r\n return isOpened\r\n }\r\n }\r\n },\r\n space: function(e) {\r\n var isOpened = this.option(\"opened\");\r\n var isSearchEnabled = this.option(\"searchEnabled\");\r\n var acceptCustomValue = this.option(\"acceptCustomValue\");\r\n if (!isOpened || isSearchEnabled || acceptCustomValue) {\r\n return\r\n }\r\n e.preventDefault();\r\n this._valueChangeEventHandler(e);\r\n return true\r\n },\r\n backspace: clearSelectBox,\r\n del: clearSelectBox\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n placeholder: messageLocalization.format(\"Select\"),\r\n fieldTemplate: null,\r\n customItemCreateEvent: \"change\",\r\n valueChangeEvent: \"change\",\r\n acceptCustomValue: false,\r\n onCustomItemCreating: function(e) {\r\n if (!isDefined(e.customItem)) {\r\n e.customItem = e.text\r\n }\r\n },\r\n showSelectionControls: false,\r\n allowClearing: true,\r\n tooltipEnabled: false,\r\n openOnFieldClick: true,\r\n showDropDownButton: true,\r\n displayCustomValue: false,\r\n useHiddenSubmitElement: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initCustomItemCreatingAction()\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(SELECTBOX_CLASS);\r\n this._renderTooltip();\r\n this.callBase();\r\n this._$container.addClass(SELECTBOX_CONTAINER_CLASS)\r\n },\r\n _createPopup: function() {\r\n this.callBase();\r\n this._popup.$element().addClass(SELECTBOX_POPUP_CLASS);\r\n this._popup.$overlayContent().attr(\"tabindex\", -1)\r\n },\r\n _popupWrapperClass: function() {\r\n return this.callBase() + \" \" + SELECTBOX_POPUP_WRAPPER_CLASS\r\n },\r\n _setDeprecatedOptions() {\r\n this.callBase();\r\n extend(this._deprecatedOptions, {\r\n valueChangeEvent: {\r\n since: \"22.2\",\r\n alias: \"customItemCreateEvent\"\r\n }\r\n })\r\n },\r\n _cancelEditing: function() {\r\n if (!this.option(\"searchEnabled\") && this._list) {\r\n this._focusListElement(null);\r\n this._updateField(this.option(\"selectedItem\"))\r\n }\r\n },\r\n _renderOpenedState: function() {\r\n this.callBase();\r\n if (this.option(\"opened\")) {\r\n this._scrollToSelectedItem();\r\n this._focusSelectedElement()\r\n }\r\n },\r\n _focusSelectedElement: function() {\r\n var _items$indexOf;\r\n var searchValue = this._searchValue();\r\n if (!searchValue) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var {\r\n items: items,\r\n selectedItem: selectedItem\r\n } = this.option();\r\n var $listItems = this._list._itemElements();\r\n var index = null !== (_items$indexOf = null === items || void 0 === items ? void 0 : items.indexOf(selectedItem)) && void 0 !== _items$indexOf ? _items$indexOf : -1;\r\n var focusedElement = -1 !== index && !this._isCustomItemSelected() ? $listItems.eq(index) : null;\r\n this._focusListElement(focusedElement)\r\n },\r\n _renderFocusedElement: function() {\r\n if (!this._list) {\r\n return\r\n }\r\n var searchValue = this._searchValue();\r\n if (!searchValue || this.option(\"acceptCustomValue\")) {\r\n this._focusListElement(null);\r\n return\r\n }\r\n var $listItems = this._list._itemElements();\r\n var focusedElement = $listItems.not(DISABLED_STATE_SELECTOR).eq(0);\r\n this._focusListElement(focusedElement)\r\n },\r\n _focusListElement: function(element) {\r\n this._preventInputValueRender = true;\r\n this._list.option(\"focusedElement\", getPublicElement(element));\r\n delete this._preventInputValueRender\r\n },\r\n _scrollToSelectedItem: function() {\r\n this._list && this._list.scrollToItem(this._list.option(\"selectedItem\"))\r\n },\r\n _listContentReadyHandler: function() {\r\n this.callBase();\r\n var isPaginate = this._dataController.paginate();\r\n if (isPaginate && this._needPopupRepaint()) {\r\n return\r\n }\r\n this._scrollToSelectedItem()\r\n },\r\n _renderValue: function() {\r\n this._renderInputValue();\r\n this._setSubmitValue();\r\n return (new Deferred).resolve()\r\n },\r\n _renderInputValue: function() {\r\n return this.callBase().always(function() {\r\n this._renderInputValueAsync()\r\n }.bind(this))\r\n },\r\n _renderInputValueAsync: function() {\r\n this._renderTooltip();\r\n this._renderInputValueImpl().always(function() {\r\n this._refreshSelected()\r\n }.bind(this))\r\n },\r\n _renderInputValueImpl: function() {\r\n this._renderField();\r\n return (new Deferred).resolve()\r\n },\r\n _setNextItem: function(step) {\r\n var item = this._calcNextItem(step);\r\n var value = this._valueGetter(item);\r\n this._setValue(value)\r\n },\r\n _setNextValue: function(e) {\r\n var dataSourceIsLoaded = this._dataController.isLoaded() ? (new Deferred).resolve() : this._dataController.load();\r\n dataSourceIsLoaded.done(function() {\r\n var selectedIndex = this._getSelectedIndex();\r\n var hasPages = this._dataController.pageSize();\r\n var isLastPage = this._dataController.isLastPage();\r\n var isLastItem = selectedIndex === this._items().length - 1;\r\n this._saveValueChangeEvent(e);\r\n var step = \"downArrow\" === normalizeKeyName(e) ? 1 : -1;\r\n if (hasPages && !isLastPage && isLastItem && step > 0) {\r\n if (!this._popup) {\r\n this._createPopup()\r\n }\r\n if (!this._dataController.isLoading()) {\r\n this._list._loadNextPage().done(this._setNextItem.bind(this, step))\r\n }\r\n } else {\r\n this._setNextItem(step)\r\n }\r\n }.bind(this))\r\n },\r\n _setSelectedItem: function(item) {\r\n var isUnknownItem = !this._isCustomValueAllowed() && void 0 === item;\r\n this.callBase(isUnknownItem ? null : item);\r\n if (!isUnknownItem && (!this._isEditable() || this._isCustomItemSelected())) {\r\n this._setListOption(\"selectedItem\", this.option(\"selectedItem\"))\r\n }\r\n },\r\n _isCustomValueAllowed: function() {\r\n return this.option(\"acceptCustomValue\") || this.callBase()\r\n },\r\n _displayValue: function(item) {\r\n item = !isDefined(item) && this._isCustomValueAllowed() ? this.option(\"value\") : item;\r\n return this.callBase(item)\r\n },\r\n _listConfig: function() {\r\n var result = extend(this.callBase(), {\r\n pageLoadMode: \"scrollBottom\",\r\n onSelectionChanged: this._getSelectionChangeHandler(),\r\n selectedItem: this.option(\"selectedItem\"),\r\n onFocusedItemChanged: this._listFocusedItemChangeHandler.bind(this)\r\n });\r\n if (this.option(\"showSelectionControls\")) {\r\n extend(result, {\r\n showSelectionControls: true,\r\n selectionByClick: true\r\n })\r\n }\r\n return result\r\n },\r\n _listFocusedItemChangeHandler: function(e) {\r\n if (this._preventInputValueRender) {\r\n return\r\n }\r\n var list = e.component;\r\n var focusedElement = $(list.option(\"focusedElement\"));\r\n var focusedItem = list._getItemData(focusedElement);\r\n this._updateField(focusedItem)\r\n },\r\n _updateField: function(item) {\r\n var fieldTemplate = this._getTemplateByOption(\"fieldTemplate\");\r\n if (!(fieldTemplate && this.option(\"fieldTemplate\"))) {\r\n var text = this._displayGetter(item);\r\n this.option(\"text\", text);\r\n this._renderDisplayText(text);\r\n return\r\n }\r\n this._renderField()\r\n },\r\n _getSelectionChangeHandler: function() {\r\n return this.option(\"showSelectionControls\") ? this._selectionChangeHandler.bind(this) : noop\r\n },\r\n _selectionChangeHandler: function(e) {\r\n each(e.addedItems || [], function(_, addedItem) {\r\n this._setValue(this._valueGetter(addedItem))\r\n }.bind(this))\r\n },\r\n _getActualSearchValue: function() {\r\n return this._dataController.searchValue()\r\n },\r\n _toggleOpenState: function(isVisible) {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n isVisible = arguments.length ? isVisible : !this.option(\"opened\");\r\n if (!isVisible && !this._shouldClearFilter()) {\r\n this._restoreInputText(true)\r\n }\r\n if (this._wasSearch() && isVisible) {\r\n this._wasSearch(false);\r\n var showDataImmediately = this.option(\"showDataBeforeSearch\") || this._isMinSearchLengthExceeded();\r\n if (showDataImmediately && this._dataController.getDataSource()) {\r\n if (this._searchTimer) {\r\n return\r\n }\r\n var searchValue = this._getActualSearchValue();\r\n searchValue && this._wasSearch(true);\r\n this._filterDataSource(searchValue || null)\r\n } else {\r\n this._setListOption(\"items\", [])\r\n }\r\n }\r\n if (isVisible) {\r\n this._scrollToSelectedItem()\r\n }\r\n this.callBase(isVisible)\r\n },\r\n _renderTooltip: function() {\r\n if (this.option(\"tooltipEnabled\")) {\r\n this.$element().attr(\"title\", this.option(\"displayValue\"))\r\n }\r\n },\r\n _renderDimensions: function() {\r\n this.callBase();\r\n this._dimensionChanged()\r\n },\r\n _isValueEqualInputText: function() {\r\n var initialSelectedItem = this.option(\"selectedItem\");\r\n if (null === initialSelectedItem) {\r\n return false\r\n }\r\n var value = this._displayGetter(initialSelectedItem);\r\n var displayValue = value ? String(value) : \"\";\r\n var inputText = this._searchValue();\r\n return displayValue === inputText\r\n },\r\n _popupHidingHandler: function() {\r\n if (this._isValueEqualInputText()) {\r\n this._cancelEditing()\r\n }\r\n this.callBase()\r\n },\r\n _popupHiddenHandler: function() {\r\n this.callBase();\r\n if (this._shouldCancelSearch()) {\r\n this._wasSearch(false);\r\n this._searchCanceled();\r\n this._shouldCancelSearch(false)\r\n }\r\n },\r\n _restoreInputText: function(saveEditingValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._loadItemDeferred && this._loadItemDeferred.always(function() {\r\n var {\r\n acceptCustomValue: acceptCustomValue,\r\n text: text,\r\n selectedItem: initialSelectedItem\r\n } = this.option();\r\n if (acceptCustomValue) {\r\n if (!saveEditingValue && !this._isValueChanging) {\r\n this._updateField(null !== initialSelectedItem && void 0 !== initialSelectedItem ? initialSelectedItem : this._createCustomItem(text));\r\n this._clearFilter()\r\n }\r\n return\r\n }\r\n if (this.option(\"searchEnabled\")) {\r\n if (!this._searchValue() && this.option(\"allowClearing\")) {\r\n this._clearTextValue();\r\n return\r\n }\r\n }\r\n if (this._isValueEqualInputText()) {\r\n return\r\n }\r\n this._renderInputValue().always(function(selectedItem) {\r\n var newSelectedItem = ensureDefined(selectedItem, initialSelectedItem);\r\n this._setSelectedItem(newSelectedItem);\r\n this._updateField(newSelectedItem);\r\n this._clearFilter()\r\n }.bind(this))\r\n }.bind(this))\r\n },\r\n _valueChangeEventIncludesBlur: function() {\r\n var valueChangeEvent = this.option(this._getValueChangeEventOptionName());\r\n return valueChangeEvent.includes(\"blur\")\r\n },\r\n _isPreventedFocusOutEvent: function(e) {\r\n return this._preventNestedFocusEvent(e) || this._valueChangeEventIncludesBlur()\r\n },\r\n _focusOutHandler: function(e) {\r\n if (!this._isPreventedFocusOutEvent(e)) {\r\n var isOverlayTarget = this._isOverlayNestedTarget(e.relatedTarget);\r\n if (!isOverlayTarget) {\r\n this._restoreInputText();\r\n this._clearSearchTimer()\r\n }\r\n this._cancelSearchIfNeed(e)\r\n }\r\n e.target = this._input().get(0);\r\n this.callBase(e)\r\n },\r\n _cancelSearchIfNeed: function(e) {\r\n var {\r\n searchEnabled: searchEnabled\r\n } = this.option();\r\n var isOverlayTarget = this._isOverlayNestedTarget(null === e || void 0 === e ? void 0 : e.relatedTarget);\r\n var shouldCancelSearch = this._wasSearch() && searchEnabled && !isOverlayTarget;\r\n if (shouldCancelSearch) {\r\n var _this$_popup;\r\n var isPopupVisible = null === (_this$_popup = this._popup) || void 0 === _this$_popup ? void 0 : _this$_popup._hideAnimationProcessing;\r\n this._clearSearchTimer();\r\n if (isPopupVisible) {\r\n this._shouldCancelSearch(true)\r\n } else {\r\n this._wasSearch(false);\r\n this._searchCanceled()\r\n }\r\n }\r\n },\r\n _shouldCancelSearch: function(value) {\r\n if (!arguments.length) {\r\n return this._shouldCancelSearchValue\r\n }\r\n this._shouldCancelSearchValue = value\r\n },\r\n _isOverlayNestedTarget: function(target) {\r\n return !!$(target).closest(\".\".concat(SELECTBOX_POPUP_WRAPPER_CLASS)).length\r\n },\r\n _clearTextValue: function() {\r\n if (this.option(\"selectedItem\")) {\r\n if (this._savedTextRemoveEvent) {\r\n this._saveValueChangeEvent(this._savedTextRemoveEvent)\r\n }\r\n this.option(\"value\", null)\r\n }\r\n delete this._savedTextRemoveEvent\r\n },\r\n _shouldOpenPopup: function() {\r\n return this._needPassDataSourceToList() && this._wasSearch()\r\n },\r\n _isFocused: function() {\r\n var activeElement = domAdapter.getActiveElement(this.element());\r\n return this.callBase() && $(activeElement).closest(this._input()).length > 0\r\n },\r\n _getValueChangeEventOptionName: function() {\r\n return \"customItemCreateEvent\"\r\n },\r\n _renderValueChangeEvent: function() {\r\n if (this._isEditable()) {\r\n this.callBase()\r\n }\r\n },\r\n _fieldRenderData: function() {\r\n var $listFocused = this._list && this.option(\"opened\") && $(this._list.option(\"focusedElement\"));\r\n if ($listFocused && $listFocused.length) {\r\n return this._list._getItemData($listFocused)\r\n }\r\n return this.option(\"selectedItem\")\r\n },\r\n _isSelectedValue: function(value) {\r\n return this._isValueEquals(value, this.option(\"value\"))\r\n },\r\n _shouldCloseOnItemClick: function() {\r\n return !(this.option(\"showSelectionControls\") && \"single\" !== this.option(\"selectionMode\"))\r\n },\r\n _listItemClickHandler: function(e) {\r\n var previousValue = this._getCurrentValue();\r\n this._focusListElement($(e.itemElement));\r\n this._saveValueChangeEvent(e.event);\r\n this._completeSelection(this._valueGetter(e.itemData));\r\n if (this._shouldCloseOnItemClick()) {\r\n this.option(\"opened\", false)\r\n }\r\n if (this.option(\"searchEnabled\") && previousValue === this._valueGetter(e.itemData)) {\r\n this._updateField(e.itemData)\r\n }\r\n if (this._shouldClearFilter()) {\r\n this._cancelSearchIfNeed()\r\n }\r\n },\r\n _shouldClearFilter: function() {\r\n return this._wasSearch()\r\n },\r\n _completeSelection: function(value) {\r\n this._setValue(value)\r\n },\r\n _loadItem: function(value, cache) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n this.callBase(value, cache).done(function(item) {\r\n deferred.resolve(item)\r\n }.bind(this)).fail(function(args) {\r\n if (null !== args && void 0 !== args && args.shouldSkipCallback) {\r\n return\r\n }\r\n var selectedItem = that.option(\"selectedItem\");\r\n if (that.option(\"acceptCustomValue\") && value === that._valueGetter(selectedItem)) {\r\n deferred.resolve(selectedItem)\r\n } else {\r\n deferred.reject()\r\n }\r\n }.bind(this));\r\n return deferred.promise()\r\n },\r\n _loadInputValue: function(value, callback) {\r\n this._loadItemDeferred = this._loadItem(value).always(callback);\r\n return this._loadItemDeferred\r\n },\r\n _isCustomItemSelected: function() {\r\n var selectedItem = this.option(\"selectedItem\");\r\n var searchValue = this._searchValue();\r\n var selectedItemText = this._displayGetter(selectedItem);\r\n return !selectedItemText || searchValue !== selectedItemText.toString()\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (this.option(\"acceptCustomValue\") && this._isCustomItemSelected() && !this._isValueChanging) {\r\n this._isValueChanging = true;\r\n this._customItemAddedHandler(e)\r\n }\r\n },\r\n _initCustomItemCreatingAction: function() {\r\n this._customItemCreatingAction = this._createActionByOption(\"onCustomItemCreating\")\r\n },\r\n _createCustomItem: function(text) {\r\n var params = {\r\n text: text\r\n };\r\n var actionResult = this._customItemCreatingAction(params);\r\n var item = ensureDefined(actionResult, params.customItem);\r\n if (isDefined(actionResult)) {\r\n errors.log(\"W0015\", \"onCustomItemCreating\", \"customItem\")\r\n }\r\n return item\r\n },\r\n _customItemAddedHandler: function(e) {\r\n var searchValue = this._searchValue();\r\n var item = this._createCustomItem(searchValue);\r\n this._saveValueChangeEvent(e);\r\n if (void 0 === item) {\r\n this._renderValue();\r\n throw errors.Error(\"E0121\")\r\n }\r\n if (isPromise(item)) {\r\n fromPromise(item).done(this._setCustomItem.bind(this)).fail(this._setCustomItem.bind(this, null))\r\n } else {\r\n this._setCustomItem(item)\r\n }\r\n },\r\n _setCustomItem: function(item) {\r\n if (this._disposed) {\r\n return\r\n }\r\n item = item || null;\r\n this.option(\"selectedItem\", item);\r\n this._cancelSearchIfNeed();\r\n this._setValue(this._valueGetter(item));\r\n this._renderDisplayText(this._displayGetter(item));\r\n this._isValueChanging = false\r\n },\r\n _clearValueHandler: function(e) {\r\n this._preventFiltering = true;\r\n this.callBase(e);\r\n this._searchCanceled();\r\n return false\r\n },\r\n _wasSearch: function(value) {\r\n if (!arguments.length) {\r\n return !!this._wasSearchValue\r\n }\r\n this._wasSearchValue = value\r\n },\r\n _searchHandler: function() {\r\n if (this._preventFiltering) {\r\n delete this._preventFiltering;\r\n return\r\n }\r\n if (this._needPassDataSourceToList()) {\r\n this._wasSearch(true)\r\n }\r\n this.callBase(arguments)\r\n },\r\n _dataSourceFiltered: function(searchValue) {\r\n this.callBase();\r\n if (null !== searchValue) {\r\n this._renderInputSubstitution();\r\n this._renderFocusedElement()\r\n }\r\n },\r\n _valueSubstituted: function() {\r\n var input = this._input().get(0);\r\n var currentSearchLength = this._searchValue().length;\r\n var isAllSelected = 0 === input.selectionStart && input.selectionEnd === currentSearchLength;\r\n var inputHasSelection = input.selectionStart !== input.selectionEnd;\r\n var isLastSymbolSelected = currentSearchLength === input.selectionEnd;\r\n return this._wasSearch() && inputHasSelection && !isAllSelected && isLastSymbolSelected && this._shouldSubstitutionBeRendered()\r\n },\r\n _shouldSubstitutionBeRendered: function() {\r\n return !this._preventSubstitution && this.option(\"searchEnabled\") && !this.option(\"acceptCustomValue\") && \"startswith\" === this.option(\"searchMode\")\r\n },\r\n _renderInputSubstitution: function() {\r\n if (!this._shouldSubstitutionBeRendered()) {\r\n delete this._preventSubstitution;\r\n return\r\n }\r\n var item = this._list && this._getPlainItems(this._list.option(\"items\"))[0];\r\n if (!item) {\r\n return\r\n }\r\n var $input = this._input();\r\n var valueLength = $input.val().length;\r\n if (0 === valueLength) {\r\n return\r\n }\r\n var inputElement = $input.get(0);\r\n var displayValue = this._displayGetter(item).toString();\r\n inputElement.value = displayValue;\r\n this._caret({\r\n start: valueLength,\r\n end: displayValue.length\r\n })\r\n },\r\n _dispose: function() {\r\n this._renderInputValueAsync = noop;\r\n delete this._loadItemDeferred;\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"customItemCreateEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onCustomItemCreating\":\r\n this._initCustomItemCreatingAction();\r\n break;\r\n case \"tooltipEnabled\":\r\n this._renderTooltip();\r\n break;\r\n case \"displayCustomValue\":\r\n case \"acceptCustomValue\":\r\n case \"showSelectionControls\":\r\n this._invalidate();\r\n break;\r\n case \"allowClearing\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxSelectBox\", SelectBox);\r\nexport default SelectBox;\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n getKeyHash,\r\n noop,\r\n equalByValue\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isPlainObject,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport Class from \"../../core/class\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default Class.inherit({\r\n ctor: function(options) {\r\n this.options = options;\r\n this._setOption(\"disabledItemKeys\", []);\r\n this._clearItemKeys()\r\n },\r\n _clearItemKeys: function() {\r\n this._setOption(\"addedItemKeys\", []);\r\n this._setOption(\"removedItemKeys\", []);\r\n this._setOption(\"removedItems\", []);\r\n this._setOption(\"addedItems\", [])\r\n },\r\n validate: noop,\r\n _setOption: function(name, value) {\r\n this.options[name] = value\r\n },\r\n onSelectionChanged: function() {\r\n var addedItemKeys = this.options.addedItemKeys;\r\n var removedItemKeys = this.options.removedItemKeys;\r\n var addedItems = this.options.addedItems;\r\n var removedItems = this.options.removedItems;\r\n var selectedItems = this.options.selectedItems;\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n var onSelectionChanged = this.options.onSelectionChanged || noop;\r\n this._clearItemKeys();\r\n onSelectionChanged({\r\n selectedItems: selectedItems,\r\n selectedItemKeys: selectedItemKeys,\r\n addedItemKeys: addedItemKeys,\r\n removedItemKeys: removedItemKeys,\r\n addedItems: addedItems,\r\n removedItems: removedItems\r\n })\r\n },\r\n equalKeys: function(key1, key2) {\r\n if (this.options.equalByReference) {\r\n if (isObject(key1) && isObject(key2)) {\r\n return key1 === key2\r\n }\r\n }\r\n return equalByValue(key1, key2)\r\n },\r\n getSelectableItems: function(items) {\r\n return items.filter((function(item) {\r\n return !(null !== item && void 0 !== item && item.disabled)\r\n }))\r\n },\r\n _clearSelection: function(keys, preserve, isDeselect, isSelectAll) {\r\n keys = keys || [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this.selectedItemKeys(keys, preserve, isDeselect, isSelectAll)\r\n },\r\n _removeTemplateProperty: function(remoteFilter) {\r\n if (Array.isArray(remoteFilter)) {\r\n return remoteFilter.map(f => this._removeTemplateProperty(f))\r\n }\r\n if (isObject(remoteFilter)) {\r\n delete remoteFilter.template\r\n }\r\n return remoteFilter\r\n },\r\n _loadFilteredData: function(remoteFilter, localFilter, select, isSelectAll) {\r\n var filterLength = encodeURI(JSON.stringify(this._removeTemplateProperty(remoteFilter))).length;\r\n var needLoadAllData = this.options.maxFilterLengthInRequest && filterLength > this.options.maxFilterLengthInRequest;\r\n var deferred = new Deferred;\r\n var loadOptions = {\r\n filter: needLoadAllData ? void 0 : remoteFilter,\r\n select: needLoadAllData ? this.options.dataFields() : select || this.options.dataFields()\r\n };\r\n if (remoteFilter && 0 === remoteFilter.length) {\r\n deferred.resolve([])\r\n } else {\r\n this.options.load(loadOptions).done((function(items) {\r\n var filteredItems = isPlainObject(items) ? items.data : items;\r\n if (localFilter && !isSelectAll) {\r\n filteredItems = filteredItems.filter(localFilter)\r\n } else if (needLoadAllData) {\r\n filteredItems = dataQuery(filteredItems).filter(remoteFilter).toArray()\r\n }\r\n deferred.resolve(filteredItems)\r\n })).fail(deferred.reject.bind(deferred))\r\n }\r\n return deferred\r\n },\r\n updateSelectedItemKeyHash: function(keys) {\r\n for (var i = 0; i < keys.length; i++) {\r\n var keyHash = getKeyHash(keys[i]);\r\n if (!isObject(keyHash)) {\r\n this.options.keyHashIndices[keyHash] = this.options.keyHashIndices[keyHash] || [];\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n keyIndices.push(i)\r\n }\r\n }\r\n },\r\n _isAnyItemSelected: function(items) {\r\n for (var i = 0; i < items.length; i++) {\r\n if (this.options.isItemSelected(items[i])) {\r\n return\r\n }\r\n }\r\n return false\r\n },\r\n _getFullSelectAllState: function() {\r\n var items = this.options.plainItems();\r\n var dataFilter = this.options.filter();\r\n var selectedItems = this.options.ignoreDisabledItems ? this.options.selectedItems : this.options.selectedItems.filter(item => !(null !== item && void 0 !== item && item.disabled));\r\n if (dataFilter) {\r\n selectedItems = dataQuery(selectedItems).filter(dataFilter).toArray()\r\n }\r\n var selectedItemsLength = selectedItems.length;\r\n var disabledItemsLength = items.length - this.getSelectableItems(items).length;\r\n if (!selectedItemsLength) {\r\n return this._isAnyItemSelected(items)\r\n }\r\n if (selectedItemsLength >= this.options.totalCount() - disabledItemsLength) {\r\n return true\r\n }\r\n return\r\n },\r\n _getVisibleSelectAllState: function() {\r\n var items = this.getSelectableItems(this.options.plainItems());\r\n var hasSelectedItems = false;\r\n var hasUnselectedItems = false;\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var itemData = this.options.getItemData(item);\r\n var key = this.options.keyOf(itemData);\r\n if (this.options.isSelectableItem(item)) {\r\n if (this.isItemKeySelected(key)) {\r\n hasSelectedItems = true\r\n } else {\r\n hasUnselectedItems = true\r\n }\r\n }\r\n }\r\n if (hasSelectedItems) {\r\n return !hasUnselectedItems ? true : void 0\r\n } else {\r\n return false\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.deferred.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nexport default SelectionStrategy.inherit({\r\n getSelectedItems: function() {\r\n return this._loadFilteredData(this.options.selectionFilter)\r\n },\r\n getSelectedItemKeys: function() {\r\n var d = new Deferred;\r\n var that = this;\r\n var key = this.options.key();\r\n var select = isString(key) ? [key] : key;\r\n this._loadFilteredData(this.options.selectionFilter, null, select).done((function(items) {\r\n var keys = items.map((function(item) {\r\n return that.options.keyOf(item)\r\n }));\r\n d.resolve(keys)\r\n })).fail(d.reject);\r\n return d.promise()\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll) {\r\n if (isSelectAll) {\r\n var filter = this.options.filter();\r\n var needResetSelectionFilter = !filter || JSON.stringify(filter) === JSON.stringify(this.options.selectionFilter) && isDeselect;\r\n if (needResetSelectionFilter) {\r\n this._setOption(\"selectionFilter\", isDeselect ? [] : null)\r\n } else {\r\n this._addSelectionFilter(isDeselect, filter, isSelectAll)\r\n }\r\n } else {\r\n if (!preserve) {\r\n this._setOption(\"selectionFilter\", [])\r\n }\r\n for (var i = 0; i < keys.length; i++) {\r\n if (isDeselect) {\r\n this.removeSelectedItem(keys[i])\r\n } else {\r\n this.addSelectedItem(keys[i])\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n },\r\n setSelectedItems: function(keys) {\r\n this._setOption(\"selectionFilter\", null);\r\n for (var i = 0; i < keys.length; i++) {\r\n this.addSelectedItem(keys[i])\r\n }\r\n },\r\n isItemDataSelected: function(itemData) {\r\n return this.isItemKeySelected(itemData)\r\n },\r\n isItemKeySelected: function(itemData) {\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n return !!dataQuery([itemData]).filter(selectionFilter).toArray().length\r\n },\r\n _getKeyExpr: function() {\r\n var keyField = this.options.key();\r\n if (Array.isArray(keyField) && 1 === keyField.length) {\r\n return keyField[0]\r\n }\r\n return keyField\r\n },\r\n _normalizeKey: function(key) {\r\n var keyExpr = this.options.key();\r\n if (Array.isArray(keyExpr) && 1 === keyExpr.length) {\r\n return key[keyExpr[0]]\r\n }\r\n return key\r\n },\r\n _getFilterByKey: function(key) {\r\n var keyField = this._getKeyExpr();\r\n var filter = [keyField, \"=\", this._normalizeKey(key)];\r\n if (Array.isArray(keyField)) {\r\n filter = [];\r\n for (var i = 0; i < keyField.length; i++) {\r\n filter.push([keyField[i], \"=\", key[keyField[i]]]);\r\n if (i !== keyField.length - 1) {\r\n filter.push(\"and\")\r\n }\r\n }\r\n }\r\n return filter\r\n },\r\n addSelectedItem: function(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(false, filter)\r\n },\r\n removeSelectedItem: function(key) {\r\n var filter = this._getFilterByKey(key);\r\n this._addSelectionFilter(true, filter)\r\n },\r\n validate: function() {\r\n var key = this.options.key;\r\n if (key && void 0 === key()) {\r\n throw errors.Error(\"E1042\", \"Deferred selection\")\r\n }\r\n },\r\n _findSubFilter: function(selectionFilter, filter) {\r\n if (!selectionFilter) {\r\n return -1\r\n }\r\n var filterString = JSON.stringify(filter);\r\n for (var index = 0; index < selectionFilter.length; index++) {\r\n var subFilter = selectionFilter[index];\r\n if (subFilter && JSON.stringify(subFilter) === filterString) {\r\n return index\r\n }\r\n }\r\n return -1\r\n },\r\n _isLastSubFilter: function(selectionFilter, filter) {\r\n if (selectionFilter && filter) {\r\n return this._findSubFilter(selectionFilter, filter) === selectionFilter.length - 1 || 0 === this._findSubFilter([selectionFilter], filter)\r\n }\r\n return false\r\n },\r\n _addFilterOperator: function(selectionFilter, filterOperator) {\r\n if (selectionFilter.length > 1 && isString(selectionFilter[1]) && selectionFilter[1] !== filterOperator) {\r\n selectionFilter = [selectionFilter]\r\n }\r\n if (selectionFilter.length) {\r\n selectionFilter.push(filterOperator)\r\n }\r\n return selectionFilter\r\n },\r\n _denormalizeFilter: function(filter) {\r\n if (filter && isString(filter[0])) {\r\n filter = [filter]\r\n }\r\n return filter\r\n },\r\n _isOnlyNegativeFiltersLeft: function(filters) {\r\n return filters.every((filterItem, i) => {\r\n if (i % 2 === 0) {\r\n return Array.isArray(filterItem) && \"!\" === filterItem[0]\r\n } else {\r\n return \"and\" === filterItem\r\n }\r\n })\r\n },\r\n _addSelectionFilter: function(isDeselect, filter, isSelectAll) {\r\n var currentFilter = isDeselect ? [\"!\", filter] : filter;\r\n var currentOperation = isDeselect ? \"and\" : \"or\";\r\n var needAddFilter = true;\r\n var selectionFilter = this.options.selectionFilter || [];\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (selectionFilter && selectionFilter.length) {\r\n var removedIndex = this._removeSameFilter(selectionFilter, filter, isDeselect, isSelectAll);\r\n var filterIndex = this._removeSameFilter(selectionFilter, filter, !isDeselect);\r\n var shouldCleanFilter = isDeselect && (-1 !== removedIndex || -1 !== filterIndex) && this._isOnlyNegativeFiltersLeft(selectionFilter);\r\n if (shouldCleanFilter) {\r\n selectionFilter = []\r\n }\r\n var isKeyOperatorsAfterRemoved = this._isKeyFilter(filter) && this._hasKeyFiltersOnlyStartingFromIndex(selectionFilter, filterIndex);\r\n needAddFilter = filter.length && !isKeyOperatorsAfterRemoved;\r\n if (needAddFilter) {\r\n selectionFilter = this._addFilterOperator(selectionFilter, currentOperation)\r\n }\r\n }\r\n if (needAddFilter) {\r\n selectionFilter.push(currentFilter)\r\n }\r\n selectionFilter = this._normalizeFilter(selectionFilter);\r\n this._setOption(\"selectionFilter\", !isDeselect && !selectionFilter.length ? null : selectionFilter)\r\n },\r\n _normalizeFilter: function(filter) {\r\n if (filter && 1 === filter.length) {\r\n filter = filter[0]\r\n }\r\n return filter\r\n },\r\n _removeFilterByIndex: function(filter, filterIndex, isSelectAll) {\r\n var operation = filter[1];\r\n if (filterIndex > 0) {\r\n filter.splice(filterIndex - 1, 2)\r\n } else {\r\n filter.splice(filterIndex, 2)\r\n }\r\n if (isSelectAll && \"and\" === operation) {\r\n filter.splice(0, filter.length)\r\n }\r\n },\r\n _isSimpleKeyFilter: function(filter, key) {\r\n return 3 === filter.length && filter[0] === key && \"=\" === filter[1]\r\n },\r\n _isKeyFilter: function(filter) {\r\n if (2 === filter.length && \"!\" === filter[0]) {\r\n return this._isKeyFilter(filter[1])\r\n }\r\n var keyField = this._getKeyExpr();\r\n if (Array.isArray(keyField)) {\r\n if (filter.length !== 2 * keyField.length - 1) {\r\n return false\r\n }\r\n for (var i = 0; i < keyField.length; i++) {\r\n if (i > 0 && \"and\" !== filter[2 * i - 1]) {\r\n return false\r\n }\r\n if (!this._isSimpleKeyFilter(filter[2 * i], keyField[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return this._isSimpleKeyFilter(filter, keyField)\r\n },\r\n _hasKeyFiltersOnlyStartingFromIndex: function(selectionFilter, filterIndex) {\r\n if (filterIndex >= 0) {\r\n for (var i = filterIndex; i < selectionFilter.length; i++) {\r\n if (\"string\" !== typeof selectionFilter[i] && !this._isKeyFilter(selectionFilter[i])) {\r\n return false\r\n }\r\n }\r\n return true\r\n }\r\n return false\r\n },\r\n _removeSameFilter: function(selectionFilter, filter, inverted, isSelectAll) {\r\n filter = inverted ? [\"!\", filter] : filter;\r\n if (JSON.stringify(filter) === JSON.stringify(selectionFilter)) {\r\n selectionFilter.splice(0, selectionFilter.length);\r\n return 0\r\n }\r\n var filterIndex = this._findSubFilter(selectionFilter, filter);\r\n if (filterIndex >= 0) {\r\n this._removeFilterByIndex(selectionFilter, filterIndex, isSelectAll);\r\n return filterIndex\r\n } else {\r\n for (var i = 0; i < selectionFilter.length; i++) {\r\n if (Array.isArray(selectionFilter[i]) && selectionFilter[i].length > 2) {\r\n var _filterIndex = this._removeSameFilter(selectionFilter[i], filter, false, isSelectAll);\r\n if (_filterIndex >= 0) {\r\n if (!selectionFilter[i].length) {\r\n this._removeFilterByIndex(selectionFilter, i, isSelectAll)\r\n } else if (1 === selectionFilter[i].length) {\r\n selectionFilter[i] = selectionFilter[i][0]\r\n }\r\n return _filterIndex\r\n }\r\n }\r\n }\r\n return -1\r\n }\r\n },\r\n getSelectAllState: function() {\r\n var filter = this.options.filter();\r\n var selectionFilter = this.options.selectionFilter;\r\n if (!selectionFilter) {\r\n return true\r\n }\r\n if (!selectionFilter.length) {\r\n return false\r\n }\r\n if (!filter || !filter.length) {\r\n return\r\n }\r\n selectionFilter = this._denormalizeFilter(selectionFilter);\r\n if (this._isLastSubFilter(selectionFilter, filter)) {\r\n return true\r\n }\r\n if (this._isLastSubFilter(selectionFilter, [\"!\", filter])) {\r\n return false\r\n }\r\n return\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.strategy.standard.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getKeyHash\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isObject\r\n} from \"../../core/utils/type\";\r\nimport {\r\n removeDuplicates,\r\n getUniqueValues\r\n} from \"../../core/utils/array\";\r\nimport {\r\n isKeysEqual\r\n} from \"../../core/utils/array_compare\";\r\nimport dataQuery from \"../../data/query\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n SelectionFilterCreator\r\n} from \"../../core/utils/selection_filter\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport SelectionStrategy from \"./selection.strategy\";\r\nexport default SelectionStrategy.inherit({\r\n ctor: function(options) {\r\n this.callBase(options);\r\n this._initSelectedItemKeyHash()\r\n },\r\n _initSelectedItemKeyHash: function() {\r\n this._setOption(\"keyHashIndices\", this.options.equalByReference ? null : {})\r\n },\r\n getSelectedItemKeys: function() {\r\n return this.options.selectedItemKeys.slice(0)\r\n },\r\n getSelectedItems: function() {\r\n return this.options.selectedItems.slice(0)\r\n },\r\n _preserveSelectionUpdate: function(items, isDeselect) {\r\n var keyOf = this.options.keyOf;\r\n var keyIndicesToRemoveMap;\r\n var keyIndex;\r\n var i;\r\n if (!keyOf) {\r\n return\r\n }\r\n var isBatchDeselect = isDeselect && items.length > 1 && !this.options.equalByReference;\r\n if (isBatchDeselect) {\r\n keyIndicesToRemoveMap = {}\r\n }\r\n for (i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n if (isDeselect) {\r\n keyIndex = this.removeSelectedItem(key, keyIndicesToRemoveMap, null === item || void 0 === item ? void 0 : item.disabled);\r\n if (keyIndicesToRemoveMap && keyIndex >= 0) {\r\n keyIndicesToRemoveMap[keyIndex] = true\r\n }\r\n } else {\r\n this.addSelectedItem(key, item)\r\n }\r\n }\r\n if (isBatchDeselect) {\r\n this._batchRemoveSelectedItems(keyIndicesToRemoveMap)\r\n }\r\n },\r\n _batchRemoveSelectedItems: function(keyIndicesToRemoveMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys.slice(0);\r\n var selectedItems = this.options.selectedItems.slice(0);\r\n this.options.selectedItemKeys.length = 0;\r\n this.options.selectedItems.length = 0;\r\n for (var i = 0; i < selectedItemKeys.length; i++) {\r\n if (!keyIndicesToRemoveMap[i]) {\r\n this.options.selectedItemKeys.push(selectedItemKeys[i]);\r\n this.options.selectedItems.push(selectedItems[i])\r\n }\r\n }\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n },\r\n _loadSelectedItemsCore: function(keys, isDeselect, isSelectAll, filter) {\r\n var deferred = new Deferred;\r\n var key = this.options.key();\r\n if (!keys.length && !isSelectAll) {\r\n deferred.resolve([]);\r\n return deferred\r\n }\r\n if (isSelectAll && isDeselect && !filter) {\r\n deferred.resolve(this.getSelectedItems());\r\n return deferred\r\n }\r\n var selectionFilterCreator = new SelectionFilterCreator(keys, isSelectAll);\r\n var combinedFilter = selectionFilterCreator.getCombinedFilter(key, filter);\r\n var deselectedItems = [];\r\n if (isDeselect) {\r\n var selectedItems = this.options.selectedItems;\r\n deselectedItems = combinedFilter && keys.length !== selectedItems.length ? dataQuery(selectedItems).filter(combinedFilter).toArray() : selectedItems.slice(0)\r\n }\r\n var filteredItems = deselectedItems.length ? deselectedItems : this.options.plainItems(true).filter(this.options.isSelectableItem).map(this.options.getItemData);\r\n var localFilter = selectionFilterCreator.getLocalFilter(this.options.keyOf, this.equalKeys.bind(this), this.options.equalByReference, key);\r\n filteredItems = filteredItems.filter(localFilter);\r\n if (deselectedItems.length || !isSelectAll && filteredItems.length === keys.length) {\r\n deferred.resolve(filteredItems)\r\n } else {\r\n deferred = this._loadFilteredData(combinedFilter, localFilter, null, isSelectAll)\r\n }\r\n return deferred\r\n },\r\n _replaceSelectionUpdate: function(items) {\r\n var internalKeys = [];\r\n var keyOf = this.options.keyOf;\r\n if (!keyOf) {\r\n return\r\n }\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n var key = keyOf(item);\r\n internalKeys.push(key)\r\n }\r\n this.setSelectedItems(internalKeys, items)\r\n },\r\n _warnOnIncorrectKeys: function(keys) {\r\n var allowNullValue = this.options.allowNullValue;\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n if ((!allowNullValue || null !== key) && !this.isItemKeySelected(key)) {\r\n errors.log(\"W1002\", key)\r\n }\r\n }\r\n },\r\n _isMultiSelectEnabled: function() {\r\n var mode = this.options.mode;\r\n return \"all\" === mode || \"multiple\" === mode\r\n },\r\n _requestInProgress: function() {\r\n var _this$_lastLoadDeferr;\r\n return \"pending\" === (null === (_this$_lastLoadDeferr = this._lastLoadDeferred) || void 0 === _this$_lastLoadDeferr ? void 0 : _this$_lastLoadDeferr.state())\r\n },\r\n _concatRequestsItems: function(keys, isDeselect, oldRequestItems, updatedKeys) {\r\n var selectedItems;\r\n var deselectedItems = isDeselect ? keys : [];\r\n if (updatedKeys) {\r\n selectedItems = updatedKeys\r\n } else {\r\n selectedItems = removeDuplicates(keys, this.options.selectedItemKeys)\r\n }\r\n return {\r\n addedItems: oldRequestItems.added.concat(selectedItems),\r\n removedItems: oldRequestItems.removed.concat(deselectedItems),\r\n keys: keys\r\n }\r\n },\r\n _collectLastRequestData: function(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var isDeselectAll = isDeselect && isSelectAll;\r\n var oldRequestItems = {\r\n added: [],\r\n removed: []\r\n };\r\n var multiSelectEnabled = this._isMultiSelectEnabled();\r\n var lastRequestData = multiSelectEnabled ? this._lastRequestData : {};\r\n if (multiSelectEnabled) {\r\n if (this._shouldMergeWithLastRequest) {\r\n if (isDeselectAll) {\r\n this._lastLoadDeferred.reject();\r\n lastRequestData = {}\r\n } else if (!isKeysEqual(keys, this.options.selectedItemKeys)) {\r\n oldRequestItems.added = lastRequestData.addedItems;\r\n oldRequestItems.removed = lastRequestData.removedItems;\r\n if (!isDeselect) {\r\n this._lastLoadDeferred.reject()\r\n }\r\n }\r\n }\r\n lastRequestData = this._concatRequestsItems(keys, isDeselect, oldRequestItems, this._shouldMergeWithLastRequest ? void 0 : updatedKeys)\r\n }\r\n return lastRequestData\r\n },\r\n _updateKeysByLastRequestData: function(keys, isDeselect, isSelectAll) {\r\n var currentKeys = keys;\r\n if (this._isMultiSelectEnabled() && this._shouldMergeWithLastRequest && !isDeselect && !isSelectAll) {\r\n var _this$_lastRequestDat, _this$_lastRequestDat2;\r\n currentKeys = removeDuplicates(keys.concat(null === (_this$_lastRequestDat = this._lastRequestData) || void 0 === _this$_lastRequestDat ? void 0 : _this$_lastRequestDat.addedItems), null === (_this$_lastRequestDat2 = this._lastRequestData) || void 0 === _this$_lastRequestDat2 ? void 0 : _this$_lastRequestDat2.removedItems);\r\n currentKeys = getUniqueValues(currentKeys)\r\n }\r\n return currentKeys\r\n },\r\n _loadSelectedItems: function(keys, isDeselect, isSelectAll, updatedKeys) {\r\n var that = this;\r\n var deferred = new Deferred;\r\n var filter = that.options.filter();\r\n this._shouldMergeWithLastRequest = this._requestInProgress();\r\n this._lastRequestData = this._collectLastRequestData(keys, isDeselect, isSelectAll, updatedKeys);\r\n when(that._lastLoadDeferred).always((function() {\r\n var currentKeys = that._updateKeysByLastRequestData(keys, isDeselect, isSelectAll);\r\n that._shouldMergeWithLastRequest = false;\r\n that._loadSelectedItemsCore(currentKeys, isDeselect, isSelectAll, filter).done(deferred.resolve).fail(deferred.reject)\r\n }));\r\n that._lastLoadDeferred = deferred;\r\n return deferred\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var that = this;\r\n var deferred = that._loadSelectedItems(keys, isDeselect, isSelectAll, updatedKeys);\r\n deferred.done((function(items) {\r\n if (preserve) {\r\n that._preserveSelectionUpdate(items, isDeselect)\r\n } else {\r\n that._replaceSelectionUpdate(items)\r\n }\r\n that.onSelectionChanged()\r\n }));\r\n return deferred\r\n },\r\n addSelectedItem: function(key, itemData) {\r\n if (isDefined(itemData) && !this.options.ignoreDisabledItems && itemData.disabled) {\r\n if (-1 === this.options.disabledItemKeys.indexOf(key)) {\r\n this.options.disabledItemKeys.push(key)\r\n }\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n if (-1 === this._indexOfSelectedItemKey(keyHash)) {\r\n if (!isObject(keyHash) && this.options.keyHashIndices) {\r\n this.options.keyHashIndices[keyHash] = [this.options.selectedItemKeys.length]\r\n }\r\n this.options.selectedItemKeys.push(key);\r\n this.options.addedItemKeys.push(key);\r\n this.options.addedItems.push(itemData);\r\n this.options.selectedItems.push(itemData)\r\n }\r\n },\r\n _getSelectedIndexByKey: function(key, ignoreIndicesMap) {\r\n var selectedItemKeys = this.options.selectedItemKeys;\r\n for (var index = 0; index < selectedItemKeys.length; index++) {\r\n if ((!ignoreIndicesMap || !ignoreIndicesMap[index]) && this.equalKeys(selectedItemKeys[index], key)) {\r\n return index\r\n }\r\n }\r\n return -1\r\n },\r\n _getSelectedIndexByHash: function(key, ignoreIndicesMap) {\r\n var indices = this.options.keyHashIndices[key];\r\n if (indices && indices.length > 1 && ignoreIndicesMap) {\r\n indices = indices.filter((function(index) {\r\n return !ignoreIndicesMap[index]\r\n }))\r\n }\r\n return indices && indices[0] >= 0 ? indices[0] : -1\r\n },\r\n _indexOfSelectedItemKey: function(key, ignoreIndicesMap) {\r\n var selectedIndex;\r\n if (this.options.equalByReference) {\r\n selectedIndex = this.options.selectedItemKeys.indexOf(key)\r\n } else if (isObject(key)) {\r\n selectedIndex = this._getSelectedIndexByKey(key, ignoreIndicesMap)\r\n } else {\r\n selectedIndex = this._getSelectedIndexByHash(key, ignoreIndicesMap)\r\n }\r\n return selectedIndex\r\n },\r\n _shiftSelectedKeyIndices: function(keyIndex) {\r\n for (var currentKeyIndex = keyIndex; currentKeyIndex < this.options.selectedItemKeys.length; currentKeyIndex++) {\r\n var currentKey = this.options.selectedItemKeys[currentKeyIndex];\r\n var currentKeyHash = getKeyHash(currentKey);\r\n var currentKeyIndices = this.options.keyHashIndices[currentKeyHash];\r\n if (!currentKeyIndices) {\r\n continue\r\n }\r\n for (var i = 0; i < currentKeyIndices.length; i++) {\r\n if (currentKeyIndices[i] > keyIndex) {\r\n currentKeyIndices[i]--\r\n }\r\n }\r\n }\r\n },\r\n removeSelectedItem: function(key, keyIndicesToRemoveMap, isDisabled) {\r\n if (!this.options.ignoreDisabledItems && isDisabled) {\r\n return\r\n }\r\n var keyHash = this._getKeyHash(key);\r\n var isBatchDeselect = !!keyIndicesToRemoveMap;\r\n var keyIndex = this._indexOfSelectedItemKey(keyHash, keyIndicesToRemoveMap);\r\n if (keyIndex < 0) {\r\n return keyIndex\r\n }\r\n this.options.removedItemKeys.push(key);\r\n this.options.removedItems.push(this.options.selectedItems[keyIndex]);\r\n if (isBatchDeselect) {\r\n return keyIndex\r\n }\r\n this.options.selectedItemKeys.splice(keyIndex, 1);\r\n this.options.selectedItems.splice(keyIndex, 1);\r\n if (isObject(keyHash) || !this.options.keyHashIndices) {\r\n return keyIndex\r\n }\r\n var keyIndices = this.options.keyHashIndices[keyHash];\r\n if (!keyIndices) {\r\n return keyIndex\r\n }\r\n keyIndices.shift();\r\n if (!keyIndices.length) {\r\n delete this.options.keyHashIndices[keyHash]\r\n }\r\n this._shiftSelectedKeyIndices(keyIndex);\r\n return keyIndex\r\n },\r\n _updateAddedItemKeys: function(keys, items) {\r\n for (var i = 0; i < keys.length; i++) {\r\n if (!this.isItemKeySelected(keys[i])) {\r\n this.options.addedItemKeys.push(keys[i]);\r\n this.options.addedItems.push(items[i])\r\n }\r\n }\r\n },\r\n _updateRemovedItemKeys: function(keys, oldSelectedKeys, oldSelectedItems) {\r\n for (var i = 0; i < oldSelectedKeys.length; i++) {\r\n if (!this.isItemKeySelected(oldSelectedKeys[i])) {\r\n this.options.removedItemKeys.push(oldSelectedKeys[i]);\r\n this.options.removedItems.push(oldSelectedItems[i])\r\n }\r\n }\r\n },\r\n _isItemSelectionInProgress: function(key, checkPending) {\r\n var shouldCheckPending = checkPending && this._lastRequestData && this._requestInProgress();\r\n if (shouldCheckPending) {\r\n var _this$_lastRequestDat3;\r\n var addedItems = null !== (_this$_lastRequestDat3 = this._lastRequestData.addedItems) && void 0 !== _this$_lastRequestDat3 ? _this$_lastRequestDat3 : [];\r\n return addedItems.includes(key)\r\n } else {\r\n return false\r\n }\r\n },\r\n _getKeyHash: function(key) {\r\n return this.options.equalByReference ? key : getKeyHash(key)\r\n },\r\n setSelectedItems: function(keys, items) {\r\n this._updateAddedItemKeys(keys, items);\r\n var oldSelectedKeys = this.options.selectedItemKeys;\r\n var oldSelectedItems = this.options.selectedItems;\r\n if (!this.options.equalByReference) {\r\n this._initSelectedItemKeyHash();\r\n this.updateSelectedItemKeyHash(keys)\r\n }\r\n this._setOption(\"selectedItemKeys\", keys);\r\n this._setOption(\"selectedItems\", items);\r\n this._updateRemovedItemKeys(keys, oldSelectedKeys, oldSelectedItems)\r\n },\r\n isItemDataSelected: function(itemData) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var key = this.options.keyOf(itemData);\r\n return this.isItemKeySelected(key, options)\r\n },\r\n isItemKeySelected: function(key) {\r\n var options = arguments.length > 1 && void 0 !== arguments[1] ? arguments[1] : {};\r\n var result = this._isItemSelectionInProgress(key, options.checkPending);\r\n if (!result) {\r\n var keyHash = this._getKeyHash(key);\r\n var index = this._indexOfSelectedItemKey(keyHash);\r\n result = -1 !== index\r\n }\r\n return result\r\n },\r\n getSelectAllState: function(visibleOnly) {\r\n if (visibleOnly) {\r\n return this._getVisibleSelectAllState()\r\n } else {\r\n return this._getFullSelectAllState()\r\n }\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/selection/selection.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport deferredStrategy from \"./selection.strategy.deferred\";\r\nimport standardStrategy from \"./selection.strategy.standard\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nexport default Class.inherit({\r\n ctor: function(options) {\r\n this.options = extend(this._getDefaultOptions(), options, {\r\n selectedItemKeys: options.selectedKeys || []\r\n });\r\n this._selectionStrategy = this.options.deferred ? new deferredStrategy(this.options) : new standardStrategy(this.options);\r\n this._focusedItemIndex = -1;\r\n if (!this.options.equalByReference) {\r\n this._selectionStrategy.updateSelectedItemKeyHash(this.options.selectedItemKeys)\r\n }\r\n },\r\n _getDefaultOptions: function() {\r\n return {\r\n allowNullValue: false,\r\n deferred: false,\r\n equalByReference: false,\r\n mode: \"multiple\",\r\n selectedItems: [],\r\n selectionFilter: [],\r\n maxFilterLengthInRequest: 0,\r\n onSelectionChanged: noop,\r\n key: noop,\r\n keyOf: function(item) {\r\n return item\r\n },\r\n load: function() {\r\n return (new Deferred).resolve([])\r\n },\r\n totalCount: function() {\r\n return -1\r\n },\r\n isSelectableItem: function() {\r\n return true\r\n },\r\n isItemSelected: function() {\r\n return false\r\n },\r\n getItemData: function(item) {\r\n return item\r\n },\r\n dataFields: noop,\r\n filter: noop\r\n }\r\n },\r\n validate: function() {\r\n this._selectionStrategy.validate()\r\n },\r\n getSelectedItemKeys: function() {\r\n return this._selectionStrategy.getSelectedItemKeys()\r\n },\r\n getSelectedItems: function() {\r\n return this._selectionStrategy.getSelectedItems()\r\n },\r\n selectionFilter: function(value) {\r\n if (void 0 === value) {\r\n return this.options.selectionFilter\r\n }\r\n var filterIsChanged = this.options.selectionFilter !== value && JSON.stringify(this.options.selectionFilter) !== JSON.stringify(value);\r\n this.options.selectionFilter = value;\r\n filterIsChanged && this.onSelectionChanged()\r\n },\r\n setSelection: function(keys, updatedKeys) {\r\n return this.selectedItemKeys(keys, false, false, false, updatedKeys)\r\n },\r\n select: function(keys) {\r\n return this.selectedItemKeys(keys, true)\r\n },\r\n deselect: function(keys) {\r\n return this.selectedItemKeys(keys, true, true)\r\n },\r\n selectedItemKeys: function(keys, preserve, isDeselect, isSelectAll, updatedKeys) {\r\n var _keys;\r\n keys = null !== (_keys = keys) && void 0 !== _keys ? _keys : [];\r\n keys = Array.isArray(keys) ? keys : [keys];\r\n this.validate();\r\n return this._selectionStrategy.selectedItemKeys(keys, preserve, isDeselect, isSelectAll, updatedKeys)\r\n },\r\n clearSelection: function() {\r\n return this.selectedItemKeys([])\r\n },\r\n _addSelectedItem: function(itemData, key) {\r\n this._selectionStrategy.addSelectedItem(key, itemData)\r\n },\r\n _removeSelectedItem: function(key) {\r\n this._selectionStrategy.removeSelectedItem(key)\r\n },\r\n _setSelectedItems: function(keys, items) {\r\n this._selectionStrategy.setSelectedItems(keys, items)\r\n },\r\n onSelectionChanged: function() {\r\n this._selectionStrategy.onSelectionChanged()\r\n },\r\n changeItemSelection: function(itemIndex, keys, setFocusOnly) {\r\n var _this$options$allowLo, _this$options;\r\n var isSelectedItemsChanged;\r\n var items = this.options.plainItems();\r\n var item = items[itemIndex];\r\n var deferred;\r\n var allowLoadByRange = null === (_this$options$allowLo = (_this$options = this.options).allowLoadByRange) || void 0 === _this$options$allowLo ? void 0 : _this$options$allowLo.call(_this$options);\r\n var indexOffset;\r\n var focusedItemNotInLoadedRange = false;\r\n var shiftFocusedItemNotInLoadedRange = false;\r\n var itemIsNotInLoadedRange = index => index >= 0 && !items.filter(it => it.loadIndex === index).length;\r\n if (allowLoadByRange) {\r\n indexOffset = item.loadIndex - itemIndex;\r\n itemIndex = item.loadIndex;\r\n focusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._focusedItemIndex);\r\n if (isDefined(this._shiftFocusedItemIndex)) {\r\n shiftFocusedItemNotInLoadedRange = itemIsNotInLoadedRange(this._shiftFocusedItemIndex)\r\n }\r\n }\r\n if (!this.isSelectable() || !this.isDataItem(item)) {\r\n return false\r\n }\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n keys = keys || {};\r\n if (keys.shift && \"multiple\" === this.options.mode && this._focusedItemIndex >= 0) {\r\n if (focusedItemNotInLoadedRange || shiftFocusedItemNotInLoadedRange) {\r\n isSelectedItemsChanged = itemIndex !== this._shiftFocusedItemIndex || this._focusedItemIndex !== this._shiftFocusedItemIndex;\r\n if (isSelectedItemsChanged) {\r\n deferred = this.changeItemSelectionWhenShiftKeyInVirtualPaging(itemIndex)\r\n }\r\n } else {\r\n isSelectedItemsChanged = this.changeItemSelectionWhenShiftKeyPressed(itemIndex, items, indexOffset)\r\n }\r\n } else if (keys.control) {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n if (!setFocusOnly) {\r\n var isSelected = this._selectionStrategy.isItemDataSelected(itemData);\r\n if (\"single\" === this.options.mode) {\r\n this.clearSelectedItems()\r\n }\r\n if (isSelected) {\r\n this._removeSelectedItem(itemKey)\r\n } else {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n }\r\n isSelectedItemsChanged = true\r\n } else {\r\n this._resetItemSelectionWhenShiftKeyPressed();\r\n var isKeysEqual = this._selectionStrategy.equalKeys(this.options.selectedItemKeys[0], itemKey);\r\n if (1 !== this.options.selectedItemKeys.length || !isKeysEqual) {\r\n this._setSelectedItems([itemKey], [itemData]);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n if (isSelectedItemsChanged) {\r\n when(deferred).done(() => {\r\n this._focusedItemIndex = itemIndex;\r\n !setFocusOnly && this.onSelectionChanged()\r\n });\r\n return true\r\n }\r\n },\r\n isDataItem: function(item) {\r\n return this.options.isSelectableItem(item)\r\n },\r\n isSelectable: function() {\r\n return \"single\" === this.options.mode || \"multiple\" === this.options.mode\r\n },\r\n isItemDataSelected: function(data) {\r\n return this._selectionStrategy.isItemDataSelected(data, {\r\n checkPending: true\r\n })\r\n },\r\n isItemSelected: function(arg, options) {\r\n return this._selectionStrategy.isItemKeySelected(arg, options)\r\n },\r\n _resetItemSelectionWhenShiftKeyPressed: function() {\r\n delete this._shiftFocusedItemIndex\r\n },\r\n _resetFocusedItemIndex: function() {\r\n this._focusedItemIndex = -1\r\n },\r\n changeItemSelectionWhenShiftKeyInVirtualPaging: function(loadIndex) {\r\n var loadOptions = this.options.getLoadOptions(loadIndex, this._focusedItemIndex, this._shiftFocusedItemIndex);\r\n var deferred = new Deferred;\r\n var indexOffset = loadOptions.skip;\r\n this.options.load(loadOptions).done(items => {\r\n this.changeItemSelectionWhenShiftKeyPressed(loadIndex, items, indexOffset);\r\n deferred.resolve()\r\n });\r\n return deferred.promise()\r\n },\r\n changeItemSelectionWhenShiftKeyPressed: function(itemIndex, items, indexOffset) {\r\n var isSelectedItemsChanged = false;\r\n var itemIndexStep;\r\n var indexOffsetDefined = isDefined(indexOffset);\r\n var index = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n var keyOf = this.options.keyOf;\r\n var focusedItem = items[index];\r\n var focusedData = this.options.getItemData(focusedItem);\r\n var focusedKey = keyOf(focusedData);\r\n var isFocusedItemSelected = focusedItem && this.isItemDataSelected(focusedData);\r\n if (!isDefined(this._shiftFocusedItemIndex)) {\r\n this._shiftFocusedItemIndex = this._focusedItemIndex\r\n }\r\n var data;\r\n var itemKey;\r\n var startIndex;\r\n var endIndex;\r\n if (this._shiftFocusedItemIndex !== this._focusedItemIndex) {\r\n itemIndexStep = this._focusedItemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? this._focusedItemIndex - indexOffset : this._focusedItemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n itemKey = keyOf(this.options.getItemData(items[index]));\r\n this._removeSelectedItem(itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if (itemIndex !== this._shiftFocusedItemIndex) {\r\n itemIndexStep = itemIndex < this._shiftFocusedItemIndex ? 1 : -1;\r\n startIndex = indexOffsetDefined ? itemIndex - indexOffset : itemIndex;\r\n endIndex = indexOffsetDefined ? this._shiftFocusedItemIndex - indexOffset : this._shiftFocusedItemIndex;\r\n for (index = startIndex; index !== endIndex; index += itemIndexStep) {\r\n if (indexOffsetDefined || this.isDataItem(items[index])) {\r\n data = this.options.getItemData(items[index]);\r\n itemKey = keyOf(data);\r\n this._addSelectedItem(data, itemKey);\r\n isSelectedItemsChanged = true\r\n }\r\n }\r\n }\r\n if ((indexOffsetDefined || this.isDataItem(focusedItem)) && !isFocusedItemSelected) {\r\n this._addSelectedItem(focusedData, focusedKey);\r\n isSelectedItemsChanged = true\r\n }\r\n return isSelectedItemsChanged\r\n },\r\n clearSelectedItems: function() {\r\n this._setSelectedItems([], [])\r\n },\r\n selectAll: function(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(false)\r\n } else {\r\n return this.selectedItemKeys([], true, false, true)\r\n }\r\n },\r\n deselectAll: function(isOnePage) {\r\n this._resetFocusedItemIndex();\r\n if (isOnePage) {\r\n return this._onePageSelectAll(true)\r\n } else {\r\n return this.selectedItemKeys([], true, true, true)\r\n }\r\n },\r\n _onePageSelectAll: function(isDeselect) {\r\n var items = this._selectionStrategy.getSelectableItems(this.options.plainItems());\r\n for (var i = 0; i < items.length; i++) {\r\n var item = items[i];\r\n if (this.isDataItem(item)) {\r\n var itemData = this.options.getItemData(item);\r\n var itemKey = this.options.keyOf(itemData);\r\n var isSelected = this.isItemSelected(itemKey);\r\n if (!isSelected && !isDeselect) {\r\n this._addSelectedItem(itemData, itemKey)\r\n }\r\n if (isSelected && isDeselect) {\r\n this._removeSelectedItem(itemKey)\r\n }\r\n }\r\n }\r\n this.onSelectionChanged();\r\n return (new Deferred).resolve()\r\n },\r\n getSelectAllState: function(visibleOnly) {\r\n return this._selectionStrategy.getSelectAllState(visibleOnly)\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/shared/accessibility.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar FOCUS_STATE_CLASS = \"dx-state-focused\";\r\nvar FOCUS_DISABLED_CLASS = \"dx-cell-focus-disabled\";\r\nvar FOCUSED_ROW_SELECTOR = \".dx-row-focused\";\r\nvar GRID_ROW_SELECTOR = \".dx-datagrid-rowsview .dx-row\";\r\nvar GRID_CELL_SELECTOR = \"\".concat(GRID_ROW_SELECTOR, \" > td\");\r\nvar TREELIST_ROW_SELECTOR = \".dx-treelist-rowsview .dx-row\";\r\nvar TREELIST_CELL_SELECTOR = \"\".concat(TREELIST_ROW_SELECTOR, \" > td\");\r\nvar viewItemSelectorMap = {\r\n groupPanel: [\".dx-datagrid-group-panel .dx-group-panel-item[tabindex]\"],\r\n columnHeaders: [\".dx-datagrid-headers .dx-header-row > td.dx-datagrid-action\", \".dx-treelist-headers .dx-header-row > td.dx-treelist-action\"],\r\n filterRow: [\".dx-datagrid-headers .dx-datagrid-filter-row .dx-editor-cell .dx-texteditor-input\", \".dx-treelist-headers .dx-treelist-filter-row .dx-editor-cell .dx-texteditor-input\"],\r\n rowsView: [\"\".concat(FOCUSED_ROW_SELECTOR), \"\".concat(GRID_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(GRID_CELL_SELECTOR), \"\".concat(TREELIST_ROW_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR, \"[tabindex]\"), \"\".concat(TREELIST_CELL_SELECTOR)],\r\n footer: [\".dx-datagrid-total-footer .dx-datagrid-summary-item\", \".dx-treelist-total-footer .dx-treelist-summary-item\"],\r\n filterPanel: [\".dx-datagrid-filter-panel .dx-icon-filter\", \".dx-treelist-filter-panel .dx-icon-filter\"],\r\n pager: [\".dx-datagrid-pager [tabindex]\", \".dx-treelist-pager [tabindex]\"]\r\n};\r\nvar isMouseDown = false;\r\nvar isHiddenFocusing = false;\r\nvar focusedElementInfo = null;\r\n\r\nfunction processKeyDown(viewName, instance, event, action, $mainElement, executeKeyDown) {\r\n var isHandled = fireKeyDownEvent(instance, event.originalEvent, executeKeyDown);\r\n if (isHandled) {\r\n return\r\n }\r\n var keyName = normalizeKeyName(event);\r\n if (\"enter\" === keyName || \"space\" === keyName) {\r\n saveFocusedElementInfo(event.target, instance);\r\n action && action({\r\n event: event\r\n })\r\n } else if (\"tab\" === keyName) {\r\n $mainElement.addClass(FOCUS_STATE_CLASS)\r\n } else {\r\n selectView(viewName, instance, event)\r\n }\r\n}\r\n\r\nfunction saveFocusedElementInfo(target, instance) {\r\n var $target = $(target);\r\n var ariaLabel = $target.attr(\"aria-label\");\r\n var $activeElements = getActiveAccessibleElements(ariaLabel, instance.element());\r\n var targetIndex = $activeElements.index($target);\r\n focusedElementInfo = extend({}, {\r\n ariaLabel: ariaLabel,\r\n index: targetIndex\r\n }, {\r\n viewInstance: instance\r\n })\r\n}\r\n\r\nfunction getActiveAccessibleElements(ariaLabel, viewElement) {\r\n var $viewElement = $(viewElement);\r\n var $activeElements;\r\n if (ariaLabel) {\r\n $activeElements = $viewElement.find('[aria-label=\"'.concat(ariaLabel, '\"][tabindex]'))\r\n } else {\r\n $activeElements = $viewElement.find(\"[tabindex]\")\r\n }\r\n return $activeElements\r\n}\r\n\r\nfunction findFocusedViewElement(viewSelectors, element) {\r\n var root = (null === element || void 0 === element ? void 0 : element.getRootNode()) || domAdapter.getDocument();\r\n for (var index in viewSelectors) {\r\n var selector = viewSelectors[index];\r\n var $focusViewElement = $(root).find(selector).first();\r\n if ($focusViewElement.length) {\r\n return $focusViewElement\r\n }\r\n }\r\n}\r\n\r\nfunction fireKeyDownEvent(instance, event, executeAction) {\r\n var args = {\r\n event: event,\r\n handled: false\r\n };\r\n if (executeAction) {\r\n executeAction(args)\r\n } else {\r\n instance._createActionByOption(\"onKeyDown\")(args)\r\n }\r\n return args.handled\r\n}\r\n\r\nfunction onDocumentVisibilityChange() {\r\n isHiddenFocusing = \"visible\" === domAdapter.getDocument().visibilityState\r\n}\r\nexport function subscribeVisibilityChange() {\r\n eventsEngine.on(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function unsubscribeVisibilityChange() {\r\n eventsEngine.off(domAdapter.getDocument(), \"visibilitychange\", onDocumentVisibilityChange)\r\n}\r\nexport function hiddenFocus(element) {\r\n isHiddenFocusing = true;\r\n element.focus();\r\n isHiddenFocusing = false\r\n}\r\nexport function registerKeyboardAction(viewName, instance, $element, selector, action, executeKeyDown) {\r\n if (instance.option(\"useLegacyKeyboardNavigation\")) {\r\n return noop\r\n }\r\n var getMainElement = () => $(instance.element());\r\n var keyDownHandler = e => processKeyDown(viewName, instance, e, action, getMainElement(), executeKeyDown);\r\n var mouseDownHandler = () => {\r\n isMouseDown = true;\r\n getMainElement().removeClass(FOCUS_STATE_CLASS)\r\n };\r\n var focusinHandler = () => {\r\n var needShowOverlay = !isMouseDown && !isHiddenFocusing;\r\n if (needShowOverlay) {\r\n getMainElement().addClass(FOCUS_STATE_CLASS)\r\n }\r\n isMouseDown = false\r\n };\r\n eventsEngine.on($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.on($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.on($element, \"focusin\", selector, focusinHandler);\r\n return () => {\r\n eventsEngine.off($element, \"keydown\", selector, keyDownHandler);\r\n eventsEngine.off($element, \"mousedown\", selector, mouseDownHandler);\r\n eventsEngine.off($element, \"focusin\", selector, focusinHandler)\r\n }\r\n}\r\nexport function restoreFocus(instance) {\r\n if (!instance.option(\"useLegacyKeyboardNavigation\") && focusedElementInfo) {\r\n var viewInstance = focusedElementInfo.viewInstance;\r\n if (viewInstance) {\r\n var $activeElements = getActiveAccessibleElements(focusedElementInfo.ariaLabel, viewInstance.element());\r\n var $targetElement = $activeElements.eq(focusedElementInfo.index);\r\n focusedElementInfo = null;\r\n eventsEngine.trigger($targetElement, \"focus\")\r\n }\r\n }\r\n}\r\nexport function selectView(viewName, instance, event) {\r\n var keyName = normalizeKeyName(event);\r\n if (event.ctrlKey && (\"upArrow\" === keyName || \"downArrow\" === keyName)) {\r\n var viewNames = Object.keys(viewItemSelectorMap);\r\n var viewItemIndex = viewNames.indexOf(viewName);\r\n while (viewItemIndex >= 0 && viewItemIndex < viewNames.length) {\r\n viewItemIndex = \"upArrow\" === keyName ? --viewItemIndex : ++viewItemIndex;\r\n var _viewName = viewNames[viewItemIndex];\r\n var viewSelectors = viewItemSelectorMap[_viewName];\r\n var $focusViewElement = findFocusedViewElement(viewSelectors, event.target);\r\n if ($focusViewElement && $focusViewElement.length) {\r\n $focusViewElement.attr(\"tabindex\", instance.option(\"tabindex\") || 0);\r\n eventsEngine.trigger($focusViewElement, \"focus\");\r\n $focusViewElement.removeClass(FOCUS_DISABLED_CLASS);\r\n break\r\n }\r\n }\r\n }\r\n}\r\nexport function setTabIndex(instance, $element) {\r\n if (!instance.option(\"useLegacyKeyboardnavigation\")) {\r\n $element.attr(\"tabindex\", instance.option(\"tabindex\") || 0)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/shared/filtering.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isDate,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n map\r\n} from \"../../core/utils/iterator\";\r\nvar DEFAULT_DATE_INTERVAL = [\"year\", \"month\", \"day\"];\r\nvar DEFAULT_DATETIME_INTERVAL = [\"year\", \"month\", \"day\", \"hour\", \"minute\"];\r\nvar isDateType = function(dataType) {\r\n return \"date\" === dataType || \"datetime\" === dataType\r\n};\r\nvar getGroupInterval = function(column) {\r\n var index;\r\n var result = [];\r\n var dateIntervals = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\"];\r\n var groupInterval = column.headerFilter && column.headerFilter.groupInterval;\r\n var interval = \"quarter\" === groupInterval ? \"month\" : groupInterval;\r\n if (isDateType(column.dataType) && null !== groupInterval) {\r\n result = \"datetime\" === column.dataType ? DEFAULT_DATETIME_INTERVAL : DEFAULT_DATE_INTERVAL;\r\n index = dateIntervals.indexOf(interval);\r\n if (index >= 0) {\r\n result = dateIntervals.slice(0, index);\r\n result.push(groupInterval);\r\n return result\r\n }\r\n return result\r\n } else if (isDefined(groupInterval)) {\r\n return Array.isArray(groupInterval) ? groupInterval : [groupInterval]\r\n }\r\n};\r\nexport default (function() {\r\n var getFilterSelector = function(column, target) {\r\n var selector = column.dataField || column.selector;\r\n if (\"search\" === target) {\r\n selector = column.displayField || column.calculateDisplayValue || selector\r\n }\r\n return selector\r\n };\r\n var getFilterExpressionByRange = function(filterValue, target) {\r\n var endFilterValue;\r\n var startFilterExpression;\r\n var endFilterExpression;\r\n var selector = getFilterSelector(this, target);\r\n if (Array.isArray(filterValue) && isDefined(filterValue[0]) && isDefined(filterValue[1])) {\r\n startFilterExpression = [selector, \">=\", filterValue[0]];\r\n endFilterExpression = [selector, \"<=\", filterValue[1]];\r\n if (isDateType(this.dataType) && (date = filterValue[1], date.getHours() + date.getMinutes() + date.getSeconds() + date.getMilliseconds() < 1)) {\r\n endFilterValue = new Date(filterValue[1].getTime());\r\n if (\"date\" === this.dataType) {\r\n endFilterValue.setDate(filterValue[1].getDate() + 1)\r\n }\r\n endFilterExpression = [selector, \"<\", endFilterValue]\r\n }\r\n return [startFilterExpression, \"and\", endFilterExpression]\r\n }\r\n var date\r\n };\r\n var getFilterExpressionForDate = function(filterValue, selectedFilterOperation, target) {\r\n var dateStart;\r\n var dateEnd;\r\n var dateInterval;\r\n var values = function(dateValue) {\r\n if (isDate(dateValue)) {\r\n return [dateValue.getFullYear(), dateValue.getMonth(), dateValue.getDate(), dateValue.getHours(), dateValue.getMinutes(), dateValue.getSeconds()]\r\n }\r\n return map((\"\" + dateValue).split(\"/\"), (function(value, index) {\r\n return 1 === index ? Number(value) - 1 : Number(value)\r\n }))\r\n }(filterValue);\r\n var selector = getFilterSelector(this, target);\r\n if (\"headerFilter\" === target) {\r\n dateInterval = getGroupInterval(this)[values.length - 1]\r\n } else if (\"datetime\" === this.dataType) {\r\n dateInterval = \"minute\"\r\n }\r\n switch (dateInterval) {\r\n case \"year\":\r\n dateStart = new Date(values[0], 0, 1);\r\n dateEnd = new Date(values[0] + 1, 0, 1);\r\n break;\r\n case \"month\":\r\n dateStart = new Date(values[0], values[1], 1);\r\n dateEnd = new Date(values[0], values[1] + 1, 1);\r\n break;\r\n case \"quarter\":\r\n dateStart = new Date(values[0], 3 * values[1], 1);\r\n dateEnd = new Date(values[0], 3 * values[1] + 3, 1);\r\n break;\r\n case \"hour\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3] + 1);\r\n break;\r\n case \"minute\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4] + 1);\r\n break;\r\n case \"second\":\r\n dateStart = new Date(values[0], values[1], values[2], values[3], values[4], values[5]);\r\n dateEnd = new Date(values[0], values[1], values[2], values[3], values[4], values[5] + 1);\r\n break;\r\n default:\r\n dateStart = new Date(values[0], values[1], values[2]);\r\n dateEnd = new Date(values[0], values[1], values[2] + 1)\r\n }\r\n switch (selectedFilterOperation) {\r\n case \"<\":\r\n return [selector, \"<\", dateStart];\r\n case \"<=\":\r\n return [selector, \"<\", dateEnd];\r\n case \">\":\r\n return [selector, \">=\", dateEnd];\r\n case \">=\":\r\n return [selector, \">=\", dateStart];\r\n case \"<>\":\r\n return [\r\n [selector, \"<\", dateStart], \"or\", [selector, \">=\", dateEnd]\r\n ];\r\n default:\r\n return [\r\n [selector, \">=\", dateStart], \"and\", [selector, \"<\", dateEnd]\r\n ]\r\n }\r\n };\r\n var getFilterExpressionForNumber = function(filterValue, selectedFilterOperation, target) {\r\n var selector = getFilterSelector(this, target);\r\n var groupInterval = getGroupInterval(this);\r\n if (\"headerFilter\" === target && groupInterval && isDefined(filterValue)) {\r\n var values = (\"\" + filterValue).split(\"/\");\r\n var value = Number(values[values.length - 1]);\r\n var interval = groupInterval[values.length - 1];\r\n var startFilterValue = [selector, \">=\", value];\r\n var endFilterValue = [selector, \"<\", value + interval];\r\n var condition = [startFilterValue, \"and\", endFilterValue];\r\n return condition\r\n }\r\n return [selector, selectedFilterOperation || \"=\", filterValue]\r\n };\r\n return {\r\n defaultCalculateFilterExpression: function(filterValue, selectedFilterOperation, target) {\r\n var column = this;\r\n var selector = getFilterSelector(column, target);\r\n var isSearchByDisplayValue = column.calculateDisplayValue && \"search\" === target;\r\n var dataType = isSearchByDisplayValue && column.lookup && column.lookup.dataType || column.dataType;\r\n var filter = null;\r\n if ((\"headerFilter\" === target || \"filterBuilder\" === target) && null === filterValue) {\r\n filter = [selector, selectedFilterOperation || \"=\", null];\r\n if (\"string\" === dataType) {\r\n filter = [filter, \"=\" === selectedFilterOperation ? \"or\" : \"and\", [selector, selectedFilterOperation || \"=\", \"\"]]\r\n }\r\n } else if (\"string\" === dataType && (!column.lookup || isSearchByDisplayValue)) {\r\n filter = [selector, selectedFilterOperation || \"contains\", filterValue]\r\n } else if (\"between\" === selectedFilterOperation) {\r\n return getFilterExpressionByRange.apply(column, [filterValue, target])\r\n } else if (isDateType(dataType) && isDefined(filterValue)) {\r\n return getFilterExpressionForDate.apply(column, arguments)\r\n } else if (\"number\" === dataType) {\r\n return getFilterExpressionForNumber.apply(column, arguments)\r\n } else {\r\n filter = [selector, selectedFilterOperation || \"=\", filterValue]\r\n }\r\n return filter\r\n },\r\n getGroupInterval: getGroupInterval\r\n }\r\n}());\r\n","/**\r\n * DevExtreme (esm/ui/shared/grouped_data_converter_mixin.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n isObject\r\n} from \"../../core/utils/type\";\r\nvar isCorrectStructure = data => Array.isArray(data) && data.every(item => {\r\n var hasTwoFields = 2 === Object.keys(item).length;\r\n var hasCorrectFields = \"key\" in item && \"items\" in item;\r\n return hasTwoFields && hasCorrectFields && Array.isArray(item.items)\r\n});\r\nexport default {\r\n _getSpecificDataSourceOption: function() {\r\n var dataSource = this.option(\"dataSource\");\r\n var hasSimpleItems = false;\r\n var data = {};\r\n if (this._getGroupedOption() && isCorrectStructure(dataSource)) {\r\n data = dataSource.reduce((accumulator, item) => {\r\n var items = item.items.map(innerItem => {\r\n if (!isObject(innerItem)) {\r\n innerItem = {\r\n text: innerItem\r\n };\r\n hasSimpleItems = true\r\n }\r\n if (!(\"key\" in innerItem)) {\r\n innerItem.key = item.key\r\n }\r\n return innerItem\r\n });\r\n return accumulator.concat(items)\r\n }, []);\r\n dataSource = {\r\n store: {\r\n type: \"array\",\r\n data: data\r\n },\r\n group: {\r\n selector: \"key\",\r\n keepInitialKeyOrder: true\r\n }\r\n };\r\n if (hasSimpleItems) {\r\n dataSource.searchExpr = \"text\"\r\n }\r\n }\r\n return dataSource\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/shared/ui.editor_factory_mixin.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n isDefined,\r\n isObject,\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport variableWrapper from \"../../core/utils/variable_wrapper\";\r\nimport {\r\n compileGetter\r\n} from \"../../core/utils/data\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport {\r\n normalizeDataSourceOptions\r\n} from \"../../data/data_source/utils\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nvar {\r\n isWrapped: isWrapped\r\n} = variableWrapper;\r\nimport \"../text_box\";\r\nimport \"../number_box\";\r\nimport \"../check_box\";\r\nimport \"../select_box\";\r\nimport \"../date_box\";\r\nvar CHECKBOX_SIZE_CLASS = \"checkbox-size\";\r\nvar EDITOR_INLINE_BLOCK = \"dx-editor-inline-block\";\r\nvar EditorFactoryMixin = function() {\r\n var getResultConfig = function(config, options) {\r\n return extend(config, {\r\n readOnly: options.readOnly,\r\n placeholder: options.placeholder,\r\n inputAttr: {\r\n id: options.id\r\n },\r\n tabIndex: options.tabIndex\r\n }, options.editorOptions)\r\n };\r\n var checkEnterBug = function() {\r\n return browser.mozilla || devices.real().ios\r\n };\r\n var getTextEditorConfig = function(options) {\r\n var data = {};\r\n var isEnterBug = checkEnterBug();\r\n var sharedData = options.sharedData || data;\r\n return getResultConfig({\r\n placeholder: options.placeholder,\r\n width: options.width,\r\n value: options.value,\r\n onValueChanged: function(e) {\r\n var needDelayedUpdate = \"filterRow\" === options.parentType || \"searchPanel\" === options.parentType;\r\n var isInputOrKeyUpEvent = e.event && (\"input\" === e.event.type || \"keyup\" === e.event.type);\r\n var updateValue = function(e, notFireEvent) {\r\n options && options.setValue(e.value, notFireEvent)\r\n };\r\n clearTimeout(data.valueChangeTimeout);\r\n if (isInputOrKeyUpEvent && needDelayedUpdate) {\r\n sharedData.valueChangeTimeout = data.valueChangeTimeout = setTimeout((function() {\r\n updateValue(e, data.valueChangeTimeout !== sharedData.valueChangeTimeout)\r\n }), isDefined(options.updateValueTimeout) ? options.updateValueTimeout : 0)\r\n } else {\r\n updateValue(e)\r\n }\r\n },\r\n onKeyDown: function(e) {\r\n if (isEnterBug && \"enter\" === normalizeKeyName(e.event)) {\r\n eventsEngine.trigger($(e.component._input()), \"change\")\r\n }\r\n },\r\n valueChangeEvent: \"change\" + (\"filterRow\" === options.parentType ? \" keyup input\" : \"\")\r\n }, options)\r\n };\r\n var prepareBooleanEditor = function(options) {\r\n if (\"filterRow\" === options.parentType || \"filterBuilder\" === options.parentType) {\r\n prepareSelectBox(extend(options, {\r\n lookup: {\r\n displayExpr: function(data) {\r\n if (true === data) {\r\n return options.trueText || \"true\"\r\n } else if (false === data) {\r\n return options.falseText || \"false\"\r\n }\r\n },\r\n dataSource: [true, false]\r\n }\r\n }))\r\n } else {\r\n ! function(options) {\r\n options.editorName = \"dxCheckBox\";\r\n options.editorOptions = getResultConfig({\r\n elementAttr: {\r\n id: options.id\r\n },\r\n value: isDefined(options.value) ? options.value : void 0,\r\n hoverStateEnabled: !options.readOnly,\r\n focusStateEnabled: !options.readOnly,\r\n activeStateEnabled: false,\r\n onValueChanged: function(e) {\r\n options.setValue && options.setValue(e.value, e)\r\n }\r\n }, options)\r\n }(options)\r\n }\r\n };\r\n\r\n function prepareSelectBox(options) {\r\n var lookup = options.lookup;\r\n var displayGetter;\r\n var dataSource;\r\n var postProcess;\r\n var isFilterRow = \"filterRow\" === options.parentType;\r\n if (lookup) {\r\n displayGetter = compileGetter(lookup.displayExpr);\r\n dataSource = lookup.dataSource;\r\n if (isFunction(dataSource) && !isWrapped(dataSource)) {\r\n dataSource = dataSource(options.row || {});\r\n ! function(options) {\r\n if (options.row && options.row.watch && \"dataRow\" === options.parentType) {\r\n var editorOptions = options.editorOptions || {};\r\n options.editorOptions = editorOptions;\r\n var selectBox;\r\n var onInitialized = editorOptions.onInitialized;\r\n editorOptions.onInitialized = function(e) {\r\n onInitialized && onInitialized.apply(this, arguments);\r\n selectBox = e.component;\r\n selectBox.on(\"disposing\", stopWatch)\r\n };\r\n var dataSource;\r\n var stopWatch = options.row.watch(() => {\r\n dataSource = options.lookup.dataSource(options.row);\r\n return dataSource && dataSource.filter\r\n }, () => {\r\n selectBox.option(\"dataSource\", dataSource)\r\n }, row => {\r\n options.row = row\r\n })\r\n }\r\n }(options)\r\n }\r\n if (isObject(dataSource) || Array.isArray(dataSource)) {\r\n dataSource = normalizeDataSourceOptions(dataSource);\r\n if (isFilterRow) {\r\n postProcess = dataSource.postProcess;\r\n dataSource.postProcess = function(items) {\r\n if (0 === this.pageIndex()) {\r\n items = items.slice(0);\r\n items.unshift(null)\r\n }\r\n if (postProcess) {\r\n return postProcess.call(this, items)\r\n }\r\n return items\r\n }\r\n }\r\n }\r\n var allowClearing = Boolean(lookup.allowClearing && !isFilterRow);\r\n options.editorName = \"dxSelectBox\";\r\n options.editorOptions = getResultConfig({\r\n searchEnabled: true,\r\n value: options.value,\r\n valueExpr: options.lookup.valueExpr,\r\n searchExpr: options.lookup.searchExpr || options.lookup.displayExpr,\r\n allowClearing: allowClearing,\r\n showClearButton: allowClearing,\r\n displayExpr: function(data) {\r\n if (null === data) {\r\n return options.showAllText\r\n }\r\n return displayGetter(data)\r\n },\r\n dataSource: dataSource,\r\n onValueChanged: function(e) {\r\n var params = [e.value];\r\n !isFilterRow && params.push(e.component.option(\"text\"));\r\n options.setValue.apply(this, params)\r\n }\r\n }, options)\r\n }\r\n }\r\n return {\r\n createEditor: function($container, options) {\r\n options.cancel = false;\r\n options.editorElement = getPublicElement($container);\r\n if (!isDefined(options.tabIndex)) {\r\n options.tabIndex = this.option(\"tabIndex\")\r\n }\r\n if (options.lookup) {\r\n prepareSelectBox(options)\r\n } else {\r\n switch (options.dataType) {\r\n case \"date\":\r\n case \"datetime\":\r\n ! function(options) {\r\n options.editorName = \"dxDateBox\";\r\n options.editorOptions = getResultConfig({\r\n value: options.value,\r\n onValueChanged: function(args) {\r\n options.setValue(args.value)\r\n },\r\n onKeyDown: function(_ref) {\r\n var {\r\n component: component,\r\n event: event\r\n } = _ref;\r\n var useMaskBehavior = component.option(\"useMaskBehavior\");\r\n if ((checkEnterBug() || useMaskBehavior) && \"enter\" === normalizeKeyName(event)) {\r\n component.blur();\r\n component.focus()\r\n }\r\n },\r\n displayFormat: options.format,\r\n type: options.dataType,\r\n dateSerializationFormat: null,\r\n width: \"filterBuilder\" === options.parentType ? void 0 : \"auto\"\r\n }, options)\r\n }(options);\r\n break;\r\n case \"boolean\":\r\n prepareBooleanEditor(options);\r\n break;\r\n case \"number\":\r\n ! function(options) {\r\n var config = getTextEditorConfig(options);\r\n config.value = isDefined(options.value) ? options.value : null;\r\n options.editorName = \"dxNumberBox\";\r\n options.editorOptions = config\r\n }(options);\r\n break;\r\n default:\r\n ! function(options) {\r\n var config = getTextEditorConfig(options);\r\n var isSearching = \"searchPanel\" === options.parentType;\r\n if (options.editorType && \"dxTextBox\" !== options.editorType) {\r\n config.value = options.value\r\n } else {\r\n config.value = (value = options.value, isDefined(value) ? value.toString() : \"\")\r\n }\r\n var value;\r\n config.valueChangeEvent += isSearching ? \" keyup input search\" : \"\";\r\n config.mode = config.mode || (isSearching ? \"search\" : \"text\");\r\n options.editorName = \"dxTextBox\";\r\n options.editorOptions = config\r\n }(options)\r\n }\r\n }\r\n if (\"dataRow\" === options.parentType && options.editorType) {\r\n options.editorName = options.editorType\r\n }\r\n this.executeAction(\"onEditorPreparing\", options);\r\n if (options.cancel) {\r\n return\r\n }\r\n if (\"dataRow\" === options.parentType && !options.isOnForm && !isDefined(options.editorOptions.showValidationMark)) {\r\n options.editorOptions.showValidationMark = false\r\n }! function(that, options) {\r\n var $editorElement = $(options.editorElement);\r\n if (options.editorName && options.editorOptions && $editorElement[options.editorName]) {\r\n if (\"dxCheckBox\" === options.editorName || \"dxSwitch\" === options.editorName) {\r\n if (!options.isOnForm) {\r\n $editorElement.addClass(that.addWidgetPrefix(CHECKBOX_SIZE_CLASS));\r\n $editorElement.parent().addClass(EDITOR_INLINE_BLOCK)\r\n }\r\n }\r\n that._createComponent($editorElement, options.editorName, options.editorOptions);\r\n if (\"dxDateBox\" === options.editorName) {\r\n var dateBox = $editorElement.dxDateBox(\"instance\");\r\n var defaultEnterKeyHandler = dateBox._supportedKeys().enter;\r\n dateBox.registerKeyHandler(\"enter\", e => {\r\n if (dateBox.option(\"opened\")) {\r\n defaultEnterKeyHandler(e)\r\n }\r\n return true\r\n })\r\n }\r\n if (\"dxTextArea\" === options.editorName) {\r\n $editorElement.dxTextArea(\"instance\").registerKeyHandler(\"enter\", (function(event) {\r\n if (\"enter\" === normalizeKeyName(event) && !event.ctrlKey && !event.shiftKey) {\r\n event.stopPropagation()\r\n }\r\n }))\r\n }\r\n }\r\n }(this, options);\r\n this.executeAction(\"onEditorPrepared\", options)\r\n }\r\n }\r\n}();\r\nexport default EditorFactoryMixin;\r\n","/**\r\n * DevExtreme (esm/ui/draggable.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getWidth,\r\n getHeight,\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n quadToObject\r\n} from \"../core/utils/string\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n locate,\r\n move\r\n} from \"../animation/translator\";\r\nimport Animator from \"./scroll_view/animator\";\r\nimport {\r\n dasherize\r\n} from \"../core/utils/inflector\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n addNamespace,\r\n needSkipEvent\r\n} from \"../events/utils/index\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n start as dragEventStart,\r\n move as dragEventMove,\r\n end as dragEventEnd,\r\n enter as dragEventEnter,\r\n leave as dragEventLeave\r\n} from \"../events/drag\";\r\nimport positionUtils from \"../animation/position\";\r\nimport {\r\n isFunction,\r\n isObject\r\n} from \"../core/utils/type\";\r\nimport {\r\n noop,\r\n splitPair\r\n} from \"../core/utils/common\";\r\nimport {\r\n value as viewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n EmptyTemplate\r\n} from \"../core/templates/empty_template\";\r\nimport {\r\n when,\r\n fromPromise,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar window = getWindow();\r\nvar DRAGGABLE = \"dxDraggable\";\r\nvar DRAGSTART_EVENT_NAME = addNamespace(dragEventStart, DRAGGABLE);\r\nvar DRAG_EVENT_NAME = addNamespace(dragEventMove, DRAGGABLE);\r\nvar DRAGEND_EVENT_NAME = addNamespace(dragEventEnd, DRAGGABLE);\r\nvar DRAG_ENTER_EVENT_NAME = addNamespace(dragEventEnter, DRAGGABLE);\r\nvar DRAGEND_LEAVE_EVENT_NAME = addNamespace(dragEventLeave, DRAGGABLE);\r\nvar POINTERDOWN_EVENT_NAME = addNamespace(pointerEvents.down, DRAGGABLE);\r\nvar CLONE_CLASS = \"clone\";\r\nvar targetDraggable;\r\nvar sourceDraggable;\r\nvar ANONYMOUS_TEMPLATE_NAME = \"content\";\r\nvar getMousePosition = event => ({\r\n x: event.pageX - $(window).scrollLeft(),\r\n y: event.pageY - $(window).scrollTop()\r\n});\r\nvar GESTURE_COVER_CLASS = \"dx-gesture-cover\";\r\nvar OVERLAY_WRAPPER_CLASS = \"dx-overlay-wrapper\";\r\nvar OVERLAY_CONTENT_CLASS = \"dx-overlay-content\";\r\nclass ScrollHelper {\r\n constructor(orientation, component) {\r\n this._preventScroll = true;\r\n this._component = component;\r\n if (\"vertical\" === orientation) {\r\n this._scrollValue = \"scrollTop\";\r\n this._overFlowAttr = \"overflowY\";\r\n this._sizeAttr = \"height\";\r\n this._scrollSizeProp = \"scrollHeight\";\r\n this._clientSizeProp = \"clientHeight\";\r\n this._limitProps = {\r\n start: \"top\",\r\n end: \"bottom\"\r\n }\r\n } else {\r\n this._scrollValue = \"scrollLeft\";\r\n this._overFlowAttr = \"overflowX\";\r\n this._sizeAttr = \"width\";\r\n this._scrollSizeProp = \"scrollWidth\";\r\n this._clientSizeProp = \"clientWidth\";\r\n this._limitProps = {\r\n start: \"left\",\r\n end: \"right\"\r\n }\r\n }\r\n }\r\n updateScrollable(elements, mousePosition) {\r\n var isScrollableFound = false;\r\n elements.some(element => {\r\n var $element = $(element);\r\n var isTargetOverOverlayWrapper = $element.hasClass(OVERLAY_WRAPPER_CLASS);\r\n var isTargetOverOverlayContent = $element.hasClass(OVERLAY_CONTENT_CLASS);\r\n if (isTargetOverOverlayWrapper || isTargetOverOverlayContent) {\r\n return true\r\n }\r\n isScrollableFound = this._trySetScrollable(element, mousePosition);\r\n return isScrollableFound\r\n });\r\n if (!isScrollableFound) {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0\r\n }\r\n }\r\n isScrolling() {\r\n return !!this._scrollSpeed\r\n }\r\n isScrollable($element) {\r\n return (\"auto\" === $element.css(this._overFlowAttr) || $element.hasClass(\"dx-scrollable-container\")) && $element.prop(this._scrollSizeProp) > Math.ceil(\"width\" === this._sizeAttr ? getWidth($element) : getHeight($element))\r\n }\r\n _trySetScrollable(element, mousePosition) {\r\n var $element = $(element);\r\n var distanceToBorders;\r\n var sensitivity = this._component.option(\"scrollSensitivity\");\r\n var isScrollable = this.isScrollable($element);\r\n if (isScrollable) {\r\n distanceToBorders = this._calculateDistanceToBorders($element, mousePosition);\r\n if (sensitivity > distanceToBorders[this._limitProps.start]) {\r\n if (!this._preventScroll) {\r\n this._scrollSpeed = -this._calculateScrollSpeed(distanceToBorders[this._limitProps.start]);\r\n this._$scrollableAtPointer = $element\r\n }\r\n } else if (sensitivity > distanceToBorders[this._limitProps.end]) {\r\n if (!this._preventScroll) {\r\n this._scrollSpeed = this._calculateScrollSpeed(distanceToBorders[this._limitProps.end]);\r\n this._$scrollableAtPointer = $element\r\n }\r\n } else {\r\n isScrollable = false;\r\n this._preventScroll = false\r\n }\r\n }\r\n return isScrollable\r\n }\r\n _calculateDistanceToBorders($area, mousePosition) {\r\n var area = $area.get(0);\r\n var areaBoundingRect;\r\n if (area) {\r\n areaBoundingRect = getBoundingRect(area);\r\n return {\r\n left: mousePosition.x - areaBoundingRect.left,\r\n top: mousePosition.y - areaBoundingRect.top,\r\n right: areaBoundingRect.right - mousePosition.x,\r\n bottom: areaBoundingRect.bottom - mousePosition.y\r\n }\r\n } else {\r\n return {}\r\n }\r\n }\r\n _calculateScrollSpeed(distance) {\r\n var component = this._component;\r\n var sensitivity = component.option(\"scrollSensitivity\");\r\n var maxSpeed = component.option(\"scrollSpeed\");\r\n return Math.ceil(Math.pow((sensitivity - distance) / sensitivity, 2) * maxSpeed)\r\n }\r\n scrollByStep() {\r\n if (this._$scrollableAtPointer && this._scrollSpeed) {\r\n if (this._$scrollableAtPointer.hasClass(\"dx-scrollable-container\")) {\r\n var $scrollable = this._$scrollableAtPointer.closest(\".dx-scrollable\");\r\n var scrollableInstance = $scrollable.data(\"dxScrollable\") || $scrollable.data(\"dxScrollView\");\r\n if (scrollableInstance) {\r\n var nextScrollPosition = scrollableInstance.scrollOffset()[this._limitProps.start] + this._scrollSpeed;\r\n scrollableInstance.scrollTo({\r\n [this._limitProps.start]: nextScrollPosition\r\n })\r\n }\r\n } else {\r\n var _nextScrollPosition = this._$scrollableAtPointer[this._scrollValue]() + this._scrollSpeed;\r\n this._$scrollableAtPointer[this._scrollValue](_nextScrollPosition)\r\n }\r\n var dragMoveArgs = this._component._dragMoveArgs;\r\n if (dragMoveArgs) {\r\n this._component._dragMoveHandler(dragMoveArgs)\r\n }\r\n }\r\n }\r\n reset() {\r\n this._$scrollableAtPointer = null;\r\n this._scrollSpeed = 0;\r\n this._preventScroll = true\r\n }\r\n isOutsideScrollable($scrollable, event) {\r\n if (!$scrollable) {\r\n return false\r\n }\r\n var scrollableSize = getBoundingRect($scrollable.get(0));\r\n var start = scrollableSize[this._limitProps.start];\r\n var size = scrollableSize[this._sizeAttr];\r\n var mousePosition = getMousePosition(event);\r\n var location = \"width\" === this._sizeAttr ? mousePosition.x : mousePosition.y;\r\n return location < start || location > start + size\r\n }\r\n}\r\nvar ScrollAnimator = Animator.inherit({\r\n ctor: function(strategy) {\r\n this.callBase();\r\n this._strategy = strategy\r\n },\r\n _step: function() {\r\n var horizontalScrollHelper = this._strategy._horizontalScrollHelper;\r\n var verticalScrollHelper = this._strategy._verticalScrollHelper;\r\n horizontalScrollHelper && horizontalScrollHelper.scrollByStep();\r\n verticalScrollHelper && verticalScrollHelper.scrollByStep()\r\n }\r\n});\r\nvar Draggable = DOMComponent.inherit({\r\n reset: noop,\r\n dragMove: noop,\r\n dragEnter: noop,\r\n dragLeave: noop,\r\n dragEnd: function(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable._fireRemoveEvent(sourceEvent);\r\n return (new Deferred).resolve()\r\n },\r\n _fireRemoveEvent: noop,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n onDragStart: null,\r\n onDragMove: null,\r\n onDragEnd: null,\r\n onDragEnter: null,\r\n onDragLeave: null,\r\n onDrop: null,\r\n immediate: true,\r\n dragDirection: \"both\",\r\n boundary: void 0,\r\n boundOffset: 0,\r\n allowMoveByClick: false,\r\n itemData: null,\r\n container: void 0,\r\n dragTemplate: void 0,\r\n contentTemplate: \"content\",\r\n handle: \"\",\r\n filter: \"\",\r\n clone: false,\r\n autoScroll: true,\r\n scrollSpeed: 30,\r\n scrollSensitivity: 60,\r\n group: void 0,\r\n data: void 0\r\n })\r\n },\r\n _setOptionsByReference: function() {\r\n this.callBase.apply(this, arguments);\r\n extend(this._optionsByReference, {\r\n component: true,\r\n group: true,\r\n itemData: true,\r\n data: true\r\n })\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._attachEventHandlers();\r\n this._scrollAnimator = new ScrollAnimator(this);\r\n this._horizontalScrollHelper = new ScrollHelper(\"horizontal\", this);\r\n this._verticalScrollHelper = new ScrollHelper(\"vertical\", this)\r\n },\r\n _normalizeCursorOffset: function(offset) {\r\n if (isObject(offset)) {\r\n offset = {\r\n h: offset.x,\r\n v: offset.y\r\n }\r\n }\r\n offset = splitPair(offset).map(value => parseFloat(value));\r\n return {\r\n left: offset[0],\r\n top: 1 === offset.length ? offset[0] : offset[1]\r\n }\r\n },\r\n _getNormalizedCursorOffset: function(offset, options) {\r\n if (isFunction(offset)) {\r\n offset = offset.call(this, options)\r\n }\r\n return this._normalizeCursorOffset(offset)\r\n },\r\n _calculateElementOffset: function(options) {\r\n var elementOffset;\r\n var dragElementOffset;\r\n var event = options.event;\r\n var $element = $(options.itemElement);\r\n var $dragElement = $(options.dragElement);\r\n var isCloned = this._dragElementIsCloned();\r\n var cursorOffset = this.option(\"cursorOffset\");\r\n var normalizedCursorOffset = {\r\n left: 0,\r\n top: 0\r\n };\r\n var currentLocate = this._initialLocate = locate($dragElement);\r\n if (isCloned || options.initialOffset || cursorOffset) {\r\n elementOffset = options.initialOffset || $element.offset();\r\n if (cursorOffset) {\r\n normalizedCursorOffset = this._getNormalizedCursorOffset(cursorOffset, options);\r\n if (isFinite(normalizedCursorOffset.left)) {\r\n elementOffset.left = event.pageX\r\n }\r\n if (isFinite(normalizedCursorOffset.top)) {\r\n elementOffset.top = event.pageY\r\n }\r\n }\r\n dragElementOffset = $dragElement.offset();\r\n elementOffset.top -= dragElementOffset.top + (normalizedCursorOffset.top || 0) - currentLocate.top;\r\n elementOffset.left -= dragElementOffset.left + (normalizedCursorOffset.left || 0) - currentLocate.left\r\n }\r\n return elementOffset\r\n },\r\n _initPosition: function(options) {\r\n var $dragElement = $(options.dragElement);\r\n var elementOffset = this._calculateElementOffset(options);\r\n if (elementOffset) {\r\n this._move(elementOffset, $dragElement)\r\n }\r\n this._startPosition = locate($dragElement)\r\n },\r\n _startAnimator: function() {\r\n if (!this._scrollAnimator.inProgress()) {\r\n this._scrollAnimator.start()\r\n }\r\n },\r\n _stopAnimator: function() {\r\n this._scrollAnimator.stop()\r\n },\r\n _addWidgetPrefix: function(className) {\r\n var componentName = this.NAME;\r\n return dasherize(componentName) + (className ? \"-\" + className : \"\")\r\n },\r\n _getItemsSelector: function() {\r\n return this.option(\"filter\") || \"\"\r\n },\r\n _$content: function() {\r\n var $element = this.$element();\r\n var $wrapper = $element.children(\".dx-template-wrapper\");\r\n return $wrapper.length ? $wrapper : $element\r\n },\r\n _attachEventHandlers: function() {\r\n if (this.option(\"disabled\")) {\r\n return\r\n }\r\n var $element = this._$content();\r\n var itemsSelector = this._getItemsSelector();\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n var data = {\r\n direction: this.option(\"dragDirection\"),\r\n immediate: this.option(\"immediate\"),\r\n checkDropTarget: ($target, event) => {\r\n var targetGroup = this.option(\"group\");\r\n var sourceGroup = this._getSourceDraggable().option(\"group\");\r\n var $scrollable = this._getScrollable($target);\r\n if (this._verticalScrollHelper.isOutsideScrollable($scrollable, event) || this._horizontalScrollHelper.isOutsideScrollable($scrollable, event)) {\r\n return false\r\n }\r\n return sourceGroup && sourceGroup === targetGroup\r\n }\r\n };\r\n if (allowMoveByClick) {\r\n $element = this._getArea();\r\n eventsEngine.on($element, POINTERDOWN_EVENT_NAME, data, this._pointerDownHandler.bind(this))\r\n }\r\n if (\">\" === itemsSelector[0]) {\r\n itemsSelector = itemsSelector.slice(1)\r\n }\r\n eventsEngine.on($element, DRAGSTART_EVENT_NAME, itemsSelector, data, this._dragStartHandler.bind(this));\r\n eventsEngine.on($element, DRAG_EVENT_NAME, data, this._dragMoveHandler.bind(this));\r\n eventsEngine.on($element, DRAGEND_EVENT_NAME, data, this._dragEndHandler.bind(this));\r\n eventsEngine.on($element, DRAG_ENTER_EVENT_NAME, data, this._dragEnterHandler.bind(this));\r\n eventsEngine.on($element, DRAGEND_LEAVE_EVENT_NAME, data, this._dragLeaveHandler.bind(this))\r\n },\r\n _dragElementIsCloned: function() {\r\n return this._$dragElement && this._$dragElement.hasClass(this._addWidgetPrefix(CLONE_CLASS))\r\n },\r\n _getDragTemplateArgs: function($element, $container) {\r\n return {\r\n container: getPublicElement($container),\r\n model: {\r\n itemData: this.option(\"itemData\"),\r\n itemElement: getPublicElement($element)\r\n }\r\n }\r\n },\r\n _createDragElement: function($element) {\r\n var result = $element;\r\n var clone = this.option(\"clone\");\r\n var $container = this._getContainer();\r\n var template = this.option(\"dragTemplate\");\r\n if (template) {\r\n template = this._getTemplate(template);\r\n result = $(\"<div>\").appendTo($container);\r\n template.render(this._getDragTemplateArgs($element, result))\r\n } else if (clone) {\r\n result = $(\"<div>\").appendTo($container);\r\n $element.clone().css({\r\n width: $element.css(\"width\"),\r\n height: $element.css(\"height\")\r\n }).appendTo(result)\r\n }\r\n return result.toggleClass(this._addWidgetPrefix(CLONE_CLASS), result.get(0) !== $element.get(0)).toggleClass(\"dx-rtl\", this.option(\"rtlEnabled\"))\r\n },\r\n _resetDragElement: function() {\r\n if (this._dragElementIsCloned()) {\r\n this._$dragElement.remove()\r\n } else {\r\n this._toggleDraggingClass(false)\r\n }\r\n this._$dragElement = null\r\n },\r\n _resetSourceElement: function() {\r\n this._toggleDragSourceClass(false);\r\n this._$sourceElement = null\r\n },\r\n _detachEventHandlers: function() {\r\n eventsEngine.off(this._$content(), \".\" + DRAGGABLE);\r\n eventsEngine.off(this._getArea(), \".\" + DRAGGABLE)\r\n },\r\n _move: function(position, $element) {\r\n move($element || this._$dragElement, position)\r\n },\r\n _getDraggableElement: function(e) {\r\n var $sourceElement = this._getSourceElement();\r\n if ($sourceElement) {\r\n return $sourceElement\r\n }\r\n var allowMoveByClick = this.option(\"allowMoveByClick\");\r\n if (allowMoveByClick) {\r\n return this.$element()\r\n }\r\n var $target = $(e && e.target);\r\n var itemsSelector = this._getItemsSelector();\r\n if (\">\" === itemsSelector[0]) {\r\n var $items = this._$content().find(itemsSelector);\r\n if (!$items.is($target)) {\r\n $target = $target.closest($items)\r\n }\r\n }\r\n return $target\r\n },\r\n _getSourceElement: function() {\r\n var draggable = this._getSourceDraggable();\r\n return draggable._$sourceElement\r\n },\r\n _pointerDownHandler: function(e) {\r\n if (needSkipEvent(e)) {\r\n return\r\n }\r\n var position = {};\r\n var $element = this.$element();\r\n var dragDirection = this.option(\"dragDirection\");\r\n if (\"horizontal\" === dragDirection || \"both\" === dragDirection) {\r\n position.left = e.pageX - $element.offset().left + locate($element).left - getWidth($element) / 2\r\n }\r\n if (\"vertical\" === dragDirection || \"both\" === dragDirection) {\r\n position.top = e.pageY - $element.offset().top + locate($element).top - getHeight($element) / 2\r\n }\r\n this._move(position, $element);\r\n this._getAction(\"onDragMove\")(this._getEventArgs(e))\r\n },\r\n _isValidElement: function(event, $element) {\r\n var handle = this.option(\"handle\");\r\n var $target = $(event.originalEvent && event.originalEvent.target);\r\n if (handle && !$target.closest(handle).length) {\r\n return false\r\n }\r\n if (!$element.length) {\r\n return false\r\n }\r\n return !$element.is(\".dx-state-disabled, .dx-state-disabled *\")\r\n },\r\n _dragStartHandler: function(e) {\r\n var $element = this._getDraggableElement(e);\r\n if (!this._isValidElement(e, $element)) {\r\n e.cancel = true;\r\n return\r\n }\r\n if (this._$sourceElement) {\r\n return\r\n }\r\n var dragStartArgs = this._getDragStartArgs(e, $element);\r\n this._getAction(\"onDragStart\")(dragStartArgs);\r\n if (dragStartArgs.cancel) {\r\n e.cancel = true;\r\n return\r\n }\r\n this.option(\"itemData\", dragStartArgs.itemData);\r\n this._setSourceDraggable();\r\n this._$sourceElement = $element;\r\n var initialOffset = $element.offset();\r\n var $dragElement = this._$dragElement = this._createDragElement($element);\r\n this._toggleDraggingClass(true);\r\n this._toggleDragSourceClass(true);\r\n this._setGestureCoverCursor($dragElement.children());\r\n var isFixedPosition = \"fixed\" === $dragElement.css(\"position\");\r\n this._initPosition(extend({}, dragStartArgs, {\r\n dragElement: $dragElement.get(0),\r\n initialOffset: isFixedPosition && initialOffset\r\n }));\r\n this._getAction(\"onDraggableElementShown\")(_extends({}, dragStartArgs, {\r\n dragElement: $dragElement\r\n }));\r\n var $area = this._getArea();\r\n var areaOffset = this._getAreaOffset($area);\r\n var boundOffset = this._getBoundOffset();\r\n var areaWidth = getOuterWidth($area);\r\n var areaHeight = getOuterHeight($area);\r\n var elementWidth = getWidth($dragElement);\r\n var elementHeight = getHeight($dragElement);\r\n var startOffset_left = $dragElement.offset().left - areaOffset.left,\r\n startOffset_top = $dragElement.offset().top - areaOffset.top;\r\n if ($area.length) {\r\n e.maxLeftOffset = startOffset_left - boundOffset.left;\r\n e.maxRightOffset = areaWidth - startOffset_left - elementWidth - boundOffset.right;\r\n e.maxTopOffset = startOffset_top - boundOffset.top;\r\n e.maxBottomOffset = areaHeight - startOffset_top - elementHeight - boundOffset.bottom\r\n }\r\n if (this.option(\"autoScroll\")) {\r\n this._startAnimator()\r\n }\r\n },\r\n _getAreaOffset: function($area) {\r\n var offset = $area && positionUtils.offset($area);\r\n return offset ? offset : {\r\n left: 0,\r\n top: 0\r\n }\r\n },\r\n _toggleDraggingClass: function(value) {\r\n this._$dragElement && this._$dragElement.toggleClass(this._addWidgetPrefix(\"dragging\"), value)\r\n },\r\n _toggleDragSourceClass: function(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source\"), value)\r\n },\r\n _setGestureCoverCursor: function($element) {\r\n $(\".\".concat(GESTURE_COVER_CLASS)).css(\"cursor\", $element.css(\"cursor\"))\r\n },\r\n _getBoundOffset: function() {\r\n var boundOffset = this.option(\"boundOffset\");\r\n if (isFunction(boundOffset)) {\r\n boundOffset = boundOffset.call(this)\r\n }\r\n return quadToObject(boundOffset)\r\n },\r\n _getArea: function() {\r\n var area = this.option(\"boundary\");\r\n if (isFunction(area)) {\r\n area = area.call(this)\r\n }\r\n return $(area)\r\n },\r\n _getContainer: function() {\r\n var container = this.option(\"container\");\r\n if (void 0 === container) {\r\n container = viewPort()\r\n }\r\n return $(container)\r\n },\r\n _dragMoveHandler: function(e, scrollBy) {\r\n this._dragMoveArgs = e;\r\n if (!this._$dragElement) {\r\n e.cancel = true;\r\n return\r\n }\r\n var offset = e.offset;\r\n var startPosition = this._startPosition;\r\n this._move({\r\n left: startPosition.left + offset.x,\r\n top: startPosition.top + offset.y\r\n });\r\n if (!scrollBy) {\r\n this._updateScrollable(e)\r\n }\r\n var eventArgs = this._getEventArgs(e);\r\n this._getAction(\"onDragMove\")(eventArgs);\r\n if (true === eventArgs.cancel) {\r\n return\r\n }\r\n var targetDraggable = this._getTargetDraggable();\r\n targetDraggable.dragMove(e, scrollBy)\r\n },\r\n _updateScrollable: function(e) {\r\n if (this.option(\"autoScroll\")) {\r\n var mousePosition = getMousePosition(e);\r\n var allObjects = domAdapter.elementsFromPoint(mousePosition.x, mousePosition.y, this.$element().get(0));\r\n this._verticalScrollHelper.updateScrollable(allObjects, mousePosition);\r\n this._horizontalScrollHelper.updateScrollable(allObjects, mousePosition)\r\n }\r\n },\r\n _getScrollable: function($element) {\r\n var $scrollable;\r\n $element.parents().toArray().some(parent => {\r\n var $parent = $(parent);\r\n if (this._horizontalScrollHelper.isScrollable($parent) || this._verticalScrollHelper.isScrollable($parent)) {\r\n $scrollable = $parent;\r\n return true\r\n }\r\n });\r\n return $scrollable\r\n },\r\n _defaultActionArgs: function() {\r\n var args = this.callBase.apply(this, arguments);\r\n var component = this.option(\"component\");\r\n if (component) {\r\n args.component = component;\r\n args.element = component.element()\r\n }\r\n return args\r\n },\r\n _getEventArgs: function(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return {\r\n event: e,\r\n itemData: sourceDraggable.option(\"itemData\"),\r\n itemElement: getPublicElement(sourceDraggable._$sourceElement),\r\n fromComponent: sourceDraggable.option(\"component\") || sourceDraggable,\r\n toComponent: targetDraggable.option(\"component\") || targetDraggable,\r\n fromData: sourceDraggable.option(\"data\"),\r\n toData: targetDraggable.option(\"data\")\r\n }\r\n },\r\n _getDragStartArgs: function(e, $itemElement) {\r\n var args = this._getEventArgs(e);\r\n return {\r\n event: args.event,\r\n itemData: args.itemData,\r\n itemElement: $itemElement,\r\n fromData: args.fromData\r\n }\r\n },\r\n _revertItemToInitialPosition: function() {\r\n !this._dragElementIsCloned() && this._move(this._initialLocate, this._$sourceElement)\r\n },\r\n _dragEndHandler: function(e) {\r\n var d = new Deferred;\r\n var dragEndEventArgs = this._getEventArgs(e);\r\n var dropEventArgs = this._getEventArgs(e);\r\n var targetDraggable = this._getTargetDraggable();\r\n var needRevertPosition = true;\r\n try {\r\n this._getAction(\"onDragEnd\")(dragEndEventArgs)\r\n } finally {\r\n when(fromPromise(dragEndEventArgs.cancel)).done(cancel => {\r\n if (!cancel) {\r\n if (targetDraggable !== this) {\r\n targetDraggable._getAction(\"onDrop\")(dropEventArgs)\r\n }\r\n if (!dropEventArgs.cancel) {\r\n needRevertPosition = false;\r\n when(fromPromise(targetDraggable.dragEnd(dragEndEventArgs))).always(d.resolve);\r\n return\r\n }\r\n }\r\n d.resolve()\r\n }).fail(d.resolve);\r\n d.done(() => {\r\n if (needRevertPosition) {\r\n this._revertItemToInitialPosition()\r\n }\r\n this.reset();\r\n targetDraggable.reset();\r\n this._stopAnimator();\r\n this._horizontalScrollHelper.reset();\r\n this._verticalScrollHelper.reset();\r\n this._resetDragElement();\r\n this._resetSourceElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable()\r\n })\r\n }\r\n },\r\n _isTargetOverAnotherDraggable: function(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (this === sourceDraggable) {\r\n return false\r\n }\r\n var $dragElement = sourceDraggable._$dragElement;\r\n var $sourceDraggableElement = sourceDraggable.$element();\r\n var $targetDraggableElement = this.$element();\r\n var mousePosition = getMousePosition(e);\r\n var elements = domAdapter.elementsFromPoint(mousePosition.x, mousePosition.y, this.element());\r\n var firstWidgetElement = elements.filter(element => {\r\n var $element = $(element);\r\n if ($element.hasClass(this._addWidgetPrefix())) {\r\n return !$element.closest($dragElement).length\r\n }\r\n })[0];\r\n var $sourceElement = this._getSourceElement();\r\n var isTargetOverItself = firstWidgetElement === $sourceDraggableElement.get(0);\r\n var isTargetOverNestedDraggable = $(firstWidgetElement).closest($sourceElement).length;\r\n return !firstWidgetElement || firstWidgetElement === $targetDraggableElement.get(0) && !isTargetOverItself && !isTargetOverNestedDraggable\r\n },\r\n _dragEnterHandler: function(e) {\r\n this._fireDragEnterEvent(e);\r\n if (this._isTargetOverAnotherDraggable(e)) {\r\n this._setTargetDraggable()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragEnter(e)\r\n },\r\n _dragLeaveHandler: function(e) {\r\n this._fireDragLeaveEvent(e);\r\n this._resetTargetDraggable();\r\n if (this !== this._getSourceDraggable()) {\r\n this.reset()\r\n }\r\n var sourceDraggable = this._getSourceDraggable();\r\n sourceDraggable.dragLeave(e)\r\n },\r\n _getAction: function(name) {\r\n return this[\"_\" + name + \"Action\"] || this._createActionByOption(name)\r\n },\r\n _getAnonymousTemplateName: function() {\r\n return ANONYMOUS_TEMPLATE_NAME\r\n },\r\n _initTemplates: function() {\r\n if (!this.option(\"contentTemplate\")) {\r\n return\r\n }\r\n this._templateManager.addDefaultTemplates({\r\n content: new EmptyTemplate\r\n });\r\n this.callBase.apply(this, arguments)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this.$element().addClass(this._addWidgetPrefix());\r\n var transclude = this._templateManager.anonymousTemplateName === this.option(\"contentTemplate\");\r\n var template = this._getTemplateByOption(\"contentTemplate\");\r\n if (template) {\r\n $(template.render({\r\n container: this.element(),\r\n transclude: transclude\r\n }))\r\n }\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"onDragStart\":\r\n case \"onDragMove\":\r\n case \"onDragEnd\":\r\n case \"onDrop\":\r\n case \"onDragEnter\":\r\n case \"onDragLeave\":\r\n case \"onDraggableElementShown\":\r\n this[\"_\" + name + \"Action\"] = this._createActionByOption(name);\r\n break;\r\n case \"dragTemplate\":\r\n case \"contentTemplate\":\r\n case \"container\":\r\n case \"clone\":\r\n break;\r\n case \"allowMoveByClick\":\r\n case \"dragDirection\":\r\n case \"disabled\":\r\n case \"boundary\":\r\n case \"filter\":\r\n case \"immediate\":\r\n this._resetDragElement();\r\n this._detachEventHandlers();\r\n this._attachEventHandlers();\r\n break;\r\n case \"autoScroll\":\r\n this._verticalScrollHelper.reset();\r\n this._horizontalScrollHelper.reset();\r\n break;\r\n case \"scrollSensitivity\":\r\n case \"scrollSpeed\":\r\n case \"boundOffset\":\r\n case \"handle\":\r\n case \"group\":\r\n case \"data\":\r\n case \"itemData\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getTargetDraggable: function() {\r\n return targetDraggable || this\r\n },\r\n _getSourceDraggable: function() {\r\n return sourceDraggable || this\r\n },\r\n _setTargetDraggable: function() {\r\n var currentGroup = this.option(\"group\");\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (currentGroup && currentGroup === sourceDraggable.option(\"group\")) {\r\n targetDraggable = this\r\n }\r\n },\r\n _setSourceDraggable: function() {\r\n sourceDraggable = this\r\n },\r\n _resetSourceDraggable: function() {\r\n sourceDraggable = null\r\n },\r\n _resetTargetDraggable: function() {\r\n targetDraggable = null\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n this._detachEventHandlers();\r\n this._resetDragElement();\r\n this._resetTargetDraggable();\r\n this._resetSourceDraggable();\r\n this._$sourceElement = null;\r\n this._stopAnimator()\r\n },\r\n _fireDragEnterEvent: function(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragEnter\")(args)\r\n },\r\n _fireDragLeaveEvent: function(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onDragLeave\")(args)\r\n }\r\n});\r\nregisterComponent(DRAGGABLE, Draggable);\r\nexport default Draggable;\r\n","/**\r\n * DevExtreme (esm/ui/sortable.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight,\r\n getOuterHeight,\r\n getOuterWidth,\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport Draggable from \"./draggable\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n getWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n getBoundingRect\r\n} from \"../core/utils/position\";\r\nimport {\r\n resetPosition\r\n} from \"../animation/translator\";\r\nimport fx from \"../animation/fx\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar window = getWindow();\r\nvar SORTABLE = \"dxSortable\";\r\nvar PLACEHOLDER_CLASS = \"placeholder\";\r\nvar CLONE_CLASS = \"clone\";\r\nvar isElementVisible = itemElement => $(itemElement).is(\":visible\");\r\nvar animate = (element, config) => {\r\n var _config$to, _config$to2;\r\n if (!element) {\r\n return\r\n }\r\n var left = (null === (_config$to = config.to) || void 0 === _config$to ? void 0 : _config$to.left) || 0;\r\n var top = (null === (_config$to2 = config.to) || void 0 === _config$to2 ? void 0 : _config$to2.top) || 0;\r\n element.style.transform = \"translate(\".concat(left, \"px,\").concat(top, \"px)\");\r\n element.style.transition = fx.off ? \"\" : \"transform \".concat(config.duration, \"ms \").concat(config.easing)\r\n};\r\nvar stopAnimation = element => {\r\n if (!element) {\r\n return\r\n }\r\n element.style.transform = \"\";\r\n element.style.transition = \"\"\r\n};\r\n\r\nfunction getScrollableBoundary($scrollable) {\r\n var offset = $scrollable.offset();\r\n var style = $scrollable[0].style;\r\n var paddingLeft = parseFloat(style.paddingLeft) || 0;\r\n var paddingRight = parseFloat(style.paddingRight) || 0;\r\n var paddingTop = parseFloat(style.paddingTop) || 0;\r\n var width = $scrollable[0].clientWidth - (paddingLeft + paddingRight);\r\n var height = getHeight($scrollable);\r\n var left = offset.left + paddingLeft;\r\n var top = offset.top + paddingTop;\r\n return {\r\n left: left,\r\n right: left + width,\r\n top: top,\r\n bottom: top + height\r\n }\r\n}\r\nvar Sortable = Draggable.inherit({\r\n _init: function() {\r\n this.callBase();\r\n this._sourceScrollHandler = this._handleSourceScroll.bind(this);\r\n this._sourceScrollableInfo = null\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n clone: true,\r\n filter: \"> *\",\r\n itemOrientation: \"vertical\",\r\n dropFeedbackMode: \"push\",\r\n allowDropInsideItem: false,\r\n allowReordering: true,\r\n moveItemOnDrop: false,\r\n onDragChange: null,\r\n onAdd: null,\r\n onRemove: null,\r\n onReorder: null,\r\n onPlaceholderPrepared: null,\r\n animation: {\r\n type: \"slide\",\r\n duration: 300,\r\n easing: \"ease\"\r\n },\r\n fromIndex: null,\r\n toIndex: null,\r\n dropInsideItem: false,\r\n itemPoints: null,\r\n fromIndexOffset: 0,\r\n offset: 0,\r\n autoUpdate: false,\r\n draggableElementSize: 0\r\n })\r\n },\r\n reset: function() {\r\n this.option({\r\n dropInsideItem: false,\r\n toIndex: null,\r\n fromIndex: null,\r\n itemPoints: null,\r\n fromIndexOffset: 0,\r\n draggableElementSize: 0\r\n });\r\n if (this._$placeholderElement) {\r\n this._$placeholderElement.remove()\r\n }\r\n this._$placeholderElement = null;\r\n if (!this._isIndicateMode() && this._$modifiedItem) {\r\n this._$modifiedItem.css(\"marginBottom\", this._modifiedItemMargin);\r\n this._$modifiedItem = null\r\n }\r\n },\r\n _getPrevVisibleItem: function(items, index) {\r\n return items.slice(0, index).reverse().filter(isElementVisible)[0]\r\n },\r\n _dragStartHandler: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if (true === e.cancel) {\r\n return\r\n }\r\n var $sourceElement = this._getSourceElement();\r\n this._updateItemPoints();\r\n this._subscribeToSourceScroll(e);\r\n this.option(\"fromIndex\", this._getElementIndex($sourceElement));\r\n this.option(\"fromIndexOffset\", this.option(\"offset\"))\r\n },\r\n _subscribeToSourceScroll: function(e) {\r\n var $scrollable = this._getScrollable($(e.target));\r\n if ($scrollable) {\r\n this._sourceScrollableInfo = {\r\n element: $scrollable,\r\n scrollLeft: $scrollable.scrollLeft(),\r\n scrollTop: $scrollable.scrollTop()\r\n };\r\n eventsEngine.off($scrollable, \"scroll\", this._sourceScrollHandler);\r\n eventsEngine.on($scrollable, \"scroll\", this._sourceScrollHandler)\r\n }\r\n },\r\n _unsubscribeFromSourceScroll: function() {\r\n if (this._sourceScrollableInfo) {\r\n eventsEngine.off(this._sourceScrollableInfo.element, \"scroll\", this._sourceScrollHandler);\r\n this._sourceScrollableInfo = null\r\n }\r\n },\r\n _handleSourceScroll: function(e) {\r\n var sourceScrollableInfo = this._sourceScrollableInfo;\r\n if (sourceScrollableInfo) {\r\n [\"scrollLeft\", \"scrollTop\"].forEach(scrollProp => {\r\n if (e.target[scrollProp] !== sourceScrollableInfo[scrollProp]) {\r\n var scrollBy = e.target[scrollProp] - sourceScrollableInfo[scrollProp];\r\n this._correctItemPoints(scrollBy);\r\n this._movePlaceholder();\r\n sourceScrollableInfo[scrollProp] = e.target[scrollProp]\r\n }\r\n })\r\n }\r\n },\r\n _dragEnterHandler: function(e) {\r\n this.callBase.apply(this, arguments);\r\n if (this === this._getSourceDraggable()) {\r\n return\r\n }\r\n this._subscribeToSourceScroll(e);\r\n this._updateItemPoints();\r\n this.option(\"fromIndex\", -1);\r\n if (!this._isIndicateMode()) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n var lastItemPoint = itemPoints[itemPoints.length - 1];\r\n if (lastItemPoint) {\r\n var $element = this.$element();\r\n var $sourceElement = this._getSourceElement();\r\n var isVertical = this._isVerticalOrientation();\r\n var sourceElementSize = isVertical ? getOuterHeight($sourceElement, true) : getOuterWidth($sourceElement, true);\r\n var scrollSize = $element.get(0)[isVertical ? \"scrollHeight\" : \"scrollWidth\"];\r\n var scrollPosition = $element.get(0)[isVertical ? \"scrollTop\" : \"scrollLeft\"];\r\n var positionProp = isVertical ? \"top\" : \"left\";\r\n var lastPointPosition = lastItemPoint[positionProp];\r\n var elementPosition = $element.offset()[positionProp];\r\n var freeSize = elementPosition + scrollSize - scrollPosition - lastPointPosition;\r\n if (freeSize < sourceElementSize) {\r\n if (isVertical) {\r\n var items = this._getItems();\r\n var $lastItem = $(this._getPrevVisibleItem(items));\r\n this._$modifiedItem = $lastItem;\r\n this._modifiedItemMargin = $lastItem.get(0).style.marginBottom;\r\n $lastItem.css(\"marginBottom\", sourceElementSize - freeSize);\r\n var $sortable = $lastItem.closest(\".dx-sortable\");\r\n var sortable = $sortable.data(\"dxScrollable\") || $sortable.data(\"dxScrollView\");\r\n sortable && sortable.update()\r\n }\r\n }\r\n }\r\n }\r\n },\r\n _dragLeaveHandler: function() {\r\n this.callBase.apply(this, arguments);\r\n if (this !== this._getSourceDraggable()) {\r\n this._unsubscribeFromSourceScroll()\r\n }\r\n },\r\n dragEnter: function() {\r\n if (this !== this._getTargetDraggable()) {\r\n this.option(\"toIndex\", -1)\r\n }\r\n },\r\n dragLeave: function() {\r\n if (this !== this._getTargetDraggable()) {\r\n this.option(\"toIndex\", this.option(\"fromIndex\"))\r\n }\r\n },\r\n _allowDrop: function(event) {\r\n var targetDraggable = this._getTargetDraggable();\r\n var $targetDraggable = targetDraggable.$element();\r\n var $scrollable = this._getScrollable($targetDraggable);\r\n if ($scrollable) {\r\n var {\r\n left: left,\r\n right: right,\r\n top: top,\r\n bottom: bottom\r\n } = getScrollableBoundary($scrollable);\r\n var toIndex = this.option(\"toIndex\");\r\n var itemPoints = this.option(\"itemPoints\");\r\n var itemPoint = null === itemPoints || void 0 === itemPoints ? void 0 : itemPoints.filter(item => item.index === toIndex)[0];\r\n if (itemPoint && void 0 !== itemPoint.top) {\r\n var isVertical = this._isVerticalOrientation();\r\n if (isVertical) {\r\n return top <= Math.ceil(itemPoint.top) && Math.floor(itemPoint.top) <= bottom\r\n } else {\r\n return left <= Math.ceil(itemPoint.left) && Math.floor(itemPoint.left) <= right\r\n }\r\n }\r\n }\r\n return true\r\n },\r\n dragEnd: function(sourceEvent) {\r\n this._unsubscribeFromSourceScroll();\r\n var $sourceElement = this._getSourceElement();\r\n var sourceDraggable = this._getSourceDraggable();\r\n var isSourceDraggable = sourceDraggable.NAME !== this.NAME;\r\n var toIndex = this.option(\"toIndex\");\r\n var event = sourceEvent.event;\r\n var allowDrop = this._allowDrop(event);\r\n if (null !== toIndex && toIndex >= 0 && allowDrop) {\r\n var cancelAdd;\r\n var cancelRemove;\r\n if (sourceDraggable !== this) {\r\n cancelAdd = this._fireAddEvent(event);\r\n if (!cancelAdd) {\r\n cancelRemove = this._fireRemoveEvent(event)\r\n }\r\n }\r\n if (isSourceDraggable) {\r\n resetPosition($sourceElement)\r\n }\r\n if (this.option(\"moveItemOnDrop\")) {\r\n !cancelAdd && this._moveItem($sourceElement, toIndex, cancelRemove)\r\n }\r\n if (sourceDraggable === this) {\r\n return this._fireReorderEvent(event)\r\n }\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n dragMove: function(e) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n if (!itemPoints) {\r\n return\r\n }\r\n var isVertical = this._isVerticalOrientation();\r\n var axisName = isVertical ? \"top\" : \"left\";\r\n var cursorPosition = isVertical ? e.pageY : e.pageX;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var itemPoint;\r\n for (var i = itemPoints.length - 1; i >= 0; i--) {\r\n var centerPosition = itemPoints[i + 1] && (itemPoints[i][axisName] + itemPoints[i + 1][axisName]) / 2;\r\n if ((!isVertical && rtlEnabled ? cursorPosition > centerPosition : centerPosition > cursorPosition) || void 0 === centerPosition) {\r\n itemPoint = itemPoints[i]\r\n } else {\r\n break\r\n }\r\n }\r\n if (itemPoint) {\r\n this._updatePlaceholderPosition(e, itemPoint);\r\n if (this._verticalScrollHelper.isScrolling() && this._isIndicateMode()) {\r\n this._movePlaceholder()\r\n }\r\n }\r\n },\r\n _isIndicateMode: function() {\r\n return \"indicate\" === this.option(\"dropFeedbackMode\") || this.option(\"allowDropInsideItem\")\r\n },\r\n _createPlaceholder: function() {\r\n var $placeholderContainer;\r\n if (this._isIndicateMode()) {\r\n $placeholderContainer = $(\"<div>\").addClass(this._addWidgetPrefix(PLACEHOLDER_CLASS)).insertBefore(this._getSourceDraggable()._$dragElement)\r\n }\r\n this._$placeholderElement = $placeholderContainer;\r\n return $placeholderContainer\r\n },\r\n _getItems: function() {\r\n var itemsSelector = this._getItemsSelector();\r\n return this._$content().find(itemsSelector).not(\".\" + this._addWidgetPrefix(PLACEHOLDER_CLASS)).not(\".\" + this._addWidgetPrefix(CLONE_CLASS)).toArray()\r\n },\r\n _allowReordering: function() {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n return sourceDraggable !== targetDraggable || this.option(\"allowReordering\")\r\n },\r\n _isValidPoint: function(visibleIndex, draggableVisibleIndex, dropInsideItem) {\r\n var allowDropInsideItem = this.option(\"allowDropInsideItem\");\r\n var allowReordering = dropInsideItem || this._allowReordering();\r\n if (!allowReordering && (0 !== visibleIndex || !allowDropInsideItem)) {\r\n return false\r\n }\r\n if (!this._isIndicateMode()) {\r\n return true\r\n }\r\n return -1 === draggableVisibleIndex || visibleIndex !== draggableVisibleIndex && (dropInsideItem || visibleIndex !== draggableVisibleIndex + 1)\r\n },\r\n _getItemPoints: function() {\r\n var result = [];\r\n var $item;\r\n var offset;\r\n var itemWidth;\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var isVertical = this._isVerticalOrientation();\r\n var itemElements = this._getItems();\r\n var visibleItemElements = itemElements.filter(isElementVisible);\r\n var visibleItemCount = visibleItemElements.length;\r\n var $draggableItem = this._getDraggableElement();\r\n var draggableVisibleIndex = visibleItemElements.indexOf($draggableItem.get(0));\r\n if (visibleItemCount) {\r\n for (var i = 0; i <= visibleItemCount; i++) {\r\n var needCorrectLeftPosition = !isVertical && rtlEnabled ^ i === visibleItemCount;\r\n var needCorrectTopPosition = isVertical && i === visibleItemCount;\r\n if (i < visibleItemCount) {\r\n $item = $(visibleItemElements[i]);\r\n offset = $item.offset();\r\n itemWidth = getOuterWidth($item)\r\n }\r\n result.push({\r\n dropInsideItem: false,\r\n left: offset.left + (needCorrectLeftPosition ? itemWidth : 0),\r\n top: offset.top + (needCorrectTopPosition ? result[i - 1].height : 0),\r\n index: i === visibleItemCount ? itemElements.length : itemElements.indexOf($item.get(0)),\r\n $item: $item,\r\n width: getOuterWidth($item),\r\n height: getOuterHeight($item),\r\n isValid: this._isValidPoint(i, draggableVisibleIndex)\r\n })\r\n }\r\n if (this.option(\"allowDropInsideItem\")) {\r\n var points = result;\r\n result = [];\r\n for (var _i = 0; _i < points.length; _i++) {\r\n result.push(points[_i]);\r\n if (points[_i + 1]) {\r\n result.push(extend({}, points[_i], {\r\n dropInsideItem: true,\r\n top: Math.floor((points[_i].top + points[_i + 1].top) / 2),\r\n left: Math.floor((points[_i].left + points[_i + 1].left) / 2),\r\n isValid: this._isValidPoint(_i, draggableVisibleIndex, true)\r\n }))\r\n }\r\n }\r\n }\r\n } else {\r\n result.push({\r\n dropInsideItem: false,\r\n index: 0,\r\n isValid: true\r\n })\r\n }\r\n return result\r\n },\r\n _updateItemPoints: function(forceUpdate) {\r\n if (forceUpdate || this.option(\"autoUpdate\") || !this.option(\"itemPoints\")) {\r\n this.option(\"itemPoints\", this._getItemPoints())\r\n }\r\n },\r\n _correctItemPoints: function(scrollBy) {\r\n var itemPoints = this.option(\"itemPoints\");\r\n if (scrollBy && itemPoints && !this.option(\"autoUpdate\")) {\r\n var isVertical = this._isVerticalOrientation();\r\n var positionPropName = isVertical ? \"top\" : \"left\";\r\n itemPoints.forEach(itemPoint => {\r\n itemPoint[positionPropName] -= scrollBy\r\n })\r\n }\r\n },\r\n _getElementIndex: function($itemElement) {\r\n return this._getItems().indexOf($itemElement.get(0))\r\n },\r\n _getDragTemplateArgs: function($element) {\r\n var args = this.callBase.apply(this, arguments);\r\n args.model.fromIndex = this._getElementIndex($element);\r\n return args\r\n },\r\n _togglePlaceholder: function(value) {\r\n this._$placeholderElement && this._$placeholderElement.toggle(value)\r\n },\r\n _isVerticalOrientation: function() {\r\n return \"vertical\" === this.option(\"itemOrientation\")\r\n },\r\n _normalizeToIndex: function(toIndex, dropInsideItem) {\r\n var isAnotherDraggable = this._getSourceDraggable() !== this._getTargetDraggable();\r\n var fromIndex = this.option(\"fromIndex\");\r\n if (null === toIndex) {\r\n return fromIndex\r\n }\r\n return Math.max(isAnotherDraggable || fromIndex >= toIndex || dropInsideItem ? toIndex : toIndex - 1, 0)\r\n },\r\n _updatePlaceholderPosition: function(e, itemPoint) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var toIndex = this._normalizeToIndex(itemPoint.index, itemPoint.dropInsideItem);\r\n var eventArgs = extend(this._getEventArgs(e), {\r\n toIndex: toIndex,\r\n dropInsideItem: itemPoint.dropInsideItem\r\n });\r\n itemPoint.isValid && this._getAction(\"onDragChange\")(eventArgs);\r\n if (eventArgs.cancel || !itemPoint.isValid) {\r\n if (!itemPoint.isValid) {\r\n this.option({\r\n dropInsideItem: false,\r\n toIndex: null\r\n })\r\n }\r\n return\r\n }\r\n this.option({\r\n dropInsideItem: itemPoint.dropInsideItem,\r\n toIndex: itemPoint.index\r\n });\r\n this._getAction(\"onPlaceholderPrepared\")(extend(this._getEventArgs(e), {\r\n placeholderElement: getPublicElement(this._$placeholderElement),\r\n dragElement: getPublicElement(sourceDraggable._$dragElement)\r\n }));\r\n this._updateItemPoints()\r\n },\r\n _makeWidthCorrection: function($item, width) {\r\n this._$scrollable = this._getScrollable($item);\r\n if (this._$scrollable) {\r\n var scrollableWidth = getWidth(this._$scrollable);\r\n var overflowLeft = this._$scrollable.offset().left - $item.offset().left;\r\n var overflowRight = getOuterWidth($item) - overflowLeft - scrollableWidth;\r\n if (overflowLeft > 0) {\r\n width -= overflowLeft\r\n }\r\n if (overflowRight > 0) {\r\n width -= overflowRight\r\n }\r\n }\r\n return width\r\n },\r\n _updatePlaceholderSizes: function($placeholderElement, itemElement) {\r\n var dropInsideItem = this.option(\"dropInsideItem\");\r\n var $item = $(itemElement);\r\n var isVertical = this._isVerticalOrientation();\r\n var width = \"\";\r\n var height = \"\";\r\n $placeholderElement.toggleClass(this._addWidgetPrefix(\"placeholder-inside\"), dropInsideItem);\r\n if (isVertical || dropInsideItem) {\r\n width = getOuterWidth($item)\r\n }\r\n if (!isVertical || dropInsideItem) {\r\n height = getOuterHeight($item)\r\n }\r\n width = this._makeWidthCorrection($item, width);\r\n $placeholderElement.css({\r\n width: width,\r\n height: height\r\n })\r\n },\r\n _moveItem: function($itemElement, index, cancelRemove) {\r\n var $prevTargetItemElement;\r\n var $itemElements = this._getItems();\r\n var $targetItemElement = $itemElements[index];\r\n var sourceDraggable = this._getSourceDraggable();\r\n if (cancelRemove) {\r\n $itemElement = $itemElement.clone();\r\n sourceDraggable._toggleDragSourceClass(false, $itemElement)\r\n }\r\n if (!$targetItemElement) {\r\n $prevTargetItemElement = $itemElements[index - 1]\r\n }\r\n this._moveItemCore($itemElement, $targetItemElement, $prevTargetItemElement)\r\n },\r\n _moveItemCore: function($targetItem, item, prevItem) {\r\n if (!item && !prevItem) {\r\n $targetItem.appendTo(this.$element())\r\n } else if (prevItem) {\r\n $targetItem.insertAfter($(prevItem))\r\n } else {\r\n $targetItem.insertBefore($(item))\r\n }\r\n },\r\n _getDragStartArgs: function(e, $itemElement) {\r\n return extend(this.callBase.apply(this, arguments), {\r\n fromIndex: this._getElementIndex($itemElement)\r\n })\r\n },\r\n _getEventArgs: function(e) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var targetDraggable = this._getTargetDraggable();\r\n var dropInsideItem = targetDraggable.option(\"dropInsideItem\");\r\n return extend(this.callBase.apply(this, arguments), {\r\n fromIndex: sourceDraggable.option(\"fromIndex\"),\r\n toIndex: this._normalizeToIndex(targetDraggable.option(\"toIndex\"), dropInsideItem),\r\n dropInsideItem: dropInsideItem\r\n })\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n switch (name) {\r\n case \"onDragChange\":\r\n case \"onPlaceholderPrepared\":\r\n case \"onAdd\":\r\n case \"onRemove\":\r\n case \"onReorder\":\r\n this[\"_\" + name + \"Action\"] = this._createActionByOption(name);\r\n break;\r\n case \"itemOrientation\":\r\n case \"allowDropInsideItem\":\r\n case \"moveItemOnDrop\":\r\n case \"dropFeedbackMode\":\r\n case \"itemPoints\":\r\n case \"animation\":\r\n case \"allowReordering\":\r\n case \"fromIndexOffset\":\r\n case \"offset\":\r\n case \"draggableElementSize\":\r\n case \"autoUpdate\":\r\n break;\r\n case \"fromIndex\":\r\n [false, true].forEach(isDragSource => {\r\n var fromIndex = isDragSource ? args.value : args.previousValue;\r\n if (null !== fromIndex) {\r\n var $fromElement = $(this._getItems()[fromIndex]);\r\n this._toggleDragSourceClass(isDragSource, $fromElement)\r\n }\r\n });\r\n break;\r\n case \"dropInsideItem\":\r\n this._optionChangedDropInsideItem(args);\r\n break;\r\n case \"toIndex\":\r\n this._optionChangedToIndex(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _optionChangedDropInsideItem: function() {\r\n if (this._isIndicateMode() && this._$placeholderElement) {\r\n this._movePlaceholder()\r\n }\r\n },\r\n _isPositionVisible: function(position) {\r\n var $element = this.$element();\r\n var scrollContainer;\r\n if (\"hidden\" !== $element.css(\"overflow\")) {\r\n scrollContainer = $element.get(0)\r\n } else {\r\n $element.parents().each((function() {\r\n if (\"visible\" !== $(this).css(\"overflow\")) {\r\n scrollContainer = this;\r\n return false\r\n }\r\n }))\r\n }\r\n if (scrollContainer) {\r\n var clientRect = getBoundingRect(scrollContainer);\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var start = isVerticalOrientation ? \"top\" : \"left\";\r\n var end = isVerticalOrientation ? \"bottom\" : \"right\";\r\n var pageOffset = isVerticalOrientation ? window.pageYOffset : window.pageXOffset;\r\n if (position[start] < clientRect[start] + pageOffset || position[start] > clientRect[end] + pageOffset) {\r\n return false\r\n }\r\n }\r\n return true\r\n },\r\n _optionChangedToIndex: function(args) {\r\n var toIndex = args.value;\r\n if (this._isIndicateMode()) {\r\n var showPlaceholder = null !== toIndex && toIndex >= 0;\r\n this._togglePlaceholder(showPlaceholder);\r\n if (showPlaceholder) {\r\n this._movePlaceholder()\r\n }\r\n } else {\r\n this._moveItems(args.previousValue, args.value, args.fullUpdate)\r\n }\r\n },\r\n update: function() {\r\n if (null === this.option(\"fromIndex\") && null === this.option(\"toIndex\")) {\r\n return\r\n }\r\n this._updateItemPoints(true);\r\n this._updateDragSourceClass();\r\n var toIndex = this.option(\"toIndex\");\r\n this._optionChangedToIndex({\r\n value: toIndex,\r\n fullUpdate: true\r\n })\r\n },\r\n _updateDragSourceClass: function() {\r\n var fromIndex = this._getActualFromIndex();\r\n var $fromElement = $(this._getItems()[fromIndex]);\r\n if ($fromElement.length) {\r\n this._$sourceElement = $fromElement;\r\n this._toggleDragSourceClass(true, $fromElement)\r\n }\r\n },\r\n _makeLeftCorrection: function(left) {\r\n var $scrollable = this._$scrollable;\r\n if ($scrollable && this._isVerticalOrientation()) {\r\n var overflowLeft = $scrollable.offset().left - left;\r\n if (overflowLeft > 0) {\r\n left += overflowLeft\r\n }\r\n }\r\n return left\r\n },\r\n _movePlaceholder: function() {\r\n var $placeholderElement = this._$placeholderElement || this._createPlaceholder();\r\n if (!$placeholderElement) {\r\n return\r\n }\r\n var items = this._getItems();\r\n var toIndex = this.option(\"toIndex\");\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n var dropInsideItem = this.option(\"dropInsideItem\");\r\n var position = null;\r\n var itemElement = items[toIndex];\r\n if (itemElement) {\r\n var $itemElement = $(itemElement);\r\n position = $itemElement.offset();\r\n if (!isVerticalOrientation && rtlEnabled && !dropInsideItem) {\r\n position.left += getOuterWidth($itemElement, true)\r\n }\r\n } else {\r\n var prevVisibleItemElement = itemElement = this._getPrevVisibleItem(items, toIndex);\r\n if (prevVisibleItemElement) {\r\n position = $(prevVisibleItemElement).offset();\r\n if (isVerticalOrientation) {\r\n position.top += getOuterHeight(prevVisibleItemElement, true)\r\n } else if (!rtlEnabled) {\r\n position.left += getOuterWidth(prevVisibleItemElement, true)\r\n }\r\n }\r\n }\r\n this._updatePlaceholderSizes($placeholderElement, itemElement);\r\n if (position && !this._isPositionVisible(position)) {\r\n position = null\r\n }\r\n if (position) {\r\n position.left = this._makeLeftCorrection(position.left);\r\n this._move(position, $placeholderElement)\r\n }\r\n $placeholderElement.toggle(!!position)\r\n },\r\n _getPositions: function(items, elementSize, fromIndex, toIndex) {\r\n var positions = [];\r\n for (var i = 0; i < items.length; i++) {\r\n var position = 0;\r\n if (null === toIndex || null === fromIndex) {\r\n positions.push(position);\r\n continue\r\n }\r\n if (-1 === fromIndex) {\r\n if (i >= toIndex) {\r\n position = elementSize\r\n }\r\n } else if (-1 === toIndex) {\r\n if (i > fromIndex) {\r\n position = -elementSize\r\n }\r\n } else if (fromIndex < toIndex) {\r\n if (i > fromIndex && i < toIndex) {\r\n position = -elementSize\r\n }\r\n } else if (fromIndex > toIndex) {\r\n if (i >= toIndex && i < fromIndex) {\r\n position = elementSize\r\n }\r\n }\r\n positions.push(position)\r\n }\r\n return positions\r\n },\r\n _getDraggableElementSize: function(isVerticalOrientation) {\r\n var $draggableItem = this._getDraggableElement();\r\n var size = this.option(\"draggableElementSize\");\r\n if (!size) {\r\n size = isVerticalOrientation ? (getOuterHeight($draggableItem) + getOuterHeight($draggableItem, true)) / 2 : (getOuterWidth($draggableItem) + getOuterWidth($draggableItem, true)) / 2;\r\n if (!this.option(\"autoUpdate\")) {\r\n this.option(\"draggableElementSize\", size)\r\n }\r\n }\r\n return size\r\n },\r\n _getActualFromIndex: function() {\r\n var {\r\n fromIndex: fromIndex,\r\n fromIndexOffset: fromIndexOffset,\r\n offset: offset\r\n } = this.option();\r\n return null == fromIndex ? null : fromIndex + fromIndexOffset - offset\r\n },\r\n _moveItems: function(prevToIndex, toIndex, fullUpdate) {\r\n var fromIndex = this._getActualFromIndex();\r\n var isVerticalOrientation = this._isVerticalOrientation();\r\n var positionPropName = isVerticalOrientation ? \"top\" : \"left\";\r\n var elementSize = this._getDraggableElementSize(isVerticalOrientation);\r\n var items = this._getItems();\r\n var prevPositions = this._getPositions(items, elementSize, fromIndex, prevToIndex);\r\n var positions = this._getPositions(items, elementSize, fromIndex, toIndex);\r\n var animationConfig = this.option(\"animation\");\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n for (var i = 0; i < items.length; i++) {\r\n var itemElement = items[i];\r\n var prevPosition = prevPositions[i];\r\n var position = positions[i];\r\n if (null === toIndex || null === fromIndex) {\r\n stopAnimation(itemElement)\r\n } else if (prevPosition !== position || fullUpdate && position) {\r\n animate(itemElement, extend({}, animationConfig, {\r\n to: {\r\n [positionPropName]: !isVerticalOrientation && rtlEnabled ? -position : position\r\n }\r\n }))\r\n }\r\n }\r\n },\r\n _toggleDragSourceClass: function(value, $element) {\r\n var $sourceElement = $element || this._$sourceElement;\r\n this.callBase.apply(this, arguments);\r\n if (!this._isIndicateMode()) {\r\n $sourceElement && $sourceElement.toggleClass(this._addWidgetPrefix(\"source-hidden\"), value)\r\n }\r\n },\r\n _dispose: function() {\r\n this.reset();\r\n this.callBase()\r\n },\r\n _fireAddEvent: function(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onAdd\")(args);\r\n return args.cancel\r\n },\r\n _fireRemoveEvent: function(sourceEvent) {\r\n var sourceDraggable = this._getSourceDraggable();\r\n var args = this._getEventArgs(sourceEvent);\r\n sourceDraggable._getAction(\"onRemove\")(args);\r\n return args.cancel\r\n },\r\n _fireReorderEvent: function(sourceEvent) {\r\n var args = this._getEventArgs(sourceEvent);\r\n this._getAction(\"onReorder\")(args);\r\n return args.promise || (new Deferred).resolve()\r\n }\r\n});\r\nregisterComponent(SORTABLE, Sortable);\r\nexport default Sortable;\r\n","/**\r\n * DevExtreme (esm/ui/multi_view/ui.multi_view.animation.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n move\r\n} from \"../../animation/translator\";\r\nexport var _translator = {\r\n move($element, position) {\r\n move($element, {\r\n left: position\r\n })\r\n }\r\n};\r\nexport var animation = {\r\n moveTo($element, position, duration, completeAction) {\r\n fx.animate($element, {\r\n type: \"slide\",\r\n to: {\r\n left: position\r\n },\r\n duration: duration,\r\n complete: completeAction\r\n })\r\n },\r\n complete($element) {\r\n fx.stop($element, true)\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/multi_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n locate\r\n} from \"../animation/translator\";\r\nimport {\r\n _translator,\r\n animation\r\n} from \"./multi_view/ui.multi_view.animation\";\r\nimport {\r\n sign\r\n} from \"../core/utils/math\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n noop,\r\n deferRender\r\n} from \"../core/utils/common\";\r\nimport {\r\n triggerResizeEvent\r\n} from \"../events/visibility_change\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.live_update\";\r\nimport Swipeable from \"../events/gesture/swipeable\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar MULTIVIEW_CLASS = \"dx-multiview\";\r\nvar MULTIVIEW_WRAPPER_CLASS = \"dx-multiview-wrapper\";\r\nvar MULTIVIEW_ITEM_CONTAINER_CLASS = \"dx-multiview-item-container\";\r\nvar MULTIVIEW_ITEM_CLASS = \"dx-multiview-item\";\r\nvar MULTIVIEW_ITEM_HIDDEN_CLASS = \"dx-multiview-item-hidden\";\r\nvar MULTIVIEW_ITEM_DATA_KEY = \"dxMultiViewItemData\";\r\nvar MULTIVIEW_ANIMATION_DURATION = 200;\r\nvar toNumber = value => +value;\r\nvar position = $element => locate($element).left;\r\nvar MultiView = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + MULTIVIEW_ITEM_CLASS,\r\n _supportedKeys: function() {\r\n return extend(this.callBase(), {\r\n pageUp: noop,\r\n pageDown: noop\r\n })\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n selectedIndex: 0,\r\n swipeEnabled: true,\r\n animationEnabled: true,\r\n loop: false,\r\n deferRendering: true,\r\n _itemAttributes: {\r\n role: \"tabpanel\"\r\n },\r\n loopItemFocus: false,\r\n selectOnFocus: true,\r\n selectionMode: \"single\",\r\n selectionRequired: true,\r\n selectionByClick: false\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }])\r\n },\r\n _itemClass: function() {\r\n return MULTIVIEW_ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return MULTIVIEW_ITEM_DATA_KEY\r\n },\r\n _itemContainer: function() {\r\n return this._$itemContainer\r\n },\r\n _itemElements: function() {\r\n return this._itemContainer().children(this._itemSelector())\r\n },\r\n _itemWidth: function() {\r\n if (!this._itemWidthValue) {\r\n this._itemWidthValue = getWidth(this._$wrapper)\r\n }\r\n return this._itemWidthValue\r\n },\r\n _clearItemWidthCache: function() {\r\n delete this._itemWidthValue\r\n },\r\n _itemsCount: function() {\r\n return this.option(\"items\").length\r\n },\r\n _normalizeIndex: function(index) {\r\n var count = this._itemsCount();\r\n if (index < 0) {\r\n index += count\r\n }\r\n if (index >= count) {\r\n index -= count\r\n }\r\n return index\r\n },\r\n _getRTLSignCorrection: function() {\r\n return this.option(\"rtlEnabled\") ? -1 : 1\r\n },\r\n _init: function() {\r\n this.callBase.apply(this, arguments);\r\n var $element = this.$element();\r\n $element.addClass(MULTIVIEW_CLASS);\r\n this._$wrapper = $(\"<div>\").addClass(MULTIVIEW_WRAPPER_CLASS);\r\n this._$wrapper.appendTo($element);\r\n this._$itemContainer = $(\"<div>\").addClass(MULTIVIEW_ITEM_CONTAINER_CLASS);\r\n this._$itemContainer.appendTo(this._$wrapper);\r\n this.option(\"loopItemFocus\", this.option(\"loop\"));\r\n this._initSwipeable()\r\n },\r\n _initMarkup: function() {\r\n this._deferredItems = [];\r\n this.callBase();\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _afterItemElementDeleted: function($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(deletedActionArgs.itemIndex, 1)\r\n }\r\n },\r\n _beforeItemElementInserted: function(change) {\r\n this.callBase.apply(this, arguments);\r\n if (this._deferredItems) {\r\n this._deferredItems.splice(change.index, 0, null)\r\n }\r\n },\r\n _executeItemRenderAction: function(index, itemData, itemElement) {\r\n index = (this.option(\"items\") || []).indexOf(itemData);\r\n this.callBase(index, itemData, itemElement)\r\n },\r\n _renderItemContent: function(args) {\r\n var renderContentDeferred = new Deferred;\r\n var that = this;\r\n var callBase = this.callBase;\r\n var deferred = new Deferred;\r\n deferred.done((function() {\r\n var $itemContent = callBase.call(that, args);\r\n renderContentDeferred.resolve($itemContent)\r\n }));\r\n this._deferredItems[args.index] = deferred;\r\n this.option(\"deferRendering\") || deferred.resolve();\r\n return renderContentDeferred.promise()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n deferRender(() => {\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItems(selectedItemIndices[0])\r\n })\r\n },\r\n _updateItems: function(selectedIndex, newIndex) {\r\n this._updateItemsPosition(selectedIndex, newIndex);\r\n this._updateItemsVisibility(selectedIndex, newIndex)\r\n },\r\n _modifyByChanges: function() {\r\n this.callBase.apply(this, arguments);\r\n var selectedItemIndices = this._getSelectedItemIndices();\r\n this._updateItemsVisibility(selectedItemIndices[0])\r\n },\r\n _updateItemsPosition: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n var positionSign = isDefined(newIndex) ? -this._animationDirection(newIndex, selectedIndex) : void 0;\r\n var $selectedItem = $itemElements.eq(selectedIndex);\r\n _translator.move($selectedItem, 0);\r\n if (isDefined(newIndex)) {\r\n _translator.move($itemElements.eq(newIndex), 100 * positionSign + \"%\")\r\n }\r\n },\r\n _updateItemsVisibility: function(selectedIndex, newIndex) {\r\n var $itemElements = this._itemElements();\r\n $itemElements.each(function(itemIndex, item) {\r\n var $item = $(item);\r\n var isHidden = itemIndex !== selectedIndex && itemIndex !== newIndex;\r\n if (!isHidden) {\r\n this._renderSpecificItem(itemIndex)\r\n }\r\n $item.toggleClass(MULTIVIEW_ITEM_HIDDEN_CLASS, isHidden);\r\n this.setAria(\"hidden\", isHidden || void 0, $item)\r\n }.bind(this))\r\n },\r\n _renderSpecificItem: function(index) {\r\n var $item = this._itemElements().eq(index);\r\n var hasItemContent = $item.find(this._itemContentClass()).length > 0;\r\n if (isDefined(index) && !hasItemContent) {\r\n this._deferredItems[index].resolve();\r\n triggerResizeEvent($item)\r\n }\r\n },\r\n _refreshItem: function($item, item) {\r\n this.callBase($item, item);\r\n this._updateItemsVisibility(this.option(\"selectedIndex\"))\r\n },\r\n _setAriaSelected: noop,\r\n _updateSelection: function(addedSelection, removedSelection) {\r\n var newIndex = addedSelection[0];\r\n var prevIndex = removedSelection[0];\r\n animation.complete(this._$itemContainer);\r\n this._updateItems(prevIndex, newIndex);\r\n var animationDirection = this._animationDirection(newIndex, prevIndex);\r\n this._animateItemContainer(animationDirection * this._itemWidth(), function() {\r\n _translator.move(this._$itemContainer, 0);\r\n this._updateItems(newIndex);\r\n getWidth(this._$itemContainer)\r\n }.bind(this))\r\n },\r\n _animateItemContainer: function(position, completeCallback) {\r\n var duration = this.option(\"animationEnabled\") ? MULTIVIEW_ANIMATION_DURATION : 0;\r\n animation.moveTo(this._$itemContainer, position, duration, completeCallback)\r\n },\r\n _animationDirection: function(newIndex, prevIndex) {\r\n var containerPosition = position(this._$itemContainer);\r\n var indexDifference = (prevIndex - newIndex) * this._getRTLSignCorrection() * this._getItemFocusLoopSignCorrection();\r\n var isSwipePresent = 0 !== containerPosition;\r\n var directionSignVariable = isSwipePresent ? containerPosition : indexDifference;\r\n return sign(directionSignVariable)\r\n },\r\n _getSwipeDisabledState() {\r\n return !this.option(\"swipeEnabled\") || this._itemsCount() <= 1\r\n },\r\n _initSwipeable() {\r\n this._createComponent(this.$element(), Swipeable, {\r\n disabled: this._getSwipeDisabledState(),\r\n elastic: false,\r\n itemSizeFunc: this._itemWidth.bind(this),\r\n onStart: args => this._swipeStartHandler(args.event),\r\n onUpdated: args => this._swipeUpdateHandler(args.event),\r\n onEnd: args => this._swipeEndHandler(args.event)\r\n })\r\n },\r\n _swipeStartHandler: function(e) {\r\n animation.complete(this._$itemContainer);\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var loop = this.option(\"loop\");\r\n var lastIndex = this._itemsCount() - 1;\r\n var rtl = this.option(\"rtlEnabled\");\r\n e.maxLeftOffset = toNumber(loop || (rtl ? selectedIndex > 0 : selectedIndex < lastIndex));\r\n e.maxRightOffset = toNumber(loop || (rtl ? selectedIndex < lastIndex : selectedIndex > 0));\r\n this._swipeDirection = null\r\n },\r\n _swipeUpdateHandler: function(e) {\r\n var offset = e.offset;\r\n var swipeDirection = sign(offset) * this._getRTLSignCorrection();\r\n _translator.move(this._$itemContainer, offset * this._itemWidth());\r\n if (swipeDirection !== this._swipeDirection) {\r\n this._swipeDirection = swipeDirection;\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var newIndex = this._normalizeIndex(selectedIndex - swipeDirection);\r\n this._updateItems(selectedIndex, newIndex)\r\n }\r\n },\r\n _swipeEndHandler: function(e) {\r\n var targetOffset = e.targetOffset * this._getRTLSignCorrection();\r\n if (targetOffset) {\r\n this.option(\"selectedIndex\", this._normalizeIndex(this.option(\"selectedIndex\") - targetOffset));\r\n var $selectedElement = this.itemElements().filter(\".dx-item-selected\");\r\n this.option(\"focusStateEnabled\") && this.option(\"focusedElement\", getPublicElement($selectedElement))\r\n } else {\r\n this._animateItemContainer(0, noop)\r\n }\r\n },\r\n _getItemFocusLoopSignCorrection: function() {\r\n return this._itemFocusLooped ? -1 : 1\r\n },\r\n _moveFocus: function() {\r\n this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = false\r\n },\r\n _prevItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.last());\r\n return $result\r\n },\r\n _nextItem: function($items) {\r\n var $result = this.callBase.apply(this, arguments);\r\n this._itemFocusLooped = $result.is($items.first());\r\n return $result\r\n },\r\n _dimensionChanged: function() {\r\n this._clearItemWidthCache()\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _updateSwipeDisabledState() {\r\n var disabled = this._getSwipeDisabledState();\r\n Swipeable.getInstance(this.$element()).option(\"disabled\", disabled)\r\n },\r\n _optionChanged: function(args) {\r\n var value = args.value;\r\n switch (args.name) {\r\n case \"loop\":\r\n this.option(\"loopItemFocus\", value);\r\n break;\r\n case \"animationEnabled\":\r\n break;\r\n case \"swipeEnabled\":\r\n this._updateSwipeDisabledState();\r\n break;\r\n case \"deferRendering\":\r\n this._invalidate();\r\n break;\r\n case \"items\":\r\n this._updateSwipeDisabledState();\r\n this.callBase(args);\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxMultiView\", MultiView);\r\nexport default MultiView;\r\n","/**\r\n * DevExtreme (esm/ui/tabs/item.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nvar TABS_ITEM_BADGE_CLASS = \"dx-tabs-item-badge\";\r\nvar BADGE_CLASS = \"dx-badge\";\r\nvar TabsItem = CollectionWidgetItem.inherit({\r\n _renderWatchers: function() {\r\n this.callBase();\r\n this._startWatcher(\"badge\", this._renderBadge.bind(this))\r\n },\r\n _renderBadge: function(badge) {\r\n this._$element.children(\".\" + BADGE_CLASS).remove();\r\n if (!badge) {\r\n return\r\n }\r\n var $badge = $(\"<div>\").addClass(TABS_ITEM_BADGE_CLASS).addClass(BADGE_CLASS).text(badge);\r\n this._$element.append($badge)\r\n }\r\n});\r\nexport default TabsItem;\r\n","/**\r\n * DevExtreme (esm/ui/tabs/constants.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TABS_EXPANDED_CLASS = \"dx-tabs-expanded\";\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_scroll_left_max.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function getScrollLeftMax(element) {\r\n return element.scrollWidth - element.clientWidth\r\n}\r\n","/**\r\n * DevExtreme (esm/renovation/ui/scroll_view/utils/get_boundary_props.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getScrollLeftMax\r\n} from \"./get_scroll_left_max\";\r\nimport {\r\n getScrollTopMax\r\n} from \"./get_scroll_top_max\";\r\nimport {\r\n ScrollDirection\r\n} from \"./scroll_direction\";\r\nexport function isReachedLeft(scrollOffsetLeft, epsilon) {\r\n return Math.round(scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedRight(element, scrollOffsetLeft, epsilon) {\r\n return Math.round(getScrollLeftMax(element) - scrollOffsetLeft) <= epsilon\r\n}\r\nexport function isReachedTop(scrollOffsetTop, epsilon) {\r\n return Math.round(scrollOffsetTop) <= epsilon\r\n}\r\nexport function isReachedBottom(element, scrollOffsetTop, pocketHeight, epsilon) {\r\n return Math.round(getScrollTopMax(element) - scrollOffsetTop - pocketHeight) <= epsilon\r\n}\r\nexport function getBoundaryProps(direction, scrollOffset, element) {\r\n var pocketHeight = arguments.length > 3 && void 0 !== arguments[3] ? arguments[3] : 0;\r\n var {\r\n left: left,\r\n top: top\r\n } = scrollOffset;\r\n var boundaryProps = {};\r\n var {\r\n isHorizontal: isHorizontal,\r\n isVertical: isVertical\r\n } = new ScrollDirection(direction);\r\n if (isHorizontal) {\r\n boundaryProps.reachedLeft = isReachedLeft(left, 0);\r\n boundaryProps.reachedRight = isReachedRight(element, left, 0)\r\n }\r\n if (isVertical) {\r\n boundaryProps.reachedTop = isReachedTop(top, 0);\r\n boundaryProps.reachedBottom = isReachedBottom(element, top, pocketHeight, 0)\r\n }\r\n return boundaryProps\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tabs.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport devices from \"../core/devices\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Button from \"./button\";\r\nimport {\r\n render\r\n} from \"./widget/utils.ink_ripple\";\r\nimport {\r\n addNamespace\r\n} from \"../events/utils/index\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n isPlainObject\r\n} from \"../core/utils/type\";\r\nimport pointerEvents from \"../events/pointer\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport TabsItem from \"./tabs/item\";\r\nimport {\r\n TABS_EXPANDED_CLASS\r\n} from \"./tabs/constants\";\r\nimport {\r\n isMaterial,\r\n current as currentTheme\r\n} from \"./themes\";\r\nimport holdEvent from \"../events/hold\";\r\nimport Scrollable from \"./scroll_view/ui.scrollable\";\r\nimport {\r\n default as CollectionWidget\r\n} from \"./collection/ui.collection_widget.live_update\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n isReachedLeft,\r\n isReachedRight\r\n} from \"../renovation/ui/scroll_view/utils/get_boundary_props\";\r\nimport {\r\n getScrollLeftMax\r\n} from \"../renovation/ui/scroll_view/utils/get_scroll_left_max\";\r\nvar TABS_CLASS = \"dx-tabs\";\r\nvar TABS_WRAPPER_CLASS = \"dx-tabs-wrapper\";\r\nvar TABS_STRETCHED_CLASS = \"dx-tabs-stretched\";\r\nvar TABS_SCROLLABLE_CLASS = \"dx-tabs-scrollable\";\r\nvar TABS_NAV_BUTTONS_CLASS = \"dx-tabs-nav-buttons\";\r\nvar OVERFLOW_HIDDEN_CLASS = \"dx-overflow-hidden\";\r\nvar TABS_ITEM_CLASS = \"dx-tab\";\r\nvar TABS_ITEM_SELECTED_CLASS = \"dx-tab-selected\";\r\nvar TABS_NAV_BUTTON_CLASS = \"dx-tabs-nav-button\";\r\nvar TABS_LEFT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-left\";\r\nvar TABS_RIGHT_NAV_BUTTON_CLASS = \"dx-tabs-nav-button-right\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TABS_ITEM_DATA_KEY = \"dxTabData\";\r\nvar BUTTON_NEXT_ICON = \"chevronnext\";\r\nvar BUTTON_PREV_ICON = \"chevronprev\";\r\nvar FEEDBACK_HIDE_TIMEOUT = 100;\r\nvar FEEDBACK_DURATION_INTERVAL = 5;\r\nvar FEEDBACK_SCROLL_TIMEOUT = 300;\r\nvar TAB_OFFSET = 30;\r\nvar Tabs = CollectionWidget.inherit({\r\n _activeStateUnit: \".\" + TABS_ITEM_CLASS,\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n hoverStateEnabled: true,\r\n showNavButtons: true,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n selectionMode: \"single\",\r\n activeStateEnabled: true,\r\n selectionRequired: false,\r\n selectOnFocus: true,\r\n loopItemFocus: false,\r\n useInkRipple: false,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n },\r\n _itemAttributes: {\r\n role: \"tab\"\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = currentTheme();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" !== devices.real().deviceType\r\n },\r\n options: {\r\n showNavButtons: false\r\n }\r\n }, {\r\n device: {\r\n deviceType: \"desktop\"\r\n },\r\n options: {\r\n scrollByContent: false\r\n }\r\n }, {\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n useInkRipple: true,\r\n selectOnFocus: false\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.setAria(\"role\", \"tablist\");\r\n this.$element().addClass(TABS_CLASS);\r\n this._renderWrapper();\r\n this._renderMultiple();\r\n this._feedbackHideTimeout = FEEDBACK_HIDE_TIMEOUT\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n item: new BindableTemplate(function($container, data) {\r\n if (isPlainObject(data)) {\r\n this._prepareDefaultItemTemplate(data, $container)\r\n } else {\r\n $container.text(String(data))\r\n }\r\n var $iconElement = getImageContainer(data.icon);\r\n $iconElement && $iconElement.prependTo($container);\r\n $container.wrapInner($(\"<span>\").addClass(TABS_ITEM_TEXT_CLASS))\r\n }.bind(this), [\"text\", \"html\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createItemByTemplate: function(itemTemplate, renderArgs) {\r\n var {\r\n itemData: itemData,\r\n container: container,\r\n index: index\r\n } = renderArgs;\r\n this._deferredTemplates[index] = new Deferred;\r\n return itemTemplate.render({\r\n model: itemData,\r\n container: container,\r\n index: index,\r\n onRendered: () => this._deferredTemplates[index].resolve()\r\n })\r\n },\r\n _itemClass: function() {\r\n return TABS_ITEM_CLASS\r\n },\r\n _selectedItemClass: function() {\r\n return TABS_ITEM_SELECTED_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return TABS_ITEM_DATA_KEY\r\n },\r\n _initMarkup: function() {\r\n this._deferredTemplates = [];\r\n this.callBase();\r\n this.option(\"useInkRipple\") && this._renderInkRipple();\r\n this.$element().addClass(OVERFLOW_HIDDEN_CLASS)\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _deferRenderScrolling() {\r\n when.apply(this, this._deferredTemplates).done(() => this._renderScrolling())\r\n },\r\n _renderScrolling: function() {\r\n var removeClasses = [TABS_STRETCHED_CLASS, TABS_EXPANDED_CLASS, OVERFLOW_HIDDEN_CLASS];\r\n this.$element().removeClass(removeClasses.join(\" \"));\r\n if (this.option(\"scrollingEnabled\") && this._isItemsWidthExceeded()) {\r\n if (!this._scrollable) {\r\n this._renderScrollable();\r\n this._renderNavButtons()\r\n }\r\n var scrollable = this.getScrollable();\r\n scrollable.update();\r\n if (this.option(\"rtlEnabled\")) {\r\n var maxLeftOffset = getScrollLeftMax($(this.getScrollable().container()).get(0));\r\n scrollable.scrollTo({\r\n left: maxLeftOffset\r\n })\r\n }\r\n this._updateNavButtonsVisibility();\r\n this._scrollToItem(this.option(\"selectedItem\"))\r\n }\r\n if (!(this.option(\"scrollingEnabled\") && this._isItemsWidthExceeded())) {\r\n this._cleanScrolling();\r\n if (this._needStretchItems() && !this._isItemsWidthExceeded()) {\r\n this.$element().addClass(TABS_STRETCHED_CLASS)\r\n }\r\n this.$element().removeClass(TABS_NAV_BUTTONS_CLASS).addClass(TABS_EXPANDED_CLASS)\r\n }\r\n },\r\n _isItemsWidthExceeded: function() {\r\n var tabItemsWidth = this._getSummaryItemsWidth(this._getVisibleItems(), true);\r\n return tabItemsWidth - 1 > getWidth(this.$element())\r\n },\r\n _needStretchItems: function() {\r\n var $visibleItems = this._getVisibleItems();\r\n var elementWidth = getWidth(this.$element());\r\n var itemsWidth = [];\r\n each($visibleItems, (_, item) => {\r\n itemsWidth.push(getOuterWidth(item, true))\r\n });\r\n var maxTabWidth = Math.max.apply(null, itemsWidth);\r\n return maxTabWidth >= elementWidth / $visibleItems.length\r\n },\r\n _cleanNavButtons: function() {\r\n if (!this._leftButton || !this._rightButton) {\r\n return\r\n }\r\n this._leftButton.$element().remove();\r\n this._rightButton.$element().remove();\r\n this._leftButton = null;\r\n this._rightButton = null\r\n },\r\n _cleanScrolling: function() {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n this._$wrapper.appendTo(this.$element());\r\n this._scrollable.$element().remove();\r\n this._scrollable = null;\r\n this._cleanNavButtons()\r\n },\r\n _renderInkRipple: function() {\r\n this._inkRipple = render()\r\n },\r\n _toggleActiveState: function($element, value, e) {\r\n this.callBase.apply(this, arguments);\r\n if (!this._inkRipple) {\r\n return\r\n }\r\n var config = {\r\n element: $element,\r\n event: e\r\n };\r\n if (value) {\r\n this._inkRipple.showWave(config)\r\n } else {\r\n this._inkRipple.hideWave(config)\r\n }\r\n },\r\n _renderMultiple: function() {\r\n if (\"multiple\" === this.option(\"selectionMode\")) {\r\n this.option(\"selectOnFocus\", false)\r\n }\r\n },\r\n _renderWrapper: function() {\r\n this._$wrapper = $(\"<div>\").addClass(TABS_WRAPPER_CLASS);\r\n this.$element().append(this._$wrapper)\r\n },\r\n _itemContainer: function() {\r\n return this._$wrapper\r\n },\r\n _renderScrollable: function() {\r\n var $itemContainer = this.$element().wrapInner($(\"<div>\").addClass(TABS_SCROLLABLE_CLASS)).children();\r\n this._scrollable = this._createComponent($itemContainer, Scrollable, {\r\n direction: \"horizontal\",\r\n showScrollbar: \"never\",\r\n useKeyboard: false,\r\n useNative: false,\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n onScroll: () => {\r\n this._updateNavButtonsVisibility()\r\n }\r\n });\r\n this.$element().append(this._scrollable.$element())\r\n },\r\n _scrollToItem: function(itemData) {\r\n if (!this._scrollable) {\r\n return\r\n }\r\n var $item = this._editStrategy.getItemElement(itemData);\r\n this._scrollable.scrollToElement($item)\r\n },\r\n _renderNavButtons: function() {\r\n this.$element().toggleClass(TABS_NAV_BUTTONS_CLASS, this.option(\"showNavButtons\"));\r\n if (!this.option(\"showNavButtons\")) {\r\n return\r\n }\r\n var rtlEnabled = this.option(\"rtlEnabled\");\r\n this._leftButton = this._createNavButton(-TAB_OFFSET, rtlEnabled ? BUTTON_NEXT_ICON : BUTTON_PREV_ICON);\r\n var $leftButton = this._leftButton.$element();\r\n $leftButton.addClass(TABS_LEFT_NAV_BUTTON_CLASS);\r\n this.$element().prepend($leftButton);\r\n this._rightButton = this._createNavButton(TAB_OFFSET, rtlEnabled ? BUTTON_PREV_ICON : BUTTON_NEXT_ICON);\r\n var $rightButton = this._rightButton.$element();\r\n $rightButton.addClass(TABS_RIGHT_NAV_BUTTON_CLASS);\r\n this.$element().append($rightButton)\r\n },\r\n _updateNavButtonsVisibility: function() {\r\n var scrollable = this.getScrollable();\r\n this._leftButton && this._leftButton.option(\"disabled\", isReachedLeft(scrollable.scrollLeft(), 1));\r\n this._rightButton && this._rightButton.option(\"disabled\", isReachedRight($(scrollable.container()).get(0), scrollable.scrollLeft(), 1))\r\n },\r\n _updateScrollPosition: function(offset, duration) {\r\n this._scrollable.update();\r\n this._scrollable.scrollBy(offset / duration)\r\n },\r\n _createNavButton: function(offset, icon) {\r\n var that = this;\r\n var holdAction = that._createAction((function() {\r\n that._holdInterval = setInterval((function() {\r\n that._updateScrollPosition(offset, FEEDBACK_DURATION_INTERVAL)\r\n }), FEEDBACK_DURATION_INTERVAL)\r\n }));\r\n var holdEventName = addNamespace(holdEvent.name, \"dxNavButton\");\r\n var pointerUpEventName = addNamespace(pointerEvents.up, \"dxNavButton\");\r\n var pointerOutEventName = addNamespace(pointerEvents.out, \"dxNavButton\");\r\n var navButton = this._createComponent($(\"<div>\").addClass(TABS_NAV_BUTTON_CLASS), Button, {\r\n focusStateEnabled: false,\r\n icon: icon,\r\n onClick: function() {\r\n that._updateScrollPosition(offset, 1)\r\n },\r\n integrationOptions: {}\r\n });\r\n var $navButton = navButton.$element();\r\n eventsEngine.on($navButton, holdEventName, {\r\n timeout: FEEDBACK_SCROLL_TIMEOUT\r\n }, function(e) {\r\n holdAction({\r\n event: e\r\n })\r\n }.bind(this));\r\n eventsEngine.on($navButton, pointerUpEventName, (function() {\r\n that._clearInterval()\r\n }));\r\n eventsEngine.on($navButton, pointerOutEventName, (function() {\r\n that._clearInterval()\r\n }));\r\n return navButton\r\n },\r\n _clearInterval: function() {\r\n if (this._holdInterval) {\r\n clearInterval(this._holdInterval)\r\n }\r\n },\r\n _updateSelection: function(addedSelection) {\r\n this._scrollable && this._scrollable.scrollToElement(this.itemElements().eq(addedSelection[0]), {\r\n left: 1,\r\n right: 1\r\n })\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._dimensionChanged()\r\n }\r\n },\r\n _dimensionChanged: function() {\r\n this._renderScrolling()\r\n },\r\n _itemSelectHandler: function(e) {\r\n if (\"single\" === this.option(\"selectionMode\") && this.isItemSelected(e.currentTarget)) {\r\n return\r\n }\r\n this.callBase(e)\r\n },\r\n _clean: function() {\r\n this._deferredTemplates = [];\r\n this._cleanScrolling();\r\n this.callBase()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"useInkRipple\":\r\n case \"scrollingEnabled\":\r\n case \"showNavButtons\":\r\n this._invalidate();\r\n break;\r\n case \"scrollByContent\":\r\n this._scrollable && this._scrollable.option(args.name, args.value);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._dimensionChanged();\r\n break;\r\n case \"selectionMode\":\r\n this._renderMultiple();\r\n this.callBase(args);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _afterItemElementInserted() {\r\n this.callBase();\r\n this._deferRenderScrolling()\r\n },\r\n _afterItemElementDeleted($item, deletedActionArgs) {\r\n this.callBase($item, deletedActionArgs);\r\n this._renderScrolling()\r\n },\r\n getScrollable() {\r\n return this._scrollable\r\n }\r\n});\r\nTabs.ItemClass = TabsItem;\r\nregisterComponent(\"dxTabs\", Tabs);\r\nexport default Tabs;\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel/item.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetItem from \"../collection/item\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nexport default class TabPanelItem extends CollectionWidgetItem {\r\n _renderWatchers() {\r\n this._startWatcher(\"badge\", noop);\r\n return super._renderWatchers()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/tab_panel.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n touch\r\n} from \"../core/utils/support\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport MultiView from \"./multi_view\";\r\nimport Tabs from \"./tabs\";\r\nimport {\r\n default as TabPanelItem\r\n} from \"./tab_panel/item\";\r\nimport {\r\n getImageContainer\r\n} from \"../core/utils/icon\";\r\nimport {\r\n getPublicElement\r\n} from \"../core/element\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../core/utils/type\";\r\nimport {\r\n BindableTemplate\r\n} from \"../core/templates/bindable_template\";\r\nimport {\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nvar TABPANEL_CLASS = \"dx-tabpanel\";\r\nvar TABPANEL_TABS_CLASS = \"dx-tabpanel-tabs\";\r\nvar TABPANEL_CONTAINER_CLASS = \"dx-tabpanel-container\";\r\nvar TABS_ITEM_TEXT_CLASS = \"dx-tab-text\";\r\nvar TabPanel = MultiView.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n itemTitleTemplate: \"title\",\r\n hoverStateEnabled: true,\r\n showNavButtons: false,\r\n scrollByContent: true,\r\n scrollingEnabled: true,\r\n onTitleClick: null,\r\n onTitleHold: null,\r\n onTitleRendered: null,\r\n badgeExpr: function(data) {\r\n return data ? data.badge : void 0\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return !touch\r\n },\r\n options: {\r\n swipeEnabled: false\r\n }\r\n }, {\r\n device: {\r\n platform: \"generic\"\r\n },\r\n options: {\r\n animationEnabled: false\r\n }\r\n }])\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this.$element().addClass(TABPANEL_CLASS);\r\n this.setAria(\"role\", \"tabpanel\")\r\n },\r\n _initMarkup: function() {\r\n this.callBase();\r\n this._createTitleActions();\r\n this._renderLayout()\r\n },\r\n _initTemplates: function() {\r\n this.callBase();\r\n this._templateManager.addDefaultTemplates({\r\n title: new BindableTemplate((function($container, data) {\r\n if (isPlainObject(data)) {\r\n var $iconElement = getImageContainer(data.icon);\r\n if ($iconElement) {\r\n $container.append($iconElement)\r\n }\r\n if (isDefined(data.title) && !isPlainObject(data.title)) {\r\n $container.append(domAdapter.createTextNode(data.title))\r\n }\r\n } else if (isDefined(data)) {\r\n $container.text(String(data))\r\n }\r\n $container.wrapInner($(\"<span>\").addClass(TABS_ITEM_TEXT_CLASS))\r\n }), [\"title\", \"icon\"], this.option(\"integrationOptions.watchMethod\"))\r\n })\r\n },\r\n _createTitleActions: function() {\r\n this._createTitleClickAction();\r\n this._createTitleHoldAction();\r\n this._createTitleRenderedAction()\r\n },\r\n _createTitleClickAction: function() {\r\n this._titleClickAction = this._createActionByOption(\"onTitleClick\")\r\n },\r\n _createTitleHoldAction: function() {\r\n this._titleHoldAction = this._createActionByOption(\"onTitleHold\")\r\n },\r\n _createTitleRenderedAction: function() {\r\n this._titleRenderedAction = this._createActionByOption(\"onTitleRendered\")\r\n },\r\n _renderContent: function() {\r\n var that = this;\r\n this.callBase();\r\n if (this.option(\"templatesRenderAsynchronously\")) {\r\n this._resizeEventTimer = setTimeout((function() {\r\n that._updateLayout()\r\n }), 0)\r\n }\r\n },\r\n _renderLayout: function() {\r\n if (this._tabs) {\r\n this._updateLayout();\r\n return\r\n }\r\n var $element = this.$element();\r\n this._$tabContainer = $(\"<div>\").addClass(TABPANEL_TABS_CLASS).appendTo($element);\r\n var $tabs = $(\"<div>\").appendTo(this._$tabContainer);\r\n this._tabs = this._createComponent($tabs, Tabs, this._tabConfig());\r\n this._$container = $(\"<div>\").addClass(TABPANEL_CONTAINER_CLASS).appendTo($element);\r\n this._$container.append(this._$wrapper);\r\n this._updateLayout()\r\n },\r\n _updateLayout: function() {\r\n if (hasWindow()) {\r\n var tabsHeight = getOuterHeight(this._$tabContainer);\r\n this._$container.css({\r\n marginTop: -tabsHeight,\r\n paddingTop: tabsHeight\r\n })\r\n }\r\n },\r\n _refreshActiveDescendant: function() {\r\n if (!this._tabs) {\r\n return\r\n }\r\n var tabs = this._tabs;\r\n var tabItems = tabs.itemElements();\r\n var $activeTab = $(tabItems[tabs.option(\"selectedIndex\")]);\r\n var id = this.getFocusedItemId();\r\n this.setAria(\"controls\", void 0, $(tabItems));\r\n this.setAria(\"controls\", id, $activeTab)\r\n },\r\n _tabConfig: function() {\r\n return {\r\n selectOnFocus: true,\r\n focusStateEnabled: this.option(\"focusStateEnabled\"),\r\n hoverStateEnabled: this.option(\"hoverStateEnabled\"),\r\n repaintChangesOnly: this.option(\"repaintChangesOnly\"),\r\n tabIndex: this.option(\"tabIndex\"),\r\n selectedIndex: this.option(\"selectedIndex\"),\r\n badgeExpr: this.option(\"badgeExpr\"),\r\n onItemClick: this._titleClickAction.bind(this),\r\n onItemHold: this._titleHoldAction.bind(this),\r\n itemHoldTimeout: this.option(\"itemHoldTimeout\"),\r\n onSelectionChanged: function(e) {\r\n this.option(\"selectedIndex\", e.component.option(\"selectedIndex\"));\r\n this._refreshActiveDescendant()\r\n }.bind(this),\r\n onItemRendered: this._titleRenderedAction.bind(this),\r\n itemTemplate: this._getTemplateByOption(\"itemTitleTemplate\"),\r\n items: this.option(\"items\"),\r\n noDataText: null,\r\n scrollingEnabled: this.option(\"scrollingEnabled\"),\r\n scrollByContent: this.option(\"scrollByContent\"),\r\n showNavButtons: this.option(\"showNavButtons\"),\r\n itemTemplateProperty: \"tabTemplate\",\r\n loopItemFocus: this.option(\"loop\"),\r\n selectionRequired: true,\r\n onOptionChanged: function(args) {\r\n if (\"focusedElement\" === args.name) {\r\n if (args.value) {\r\n var $value = $(args.value);\r\n var $newItem = this._itemElements().eq($value.index());\r\n this.option(\"focusedElement\", getPublicElement($newItem))\r\n } else {\r\n this.option(\"focusedElement\", args.value)\r\n }\r\n }\r\n }.bind(this),\r\n onFocusIn: function(args) {\r\n this._focusInHandler(args.event)\r\n }.bind(this),\r\n onFocusOut: function(args) {\r\n if (!this._isFocusOutHandlerExecuting) {\r\n this._focusOutHandler(args.event)\r\n }\r\n }.bind(this)\r\n }\r\n },\r\n _renderFocusTarget: function() {\r\n this._focusTarget().attr(\"tabIndex\", -1)\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n this.callBase(e, isFocused);\r\n if (e.target === this._tabs._focusTarget().get(0)) {\r\n this._toggleFocusClass(isFocused, this._focusTarget())\r\n }\r\n },\r\n _focusOutHandler: function(e) {\r\n this._isFocusOutHandlerExecuting = true;\r\n this.callBase.apply(this, arguments);\r\n this._tabs._focusOutHandler(e);\r\n this._isFocusOutHandlerExecuting = false\r\n },\r\n _setTabsOption: function(name, value) {\r\n if (this._tabs) {\r\n this._tabs.option(name, value)\r\n }\r\n },\r\n _visibilityChanged: function(visible) {\r\n if (visible) {\r\n this._tabs._dimensionChanged();\r\n this._updateLayout()\r\n }\r\n },\r\n registerKeyHandler: function(key, handler) {\r\n this.callBase(key, handler);\r\n if (this._tabs) {\r\n this._tabs.registerKeyHandler(key, handler)\r\n }\r\n },\r\n repaint: function() {\r\n this.callBase();\r\n this._tabs.repaint()\r\n },\r\n _optionChanged: function(args) {\r\n var name = args.name;\r\n var value = args.value;\r\n var fullName = args.fullName;\r\n switch (name) {\r\n case \"dataSource\":\r\n this.callBase(args);\r\n break;\r\n case \"items\":\r\n this._setTabsOption(name, this.option(name));\r\n this._updateLayout();\r\n if (!this.option(\"repaintChangesOnly\")) {\r\n this._tabs.repaint()\r\n }\r\n this.callBase(args);\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._tabs.repaint();\r\n break;\r\n case \"selectedIndex\":\r\n case \"selectedItem\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n if (true === this.option(\"focusStateEnabled\")) {\r\n var selectedIndex = this.option(\"selectedIndex\");\r\n var selectedTabContent = this._itemElements().eq(selectedIndex);\r\n this.option(\"focusedElement\", getPublicElement(selectedTabContent))\r\n }\r\n break;\r\n case \"itemHoldTimeout\":\r\n case \"focusStateEnabled\":\r\n case \"hoverStateEnabled\":\r\n this._setTabsOption(fullName, value);\r\n this.callBase(args);\r\n break;\r\n case \"scrollingEnabled\":\r\n case \"scrollByContent\":\r\n case \"showNavButtons\":\r\n this._setTabsOption(fullName, value);\r\n break;\r\n case \"focusedElement\":\r\n var id = value ? $(value).index() : value;\r\n var newItem = value ? this._tabs._itemElements().eq(id) : value;\r\n this._setTabsOption(\"focusedElement\", getPublicElement(newItem));\r\n this.callBase(args);\r\n break;\r\n case \"itemTitleTemplate\":\r\n this._setTabsOption(\"itemTemplate\", this._getTemplateByOption(\"itemTitleTemplate\"));\r\n break;\r\n case \"onTitleClick\":\r\n this._createTitleClickAction();\r\n this._setTabsOption(\"onItemClick\", this._titleClickAction.bind(this));\r\n break;\r\n case \"onTitleHold\":\r\n this._createTitleHoldAction();\r\n this._setTabsOption(\"onItemHold\", this._titleHoldAction.bind(this));\r\n break;\r\n case \"onTitleRendered\":\r\n this._createTitleRenderedAction();\r\n this._setTabsOption(\"onItemRendered\", this._titleRenderedAction.bind(this));\r\n break;\r\n case \"loop\":\r\n this._setTabsOption(\"loopItemFocus\", value);\r\n break;\r\n case \"badgeExpr\":\r\n this._invalidate();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _clean: function() {\r\n clearTimeout(this._resizeEventTimer);\r\n this.callBase()\r\n }\r\n});\r\nTabPanel.ItemClass = TabPanelItem;\r\nregisterComponent(\"dxTabPanel\", TabPanel);\r\nexport default TabPanel;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/text_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n getWindow\r\n} from \"../../core/utils/window\";\r\nvar window = getWindow();\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditor from \"./ui.text_editor\";\r\nimport {\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport {\r\n getOuterWidth,\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nvar ignoreKeys = [\"backspace\", \"tab\", \"enter\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"rightArrow\", \"downArrow\", \"upArrow\", \"del\"];\r\nvar TEXTBOX_CLASS = \"dx-textbox\";\r\nvar SEARCHBOX_CLASS = \"dx-searchbox\";\r\nvar ICON_CLASS = \"dx-icon\";\r\nvar SEARCH_ICON_CLASS = \"dx-icon-search\";\r\nvar TextBox = TextEditor.inherit({\r\n ctor: function(element, options) {\r\n if (options) {\r\n this._showClearButton = options.showClearButton\r\n }\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n value: \"\",\r\n mode: \"text\",\r\n maxLength: null\r\n })\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTBOX_CLASS);\r\n this.callBase();\r\n this.setAria(\"role\", \"textbox\")\r\n },\r\n _renderInputType: function() {\r\n this.callBase();\r\n this._renderSearchMode()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n },\r\n _renderProps: function() {\r\n this.callBase();\r\n this._toggleMaxLengthProp()\r\n },\r\n _toggleMaxLengthProp: function() {\r\n var maxLength = this._getMaxLength();\r\n if (maxLength && maxLength > 0) {\r\n this._input().attr(\"maxLength\", maxLength)\r\n } else {\r\n this._input().removeAttr(\"maxLength\")\r\n }\r\n },\r\n _renderSearchMode: function() {\r\n var $element = this._$element;\r\n if (\"search\" === this.option(\"mode\")) {\r\n $element.addClass(SEARCHBOX_CLASS);\r\n this._renderSearchIcon();\r\n if (void 0 === this._showClearButton) {\r\n this._showClearButton = this.option(\"showClearButton\");\r\n this.option(\"showClearButton\", true)\r\n }\r\n } else {\r\n $element.removeClass(SEARCHBOX_CLASS);\r\n this._$searchIcon && this._$searchIcon.remove();\r\n this.option(\"showClearButton\", void 0 === this._showClearButton ? this.option(\"showClearButton\") : this._showClearButton);\r\n delete this._showClearButton\r\n }\r\n },\r\n _renderSearchIcon: function() {\r\n var $searchIcon = $(\"<div>\").addClass(ICON_CLASS).addClass(SEARCH_ICON_CLASS);\r\n $searchIcon.prependTo(this._input().parent());\r\n this._$searchIcon = $searchIcon\r\n },\r\n _getLabelContainerWidth: function() {\r\n if (this._$searchIcon) {\r\n var $inputContainer = this._input().parent();\r\n return getWidth($inputContainer) - this._getLabelBeforeWidth()\r\n }\r\n return this.callBase()\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var labelBeforeWidth = this.callBase();\r\n if (this._$searchIcon) {\r\n labelBeforeWidth += getOuterWidth(this._$searchIcon)\r\n }\r\n return labelBeforeWidth\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"maxLength\":\r\n this._toggleMaxLengthProp();\r\n break;\r\n case \"mode\":\r\n this.callBase(args);\r\n this._updateLabelWidth();\r\n break;\r\n case \"mask\":\r\n this.callBase(args);\r\n this._toggleMaxLengthProp();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _onKeyDownCutOffHandler: function(e) {\r\n var actualMaxLength = this._getMaxLength();\r\n if (actualMaxLength && !e.ctrlKey && !this._hasSelection()) {\r\n var $input = $(e.target);\r\n var key = normalizeKeyName(e);\r\n this._cutOffExtraChar($input);\r\n return $input.val().length < actualMaxLength || ignoreKeys.includes(key) || \"\" !== window.getSelection().toString()\r\n } else {\r\n return true\r\n }\r\n },\r\n _onChangeCutOffHandler: function(e) {\r\n var $input = $(e.target);\r\n if (this.option(\"maxLength\")) {\r\n this._cutOffExtraChar($input)\r\n }\r\n },\r\n _cutOffExtraChar: function($input) {\r\n var actualMaxLength = this._getMaxLength();\r\n var textInput = $input.val();\r\n if (actualMaxLength && textInput.length > actualMaxLength) {\r\n $input.val(textInput.substr(0, actualMaxLength))\r\n }\r\n },\r\n _getMaxLength: function() {\r\n var isMaskSpecified = !!this.option(\"mask\");\r\n return isMaskSpecified ? null : this.option(\"maxLength\")\r\n }\r\n});\r\nregisterComponent(\"dxTextBox\", TextBox);\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/text_box.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TextBox from \"./text_box/text_box\";\r\nexport default TextBox;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/button.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nexport default class TextEditorButton {\r\n constructor(name, editor, options) {\r\n this.instance = null;\r\n this.$container = null;\r\n this.$placeMarker = null;\r\n this.editor = editor;\r\n this.name = name;\r\n this.options = options || {}\r\n }\r\n _addPlaceMarker($container) {\r\n this.$placeMarker = $(\"<div>\").appendTo($container)\r\n }\r\n _addToContainer($element) {\r\n var {\r\n $placeMarker: $placeMarker,\r\n $container: $container\r\n } = this;\r\n $placeMarker ? $placeMarker.replaceWith($element) : $element.appendTo($container)\r\n }\r\n _attachEvents() {\r\n throw \"Not implemented\"\r\n }\r\n _create() {\r\n throw \"Not implemented\"\r\n }\r\n _isRendered() {\r\n return !!this.instance\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor,\r\n options: options\r\n } = this;\r\n return options.visible || !editor.option(\"readOnly\")\r\n }\r\n _isDisabled() {\r\n throw \"Not implemented\"\r\n }\r\n _shouldRender() {\r\n return this._isVisible() && !this._isRendered()\r\n }\r\n dispose() {\r\n var {\r\n instance: instance,\r\n $placeMarker: $placeMarker\r\n } = this;\r\n if (instance) {\r\n instance.dispose ? instance.dispose() : instance.remove();\r\n this.instance = null\r\n }\r\n $placeMarker && $placeMarker.remove()\r\n }\r\n render() {\r\n var $container = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this.$container;\r\n this.$container = $container;\r\n if (this._isVisible()) {\r\n var {\r\n instance: instance,\r\n $element: $element\r\n } = this._create();\r\n this.instance = instance;\r\n this._attachEvents(instance, $element)\r\n } else {\r\n this._addPlaceMarker($container)\r\n }\r\n }\r\n update() {\r\n if (this._shouldRender()) {\r\n this.render()\r\n }\r\n return !!this.instance\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.support.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport devices from \"../../core/devices\";\r\nimport browser from \"../../core/utils/browser\";\r\n\r\nfunction isModernAndroidDevice() {\r\n var {\r\n android: android,\r\n version: version\r\n } = devices.real();\r\n return android && version[0] > 4\r\n}\r\nexport function isInputEventsL2Supported() {\r\n return \"onbeforeinput\" in domAdapter.createElement(\"input\") && !browser.chrome || isModernAndroidDevice()\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.rule.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n isFunction\r\n} from \"../../core/utils/type\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar EMPTY_CHAR = \" \";\r\nvar BaseMaskRule = Class.inherit({\r\n ctor: function(config) {\r\n this._value = EMPTY_CHAR;\r\n extend(this, config)\r\n },\r\n next: function(rule) {\r\n if (!arguments.length) {\r\n return this._next\r\n }\r\n this._next = rule\r\n },\r\n text: noop,\r\n value: noop,\r\n rawValue: noop,\r\n handle: noop,\r\n _prepareHandlingArgs: function(args, config) {\r\n var _config$str, _config$start, _config$length;\r\n config = config || {};\r\n var handlingProperty = Object.prototype.hasOwnProperty.call(args, \"value\") ? \"value\" : \"text\";\r\n args[handlingProperty] = null !== (_config$str = config.str) && void 0 !== _config$str ? _config$str : args[handlingProperty];\r\n args.start = null !== (_config$start = config.start) && void 0 !== _config$start ? _config$start : args.start;\r\n args.length = null !== (_config$length = config.length) && void 0 !== _config$length ? _config$length : args.length;\r\n args.index = args.index + 1;\r\n return args\r\n },\r\n reset: noop,\r\n clear: noop,\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n isAccepted: function() {\r\n return false\r\n },\r\n adjustedCaret: function(caret, isForwardDirection, char) {\r\n return isForwardDirection ? this._adjustedForward(caret, 0, char) : this._adjustedBackward(caret, 0, char)\r\n },\r\n _adjustedForward: noop,\r\n _adjustedBackward: noop,\r\n isValid: noop\r\n});\r\nexport var EmptyMaskRule = BaseMaskRule.inherit({\r\n next: noop,\r\n handle: function() {\r\n return 0\r\n },\r\n text: function() {\r\n return \"\"\r\n },\r\n value: function() {\r\n return \"\"\r\n },\r\n first: function() {\r\n return 0\r\n },\r\n rawValue: function() {\r\n return \"\"\r\n },\r\n adjustedCaret: function() {\r\n return 0\r\n },\r\n isValid: function() {\r\n return true\r\n }\r\n});\r\nexport var MaskRule = BaseMaskRule.inherit({\r\n text: function() {\r\n return (this._value !== EMPTY_CHAR ? this._value : this.maskChar) + this.next().text()\r\n },\r\n value: function() {\r\n return this._value + this.next().value()\r\n },\r\n rawValue: function() {\r\n return this._value + this.next().rawValue()\r\n },\r\n handle: function(args) {\r\n var str = Object.prototype.hasOwnProperty.call(args, \"value\") ? args.value : args.text;\r\n if (!str || !str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char, args);\r\n return this._accepted() ? this.next().handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n })) + 1 : this.handle(this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }))\r\n },\r\n clear: function(args) {\r\n this._tryAcceptChar(EMPTY_CHAR, args);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n reset: function() {\r\n this._accepted(false);\r\n this.next().reset()\r\n },\r\n _tryAcceptChar: function(char, args) {\r\n this._accepted(false);\r\n if (!this._isAllowed(char, args)) {\r\n return\r\n }\r\n var acceptedChar = char === EMPTY_CHAR ? this.maskChar : char;\r\n args.fullText = args.fullText.substring(0, args.index) + acceptedChar + args.fullText.substring(args.index + 1);\r\n this._accepted(true);\r\n this._value = char\r\n },\r\n _accepted: function(value) {\r\n if (!arguments.length) {\r\n return !!this._isAccepted\r\n }\r\n this._isAccepted = !!value\r\n },\r\n first: function(index) {\r\n return this._value === EMPTY_CHAR ? index || 0 : this.callBase(index)\r\n },\r\n _isAllowed: function(char, args) {\r\n if (char === EMPTY_CHAR) {\r\n return true\r\n }\r\n return this._isValid(char, args)\r\n },\r\n _isValid: function(char, args) {\r\n var allowedChars = this.allowedChars;\r\n if (allowedChars instanceof RegExp) {\r\n return allowedChars.test(char)\r\n }\r\n if (isFunction(allowedChars)) {\r\n return allowedChars(char, args.index, args.fullText)\r\n }\r\n if (Array.isArray(allowedChars)) {\r\n return allowedChars.includes(char)\r\n }\r\n return allowedChars === char\r\n },\r\n isAccepted: function(caret) {\r\n return 0 === caret ? this._accepted() : this.next().isAccepted(caret - 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret) {\r\n return index\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char) || index + 1\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return caret\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1) || index + 1\r\n },\r\n isValid: function(args) {\r\n return this._isValid(this._value, args) && this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\nexport var StubMaskRule = MaskRule.inherit({\r\n value: function() {\r\n return this.next().value()\r\n },\r\n handle: function(args) {\r\n var hasValueProperty = Object.prototype.hasOwnProperty.call(args, \"value\");\r\n var str = hasValueProperty ? args.value : args.text;\r\n if (!str.length || !args.length) {\r\n return 0\r\n }\r\n if (args.start || hasValueProperty) {\r\n return this.next().handle(this._prepareHandlingArgs(args, {\r\n start: args.start && args.start - 1\r\n }))\r\n }\r\n var char = str[0];\r\n var rest = str.substring(1);\r\n this._tryAcceptChar(char);\r\n var nextArgs = this._isAllowed(char) ? this._prepareHandlingArgs(args, {\r\n str: rest,\r\n length: args.length - 1\r\n }) : args;\r\n return this.next().handle(nextArgs) + 1\r\n },\r\n clear: function(args) {\r\n this._accepted(false);\r\n this.next().clear(this._prepareHandlingArgs(args))\r\n },\r\n _tryAcceptChar: function(char) {\r\n this._accepted(this._isValid(char))\r\n },\r\n _isValid: function(char) {\r\n return char === this.maskChar\r\n },\r\n first: function(index) {\r\n index = index || 0;\r\n return this.next().first(index + 1)\r\n },\r\n _adjustedForward: function(caret, index, char) {\r\n if (index >= caret && char === this.maskChar) {\r\n return index\r\n }\r\n if (caret === index + 1 && this._accepted()) {\r\n return caret\r\n }\r\n return this.next()._adjustedForward(caret, index + 1, char)\r\n },\r\n _adjustedBackward: function(caret, index) {\r\n if (index >= caret - 1) {\r\n return 0\r\n }\r\n return this.next()._adjustedBackward(caret, index + 1)\r\n },\r\n isValid: function(args) {\r\n return this.next().isValid(this._prepareHandlingArgs(args))\r\n }\r\n});\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.clear.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport TextEditorButton from \"./texteditor_button_collection/button\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointer from \"../../events/pointer\";\r\nimport {\r\n name as click\r\n} from \"../../events/click\";\r\nvar pointerDown = pointer.down;\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_CLEAR_BUTTON_CLASS = \"dx-clear-button-area\";\r\nvar TEXTEDITOR_CLEAR_ICON_CLASS = \"dx-icon-clear\";\r\nvar TEXTEDITOR_ICON_CLASS = \"dx-icon\";\r\nvar TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS = \"dx-show-clear-button\";\r\nexport default class ClearButton extends TextEditorButton {\r\n _create() {\r\n var $element = $(\"<span>\").addClass(TEXTEDITOR_CLEAR_BUTTON_CLASS).append($(\"<span>\").addClass(TEXTEDITOR_ICON_CLASS).addClass(TEXTEDITOR_CLEAR_ICON_CLASS));\r\n this._addToContainer($element);\r\n this.update(true);\r\n return {\r\n instance: $element,\r\n $element: $element\r\n }\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor._isClearButtonVisible()\r\n }\r\n _attachEvents(instance, $button) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var editorName = editor.NAME;\r\n eventsEngine.on($button, addNamespace(pointerDown, editorName), e => {\r\n e.preventDefault();\r\n if (\"mouse\" !== e.pointerType) {\r\n editor._clearValueHandler(e)\r\n }\r\n });\r\n eventsEngine.on($button, addNamespace(click, editorName), e => editor._clearValueHandler(e))\r\n }\r\n _legacyRender($editor, isVisible) {\r\n $editor.toggleClass(TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS, isVisible)\r\n }\r\n update() {\r\n var rendered = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : false;\r\n !rendered && super.update();\r\n var {\r\n editor: editor,\r\n instance: instance\r\n } = this;\r\n var $editor = editor.$element();\r\n var isVisible = this._isVisible();\r\n instance && instance.toggleClass(STATE_INVISIBLE_CLASS, !isVisible);\r\n this._legacyRender($editor, isVisible)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/custom.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport TextEditorButton from \"./button\";\r\nimport Button from \"../../button\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport eventsEngine from \"../../../events/core/events_engine\";\r\nimport {\r\n start,\r\n end\r\n} from \"../../../events/hover\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../../events/click\";\r\nvar CUSTOM_BUTTON_HOVERED_CLASS = \"dx-custom-button-hovered\";\r\nexport default class CustomButton extends TextEditorButton {\r\n _attachEvents(instance, $element) {\r\n var {\r\n editor: editor\r\n } = this;\r\n eventsEngine.on($element, start, () => {\r\n editor.$element().addClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, end, () => {\r\n editor.$element().removeClass(CUSTOM_BUTTON_HOVERED_CLASS)\r\n });\r\n eventsEngine.on($element, clickEventName, e => {\r\n e.stopPropagation()\r\n })\r\n }\r\n _create() {\r\n var {\r\n editor: editor\r\n } = this;\r\n var $element = $(\"<div>\");\r\n this._addToContainer($element);\r\n var instance = editor._createComponent($element, Button, extend({}, this.options, {\r\n ignoreParentReadOnly: true,\r\n disabled: this._isDisabled(),\r\n integrationOptions: this._prepareIntegrationOptions(editor)\r\n }));\r\n return {\r\n $element: $element,\r\n instance: instance\r\n }\r\n }\r\n _prepareIntegrationOptions(editor) {\r\n return extend({}, editor.option(\"integrationOptions\"), {\r\n skipTemplates: [\"content\"]\r\n })\r\n }\r\n update() {\r\n var isUpdated = super.update();\r\n if (this.instance) {\r\n this.instance.option(\"disabled\", this._isDisabled())\r\n }\r\n return isUpdated\r\n }\r\n _isVisible() {\r\n var {\r\n editor: editor\r\n } = this;\r\n return editor.option(\"visible\")\r\n }\r\n _isDisabled() {\r\n var isDefinedByUser = void 0 !== this.options.disabled;\r\n if (isDefinedByUser) {\r\n return this.instance ? this.instance.option(\"disabled\") : this.options.disabled\r\n } else {\r\n return this.editor.option(\"readOnly\")\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/texteditor_button_collection/index.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport CustomButton from \"./custom\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport errors from \"../../widget/ui.errors\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\n\r\nfunction checkButtonInfo(buttonInfo) {\r\n (() => {\r\n if (!buttonInfo || \"object\" !== typeof buttonInfo || Array.isArray(buttonInfo)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n })();\r\n (() => {\r\n if (!(\"name\" in buttonInfo)) {\r\n throw errors.Error(\"E1054\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n name: name\r\n } = buttonInfo;\r\n if (\"string\" !== typeof name) {\r\n throw errors.Error(\"E1055\")\r\n }\r\n })();\r\n (() => {\r\n var {\r\n location: location\r\n } = buttonInfo;\r\n if (\"location\" in buttonInfo && \"after\" !== location && \"before\" !== location) {\r\n buttonInfo.location = \"after\"\r\n }\r\n })()\r\n}\r\n\r\nfunction checkNamesUniqueness(existingNames, newName) {\r\n if (-1 !== existingNames.indexOf(newName)) {\r\n throw errors.Error(\"E1055\", newName)\r\n }\r\n existingNames.push(newName)\r\n}\r\n\r\nfunction isPredefinedButtonName(name, predefinedButtonsInfo) {\r\n return !!predefinedButtonsInfo.find(info => info.name === name)\r\n}\r\nexport default class TextEditorButtonCollection {\r\n constructor(editor, defaultButtonsInfo) {\r\n this.buttons = [];\r\n this.defaultButtonsInfo = defaultButtonsInfo;\r\n this.editor = editor\r\n }\r\n _compileButtonInfo(buttons) {\r\n var names = [];\r\n return buttons.map(button => {\r\n var isStringButton = \"string\" === typeof button;\r\n if (!isStringButton) {\r\n checkButtonInfo(button)\r\n }\r\n var isDefaultButton = isStringButton || isPredefinedButtonName(button.name, this.defaultButtonsInfo);\r\n if (isDefaultButton) {\r\n var defaultButtonInfo = this.defaultButtonsInfo.find(_ref => {\r\n var {\r\n name: name\r\n } = _ref;\r\n return name === button || name === button.name\r\n });\r\n if (!defaultButtonInfo) {\r\n throw errors.Error(\"E1056\", this.editor.NAME, button)\r\n }\r\n checkNamesUniqueness(names, button);\r\n return defaultButtonInfo\r\n } else {\r\n var {\r\n name: name\r\n } = button;\r\n checkNamesUniqueness(names, name);\r\n return extend(button, {\r\n Ctor: CustomButton\r\n })\r\n }\r\n })\r\n }\r\n _createButton(buttonsInfo) {\r\n var {\r\n Ctor: Ctor,\r\n options: options,\r\n name: name\r\n } = buttonsInfo;\r\n var button = new Ctor(name, this.editor, options);\r\n this.buttons.push(button);\r\n return button\r\n }\r\n _renderButtons(buttons, $container, targetLocation) {\r\n var $buttonsContainer = null;\r\n var buttonsInfo = buttons ? this._compileButtonInfo(buttons) : this.defaultButtonsInfo;\r\n buttonsInfo.forEach(buttonsInfo => {\r\n var {\r\n location: location = \"after\"\r\n } = buttonsInfo;\r\n if (location === targetLocation) {\r\n this._createButton(buttonsInfo).render((() => {\r\n $buttonsContainer = $buttonsContainer || $(\"<div>\").addClass(TEXTEDITOR_BUTTONS_CONTAINER_CLASS);\r\n \"before\" === targetLocation ? $container.prepend($buttonsContainer) : $container.append($buttonsContainer);\r\n return $buttonsContainer\r\n })())\r\n }\r\n });\r\n return $buttonsContainer\r\n }\r\n clean() {\r\n this.buttons.forEach(button => button.dispose());\r\n this.buttons = []\r\n }\r\n getButton(buttonName) {\r\n var button = this.buttons.find(_ref2 => {\r\n var {\r\n name: name\r\n } = _ref2;\r\n return name === buttonName\r\n });\r\n return button && button.instance\r\n }\r\n renderAfterButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"after\")\r\n }\r\n renderBeforeButtons(buttons, $container) {\r\n return this._renderButtons(buttons, $container, \"before\")\r\n }\r\n updateButtons(names) {\r\n this.buttons.forEach(button => {\r\n if (!names || -1 !== names.indexOf(button.name)) {\r\n button.update()\r\n }\r\n })\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.label.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nvar TEXTEDITOR_LABEL_CLASS = \"dx-texteditor-label\";\r\nvar TEXTEDITOR_WITH_LABEL_CLASS = \"dx-texteditor-with-label\";\r\nvar TEXTEDITOR_WITH_FLOATING_LABEL_CLASS = \"dx-texteditor-with-floating-label\";\r\nvar TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS = \"dx-texteditor-with-before-buttons\";\r\nvar LABEL_BEFORE_CLASS = \"dx-label-before\";\r\nvar LABEL_CLASS = \"dx-label\";\r\nvar LABEL_AFTER_CLASS = \"dx-label-after\";\r\nclass TextEditorLabel {\r\n constructor(_ref) {\r\n var {\r\n $editor: $editor,\r\n text: text,\r\n mode: mode,\r\n mark: mark,\r\n containsButtonsBefore: containsButtonsBefore,\r\n containerWidth: containerWidth,\r\n beforeWidth: beforeWidth\r\n } = _ref;\r\n this._props = {\r\n $editor: $editor,\r\n text: text,\r\n mode: mode,\r\n mark: mark,\r\n containsButtonsBefore: containsButtonsBefore,\r\n containerWidth: containerWidth,\r\n beforeWidth: beforeWidth\r\n };\r\n this._id = \"\".concat(TEXTEDITOR_LABEL_CLASS, \"-\").concat(new Guid);\r\n this._render();\r\n this._toggleMarkupVisibility()\r\n }\r\n _isVisible() {\r\n return !!this._props.text && \"hidden\" !== this._props.mode\r\n }\r\n _render() {\r\n this._$before = $(\"<div>\").addClass(LABEL_BEFORE_CLASS);\r\n this._$labelSpan = $(\"<span>\");\r\n this._$label = $(\"<div>\").addClass(LABEL_CLASS).append(this._$labelSpan);\r\n this._$after = $(\"<div>\").addClass(LABEL_AFTER_CLASS);\r\n this._$root = $(\"<div>\").addClass(TEXTEDITOR_LABEL_CLASS).attr(\"id\", this._id).append(this._$before).append(this._$label).append(this._$after);\r\n this._updateMark();\r\n this._updateText();\r\n this._updateBeforeWidth();\r\n this._updateMaxWidth()\r\n }\r\n _toggleMarkupVisibility() {\r\n var visible = this._isVisible();\r\n this._updateEditorBeforeButtonsClass(visible);\r\n this._updateEditorLabelClass(visible);\r\n visible ? this._$root.appendTo(this._props.$editor) : this._$root.detach()\r\n }\r\n _updateEditorLabelClass(visible) {\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_FLOATING_LABEL_CLASS).removeClass(TEXTEDITOR_WITH_LABEL_CLASS);\r\n if (visible) {\r\n var labelClass = \"floating\" === this._props.mode ? TEXTEDITOR_WITH_FLOATING_LABEL_CLASS : TEXTEDITOR_WITH_LABEL_CLASS;\r\n this._props.$editor.addClass(labelClass)\r\n }\r\n }\r\n _updateEditorBeforeButtonsClass() {\r\n var visible = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : this._isVisible();\r\n this._props.$editor.removeClass(TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS);\r\n if (visible) {\r\n var beforeButtonsClass = this._props.containsButtonsBefore ? TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS : \"\";\r\n this._props.$editor.addClass(beforeButtonsClass)\r\n }\r\n }\r\n _updateMark() {\r\n this._$labelSpan.attr(\"data-mark\", this._props.mark)\r\n }\r\n _updateText() {\r\n this._$labelSpan.text(this._props.text)\r\n }\r\n _updateBeforeWidth() {\r\n this._$before.css({\r\n width: this._props.beforeWidth\r\n })\r\n }\r\n _updateMaxWidth() {\r\n this._$label.css({\r\n maxWidth: this._props.containerWidth\r\n })\r\n }\r\n $element() {\r\n return this._$root\r\n }\r\n isVisible() {\r\n return this._isVisible()\r\n }\r\n getId() {\r\n if (this._isVisible()) {\r\n return this._id\r\n }\r\n }\r\n updateMode(mode) {\r\n this._props.mode = mode;\r\n this._toggleMarkupVisibility()\r\n }\r\n updateText(text) {\r\n this._props.text = text;\r\n this._updateText();\r\n this._toggleMarkupVisibility()\r\n }\r\n updateMark(mark) {\r\n this._props.mark = mark;\r\n this._updateMark()\r\n }\r\n updateContainsButtonsBefore(containsButtonsBefore) {\r\n this._props.containsButtonsBefore = containsButtonsBefore;\r\n this._updateEditorBeforeButtonsClass()\r\n }\r\n updateBeforeWidth(beforeWidth) {\r\n this._props.beforeWidth = beforeWidth;\r\n this._updateBeforeWidth()\r\n }\r\n updateMaxWidth(containerWidth) {\r\n this._props.containerWidth = containerWidth;\r\n this._updateMaxWidth()\r\n }\r\n}\r\nexport {\r\n TextEditorLabel\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n current,\r\n isMaterial\r\n} from \"../themes\";\r\nimport devices from \"../../core/devices\";\r\nimport Editor from \"../editor/editor\";\r\nimport {\r\n addNamespace,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport ClearButton from \"./ui.text_editor.clear\";\r\nimport TextEditorButtonCollection from \"./texteditor_button_collection/index\";\r\nimport config from \"../../core/config\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n TextEditorLabel\r\n} from \"./ui.text_editor.label\";\r\nimport {\r\n getWidth\r\n} from \"../../core/utils/size\";\r\nimport resizeObserverSingleton from \"../../core/resize_observer\";\r\nvar TEXTEDITOR_CLASS = \"dx-texteditor\";\r\nvar TEXTEDITOR_INPUT_CONTAINER_CLASS = \"dx-texteditor-input-container\";\r\nvar TEXTEDITOR_INPUT_CLASS = \"dx-texteditor-input\";\r\nvar TEXTEDITOR_INPUT_SELECTOR = \".\" + TEXTEDITOR_INPUT_CLASS;\r\nvar TEXTEDITOR_CONTAINER_CLASS = \"dx-texteditor-container\";\r\nvar TEXTEDITOR_BUTTONS_CONTAINER_CLASS = \"dx-texteditor-buttons-container\";\r\nvar TEXTEDITOR_PLACEHOLDER_CLASS = \"dx-placeholder\";\r\nvar TEXTEDITOR_EMPTY_INPUT_CLASS = \"dx-texteditor-empty\";\r\nvar STATE_INVISIBLE_CLASS = \"dx-state-invisible\";\r\nvar TEXTEDITOR_PENDING_INDICATOR_CLASS = \"dx-pending-indicator\";\r\nvar TEXTEDITOR_VALIDATION_PENDING_CLASS = \"dx-validation-pending\";\r\nvar TEXTEDITOR_VALID_CLASS = \"dx-valid\";\r\nvar EVENTS_LIST = [\"KeyDown\", \"KeyPress\", \"KeyUp\", \"Change\", \"Cut\", \"Copy\", \"Paste\", \"Input\"];\r\nvar CONTROL_KEYS = [\"tab\", \"enter\", \"shift\", \"control\", \"alt\", \"escape\", \"pageUp\", \"pageDown\", \"end\", \"home\", \"leftArrow\", \"upArrow\", \"rightArrow\", \"downArrow\"];\r\nvar TextEditorLabelCreator = TextEditorLabel;\r\n\r\nfunction checkButtonsOptionType(buttons) {\r\n if (isDefined(buttons) && !Array.isArray(buttons)) {\r\n throw errors.Error(\"E1053\")\r\n }\r\n}\r\nvar TextEditorBase = Editor.inherit({\r\n ctor: function(_, options) {\r\n if (options) {\r\n checkButtonsOptionType(options.buttons)\r\n }\r\n this._buttonCollection = new TextEditorButtonCollection(this, this._getDefaultButtons());\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._labelContainerElement = null;\r\n this.callBase.apply(this, arguments)\r\n },\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n buttons: void 0,\r\n value: \"\",\r\n spellcheck: false,\r\n showClearButton: false,\r\n valueChangeEvent: \"change\",\r\n placeholder: \"\",\r\n inputAttr: {},\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyDown: null,\r\n onKeyUp: null,\r\n onChange: null,\r\n onInput: null,\r\n onCut: null,\r\n onCopy: null,\r\n onPaste: null,\r\n onEnterKey: null,\r\n mode: \"text\",\r\n hoverStateEnabled: true,\r\n focusStateEnabled: true,\r\n text: void 0,\r\n displayValueFormatter: function(value) {\r\n return isDefined(value) && false !== value ? value : \"\"\r\n },\r\n stylingMode: config().editorStylingMode || \"outlined\",\r\n showValidationMark: true,\r\n label: \"\",\r\n labelMode: \"static\",\r\n labelMark: \"\"\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n var themeName = current();\r\n return this.callBase().concat([{\r\n device: function() {\r\n return isMaterial(themeName)\r\n },\r\n options: {\r\n stylingMode: config().editorStylingMode || \"filled\",\r\n labelMode: \"floating\"\r\n }\r\n }])\r\n },\r\n _getDefaultButtons: function() {\r\n return [{\r\n name: \"clear\",\r\n Ctor: ClearButton\r\n }]\r\n },\r\n _isClearButtonVisible: function() {\r\n return this.option(\"showClearButton\") && !this.option(\"readOnly\")\r\n },\r\n _input: function() {\r\n return this.$element().find(TEXTEDITOR_INPUT_SELECTOR).first()\r\n },\r\n _isFocused: function() {\r\n return focused(this._input()) || this.callBase()\r\n },\r\n _inputWrapper: function() {\r\n return this.$element()\r\n },\r\n _buttonsContainer: function() {\r\n return this._inputWrapper().find(\".\" + TEXTEDITOR_BUTTONS_CONTAINER_CLASS).eq(0)\r\n },\r\n _isControlKey: function(key) {\r\n return -1 !== CONTROL_KEYS.indexOf(key)\r\n },\r\n _renderStylingMode: function() {\r\n this.callBase();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n },\r\n _initMarkup: function() {\r\n this.$element().addClass(TEXTEDITOR_CLASS);\r\n this._renderInput();\r\n this._renderStylingMode();\r\n this._renderInputType();\r\n this._renderPlaceholder();\r\n this._renderProps();\r\n this.callBase();\r\n this._renderValue();\r\n this._renderLabel()\r\n },\r\n _render: function() {\r\n this.callBase();\r\n this._refreshValueChangeEvent();\r\n this._renderEvents();\r\n this._renderEnterKeyAction();\r\n this._renderEmptinessEvent()\r\n },\r\n _renderInput: function() {\r\n this._$buttonsContainer = this._$textEditorContainer = $(\"<div>\").addClass(TEXTEDITOR_CONTAINER_CLASS).appendTo(this.$element());\r\n this._$textEditorInputContainer = $(\"<div>\").addClass(TEXTEDITOR_INPUT_CONTAINER_CLASS).appendTo(this._$textEditorContainer);\r\n this._$textEditorInputContainer.append(this._createInput());\r\n this._renderButtonContainers()\r\n },\r\n _getInputContainer() {\r\n return this._$textEditorInputContainer\r\n },\r\n _renderPendingIndicator: function() {\r\n this.$element().addClass(TEXTEDITOR_VALIDATION_PENDING_CLASS);\r\n var $inputContainer = this._getInputContainer();\r\n var $indicatorElement = $(\"<div>\").addClass(TEXTEDITOR_PENDING_INDICATOR_CLASS).appendTo($inputContainer);\r\n this._pendingIndicator = this._createComponent($indicatorElement, LoadIndicator)\r\n },\r\n _disposePendingIndicator: function() {\r\n if (!this._pendingIndicator) {\r\n return\r\n }\r\n this._pendingIndicator.dispose();\r\n this._pendingIndicator.$element().remove();\r\n this._pendingIndicator = null;\r\n this.$element().removeClass(TEXTEDITOR_VALIDATION_PENDING_CLASS)\r\n },\r\n _renderValidationState: function() {\r\n this.callBase();\r\n var isPending = \"pending\" === this.option(\"validationStatus\");\r\n var $element = this.$element();\r\n if (isPending) {\r\n !this._pendingIndicator && this._renderPendingIndicator();\r\n this._showValidMark = false\r\n } else {\r\n if (\"invalid\" === this.option(\"validationStatus\")) {\r\n this._showValidMark = false\r\n }\r\n if (!this._showValidMark && true === this.option(\"showValidationMark\")) {\r\n this._showValidMark = \"valid\" === this.option(\"validationStatus\") && !!this._pendingIndicator\r\n }\r\n this._disposePendingIndicator()\r\n }\r\n $element.toggleClass(TEXTEDITOR_VALID_CLASS, !!this._showValidMark)\r\n },\r\n _renderButtonContainers: function() {\r\n var buttons = this.option(\"buttons\");\r\n this._$beforeButtonsContainer = this._buttonCollection.renderBeforeButtons(buttons, this._$buttonsContainer);\r\n this._$afterButtonsContainer = this._buttonCollection.renderAfterButtons(buttons, this._$buttonsContainer)\r\n },\r\n _cleanButtonContainers: function() {\r\n var _this$_$beforeButtons, _this$_$afterButtonsC;\r\n null === (_this$_$beforeButtons = this._$beforeButtonsContainer) || void 0 === _this$_$beforeButtons ? void 0 : _this$_$beforeButtons.remove();\r\n null === (_this$_$afterButtonsC = this._$afterButtonsContainer) || void 0 === _this$_$afterButtonsC ? void 0 : _this$_$afterButtonsC.remove();\r\n this._buttonCollection.clean()\r\n },\r\n _clean() {\r\n this._buttonCollection.clean();\r\n this._disposePendingIndicator();\r\n this._unobserveLabelContainerResize();\r\n this._$beforeButtonsContainer = null;\r\n this._$afterButtonsContainer = null;\r\n this._$textEditorContainer = null;\r\n this._$buttonsContainer = null;\r\n this.callBase()\r\n },\r\n _createInput: function() {\r\n var $input = $(\"<input>\");\r\n this._applyInputAttributes($input, this.option(\"inputAttr\"));\r\n return $input\r\n },\r\n _setSubmitElementName: function(name) {\r\n var inputAttrName = this.option(\"inputAttr.name\");\r\n return this.callBase(name || inputAttrName || \"\")\r\n },\r\n _applyInputAttributes: function($input, customAttributes) {\r\n var inputAttributes = extend(this._getDefaultAttributes(), customAttributes);\r\n $input.attr(inputAttributes).addClass(TEXTEDITOR_INPUT_CLASS).css(\"minHeight\", this.option(\"height\") ? \"0\" : \"\")\r\n },\r\n _getDefaultAttributes: function() {\r\n var defaultAttributes = {\r\n autocomplete: \"off\"\r\n };\r\n var {\r\n ios: ios,\r\n mac: mac\r\n } = devices.real();\r\n if (ios || mac) {\r\n defaultAttributes.placeholder = \" \"\r\n }\r\n return defaultAttributes\r\n },\r\n _updateButtons: function(names) {\r\n this._buttonCollection.updateButtons(names)\r\n },\r\n _updateButtonsStyling: function(editorStylingMode) {\r\n each(this.option(\"buttons\"), (_, _ref) => {\r\n var {\r\n options: options,\r\n name: buttonName\r\n } = _ref;\r\n if (options && !options.stylingMode && this.option(\"visible\")) {\r\n var buttonInstance = this.getButton(buttonName);\r\n buttonInstance.option && buttonInstance.option(\"stylingMode\", \"underlined\" === editorStylingMode ? \"text\" : \"contained\")\r\n }\r\n })\r\n },\r\n _renderValue: function() {\r\n var renderInputPromise = this._renderInputValue();\r\n return renderInputPromise.promise()\r\n },\r\n _renderInputValue: function(value) {\r\n var _value;\r\n value = null !== (_value = value) && void 0 !== _value ? _value : this.option(\"value\");\r\n var text = this.option(\"text\");\r\n var displayValue = this.option(\"displayValue\");\r\n var displayValueFormatter = this.option(\"displayValueFormatter\");\r\n if (void 0 !== displayValue && null !== value) {\r\n text = displayValueFormatter(displayValue)\r\n } else if (!isDefined(text)) {\r\n text = displayValueFormatter(value)\r\n }\r\n this.option(\"text\", text);\r\n if (this._input().val() !== (isDefined(text) ? text : \"\")) {\r\n this._renderDisplayText(text)\r\n } else {\r\n this._toggleEmptinessEventHandler()\r\n }\r\n return (new Deferred).resolve()\r\n },\r\n _renderDisplayText: function(text) {\r\n this._input().val(text);\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _isValueValid: function() {\r\n if (this._input().length) {\r\n var validity = this._input().get(0).validity;\r\n if (validity) {\r\n return validity.valid\r\n }\r\n }\r\n return true\r\n },\r\n _toggleEmptiness: function(isEmpty) {\r\n this.$element().toggleClass(TEXTEDITOR_EMPTY_INPUT_CLASS, isEmpty);\r\n this._togglePlaceholder(isEmpty)\r\n },\r\n _togglePlaceholder: function(isEmpty) {\r\n this.$element().find(\".\".concat(TEXTEDITOR_PLACEHOLDER_CLASS)).eq(0).toggleClass(STATE_INVISIBLE_CLASS, !isEmpty)\r\n },\r\n _renderProps: function() {\r\n this._toggleReadOnlyState();\r\n this._toggleSpellcheckState();\r\n this._toggleTabIndex()\r\n },\r\n _toggleDisabledState: function(value) {\r\n this.callBase.apply(this, arguments);\r\n var $input = this._input();\r\n $input.prop(\"disabled\", value)\r\n },\r\n _toggleTabIndex: function() {\r\n var $input = this._input();\r\n var disabled = this.option(\"disabled\");\r\n var focusStateEnabled = this.option(\"focusStateEnabled\");\r\n if (disabled || !focusStateEnabled) {\r\n $input.attr(\"tabIndex\", -1)\r\n } else {\r\n $input.removeAttr(\"tabIndex\")\r\n }\r\n },\r\n _toggleReadOnlyState: function() {\r\n this._input().prop(\"readOnly\", this._readOnlyPropValue());\r\n this.callBase()\r\n },\r\n _readOnlyPropValue: function() {\r\n return this.option(\"readOnly\")\r\n },\r\n _toggleSpellcheckState: function() {\r\n this._input().prop(\"spellcheck\", this.option(\"spellcheck\"))\r\n },\r\n _unobserveLabelContainerResize: function() {\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.unobserve(this._labelContainerElement);\r\n this._labelContainerElement = null\r\n }\r\n },\r\n _getLabelContainer: function() {\r\n return this._input()\r\n },\r\n _getLabelContainerWidth: function() {\r\n return getWidth(this._getLabelContainer())\r\n },\r\n _getLabelBeforeWidth: function() {\r\n var buttonsBeforeWidth = this._$beforeButtonsContainer && getWidth(this._$beforeButtonsContainer);\r\n return null !== buttonsBeforeWidth && void 0 !== buttonsBeforeWidth ? buttonsBeforeWidth : 0\r\n },\r\n _updateLabelWidth: function() {\r\n this._label.updateBeforeWidth(this._getLabelBeforeWidth());\r\n this._label.updateMaxWidth(this._getLabelContainerWidth())\r\n },\r\n _setLabelContainerAria: function() {\r\n this.setAria(\"labelledby\", this._label.getId(), this._getLabelContainer())\r\n },\r\n _renderLabel: function() {\r\n this._unobserveLabelContainerResize();\r\n this._labelContainerElement = $(this._getLabelContainer()).get(0);\r\n var {\r\n label: label,\r\n labelMode: labelMode,\r\n labelMark: labelMark\r\n } = this.option();\r\n var labelConfig = {\r\n $editor: this.$element(),\r\n text: label,\r\n mark: labelMark,\r\n mode: labelMode,\r\n containsButtonsBefore: !!this._$beforeButtonsContainer,\r\n containerWidth: this._getLabelContainerWidth(),\r\n beforeWidth: this._getLabelBeforeWidth()\r\n };\r\n this._label = new TextEditorLabelCreator(labelConfig);\r\n this._setLabelContainerAria();\r\n if (this._labelContainerElement) {\r\n resizeObserverSingleton.observe(this._labelContainerElement, this._updateLabelWidth.bind(this))\r\n }\r\n },\r\n _renderPlaceholder: function() {\r\n this._renderPlaceholderMarkup();\r\n this._attachPlaceholderEvents()\r\n },\r\n _renderPlaceholderMarkup: function() {\r\n if (this._$placeholder) {\r\n this._$placeholder.remove();\r\n this._$placeholder = null\r\n }\r\n var $input = this._input();\r\n var placeholderText = this.option(\"placeholder\");\r\n var $placeholder = this._$placeholder = $(\"<div>\").attr(\"data-dx_placeholder\", placeholderText);\r\n $placeholder.insertAfter($input);\r\n $placeholder.addClass(TEXTEDITOR_PLACEHOLDER_CLASS)\r\n },\r\n _attachPlaceholderEvents: function() {\r\n var startEvent = addNamespace(pointerEvents.up, this.NAME);\r\n eventsEngine.on(this._$placeholder, startEvent, () => {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n });\r\n this._toggleEmptinessEventHandler()\r\n },\r\n _placeholder: function() {\r\n return this._$placeholder || $()\r\n },\r\n _clearValueHandler: function(e) {\r\n var $input = this._input();\r\n e.stopPropagation();\r\n this._saveValueChangeEvent(e);\r\n this._clearValue();\r\n !this._isFocused() && eventsEngine.trigger($input, \"focus\");\r\n eventsEngine.trigger($input, \"input\")\r\n },\r\n _clearValue: function() {\r\n this.reset()\r\n },\r\n _renderEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n if (this.hasActionSubscription(\"on\" + event)) {\r\n var action = this._createActionByOption(\"on\" + event, {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.on($input, addNamespace(event.toLowerCase(), this.NAME), e => {\r\n if (this._disposed) {\r\n return\r\n }\r\n action({\r\n event: e\r\n })\r\n })\r\n }\r\n })\r\n },\r\n _refreshEvents: function() {\r\n var $input = this._input();\r\n each(EVENTS_LIST, (_, event) => {\r\n eventsEngine.off($input, addNamespace(event.toLowerCase(), this.NAME))\r\n });\r\n this._renderEvents()\r\n },\r\n _keyPressHandler: function() {\r\n this.option(\"text\", this._input().val())\r\n },\r\n _keyDownHandler: function(e) {\r\n var $input = this._input();\r\n var isCtrlEnter = e.ctrlKey && \"enter\" === normalizeKeyName(e);\r\n var isNewValue = $input.val() !== this.option(\"value\");\r\n if (isCtrlEnter && isNewValue) {\r\n eventsEngine.trigger($input, \"change\")\r\n }\r\n },\r\n _getValueChangeEventOptionName: function() {\r\n return \"valueChangeEvent\"\r\n },\r\n _renderValueChangeEvent: function() {\r\n var keyPressEvent = addNamespace(this._renderValueEventName(), \"\".concat(this.NAME, \"TextChange\"));\r\n var valueChangeEvent = addNamespace(this.option(this._getValueChangeEventOptionName()), \"\".concat(this.NAME, \"ValueChange\"));\r\n var keyDownEvent = addNamespace(\"keydown\", \"\".concat(this.NAME, \"TextChange\"));\r\n var $input = this._input();\r\n eventsEngine.on($input, keyPressEvent, this._keyPressHandler.bind(this));\r\n eventsEngine.on($input, valueChangeEvent, this._valueChangeEventHandler.bind(this));\r\n eventsEngine.on($input, keyDownEvent, this._keyDownHandler.bind(this))\r\n },\r\n _cleanValueChangeEvent: function() {\r\n var valueChangeNamespace = \".\".concat(this.NAME, \"ValueChange\");\r\n var textChangeNamespace = \".\".concat(this.NAME, \"TextChange\");\r\n eventsEngine.off(this._input(), valueChangeNamespace);\r\n eventsEngine.off(this._input(), textChangeNamespace)\r\n },\r\n _refreshValueChangeEvent: function() {\r\n this._cleanValueChangeEvent();\r\n this._renderValueChangeEvent()\r\n },\r\n _renderValueEventName: function() {\r\n return \"input change keypress\"\r\n },\r\n _focusTarget: function() {\r\n return this._input()\r\n },\r\n _focusEventTarget: function() {\r\n return this.element()\r\n },\r\n _isInput: function(element) {\r\n return element === this._input().get(0)\r\n },\r\n _preventNestedFocusEvent: function(event) {\r\n if (event.isDefaultPrevented()) {\r\n return true\r\n }\r\n var shouldPrevent = this._isNestedTarget(event.relatedTarget);\r\n if (\"focusin\" === event.type) {\r\n shouldPrevent = shouldPrevent && this._isNestedTarget(event.target) && !this._isInput(event.target)\r\n } else if (!shouldPrevent) {\r\n this._toggleFocusClass(false, this.$element())\r\n }\r\n shouldPrevent && event.preventDefault();\r\n return shouldPrevent\r\n },\r\n _isNestedTarget: function(target) {\r\n return !!this.$element().find(target).length\r\n },\r\n _focusClassTarget: function() {\r\n return this.$element()\r\n },\r\n _focusInHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _focusOutHandler: function(event) {\r\n this._preventNestedFocusEvent(event);\r\n this.callBase.apply(this, arguments)\r\n },\r\n _toggleFocusClass: function(isFocused, $element) {\r\n this.callBase(isFocused, this._focusClassTarget($element))\r\n },\r\n _hasFocusClass: function(element) {\r\n return this.callBase($(element || this.$element()))\r\n },\r\n _renderEmptinessEvent: function() {\r\n var $input = this._input();\r\n eventsEngine.on($input, \"input blur\", this._toggleEmptinessEventHandler.bind(this))\r\n },\r\n _toggleEmptinessEventHandler: function() {\r\n var text = this._input().val();\r\n var isEmpty = (\"\" === text || null === text) && this._isValueValid();\r\n this._toggleEmptiness(isEmpty)\r\n },\r\n _valueChangeEventHandler: function(e, formattedValue) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", arguments.length > 1 ? formattedValue : this._input().val());\r\n this._saveValueChangeEvent(void 0)\r\n },\r\n _renderEnterKeyAction: function() {\r\n this._enterKeyAction = this._createActionByOption(\"onEnterKey\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n eventsEngine.off(this._input(), \"keyup.onEnterKey.dxTextEditor\");\r\n eventsEngine.on(this._input(), \"keyup.onEnterKey.dxTextEditor\", this._enterKeyHandlerUp.bind(this))\r\n },\r\n _enterKeyHandlerUp: function(e) {\r\n if (this._disposed) {\r\n return\r\n }\r\n if (\"enter\" === normalizeKeyName(e)) {\r\n this._enterKeyAction({\r\n event: e\r\n })\r\n }\r\n },\r\n _updateValue: function() {\r\n this._options.silent(\"text\", null);\r\n this._renderValue()\r\n },\r\n _dispose: function() {\r\n this._enterKeyAction = void 0;\r\n this.callBase()\r\n },\r\n _getSubmitElement: function() {\r\n return this._input()\r\n },\r\n _hasActiveElement: function() {\r\n return this._input().is(domAdapter.getActiveElement(this._input()[0]))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = args;\r\n var eventName = name.replace(\"on\", \"\");\r\n if (EVENTS_LIST.includes(eventName)) {\r\n this._refreshEvents();\r\n return\r\n }\r\n switch (name) {\r\n case \"valueChangeEvent\":\r\n this._refreshValueChangeEvent();\r\n this._refreshFocusEvent();\r\n this._refreshEvents();\r\n break;\r\n case \"onValueChanged\":\r\n this._createValueChangeAction();\r\n break;\r\n case \"focusStateEnabled\":\r\n this.callBase(args);\r\n this._toggleTabIndex();\r\n break;\r\n case \"spellcheck\":\r\n this._toggleSpellcheckState();\r\n break;\r\n case \"mode\":\r\n this._renderInputType();\r\n break;\r\n case \"onEnterKey\":\r\n this._renderEnterKeyAction();\r\n break;\r\n case \"placeholder\":\r\n this._renderPlaceholder();\r\n break;\r\n case \"label\":\r\n this._label.updateText(value);\r\n this._setLabelContainerAria();\r\n break;\r\n case \"labelMark\":\r\n this._label.updateMark(value);\r\n break;\r\n case \"labelMode\":\r\n this._label.updateMode(value);\r\n this._setLabelContainerAria();\r\n break;\r\n case \"width\":\r\n this.callBase(args);\r\n this._label.updateMaxWidth(this._getLabelContainerWidth());\r\n break;\r\n case \"readOnly\":\r\n case \"disabled\":\r\n this._updateButtons();\r\n this.callBase(args);\r\n break;\r\n case \"showClearButton\":\r\n this._updateButtons([\"clear\"]);\r\n break;\r\n case \"text\":\r\n break;\r\n case \"value\":\r\n this._updateValue();\r\n this.callBase(args);\r\n break;\r\n case \"inputAttr\":\r\n this._applyInputAttributes(this._input(), this.option(name));\r\n break;\r\n case \"stylingMode\":\r\n this._renderStylingMode();\r\n this._updateLabelWidth();\r\n break;\r\n case \"buttons\":\r\n if (fullName === name) {\r\n checkButtonsOptionType(value)\r\n }\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"));\r\n this._updateLabelWidth();\r\n this._label.updateContainsButtonsBefore(!!this._$beforeButtonsContainer);\r\n break;\r\n case \"visible\":\r\n this.callBase(args);\r\n if (value && this.option(\"buttons\")) {\r\n this._cleanButtonContainers();\r\n this._renderButtonContainers();\r\n this._updateButtonsStyling(this.option(\"stylingMode\"))\r\n }\r\n break;\r\n case \"displayValueFormatter\":\r\n this._invalidate();\r\n break;\r\n case \"showValidationMark\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _renderInputType: function() {\r\n this._setInputType(this.option(\"mode\"))\r\n },\r\n _setInputType: function(type) {\r\n var input = this._input();\r\n if (\"search\" === type) {\r\n type = \"text\"\r\n }\r\n try {\r\n input.prop(\"type\", type)\r\n } catch (e) {\r\n input.prop(\"type\", \"text\")\r\n }\r\n },\r\n getButton(name) {\r\n return this._buttonCollection.getButton(name)\r\n },\r\n focus: function() {\r\n eventsEngine.trigger(this._input(), \"focus\")\r\n },\r\n reset: function() {\r\n if (this._showValidMark) {\r\n this._showValidMark = false;\r\n this._renderValidationState()\r\n }\r\n var defaultOptions = this._getDefaultOptions();\r\n if (this.option(\"value\") === defaultOptions.value) {\r\n this._options.silent(\"text\", \"\");\r\n this._renderValue()\r\n } else {\r\n this.option(\"value\", defaultOptions.value)\r\n }\r\n },\r\n on: function(eventName, eventHandler) {\r\n var result = this.callBase(eventName, eventHandler);\r\n var event = eventName.charAt(0).toUpperCase() + eventName.substr(1);\r\n if (EVENTS_LIST.indexOf(event) >= 0) {\r\n this._refreshEvents()\r\n }\r\n return result\r\n }\r\n});\r\nexport default TextEditorBase;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport EventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport browser from \"../../core/utils/browser\";\r\nimport {\r\n clipboardText as getClipboardText\r\n} from \"../../core/utils/dom\";\r\nvar MASK_EVENT_NAMESPACE = \"dxMask\";\r\nvar BLUR_EVENT = \"blur beforedeactivate\";\r\nvar EMPTY_CHAR = \" \";\r\nexport default class BaseMaskStrategy {\r\n constructor(editor) {\r\n this.editor = editor;\r\n this.DIRECTION = {\r\n FORWARD: \"forward\",\r\n BACKWARD: \"backward\"\r\n };\r\n this.NAME = this._getStrategyName()\r\n }\r\n _getStrategyName() {\r\n return \"base\"\r\n }\r\n editorOption() {\r\n return this.editor.option(...arguments)\r\n }\r\n editorInput() {\r\n return this.editor._input()\r\n }\r\n editorCaret(newCaret) {\r\n if (!newCaret) {\r\n return this.editor._caret()\r\n }\r\n this.editor._caret(newCaret)\r\n }\r\n getHandler(handlerName) {\r\n var handler = this[\"_\".concat(handlerName, \"Handler\")] || function() {};\r\n return handler.bind(this)\r\n }\r\n attachEvents() {\r\n var $input = this.editorInput();\r\n this.getHandleEventNames().forEach(eventName => {\r\n var subscriptionName = addNamespace(eventName.toLowerCase(), MASK_EVENT_NAMESPACE);\r\n EventsEngine.on($input, subscriptionName, this.getEventHandler(eventName))\r\n });\r\n this._attachChangeEventHandlers()\r\n }\r\n getHandleEventNames() {\r\n return [\"focusIn\", \"focusOut\", \"keyDown\", \"input\", \"paste\", \"cut\", \"drop\"]\r\n }\r\n getEventHandler(eventName) {\r\n return this[\"_\".concat(eventName, \"Handler\")].bind(this)\r\n }\r\n detachEvents() {\r\n EventsEngine.off(this.editorInput(), \".\".concat(MASK_EVENT_NAMESPACE))\r\n }\r\n _attachChangeEventHandlers() {\r\n if (!this.editorOption(\"valueChangeEvent\").split(\" \").includes(\"change\")) {\r\n return\r\n }\r\n EventsEngine.on(this.editorInput(), addNamespace(BLUR_EVENT, MASK_EVENT_NAMESPACE), function(e) {\r\n this._suppressCaretChanging(this._changeHandler, [e]);\r\n this._changeHandler(e)\r\n }.bind(this.editor))\r\n }\r\n _focusInHandler() {\r\n this.editor._showMaskPlaceholder();\r\n this.editor._direction(this.DIRECTION.FORWARD);\r\n if (!this.editor._isValueEmpty() && this.editorOption(\"isValid\")) {\r\n this.editor._adjustCaret()\r\n } else {\r\n var caret = this.editor._maskRulesChain.first();\r\n this._caretTimeout = setTimeout(function() {\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n }.bind(this.editor), 0)\r\n }\r\n }\r\n _focusOutHandler(event) {\r\n this.editor._changeHandler(event);\r\n if (\"onFocus\" === this.editorOption(\"showMaskMode\") && this.editor._isValueEmpty()) {\r\n this.editorOption(\"text\", \"\");\r\n this.editor._renderDisplayText(\"\")\r\n }\r\n }\r\n _cutHandler(event) {\r\n var caret = this.editorCaret();\r\n var selectedText = this.editorInput().val().substring(caret.start, caret.end);\r\n this.editor._maskKeyHandler(event, () => getClipboardText(event, selectedText))\r\n }\r\n _dropHandler() {\r\n this._clearDragTimer();\r\n this._dragTimer = setTimeout(function() {\r\n this.option(\"value\", this._convertToValue(this._input().val()))\r\n }.bind(this.editor))\r\n }\r\n _clearDragTimer() {\r\n clearTimeout(this._dragTimer)\r\n }\r\n _keyDownHandler() {\r\n this._keyPressHandled = false\r\n }\r\n _pasteHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n var caret = this.editorCaret();\r\n editor._maskKeyHandler(event, () => {\r\n var pastedText = getClipboardText(event);\r\n var restText = editor._maskRulesChain.text().substring(caret.end);\r\n var accepted = editor._handleChain({\r\n text: pastedText,\r\n start: caret.start,\r\n length: pastedText.length\r\n });\r\n var newCaret = caret.start + accepted;\r\n editor._handleChain({\r\n text: restText,\r\n start: newCaret,\r\n length: restText.length\r\n });\r\n editor._caret({\r\n start: newCaret,\r\n end: newCaret\r\n })\r\n })\r\n }\r\n _autoFillHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n var inputVal = this.editorInput().val();\r\n this._inputHandlerTimer = setTimeout(() => {\r\n this._keyPressHandled = true;\r\n if (this._isAutoFill()) {\r\n this._keyPressHandled = true;\r\n editor._maskKeyHandler(event, () => {\r\n editor._handleChain({\r\n text: inputVal,\r\n start: 0,\r\n length: inputVal.length\r\n })\r\n });\r\n editor._validateMask()\r\n }\r\n })\r\n }\r\n _isAutoFill() {\r\n var $input = this.editor._input();\r\n var result = false;\r\n if (browser.webkit) {\r\n var input = $input.get(0);\r\n result = input && input.matches(\":-webkit-autofill\")\r\n }\r\n return result\r\n }\r\n runWithoutEventProcessing(action) {\r\n var keyPressHandled = this._keyPressHandled;\r\n this._keyPressHandled = true;\r\n action();\r\n this._keyPressHandled = keyPressHandled\r\n }\r\n _backspaceHandler() {}\r\n _delHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n editor._maskKeyHandler(event, () => !editor._hasSelection() && editor._handleKey(EMPTY_CHAR))\r\n }\r\n clean() {\r\n this._clearDragTimer();\r\n clearTimeout(this._backspaceHandlerTimeout);\r\n clearTimeout(this._caretTimeout);\r\n clearTimeout(this._inputHandlerTimer)\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.default.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport BaseMaskStrategy from \"./ui.text_editor.mask.strategy.base\";\r\nimport {\r\n getChar\r\n} from \"../../events/utils/index\";\r\nvar BACKSPACE_INPUT_TYPE = \"deleteContentBackward\";\r\nvar EMPTY_CHAR = \" \";\r\nclass DefaultMaskStrategy extends BaseMaskStrategy {\r\n _getStrategyName() {\r\n return \"default\"\r\n }\r\n getHandleEventNames() {\r\n return [...super.getHandleEventNames(), \"keyPress\"]\r\n }\r\n _keyPressHandler(event) {\r\n if (this._keyPressHandled) {\r\n return\r\n }\r\n this._keyPressHandled = true;\r\n if (this.editor._isControlKeyFired(event)) {\r\n return\r\n }\r\n var {\r\n editor: editor\r\n } = this;\r\n editor._maskKeyHandler(event, () => editor._handleKey(getChar(event)))\r\n }\r\n _inputHandler(event) {\r\n if (this._backspaceInputHandled(event.originalEvent && event.originalEvent.inputType)) {\r\n this._handleBackspaceInput(event)\r\n }\r\n if (event.originalEvent) {\r\n this._autoFillHandler(event)\r\n }\r\n if (this._keyPressHandled) {\r\n return\r\n }\r\n this._keyPressHandled = true;\r\n var inputValue = this.editorInput().val();\r\n var caret = this.editorCaret();\r\n if (!caret.end) {\r\n return\r\n }\r\n caret.start = caret.end - 1;\r\n var oldValue = inputValue.substring(0, caret.start) + inputValue.substring(caret.end);\r\n var char = inputValue[caret.start];\r\n var {\r\n editor: editor\r\n } = this;\r\n this.editorInput().val(oldValue);\r\n editor._caret({\r\n start: caret.start,\r\n end: caret.start\r\n });\r\n editor._maskKeyHandler(event, () => editor._handleKey(char))\r\n }\r\n _backspaceHandler(event) {\r\n var {\r\n editor: editor\r\n } = this;\r\n this._keyPressHandled = true;\r\n var afterBackspaceHandler = (needAdjustCaret, callBack) => {\r\n if (needAdjustCaret) {\r\n editor._direction(this.DIRECTION.FORWARD);\r\n editor._adjustCaret()\r\n }\r\n var currentCaret = this.editorCaret();\r\n return new Promise(resolve => {\r\n clearTimeout(this._backspaceHandlerTimeout);\r\n this._backspaceHandlerTimeout = setTimeout((function() {\r\n callBack(currentCaret);\r\n resolve()\r\n }))\r\n })\r\n };\r\n editor._maskKeyHandler(event, () => {\r\n if (editor._hasSelection()) {\r\n return afterBackspaceHandler(true, currentCaret => {\r\n editor._displayMask(currentCaret);\r\n editor._maskRulesChain.reset()\r\n })\r\n }\r\n if (editor._tryMoveCaretBackward()) {\r\n return afterBackspaceHandler(false, currentCaret => {\r\n this.editorCaret(currentCaret)\r\n })\r\n }\r\n editor._handleKey(EMPTY_CHAR, this.DIRECTION.BACKWARD);\r\n return afterBackspaceHandler(true, currentCaret => {\r\n editor._displayMask(currentCaret);\r\n editor._maskRulesChain.reset()\r\n })\r\n })\r\n }\r\n _backspaceInputHandled(inputType) {\r\n return inputType === BACKSPACE_INPUT_TYPE && !this._keyPressHandled\r\n }\r\n _handleBackspaceInput(event) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this.editorCaret();\r\n this.editorCaret({\r\n start: start + 1,\r\n end: end + 1\r\n });\r\n this._backspaceHandler(event)\r\n }\r\n}\r\nexport default DefaultMaskStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.strategy.input_events.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport BaseMaskStrategy from \"./ui.text_editor.mask.strategy.base\";\r\nvar DELETE_INPUT_TYPE = \"deleteContentBackward\";\r\nclass InputEventsMaskStrategy extends BaseMaskStrategy {\r\n _getStrategyName() {\r\n return \"inputEvents\"\r\n }\r\n getHandleEventNames() {\r\n return [...super.getHandleEventNames(), \"beforeInput\"]\r\n }\r\n _beforeInputHandler() {\r\n this._prevCaret = this.editorCaret()\r\n }\r\n _inputHandler(_ref) {\r\n var {\r\n originalEvent: originalEvent\r\n } = _ref;\r\n if (!originalEvent) {\r\n return\r\n }\r\n var {\r\n inputType: inputType,\r\n data: data\r\n } = originalEvent;\r\n var currentCaret = this.editorCaret();\r\n if (inputType === DELETE_INPUT_TYPE) {\r\n var length = this._prevCaret.end - this._prevCaret.start || 1;\r\n this.editor.setBackwardDirection();\r\n this._updateEditorMask({\r\n start: currentCaret.start,\r\n length: length,\r\n text: this._getEmptyString(length)\r\n })\r\n } else {\r\n var _this$_prevCaret, _this$_prevCaret2, _this$_prevCaret3;\r\n if (!currentCaret.end) {\r\n return\r\n }\r\n this._autoFillHandler(originalEvent);\r\n this.editorCaret(currentCaret);\r\n var _length = (null === (_this$_prevCaret = this._prevCaret) || void 0 === _this$_prevCaret ? void 0 : _this$_prevCaret.end) - (null === (_this$_prevCaret2 = this._prevCaret) || void 0 === _this$_prevCaret2 ? void 0 : _this$_prevCaret2.start);\r\n var newData = data + (_length ? this._getEmptyString(_length - data.length) : \"\");\r\n this.editor.setForwardDirection();\r\n var hasValidChars = this._updateEditorMask({\r\n start: null === (_this$_prevCaret3 = this._prevCaret) || void 0 === _this$_prevCaret3 ? void 0 : _this$_prevCaret3.start,\r\n length: _length || newData.length,\r\n text: newData\r\n });\r\n if (!hasValidChars) {\r\n this.editorCaret(this._prevCaret)\r\n }\r\n }\r\n }\r\n _getEmptyString(length) {\r\n return Array(length + 1).join(\" \")\r\n }\r\n _updateEditorMask(args) {\r\n var textLength = args.text.length;\r\n var updatedCharsCount = this.editor._handleChain(args);\r\n if (this.editor.isForwardDirection()) {\r\n var {\r\n start: start,\r\n end: end\r\n } = this.editorCaret();\r\n var correction = updatedCharsCount - textLength;\r\n if (start <= updatedCharsCount && updatedCharsCount > 1) {\r\n this.editorCaret({\r\n start: start + correction,\r\n end: end + correction\r\n })\r\n }\r\n this.editor.isForwardDirection() && this.editor._adjustCaret()\r\n }\r\n this.editor._displayMask();\r\n return !!updatedCharsCount\r\n }\r\n}\r\nexport default InputEventsMaskStrategy;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.mask.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport caretUtils from \"./utils.caret\";\r\nimport {\r\n isInputEventsL2Supported\r\n} from \"./utils.support\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n addNamespace,\r\n createEvent,\r\n isCommandKeyPressed,\r\n normalizeKeyName\r\n} from \"../../events/utils/index\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focused\r\n} from \"../widget/selectors\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n isEmpty\r\n} from \"../../core/utils/string\";\r\nimport {\r\n name as wheelEventName\r\n} from \"../../events/core/wheel\";\r\nimport {\r\n EmptyMaskRule,\r\n StubMaskRule,\r\n MaskRule\r\n} from \"./ui.text_editor.mask.rule\";\r\nimport TextEditorBase from \"./ui.text_editor.base\";\r\nimport DefaultMaskStrategy from \"./ui.text_editor.mask.strategy.default\";\r\nimport InputEventsMaskStrategy from \"./ui.text_editor.mask.strategy.input_events\";\r\nvar stubCaret = function() {\r\n return {}\r\n};\r\nvar caret = caretUtils;\r\nvar EMPTY_CHAR = \" \";\r\nvar ESCAPED_CHAR = \"\\\\\";\r\nvar TEXTEDITOR_MASKED_CLASS = \"dx-texteditor-masked\";\r\nvar FORWARD_DIRECTION = \"forward\";\r\nvar BACKWARD_DIRECTION = \"backward\";\r\nvar buildInMaskRules = {\r\n 0: /[0-9]/,\r\n 9: /[0-9\\s]/,\r\n \"#\": /[-+0-9\\s]/,\r\n L: function(char) {\r\n return isLiteralChar(char)\r\n },\r\n l: function(char) {\r\n return isLiteralChar(char) || isSpaceChar(char)\r\n },\r\n C: /\\S/,\r\n c: /./,\r\n A: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char)\r\n },\r\n a: function(char) {\r\n return isLiteralChar(char) || isNumericChar(char) || isSpaceChar(char)\r\n }\r\n};\r\n\r\nfunction isNumericChar(char) {\r\n return /[0-9]/.test(char)\r\n}\r\n\r\nfunction isLiteralChar(char) {\r\n var code = char.charCodeAt();\r\n return 64 < code && code < 91 || 96 < code && code < 123 || code > 127\r\n}\r\n\r\nfunction isSpaceChar(char) {\r\n return \" \" === char\r\n}\r\nvar TextEditorMask = TextEditorBase.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n mask: \"\",\r\n maskChar: \"_\",\r\n maskRules: {},\r\n maskInvalidMessage: messageLocalization.format(\"validation-mask\"),\r\n useMaskedValue: false,\r\n showMaskMode: \"always\"\r\n })\r\n },\r\n _supportedKeys: function() {\r\n var that = this;\r\n var keyHandlerMap = {\r\n backspace: that._maskStrategy.getHandler(\"backspace\"),\r\n del: that._maskStrategy.getHandler(\"del\"),\r\n enter: that._changeHandler\r\n };\r\n var result = that.callBase();\r\n each(keyHandlerMap, (function(key, callback) {\r\n var parentHandler = result[key];\r\n result[key] = function(e) {\r\n that.option(\"mask\") && callback.call(that, e);\r\n parentHandler && parentHandler(e)\r\n }\r\n }));\r\n return result\r\n },\r\n _getSubmitElement: function() {\r\n return !this.option(\"mask\") ? this.callBase() : this._$hiddenElement\r\n },\r\n _init: function() {\r\n this.callBase();\r\n this._initMaskStrategy()\r\n },\r\n _initMaskStrategy: function() {\r\n this._maskStrategy = isInputEventsL2Supported() ? new InputEventsMaskStrategy(this) : new DefaultMaskStrategy(this)\r\n },\r\n _initMarkup: function() {\r\n this._renderHiddenElement();\r\n this.callBase()\r\n },\r\n _attachMouseWheelEventHandlers: function() {\r\n var hasMouseWheelHandler = this._onMouseWheel !== noop;\r\n if (!hasMouseWheelHandler) {\r\n return\r\n }\r\n var input = this._input();\r\n var eventName = addNamespace(wheelEventName, this.NAME);\r\n var mouseWheelAction = this._createAction(function(e) {\r\n var {\r\n event: event\r\n } = e;\r\n if (focused(input) && !isCommandKeyPressed(event)) {\r\n this._onMouseWheel(event);\r\n event.preventDefault();\r\n event.stopPropagation()\r\n }\r\n }.bind(this));\r\n eventsEngine.off(input, eventName);\r\n eventsEngine.on(input, eventName, (function(e) {\r\n mouseWheelAction({\r\n event: e\r\n })\r\n }))\r\n },\r\n _onMouseWheel: noop,\r\n _render: function() {\r\n this._renderMask();\r\n this.callBase();\r\n this._attachMouseWheelEventHandlers()\r\n },\r\n _renderHiddenElement: function() {\r\n if (this.option(\"mask\")) {\r\n this._$hiddenElement = $(\"<input>\").attr(\"type\", \"hidden\").appendTo(this._inputWrapper())\r\n }\r\n },\r\n _removeHiddenElement: function() {\r\n this._$hiddenElement && this._$hiddenElement.remove()\r\n },\r\n _renderMask: function() {\r\n this.$element().removeClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskRulesChain = null;\r\n this._maskStrategy.detachEvents();\r\n if (!this.option(\"mask\")) {\r\n return\r\n }\r\n this.$element().addClass(TEXTEDITOR_MASKED_CLASS);\r\n this._maskStrategy.attachEvents();\r\n this._parseMask();\r\n this._renderMaskedValue()\r\n },\r\n _suppressCaretChanging: function(callback, args) {\r\n caret = stubCaret;\r\n try {\r\n callback.apply(this, args)\r\n } finally {\r\n caret = caretUtils\r\n }\r\n },\r\n _changeHandler: function(e) {\r\n var $input = this._input();\r\n var inputValue = $input.val();\r\n if (inputValue === this._changedValue) {\r\n return\r\n }\r\n this._changedValue = inputValue;\r\n var changeEvent = createEvent(e, {\r\n type: \"change\"\r\n });\r\n eventsEngine.trigger($input, changeEvent)\r\n },\r\n _parseMask: function() {\r\n this._maskRules = extend({}, buildInMaskRules, this.option(\"maskRules\"));\r\n this._maskRulesChain = this._parseMaskRule(0)\r\n },\r\n _parseMaskRule: function(index) {\r\n var mask = this.option(\"mask\");\r\n if (index >= mask.length) {\r\n return new EmptyMaskRule\r\n }\r\n var currentMaskChar = mask[index];\r\n var isEscapedChar = currentMaskChar === ESCAPED_CHAR;\r\n var result = isEscapedChar ? new StubMaskRule({\r\n maskChar: mask[index + 1]\r\n }) : this._getMaskRule(currentMaskChar);\r\n result.next(this._parseMaskRule(index + 1 + isEscapedChar));\r\n return result\r\n },\r\n _getMaskRule: function(pattern) {\r\n var ruleConfig;\r\n each(this._maskRules, (function(rulePattern, allowedChars) {\r\n if (rulePattern === pattern) {\r\n ruleConfig = {\r\n pattern: rulePattern,\r\n allowedChars: allowedChars\r\n };\r\n return false\r\n }\r\n }));\r\n return isDefined(ruleConfig) ? new MaskRule(extend({\r\n maskChar: this.option(\"maskChar\")\r\n }, ruleConfig)) : new StubMaskRule({\r\n maskChar: pattern\r\n })\r\n },\r\n _renderMaskedValue: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var value = this.option(\"value\") || \"\";\r\n this._maskRulesChain.clear(this._normalizeChainArguments());\r\n var chainArgs = {\r\n length: value.length\r\n };\r\n chainArgs[this._isMaskedValueMode() ? \"text\" : \"value\"] = value;\r\n this._handleChain(chainArgs);\r\n this._displayMask()\r\n },\r\n _replaceSelectedText: function(text, selection, char) {\r\n if (void 0 === char) {\r\n return text\r\n }\r\n var textBefore = text.slice(0, selection.start);\r\n var textAfter = text.slice(selection.end);\r\n var edited = textBefore + char + textAfter;\r\n return edited\r\n },\r\n _isMaskedValueMode: function() {\r\n return this.option(\"useMaskedValue\")\r\n },\r\n _displayMask: function(caret) {\r\n caret = caret || this._caret();\r\n this._renderValue();\r\n this._caret(caret)\r\n },\r\n _isValueEmpty: function() {\r\n return isEmpty(this._value)\r\n },\r\n _shouldShowMask: function() {\r\n var showMaskMode = this.option(\"showMaskMode\");\r\n if (\"onFocus\" === showMaskMode) {\r\n return focused(this._input()) || !this._isValueEmpty()\r\n }\r\n return true\r\n },\r\n _showMaskPlaceholder: function() {\r\n if (this._shouldShowMask()) {\r\n var text = this._maskRulesChain.text();\r\n this.option(\"text\", text);\r\n if (\"onFocus\" === this.option(\"showMaskMode\")) {\r\n this._renderDisplayText(text)\r\n }\r\n }\r\n },\r\n _renderValue: function() {\r\n if (this._maskRulesChain) {\r\n this._showMaskPlaceholder();\r\n if (this._$hiddenElement) {\r\n var value = this._maskRulesChain.value();\r\n var submitElementValue = !isEmpty(value) ? this._getPreparedValue() : \"\";\r\n this._$hiddenElement.val(submitElementValue)\r\n }\r\n }\r\n return this.callBase()\r\n },\r\n _getPreparedValue: function() {\r\n return this._convertToValue().replace(/\\s+$/, \"\")\r\n },\r\n _valueChangeEventHandler: function(e) {\r\n if (!this._maskRulesChain) {\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n this._saveValueChangeEvent(e);\r\n this.option(\"value\", this._getPreparedValue())\r\n },\r\n _isControlKeyFired: function(e) {\r\n return this._isControlKey(normalizeKeyName(e)) || isCommandKeyPressed(e)\r\n },\r\n _handleChain: function(args) {\r\n var handledCount = this._maskRulesChain.handle(this._normalizeChainArguments(args));\r\n this._value = this._maskRulesChain.value();\r\n this._textValue = this._maskRulesChain.text();\r\n return handledCount\r\n },\r\n _normalizeChainArguments: function(args) {\r\n args = args || {};\r\n args.index = 0;\r\n args.fullText = this._maskRulesChain.text();\r\n return args\r\n },\r\n _convertToValue: function(text) {\r\n if (this._isMaskedValueMode()) {\r\n text = this._replaceMaskCharWithEmpty(text || this._textValue || \"\")\r\n } else {\r\n text = text || this._value || \"\"\r\n }\r\n return text\r\n },\r\n _replaceMaskCharWithEmpty: function(text) {\r\n return text.replace(new RegExp(this.option(\"maskChar\"), \"g\"), EMPTY_CHAR)\r\n },\r\n _maskKeyHandler: function(e, keyHandler) {\r\n if (this.option(\"readOnly\")) {\r\n return\r\n }\r\n this.setForwardDirection();\r\n e.preventDefault();\r\n this._handleSelection();\r\n var previousText = this._input().val();\r\n var raiseInputEvent = () => {\r\n if (previousText !== this._input().val()) {\r\n this._maskStrategy.runWithoutEventProcessing(() => eventsEngine.trigger(this._input(), \"input\"))\r\n }\r\n };\r\n var handled = keyHandler();\r\n if (handled) {\r\n handled.then(raiseInputEvent)\r\n } else {\r\n this.setForwardDirection();\r\n this._adjustCaret();\r\n this._displayMask();\r\n this._maskRulesChain.reset();\r\n raiseInputEvent()\r\n }\r\n },\r\n _handleKey: function(key, direction) {\r\n this._direction(direction || FORWARD_DIRECTION);\r\n this._adjustCaret(key);\r\n this._handleKeyChain(key);\r\n this._moveCaret()\r\n },\r\n _handleSelection: function() {\r\n if (!this._hasSelection()) {\r\n return\r\n }\r\n var caret = this._caret();\r\n var emptyChars = new Array(caret.end - caret.start + 1).join(EMPTY_CHAR);\r\n this._handleKeyChain(emptyChars)\r\n },\r\n _handleKeyChain: function(chars) {\r\n var caret = this._caret();\r\n var start = this.isForwardDirection() ? caret.start : caret.start - 1;\r\n var end = this.isForwardDirection() ? caret.end : caret.end - 1;\r\n var length = start === end ? 1 : end - start;\r\n this._handleChain({\r\n text: chars,\r\n start: start,\r\n length: length\r\n })\r\n },\r\n _tryMoveCaretBackward: function() {\r\n this.setBackwardDirection();\r\n var currentCaret = this._caret().start;\r\n this._adjustCaret();\r\n return !currentCaret || currentCaret !== this._caret().start\r\n },\r\n _adjustCaret: function(char) {\r\n var caretStart = this._caret().start;\r\n var isForwardDirection = this.isForwardDirection();\r\n var caret = this._maskRulesChain.adjustedCaret(caretStart, isForwardDirection, char);\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _moveCaret: function() {\r\n var currentCaret = this._caret().start;\r\n var maskRuleIndex = currentCaret + (this.isForwardDirection() ? 0 : -1);\r\n var caret = this._maskRulesChain.isAccepted(maskRuleIndex) ? currentCaret + (this.isForwardDirection() ? 1 : -1) : currentCaret;\r\n this._caret({\r\n start: caret,\r\n end: caret\r\n })\r\n },\r\n _caret: function(position, force) {\r\n var $input = this._input();\r\n if (!$input.length) {\r\n return\r\n }\r\n if (!arguments.length) {\r\n return caret($input)\r\n }\r\n caret($input, position, force)\r\n },\r\n _hasSelection: function() {\r\n var caret = this._caret();\r\n return caret.start !== caret.end\r\n },\r\n _direction: function(direction) {\r\n if (!arguments.length) {\r\n return this._typingDirection\r\n }\r\n this._typingDirection = direction\r\n },\r\n setForwardDirection: function() {\r\n this._direction(FORWARD_DIRECTION)\r\n },\r\n setBackwardDirection: function() {\r\n this._direction(BACKWARD_DIRECTION)\r\n },\r\n isForwardDirection: function() {\r\n return this._direction() === FORWARD_DIRECTION\r\n },\r\n _clean: function() {\r\n this._maskStrategy && this._maskStrategy.clean();\r\n this.callBase()\r\n },\r\n _validateMask: function() {\r\n if (!this._maskRulesChain) {\r\n return\r\n }\r\n var isValid = isEmpty(this.option(\"value\")) || this._maskRulesChain.isValid(this._normalizeChainArguments());\r\n this.option({\r\n isValid: isValid,\r\n validationError: isValid ? null : {\r\n editorSpecific: true,\r\n message: this.option(\"maskInvalidMessage\")\r\n }\r\n })\r\n },\r\n _updateHiddenElement: function() {\r\n this._removeHiddenElement();\r\n if (this.option(\"mask\")) {\r\n this._input().removeAttr(\"name\");\r\n this._renderHiddenElement()\r\n }\r\n this._setSubmitElementName(this.option(\"name\"))\r\n },\r\n _updateMaskOption: function() {\r\n this._updateHiddenElement();\r\n this._renderMask();\r\n this._validateMask()\r\n },\r\n _processEmptyMask: function(mask) {\r\n if (mask) {\r\n return\r\n }\r\n var value = this.option(\"value\");\r\n this.option({\r\n text: value,\r\n isValid: true\r\n });\r\n this.validationRequest.fire({\r\n value: value,\r\n editor: this\r\n });\r\n this._renderValue()\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"mask\":\r\n this._updateMaskOption();\r\n this._processEmptyMask(args.value);\r\n break;\r\n case \"maskChar\":\r\n case \"maskRules\":\r\n case \"useMaskedValue\":\r\n this._updateMaskOption();\r\n break;\r\n case \"value\":\r\n this._renderMaskedValue();\r\n this._validateMask();\r\n this.callBase(args);\r\n this._changedValue = this._input().val();\r\n break;\r\n case \"maskInvalidMessage\":\r\n break;\r\n case \"showMaskMode\":\r\n this.option(\"text\", \"\");\r\n this._renderValue();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/ui.text_editor.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport TextEditorMask from \"./ui.text_editor.mask\";\r\nregisterComponent(\"dxTextEditor\", TextEditorMask);\r\nexport default TextEditorMask;\r\n","/**\r\n * DevExtreme (esm/ui/text_box/utils.caret.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar {\r\n ios: ios,\r\n mac: mac\r\n} = devices.real();\r\nvar isFocusingOnCaretChange = ios || mac;\r\nvar getCaret = function(input) {\r\n var range;\r\n try {\r\n range = {\r\n start: input.selectionStart,\r\n end: input.selectionEnd\r\n }\r\n } catch (e) {\r\n range = {\r\n start: 0,\r\n end: 0\r\n }\r\n }\r\n return range\r\n};\r\nvar setCaret = function(input, position) {\r\n var body = domAdapter.getBody();\r\n if (!body.contains(input) && !body.contains(input.getRootNode().host)) {\r\n return\r\n }\r\n try {\r\n input.selectionStart = position.start;\r\n input.selectionEnd = position.end\r\n } catch (e) {}\r\n};\r\nvar caret = function(input, position) {\r\n var force = arguments.length > 2 && void 0 !== arguments[2] ? arguments[2] : false;\r\n input = $(input).get(0);\r\n if (!isDefined(position)) {\r\n return getCaret(input)\r\n }\r\n if (!force && isFocusingOnCaretChange && domAdapter.getActiveElement(input) !== input) {\r\n return\r\n }\r\n setCaret(input, position)\r\n};\r\nexport default caret;\r\n","/**\r\n * DevExtreme (esm/ui/themes.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../core/utils/size\";\r\nimport devices from \"../core/devices\";\r\nimport domAdapter from \"../core/dom_adapter\";\r\nimport $ from \"../core/renderer\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport {\r\n parseHTML\r\n} from \"../core/utils/html_parser\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport readyCallbacks from \"../core/utils/ready_callbacks\";\r\nimport {\r\n value as viewPortValue,\r\n changeCallback,\r\n originalViewPort\r\n} from \"../core/utils/view_port\";\r\nimport {\r\n getWindow,\r\n hasWindow\r\n} from \"../core/utils/window\";\r\nimport {\r\n themeReadyCallback\r\n} from \"./themes_callback\";\r\nimport errors from \"./widget/ui.errors\";\r\nvar window = getWindow();\r\nvar ready = readyCallbacks.add;\r\nvar viewPort = viewPortValue;\r\nvar viewPortChanged = changeCallback;\r\nvar initDeferred = new Deferred;\r\nvar DX_LINK_SELECTOR = \"link[rel=dx-theme]\";\r\nvar THEME_ATTR = \"data-theme\";\r\nvar ACTIVE_ATTR = \"data-active\";\r\nvar DX_HAIRLINES_CLASS = \"dx-hairlines\";\r\nvar ANY_THEME = \"any\";\r\nvar context;\r\nvar $activeThemeLink;\r\nvar knownThemes;\r\nvar currentThemeName;\r\nvar pendingThemeName;\r\nvar defaultTimeout = 15e3;\r\nvar THEME_MARKER_PREFIX = \"dx.\";\r\n\r\nfunction readThemeMarker() {\r\n if (!hasWindow()) {\r\n return null\r\n }\r\n var element = $(\"<div>\", context).addClass(\"dx-theme-marker\").appendTo(context.documentElement);\r\n var result;\r\n try {\r\n result = window.getComputedStyle(element.get(0)).fontFamily;\r\n if (!result) {\r\n return null\r\n }\r\n result = result.replace(/[\"']/g, \"\");\r\n if (result.substr(0, THEME_MARKER_PREFIX.length) !== THEME_MARKER_PREFIX) {\r\n return null\r\n }\r\n return result.substr(THEME_MARKER_PREFIX.length)\r\n } finally {\r\n element.remove()\r\n }\r\n}\r\nexport function waitForThemeLoad(themeName) {\r\n var waitStartTime;\r\n var timerId;\r\n var intervalCleared = true;\r\n pendingThemeName = themeName;\r\n\r\n function handleLoaded() {\r\n pendingThemeName = null;\r\n clearInterval(timerId);\r\n intervalCleared = true;\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty();\r\n initDeferred.resolve()\r\n }\r\n if (isPendingThemeLoaded() || !defaultTimeout) {\r\n handleLoaded()\r\n } else {\r\n if (!intervalCleared) {\r\n if (pendingThemeName) {\r\n pendingThemeName = themeName\r\n }\r\n return\r\n }\r\n waitStartTime = Date.now();\r\n intervalCleared = false;\r\n timerId = setInterval((function() {\r\n var isLoaded = isPendingThemeLoaded();\r\n var isTimeout = !isLoaded && Date.now() - waitStartTime > defaultTimeout;\r\n if (isTimeout) {\r\n errors.log(\"W0004\", pendingThemeName)\r\n }\r\n if (isLoaded || isTimeout) {\r\n handleLoaded()\r\n }\r\n }), 10)\r\n }\r\n}\r\nexport function isPendingThemeLoaded() {\r\n if (!pendingThemeName) {\r\n return true\r\n }\r\n var anyThemePending = pendingThemeName === ANY_THEME;\r\n if (\"resolved\" === initDeferred.state() && anyThemePending) {\r\n return true\r\n }\r\n var themeMarker = readThemeMarker();\r\n if (themeMarker && anyThemePending) {\r\n return true\r\n }\r\n return themeMarker === pendingThemeName\r\n}\r\n\r\nfunction processMarkup() {\r\n var $allThemeLinks = $(DX_LINK_SELECTOR, context);\r\n if (!$allThemeLinks.length) {\r\n return\r\n }\r\n knownThemes = {};\r\n $activeThemeLink = $(parseHTML(\"<link rel=stylesheet>\"), context);\r\n $allThemeLinks.each((function() {\r\n var link = $(this, context);\r\n var fullThemeName = link.attr(THEME_ATTR);\r\n var url = link.attr(\"href\");\r\n var isActive = \"true\" === link.attr(ACTIVE_ATTR);\r\n knownThemes[fullThemeName] = {\r\n url: url,\r\n isActive: isActive\r\n }\r\n }));\r\n $allThemeLinks.last().after($activeThemeLink);\r\n $allThemeLinks.remove()\r\n}\r\n\r\nfunction resolveFullThemeName(desiredThemeName) {\r\n var desiredThemeParts = desiredThemeName ? desiredThemeName.split(\".\") : [];\r\n var result = null;\r\n if (knownThemes) {\r\n if (desiredThemeName in knownThemes) {\r\n return desiredThemeName\r\n }\r\n each(knownThemes, (function(knownThemeName, themeData) {\r\n var knownThemeParts = knownThemeName.split(\".\");\r\n if (desiredThemeParts[0] && knownThemeParts[0] !== desiredThemeParts[0]) {\r\n return\r\n }\r\n if (desiredThemeParts[1] && desiredThemeParts[1] !== knownThemeParts[1]) {\r\n return\r\n }\r\n if (desiredThemeParts[2] && desiredThemeParts[2] !== knownThemeParts[2]) {\r\n return\r\n }\r\n if (!result || themeData.isActive) {\r\n result = knownThemeName\r\n }\r\n if (themeData.isActive) {\r\n return false\r\n }\r\n }))\r\n }\r\n return result\r\n}\r\n\r\nfunction initContext(newContext) {\r\n try {\r\n if (newContext !== context) {\r\n knownThemes = null\r\n }\r\n } catch (x) {\r\n knownThemes = null\r\n }\r\n context = newContext\r\n}\r\nexport function init(options) {\r\n options = options || {};\r\n initContext(options.context || domAdapter.getDocument());\r\n if (!context) {\r\n return\r\n }\r\n processMarkup();\r\n currentThemeName = void 0;\r\n current(options)\r\n}\r\nexport function current(options) {\r\n if (!arguments.length) {\r\n currentThemeName = currentThemeName || readThemeMarker();\r\n return currentThemeName\r\n }\r\n detachCssClasses(viewPort());\r\n options = options || {};\r\n if (\"string\" === typeof options) {\r\n options = {\r\n theme: options\r\n }\r\n }\r\n var isAutoInit = options._autoInit;\r\n var loadCallback = options.loadCallback;\r\n var currentThemeData;\r\n currentThemeName = resolveFullThemeName(options.theme || currentThemeName);\r\n if (currentThemeName) {\r\n currentThemeData = knownThemes[currentThemeName]\r\n }\r\n if (loadCallback) {\r\n themeReadyCallback.add(loadCallback)\r\n }\r\n if (currentThemeData) {\r\n $activeThemeLink.attr(\"href\", knownThemes[currentThemeName].url);\r\n if (themeReadyCallback.has() || \"resolved\" !== initDeferred.state() || options._forceTimeout) {\r\n waitForThemeLoad(currentThemeName)\r\n }\r\n } else if (isAutoInit) {\r\n if (hasWindow()) {\r\n waitForThemeLoad(ANY_THEME)\r\n }\r\n themeReadyCallback.fire();\r\n themeReadyCallback.empty()\r\n } else {\r\n throw errors.Error(\"E0021\", currentThemeName)\r\n }\r\n initDeferred.done(() => attachCssClasses(originalViewPort(), currentThemeName))\r\n}\r\n\r\nfunction getCssClasses(themeName) {\r\n themeName = themeName || current();\r\n var result = [];\r\n var themeNameParts = themeName && themeName.split(\".\");\r\n if (themeNameParts) {\r\n result.push(\"dx-theme-\" + themeNameParts[0], \"dx-theme-\" + themeNameParts[0] + \"-typography\");\r\n if (themeNameParts.length > 1) {\r\n result.push(\"dx-color-scheme-\" + themeNameParts[1] + (isMaterial(themeName) ? \"-\" + themeNameParts[2] : \"\"))\r\n }\r\n }\r\n return result\r\n}\r\nvar themeClasses;\r\nexport function attachCssClasses(element, themeName) {\r\n themeClasses = getCssClasses(themeName).join(\" \");\r\n $(element).addClass(themeClasses);\r\n ! function() {\r\n var pixelRatio = hasWindow() && window.devicePixelRatio;\r\n if (!pixelRatio || pixelRatio < 2) {\r\n return\r\n }\r\n var $tester = $(\"<div>\");\r\n $tester.css(\"border\", \".5px solid transparent\");\r\n $(\"body\").append($tester);\r\n if (1 === getOuterHeight($tester)) {\r\n $(element).addClass(DX_HAIRLINES_CLASS);\r\n themeClasses += \" \" + DX_HAIRLINES_CLASS\r\n }\r\n $tester.remove()\r\n }()\r\n}\r\nexport function detachCssClasses(element) {\r\n $(element).removeClass(themeClasses)\r\n}\r\n\r\nfunction themeReady(callback) {\r\n themeReadyCallback.add(callback)\r\n}\r\n\r\nfunction isTheme(themeRegExp, themeName) {\r\n if (!themeName) {\r\n themeName = currentThemeName || readThemeMarker()\r\n }\r\n return new RegExp(themeRegExp).test(themeName)\r\n}\r\nexport function isMaterial(themeName) {\r\n return isTheme(\"material\", themeName)\r\n}\r\nexport function isGeneric(themeName) {\r\n return isTheme(\"generic\", themeName)\r\n}\r\nexport function isDark(themeName) {\r\n return isTheme(\"dark\", themeName)\r\n}\r\nexport function isCompact(themeName) {\r\n return isTheme(\"compact\", themeName)\r\n}\r\nexport function isWebFontLoaded(text, fontWeight) {\r\n var document = domAdapter.getDocument();\r\n var testElement = document.createElement(\"span\");\r\n testElement.style.position = \"absolute\";\r\n testElement.style.top = \"-9999px\";\r\n testElement.style.left = \"-9999px\";\r\n testElement.style.visibility = \"hidden\";\r\n testElement.style.fontFamily = \"Arial\";\r\n testElement.style.fontSize = \"250px\";\r\n testElement.style.fontWeight = fontWeight;\r\n testElement.innerHTML = text;\r\n document.body.appendChild(testElement);\r\n var etalonFontWidth = testElement.offsetWidth;\r\n testElement.style.fontFamily = \"Roboto, RobotoFallback, Arial\";\r\n var testedFontWidth = testElement.offsetWidth;\r\n testElement.parentNode.removeChild(testElement);\r\n return etalonFontWidth !== testedFontWidth\r\n}\r\nexport function waitWebFont(text, fontWeight) {\r\n return new Promise(resolve => {\r\n var clear = () => {\r\n clearInterval(intervalId);\r\n clearTimeout(timeoutId);\r\n resolve()\r\n };\r\n var intervalId = setInterval(() => {\r\n if (isWebFontLoaded(text, fontWeight)) {\r\n clear()\r\n }\r\n }, 15);\r\n var timeoutId = setTimeout(clear, 2e3)\r\n })\r\n}\r\n\r\nfunction autoInit() {\r\n init({\r\n _autoInit: true,\r\n _forceTimeout: true\r\n });\r\n if ($(DX_LINK_SELECTOR, context).length) {\r\n throw errors.Error(\"E0022\")\r\n }\r\n}\r\nif (hasWindow()) {\r\n autoInit()\r\n} else {\r\n ready(autoInit)\r\n}\r\nviewPortChanged.add((function(viewPort, prevViewPort) {\r\n initDeferred.done((function() {\r\n detachCssClasses(prevViewPort);\r\n attachCssClasses(viewPort)\r\n }))\r\n}));\r\ndevices.changed.add((function() {\r\n init({\r\n _autoInit: true\r\n })\r\n}));\r\nexport {\r\n themeReady as ready\r\n};\r\nexport function resetTheme() {\r\n $activeThemeLink && $activeThemeLink.attr(\"href\", \"about:blank\");\r\n currentThemeName = null;\r\n pendingThemeName = null;\r\n initDeferred = new Deferred\r\n}\r\nexport function initialized(callback) {\r\n initDeferred.done(callback)\r\n}\r\nexport function setDefaultTimeout(timeout) {\r\n defaultTimeout = timeout\r\n}\r\nexport default {\r\n setDefaultTimeout: setDefaultTimeout,\r\n initialized: initialized,\r\n resetTheme: resetTheme,\r\n ready: themeReady,\r\n waitWebFont: waitWebFont,\r\n isWebFontLoaded: isWebFontLoaded,\r\n isCompact: isCompact,\r\n isDark: isDark,\r\n isGeneric: isGeneric,\r\n isMaterial: isMaterial,\r\n detachCssClasses: detachCssClasses,\r\n attachCssClasses: attachCssClasses,\r\n current: current,\r\n waitForThemeLoad: waitForThemeLoad,\r\n isPendingThemeLoaded: isPendingThemeLoaded\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/themes_callback.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nexport var themeReadyCallback = Callbacks();\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.utils.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nvar BUTTON_GROUP_CLASS = \"dx-buttongroup\";\r\nvar TOOLBAR_ITEMS = [\"dxAutocomplete\", \"dxButton\", \"dxCheckBox\", \"dxDateBox\", \"dxMenu\", \"dxSelectBox\", \"dxTabs\", \"dxTextBox\", \"dxButtonGroup\", \"dxDropDownButton\"];\r\nvar getItemInstance = function($element) {\r\n var itemData = $element.data && $element.data();\r\n var dxComponents = itemData && itemData.dxComponents;\r\n var widgetName = dxComponents && dxComponents[0];\r\n return widgetName && itemData[widgetName]\r\n};\r\nexport function toggleItemFocusableElementTabIndex(context, item) {\r\n var _itemData$options;\r\n if (!context) {\r\n return\r\n }\r\n var $item = context._findItemElementByItem(item);\r\n if (!$item.length) {\r\n return\r\n }\r\n var itemData = context._getItemData($item);\r\n var isItemNotFocusable = !!(null !== (_itemData$options = itemData.options) && void 0 !== _itemData$options && _itemData$options.disabled || itemData.disabled || context.option(\"disabled\"));\r\n var {\r\n widget: widget\r\n } = itemData;\r\n if (widget && -1 !== TOOLBAR_ITEMS.indexOf(widget)) {\r\n var $widget = $item.find(widget.toLowerCase().replace(\"dx\", \".dx-\"));\r\n if ($widget.length) {\r\n var _itemInstance$_focusT, _itemData$options2;\r\n var itemInstance = getItemInstance($widget);\r\n if (!itemInstance) {\r\n return\r\n }\r\n var $focusTarget = null === (_itemInstance$_focusT = itemInstance._focusTarget) || void 0 === _itemInstance$_focusT ? void 0 : _itemInstance$_focusT.call(itemInstance);\r\n if (\"dxDropDownButton\" === widget) {\r\n $focusTarget = $focusTarget && $focusTarget.find(\".\".concat(BUTTON_GROUP_CLASS))\r\n } else {\r\n var _$focusTarget;\r\n $focusTarget = null !== (_$focusTarget = $focusTarget) && void 0 !== _$focusTarget ? _$focusTarget : $(itemInstance.element())\r\n }\r\n var tabIndex = null === (_itemData$options2 = itemData.options) || void 0 === _itemData$options2 ? void 0 : _itemData$options2.tabIndex;\r\n if (isItemNotFocusable) {\r\n $focusTarget.attr(\"tabIndex\", -1)\r\n } else {\r\n $focusTarget.attr(\"tabIndex\", null !== tabIndex && void 0 !== tabIndex ? tabIndex : 0)\r\n }\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/strategy/toolbar.multiline.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nexport class MultiLineStrategy {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n _initMarkup() {}\r\n _updateMenuVisibility() {}\r\n _renderMenuItems() {}\r\n _renderItem() {}\r\n _getMenuItems() {}\r\n _getToolbarItems() {\r\n var _this$_toolbar$option;\r\n return null !== (_this$_toolbar$option = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option ? _this$_toolbar$option : []\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsWidth(this._toolbar.itemElements(), true)\r\n }\r\n _arrangeItems() {\r\n var $label = this._toolbar._$toolbarItemsContainer.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0);\r\n if (!$label.length) {\r\n return\r\n }\r\n var elementWidth = getWidth(this._toolbar.$element());\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", elementWidth - labelPaddings)\r\n }\r\n _hideOverflowItems() {}\r\n _dimensionChanged() {}\r\n _itemOptionChanged() {}\r\n _optionChanged() {}\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/internal/ui.toolbar.menu.list.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n ListBase\r\n} from \"../../list/ui.list.base\";\r\nvar TOOLBAR_MENU_ACTION_CLASS = \"dx-toolbar-menu-action\";\r\nvar TOOLBAR_HIDDEN_BUTTON_CLASS = \"dx-toolbar-hidden-button\";\r\nvar TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS = \"dx-toolbar-hidden-button-group\";\r\nvar TOOLBAR_MENU_SECTION_CLASS = \"dx-toolbar-menu-section\";\r\nvar TOOLBAR_MENU_CUSTOM_CLASS = \"dx-toolbar-menu-custom\";\r\nvar TOOLBAR_MENU_LAST_SECTION_CLASS = \"dx-toolbar-menu-last-section\";\r\nexport default class ToolbarMenuList extends ListBase {\r\n _init() {\r\n super._init();\r\n this._activeStateUnit = \".\".concat(TOOLBAR_MENU_ACTION_CLASS, \":not(.\").concat(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS, \")\")\r\n }\r\n _initMarkup() {\r\n this._renderSections();\r\n super._initMarkup()\r\n }\r\n _getSections() {\r\n return this._itemContainer().children()\r\n }\r\n _itemElements() {\r\n return this._getSections().children(this._itemSelector())\r\n }\r\n _renderSections() {\r\n var $container = this._itemContainer();\r\n each([\"before\", \"center\", \"after\", \"menu\"], (_, section) => {\r\n var sectionName = \"_$\".concat(section, \"Section\");\r\n if (!this[sectionName]) {\r\n this[sectionName] = $(\"<div>\").addClass(TOOLBAR_MENU_SECTION_CLASS)\r\n }\r\n this[sectionName].appendTo($container)\r\n })\r\n }\r\n _renderItems() {\r\n super._renderItems.apply(this, arguments);\r\n this._updateSections()\r\n }\r\n _updateSections() {\r\n var $sections = this.$element().find(\".\".concat(TOOLBAR_MENU_SECTION_CLASS));\r\n $sections.removeClass(TOOLBAR_MENU_LAST_SECTION_CLASS);\r\n $sections.not(\":empty\").eq(-1).addClass(TOOLBAR_MENU_LAST_SECTION_CLASS)\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var _item$location;\r\n var location = null !== (_item$location = item.location) && void 0 !== _item$location ? _item$location : \"menu\";\r\n var $container = this[\"_$\".concat(location, \"Section\")];\r\n var itemElement = super._renderItem(index, item, $container, $after);\r\n if (this._getItemTemplateName({\r\n itemData: item\r\n })) {\r\n itemElement.addClass(TOOLBAR_MENU_CUSTOM_CLASS)\r\n }\r\n if (\"menu\" === location || \"dxButton\" === item.widget || \"dxButtonGroup\" === item.widget || item.isAction) {\r\n itemElement.addClass(TOOLBAR_MENU_ACTION_CLASS)\r\n }\r\n if (\"dxButton\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_CLASS)\r\n }\r\n if (\"dxButtonGroup\" === item.widget) {\r\n itemElement.addClass(TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS)\r\n }\r\n itemElement.addClass(item.cssClass);\r\n return itemElement\r\n }\r\n _getItemTemplateName(args) {\r\n var template = super._getItemTemplateName(args);\r\n var data = args.itemData;\r\n var menuTemplate = data && data.menuItemTemplate;\r\n return menuTemplate || template\r\n }\r\n _dataSourceOptions() {\r\n return {\r\n paginate: false\r\n }\r\n }\r\n _itemClickHandler(e, args, config) {\r\n if ($(e.target).closest(\".\".concat(TOOLBAR_MENU_ACTION_CLASS)).length) {\r\n super._itemClickHandler(e, args, config)\r\n }\r\n }\r\n _getAriaTarget() {\r\n var _this$option;\r\n return null !== (_this$option = this.option(\"_areaTarget\")) && void 0 !== _this$option ? _this$option : super._getAriaTarget()\r\n }\r\n _clean() {\r\n this._getSections().empty();\r\n super._clean()\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/internal/ui.toolbar.menu.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterHeight\r\n} from \"../../../core/utils/size\";\r\nimport $ from \"../../../core/renderer\";\r\nimport devices from \"../../../core/devices\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport Widget from \"../../widget/ui.widget\";\r\nimport Button from \"../../button\";\r\nimport ToolbarMenuList from \"./ui.toolbar.menu.list\";\r\nimport {\r\n isMaterial\r\n} from \"../../themes\";\r\nimport {\r\n ChildDefaultTemplate\r\n} from \"../../../core/templates/child_default_template\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"../ui.toolbar.utils\";\r\nimport {\r\n getWindow\r\n} from \"../../../core/utils/window\";\r\nimport \"../../popup\";\r\nvar DROP_DOWN_MENU_CLASS = \"dx-dropdownmenu\";\r\nvar DROP_DOWN_MENU_POPUP_CLASS = \"dx-dropdownmenu-popup\";\r\nvar DROP_DOWN_MENU_POPUP_WRAPPER_CLASS = \"dx-dropdownmenu-popup-wrapper\";\r\nvar DROP_DOWN_MENU_LIST_CLASS = \"dx-dropdownmenu-list\";\r\nvar DROP_DOWN_MENU_BUTTON_CLASS = \"dx-dropdownmenu-button\";\r\nvar POPUP_BOUNDARY_VERTICAL_OFFSET = 10;\r\nvar POPUP_VERTICAL_OFFSET = 3;\r\nexport default class DropDownMenu extends Widget {\r\n _supportedKeys() {\r\n var extension = {};\r\n if (!this.option(\"opened\") || !this._list.option(\"focusedElement\")) {\r\n extension = this._button._supportedKeys()\r\n }\r\n return extend(super._supportedKeys(), extension, {\r\n tab: function() {\r\n this._popup && this._popup.hide()\r\n }\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n items: [],\r\n onItemClick: null,\r\n dataSource: null,\r\n itemTemplate: \"item\",\r\n onButtonClick: null,\r\n activeStateEnabled: true,\r\n hoverStateEnabled: true,\r\n opened: false,\r\n onItemRendered: null,\r\n closeOnClick: true,\r\n useInkRipple: false,\r\n container: void 0,\r\n animation: {\r\n show: {\r\n type: \"fade\",\r\n from: 0,\r\n to: 1\r\n },\r\n hide: {\r\n type: \"fade\",\r\n to: 0\r\n }\r\n }\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n return \"desktop\" === devices.real().deviceType && !devices.isSimulator()\r\n },\r\n options: {\r\n focusStateEnabled: true\r\n }\r\n }, {\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useInkRipple: true,\r\n animation: {\r\n show: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 0\r\n },\r\n to: {\r\n scale: 1\r\n }\r\n },\r\n hide: {\r\n type: \"pop\",\r\n duration: 200,\r\n from: {\r\n scale: 1\r\n },\r\n to: {\r\n scale: 0\r\n }\r\n }\r\n }\r\n }\r\n }])\r\n }\r\n _init() {\r\n super._init();\r\n this.$element().addClass(DROP_DOWN_MENU_CLASS);\r\n this._initItemClickAction();\r\n this._initButtonClickAction()\r\n }\r\n _initItemClickAction() {\r\n this._itemClickAction = this._createActionByOption(\"onItemClick\")\r\n }\r\n _initButtonClickAction() {\r\n this._buttonClickAction = this._createActionByOption(\"onButtonClick\")\r\n }\r\n _initTemplates() {\r\n this._templateManager.addDefaultTemplates({\r\n content: new ChildDefaultTemplate(\"content\")\r\n });\r\n super._initTemplates()\r\n }\r\n _initMarkup() {\r\n this._renderButton();\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this.setAria({\r\n role: \"menubar\",\r\n haspopup: true,\r\n expanded: this.option(\"opened\")\r\n })\r\n }\r\n _renderContentImpl() {\r\n if (this.option(\"opened\")) {\r\n this._renderPopup()\r\n }\r\n }\r\n _clean() {\r\n this._cleanFocusState();\r\n this._list && this._list.$element().remove();\r\n this._popup && this._popup.$element().remove();\r\n delete this._list;\r\n delete this._popup\r\n }\r\n _renderButton() {\r\n var $button = this.$element().addClass(DROP_DOWN_MENU_BUTTON_CLASS);\r\n this._button = this._createComponent($button, Button, {\r\n icon: \"overflow\",\r\n template: \"content\",\r\n useInkRipple: this.option(\"useInkRipple\"),\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n onClick: e => {\r\n this.option(\"opened\", !this.option(\"opened\"));\r\n this._buttonClickAction(e)\r\n }\r\n })\r\n }\r\n _toggleActiveState($element, value, e) {\r\n this._button._toggleActiveState($element, value, e)\r\n }\r\n _toggleMenuVisibility(opened) {\r\n var state = null !== opened && void 0 !== opened ? opened : !this._popup.option(\"visible\");\r\n if (opened) {\r\n this._renderPopup()\r\n }\r\n this._popup.toggle(state);\r\n this.setAria(\"expanded\", state)\r\n }\r\n _renderPopup() {\r\n if (this._$popup) {\r\n return\r\n }\r\n this._$popup = $(\"<div>\").appendTo(this.$element());\r\n var {\r\n rtlEnabled: rtlEnabled,\r\n container: container,\r\n animation: animation\r\n } = this.option();\r\n this._popup = this._createComponent(this._$popup, \"dxPopup\", {\r\n onInitialized(_ref) {\r\n var {\r\n component: component\r\n } = _ref;\r\n component.$wrapper().addClass(DROP_DOWN_MENU_POPUP_WRAPPER_CLASS).addClass(DROP_DOWN_MENU_POPUP_CLASS)\r\n },\r\n deferRendering: false,\r\n contentTemplate: contentElement => this._renderList(contentElement),\r\n _ignoreFunctionValueDeprecation: true,\r\n maxHeight: () => this._getMaxHeight(),\r\n position: {\r\n my: \"top \".concat(rtlEnabled ? \"left\" : \"right\"),\r\n at: \"bottom \".concat(rtlEnabled ? \"left\" : \"right\"),\r\n collision: \"fit flip\",\r\n offset: {\r\n v: POPUP_VERTICAL_OFFSET\r\n },\r\n of: this.$element()\r\n },\r\n animation: animation,\r\n onOptionChanged: _ref2 => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref2;\r\n if (\"visible\" === name) {\r\n this.option(\"opened\", value)\r\n }\r\n },\r\n container: container,\r\n autoResizeEnabled: false,\r\n height: \"auto\",\r\n width: \"auto\",\r\n hideOnOutsideClick: e => this._closeOutsideDropDownHandler(e),\r\n hideOnParentScroll: true,\r\n shading: false,\r\n dragEnabled: false,\r\n showTitle: false,\r\n fullScreen: false,\r\n _fixWrapperPosition: true\r\n })\r\n }\r\n _getMaxHeight() {\r\n var $element = this.$element();\r\n var offsetTop = $element.offset().top;\r\n var windowHeight = getOuterHeight(getWindow());\r\n var maxHeight = Math.max(offsetTop, windowHeight - offsetTop - getOuterHeight($element));\r\n return Math.min(windowHeight, maxHeight - POPUP_VERTICAL_OFFSET - POPUP_BOUNDARY_VERTICAL_OFFSET)\r\n }\r\n _closeOutsideDropDownHandler(e) {\r\n var isOutsideClick = !$(e.target).closest(this.$element()).length;\r\n return isOutsideClick\r\n }\r\n _renderList(contentElement) {\r\n var $content = $(contentElement);\r\n $content.addClass(DROP_DOWN_MENU_LIST_CLASS);\r\n this._list = this._createComponent($content, ToolbarMenuList, {\r\n dataSource: this._getListDataSource(),\r\n pageLoadMode: \"scrollBottom\",\r\n indicateLoading: false,\r\n noDataText: \"\",\r\n itemTemplate: this.option(\"itemTemplate\"),\r\n onItemClick: e => {\r\n if (this.option(\"closeOnClick\")) {\r\n this.option(\"opened\", false)\r\n }\r\n this._itemClickAction(e)\r\n },\r\n tabIndex: -1,\r\n focusStateEnabled: false,\r\n activeStateEnabled: true,\r\n onItemRendered: this.option(\"onItemRendered\"),\r\n _areaTarget: this.$element(),\r\n _itemAttributes: {\r\n role: \"menuitem\"\r\n }\r\n })\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n var _this$_list;\r\n null === (_this$_list = this._list) || void 0 === _this$_list ? void 0 : _this$_list._itemOptionChanged(item, property, value);\r\n toggleItemFocusableElementTabIndex(this._list, item)\r\n }\r\n _getListDataSource() {\r\n var _this$option;\r\n return null !== (_this$option = this.option(\"dataSource\")) && void 0 !== _this$option ? _this$option : this.option(\"items\")\r\n }\r\n _setListDataSource() {\r\n var _this$_list2;\r\n null === (_this$_list2 = this._list) || void 0 === _this$_list2 ? void 0 : _this$_list2.option(\"dataSource\", this._getListDataSource());\r\n delete this._deferRendering\r\n }\r\n _getKeyboardListeners() {\r\n return super._getKeyboardListeners().concat([this._list])\r\n }\r\n _toggleVisibility(visible) {\r\n super._toggleVisibility(visible);\r\n this._button.option(\"visible\", visible)\r\n }\r\n _optionChanged(args) {\r\n var _this$_list3, _this$_list4, _this$_list5;\r\n var {\r\n name: name,\r\n value: value\r\n } = args;\r\n switch (name) {\r\n case \"items\":\r\n case \"dataSource\":\r\n if (!this.option(\"opened\")) {\r\n this._deferRendering = true\r\n } else {\r\n this._setListDataSource()\r\n }\r\n break;\r\n case \"itemTemplate\":\r\n null === (_this$_list3 = this._list) || void 0 === _this$_list3 ? void 0 : _this$_list3.option(name, this._getTemplate(value));\r\n break;\r\n case \"onItemClick\":\r\n this._initItemClickAction();\r\n break;\r\n case \"onButtonClick\":\r\n this._buttonClickAction();\r\n break;\r\n case \"useInkRipple\":\r\n this._invalidate();\r\n break;\r\n case \"focusStateEnabled\":\r\n null === (_this$_list4 = this._list) || void 0 === _this$_list4 ? void 0 : _this$_list4.option(name, value);\r\n super._optionChanged(args);\r\n break;\r\n case \"onItemRendered\":\r\n null === (_this$_list5 = this._list) || void 0 === _this$_list5 ? void 0 : _this$_list5.option(name, value);\r\n break;\r\n case \"opened\":\r\n if (this._deferRendering) {\r\n this._setListDataSource()\r\n }\r\n this._toggleMenuVisibility(value);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n case \"closeOnClick\":\r\n break;\r\n case \"container\":\r\n this._popup && this._popup.option(name, value);\r\n break;\r\n case \"disabled\":\r\n if (this._list) {\r\n this._updateFocusableItemsTabIndex()\r\n }\r\n break;\r\n default:\r\n super._optionChanged(args)\r\n }\r\n }\r\n _updateFocusableItemsTabIndex() {\r\n this.option(\"items\").forEach(item => toggleItemFocusableElementTabIndex(this._list, item))\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/strategy/toolbar.singleline.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth\r\n} from \"../../../core/utils/size\";\r\nimport $ from \"../../../core/renderer\";\r\nimport {\r\n each\r\n} from \"../../../core/utils/iterator\";\r\nimport {\r\n grep,\r\n deferRender\r\n} from \"../../../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../../../core/utils/extend\";\r\nimport DropDownMenu from \"../internal/ui.toolbar.menu\";\r\nimport {\r\n compileGetter\r\n} from \"../../../core/utils/data\";\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS = \"dx-toolbar-menu-container\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_AUTO_HIDE_ITEM_CLASS = \"dx-toolbar-item-auto-hide\";\r\nvar TOOLBAR_HIDDEN_ITEM = \"dx-toolbar-item-invisible\";\r\nexport class SingleLineStrategy {\r\n constructor(toolbar) {\r\n this._toolbar = toolbar\r\n }\r\n _initMarkup() {\r\n deferRender(() => {\r\n this._renderOverflowMenu();\r\n this._renderMenuItems()\r\n })\r\n }\r\n _renderOverflowMenu() {\r\n if (!this._hasVisibleMenuItems()) {\r\n return\r\n }\r\n this._renderMenuButtonContainer();\r\n var $menu = $(\"<div>\").appendTo(this._overflowMenuContainer());\r\n var itemClickAction = this._toolbar._createActionByOption(\"onItemClick\");\r\n var menuItemTemplate = this._toolbar._getTemplateByOption(\"menuItemTemplate\");\r\n this._menu = this._toolbar._createComponent($menu, DropDownMenu, {\r\n disabled: this._toolbar.option(\"disabled\"),\r\n itemTemplate: () => menuItemTemplate,\r\n onItemClick: e => {\r\n itemClickAction(e)\r\n },\r\n container: this._toolbar.option(\"menuContainer\"),\r\n onOptionChanged: _ref => {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n if (\"opened\" === name) {\r\n this._toolbar.option(\"overflowMenuVisible\", value)\r\n }\r\n if (\"items\" === name) {\r\n this._updateMenuVisibility(value)\r\n }\r\n }\r\n })\r\n }\r\n renderMenuItems() {\r\n if (!this._menu) {\r\n this._renderOverflowMenu()\r\n }\r\n this._menu && this._menu.option(\"items\", this._getMenuItems());\r\n if (this._menu && !this._menu.option(\"items\").length) {\r\n this._menu.option(\"opened\", false)\r\n }\r\n }\r\n _renderMenuButtonContainer() {\r\n this._$overflowMenuContainer = $(\"<div>\").appendTo(this._toolbar._$afterSection).addClass(TOOLBAR_BUTTON_CLASS).addClass(TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS)\r\n }\r\n _overflowMenuContainer() {\r\n return this._$overflowMenuContainer\r\n }\r\n _updateMenuVisibility(menuItems) {\r\n var items = null !== menuItems && void 0 !== menuItems ? menuItems : this._getMenuItems();\r\n var isMenuVisible = items.length && this._hasVisibleMenuItems(items);\r\n this._toggleMenuVisibility(isMenuVisible)\r\n }\r\n _toggleMenuVisibility(value) {\r\n if (!this._overflowMenuContainer()) {\r\n return\r\n }\r\n this._overflowMenuContainer().toggleClass(INVISIBLE_STATE_CLASS, !value)\r\n }\r\n _renderMenuItems() {\r\n deferRender(() => {\r\n this.renderMenuItems()\r\n })\r\n }\r\n _dimensionChanged() {\r\n this.renderMenuItems()\r\n }\r\n _getToolbarItems() {\r\n var _this$_toolbar$option;\r\n return grep(null !== (_this$_toolbar$option = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option ? _this$_toolbar$option : [], item => !this._toolbar._isMenuItem(item))\r\n }\r\n _getMenuItems() {\r\n var _this$_toolbar$option2, _this$_restoreItems;\r\n var menuItems = grep(null !== (_this$_toolbar$option2 = this._toolbar.option(\"items\")) && void 0 !== _this$_toolbar$option2 ? _this$_toolbar$option2 : [], item => this._toolbar._isMenuItem(item));\r\n var $hiddenItems = this._toolbar._itemContainer().children(\".\".concat(TOOLBAR_AUTO_HIDE_ITEM_CLASS, \".\").concat(TOOLBAR_HIDDEN_ITEM)).not(\".\".concat(INVISIBLE_STATE_CLASS));\r\n this._restoreItems = null !== (_this$_restoreItems = this._restoreItems) && void 0 !== _this$_restoreItems ? _this$_restoreItems : [];\r\n var overflowItems = [].slice.call($hiddenItems).map(item => {\r\n var itemData = this._toolbar._getItemData(item);\r\n var $itemContainer = $(item);\r\n var $itemMarkup = $itemContainer.children();\r\n return extend({\r\n menuItemTemplate: () => {\r\n this._restoreItems.push({\r\n container: $itemContainer,\r\n item: $itemMarkup\r\n });\r\n var $container = $(\"<div>\").addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS);\r\n return $container.append($itemMarkup)\r\n }\r\n }, itemData)\r\n });\r\n return [...overflowItems, ...menuItems]\r\n }\r\n _hasVisibleMenuItems(items) {\r\n var menuItems = null !== items && void 0 !== items ? items : this._toolbar.option(\"items\");\r\n var result = false;\r\n var optionGetter = compileGetter(\"visible\");\r\n var overflowGetter = compileGetter(\"locateInMenu\");\r\n each(menuItems, (function(index, item) {\r\n var itemVisible = optionGetter(item, {\r\n functionsAsIs: true\r\n });\r\n var itemOverflow = overflowGetter(item, {\r\n functionsAsIs: true\r\n });\r\n if (false !== itemVisible && (\"auto\" === itemOverflow || \"always\" === itemOverflow) || \"menu\" === item.location) {\r\n result = true\r\n }\r\n }));\r\n return result\r\n }\r\n _arrangeItems() {\r\n var _this$_restoreItems2;\r\n this._toolbar._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n each(null !== (_this$_restoreItems2 = this._restoreItems) && void 0 !== _this$_restoreItems2 ? _this$_restoreItems2 : [], (function(_, obj) {\r\n $(obj.container).append(obj.item)\r\n }));\r\n this._restoreItems = [];\r\n var elementWidth = getWidth(this._toolbar.$element());\r\n this._hideOverflowItems(elementWidth);\r\n return elementWidth\r\n }\r\n _hideOverflowItems(elementWidth) {\r\n var _elementWidth;\r\n var overflowItems = this._toolbar.$element().find(\".\".concat(TOOLBAR_AUTO_HIDE_ITEM_CLASS));\r\n if (!overflowItems.length) {\r\n return\r\n }\r\n elementWidth = null !== (_elementWidth = elementWidth) && void 0 !== _elementWidth ? _elementWidth : getWidth(this._toolbar.$element());\r\n $(overflowItems).removeClass(TOOLBAR_HIDDEN_ITEM);\r\n var itemsWidth = this._getItemsWidth();\r\n while (overflowItems.length && elementWidth < itemsWidth) {\r\n var $item = overflowItems.eq(-1);\r\n itemsWidth -= getOuterWidth($item);\r\n $item.addClass(TOOLBAR_HIDDEN_ITEM);\r\n overflowItems.splice(-1, 1)\r\n }\r\n }\r\n _getItemsWidth() {\r\n return this._toolbar._getSummaryItemsWidth([this._toolbar._$beforeSection, this._toolbar._$centerSection, this._toolbar._$afterSection])\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n if (this._toolbar._isMenuItem(item)) {\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n var _this$_menu;\r\n null === (_this$_menu = this._menu) || void 0 === _this$_menu ? void 0 : _this$_menu._itemOptionChanged(item, property, value);\r\n return\r\n }\r\n }\r\n this.renderMenuItems()\r\n }\r\n _renderItem(item, itemElement) {\r\n if (\"auto\" === item.locateInMenu) {\r\n itemElement.addClass(TOOLBAR_AUTO_HIDE_ITEM_CLASS)\r\n }\r\n }\r\n _optionChanged(name, value) {\r\n var _this$_menu2, _this$_menu3, _this$_menu4, _this$_menu5, _this$_menu6;\r\n switch (name) {\r\n case \"disabled\":\r\n null === (_this$_menu2 = this._menu) || void 0 === _this$_menu2 ? void 0 : _this$_menu2.option(name, value);\r\n break;\r\n case \"overflowMenuVisible\":\r\n null === (_this$_menu3 = this._menu) || void 0 === _this$_menu3 ? void 0 : _this$_menu3.option(\"opened\", value);\r\n break;\r\n case \"onItemClick\":\r\n null === (_this$_menu4 = this._menu) || void 0 === _this$_menu4 ? void 0 : _this$_menu4.option(name, value);\r\n break;\r\n case \"menuContainer\":\r\n null === (_this$_menu5 = this._menu) || void 0 === _this$_menu5 ? void 0 : _this$_menu5.option(\"container\", value);\r\n break;\r\n case \"menuItemTemplate\":\r\n null === (_this$_menu6 = this._menu) || void 0 === _this$_menu6 ? void 0 : _this$_menu6.option(\"itemTemplate\", value)\r\n }\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport ToolbarBase from \"./ui.toolbar.base\";\r\nimport {\r\n toggleItemFocusableElementTabIndex\r\n} from \"./ui.toolbar.utils\";\r\nimport {\r\n MultiLineStrategy\r\n} from \"./strategy/toolbar.multiline\";\r\nimport {\r\n SingleLineStrategy\r\n} from \"./strategy/toolbar.singleline\";\r\nvar TOOLBAR_MULTILINE_CLASS = \"dx-toolbar-multiline\";\r\nvar TOOLBAR_AUTO_HIDE_TEXT_CLASS = \"dx-toolbar-text-auto-hide\";\r\nclass Toolbar extends ToolbarBase {\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n menuItemTemplate: \"menuItem\",\r\n menuContainer: void 0,\r\n overflowMenuVisible: false,\r\n multiline: false\r\n })\r\n }\r\n _isMultiline() {\r\n return this.option(\"multiline\")\r\n }\r\n _dimensionChanged(dimension) {\r\n if (\"height\" === dimension) {\r\n return\r\n }\r\n super._dimensionChanged();\r\n this._layoutStrategy._dimensionChanged()\r\n }\r\n _initMarkup() {\r\n super._initMarkup();\r\n this._updateFocusableItemsTabIndex();\r\n this._layoutStrategy._initMarkup()\r\n }\r\n _renderToolbar() {\r\n super._renderToolbar();\r\n this._renderLayoutStrategy()\r\n }\r\n _itemContainer() {\r\n if (this._isMultiline()) {\r\n return this._$toolbarItemsContainer\r\n }\r\n return super._itemContainer()\r\n }\r\n _renderLayoutStrategy() {\r\n this.$element().toggleClass(TOOLBAR_MULTILINE_CLASS, this._isMultiline());\r\n this._layoutStrategy = this._isMultiline() ? new MultiLineStrategy(this) : new SingleLineStrategy(this)\r\n }\r\n _renderSections() {\r\n if (this._isMultiline()) {\r\n return\r\n }\r\n return super._renderSections()\r\n }\r\n _postProcessRenderItems() {\r\n this._layoutStrategy._hideOverflowItems();\r\n this._layoutStrategy._updateMenuVisibility();\r\n super._postProcessRenderItems();\r\n this._layoutStrategy._renderMenuItems()\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var itemElement = super._renderItem(index, item, itemContainer, $after);\r\n this._layoutStrategy._renderItem(item, itemElement);\r\n var {\r\n widget: widget,\r\n showText: showText\r\n } = item;\r\n if (\"dxButton\" === widget && \"inMenu\" === showText) {\r\n itemElement.toggleClass(TOOLBAR_AUTO_HIDE_TEXT_CLASS)\r\n }\r\n return itemElement\r\n }\r\n _getItemsWidth() {\r\n return this._layoutStrategy._getItemsWidth()\r\n }\r\n _getMenuItems() {\r\n return this._layoutStrategy._getMenuItems()\r\n }\r\n _getToolbarItems() {\r\n return this._layoutStrategy._getToolbarItems()\r\n }\r\n _arrangeItems() {\r\n if (this.$element().is(\":hidden\")) {\r\n return\r\n }\r\n var elementWidth = this._layoutStrategy._arrangeItems();\r\n if (!this._isMultiline()) {\r\n super._arrangeItems(elementWidth)\r\n }\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n this._layoutStrategy._itemOptionChanged(item, property, value);\r\n if (!this._isMenuItem(item)) {\r\n super._itemOptionChanged(item, property, value)\r\n }\r\n if (\"disabled\" === property || \"options.disabled\" === property) {\r\n toggleItemFocusableElementTabIndex(this, item)\r\n }\r\n if (\"location\" === property) {\r\n this.repaint()\r\n }\r\n }\r\n _updateFocusableItemsTabIndex() {\r\n this._getToolbarItems().forEach(item => toggleItemFocusableElementTabIndex(this, item))\r\n }\r\n _isMenuItem(itemData) {\r\n return \"menu\" === itemData.location || \"always\" === itemData.locateInMenu\r\n }\r\n _isToolbarItem(itemData) {\r\n return void 0 === itemData.location || \"never\" === itemData.locateInMenu\r\n }\r\n _optionChanged(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n this._layoutStrategy._optionChanged(name, value);\r\n switch (name) {\r\n case \"menuContainer\":\r\n case \"menuItemTemplate\":\r\n case \"overflowMenuVisible\":\r\n break;\r\n case \"multiline\":\r\n this._invalidate();\r\n break;\r\n case \"disabled\":\r\n super._optionChanged.apply(this, arguments);\r\n this._updateFocusableItemsTabIndex();\r\n break;\r\n default:\r\n super._optionChanged.apply(this, arguments)\r\n }\r\n }\r\n updateDimensions() {\r\n this._dimensionChanged()\r\n }\r\n}\r\nregisterComponent(\"dxToolbar\", Toolbar);\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Toolbar from \"./toolbar/ui.toolbar\";\r\nexport default Toolbar;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/constants.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport var TOOLBAR_CLASS = \"dx-toolbar\";\r\n","/**\r\n * DevExtreme (esm/ui/collection/ui.collection_widget.async.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport CollectionWidgetEdit from \"./ui.collection_widget.edit\";\r\nimport {\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n noop\r\n} from \"../../core/utils/common\";\r\nvar AsyncCollectionWidget = CollectionWidgetEdit.inherit({\r\n _initMarkup() {\r\n this._deferredItems = [];\r\n this.callBase()\r\n },\r\n _renderItemContent(args) {\r\n var renderContentDeferred = new Deferred;\r\n var itemDeferred = new Deferred;\r\n this._deferredItems[args.index] = itemDeferred;\r\n var $itemContent = this.callBase.call(this, args);\r\n itemDeferred.done(() => {\r\n renderContentDeferred.resolve($itemContent)\r\n });\r\n return renderContentDeferred.promise()\r\n },\r\n _createItemByTemplate(itemTemplate, renderArgs) {\r\n return itemTemplate.render({\r\n model: renderArgs.itemData,\r\n container: renderArgs.container,\r\n index: renderArgs.index,\r\n onRendered: () => {\r\n this._deferredItems[renderArgs.index].resolve()\r\n }\r\n })\r\n },\r\n _postProcessRenderItems: noop,\r\n _renderItemsAsync() {\r\n var d = new Deferred;\r\n when.apply(this, this._deferredItems).done(() => {\r\n this._postProcessRenderItems();\r\n d.resolve()\r\n });\r\n return d.promise()\r\n },\r\n _clean() {\r\n this.callBase();\r\n this._deferredItems = []\r\n }\r\n});\r\nexport default AsyncCollectionWidget;\r\n","/**\r\n * DevExtreme (esm/ui/toolbar/ui.toolbar.base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getWidth,\r\n getOuterWidth,\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n isMaterial,\r\n waitWebFont\r\n} from \"../themes\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getBoundingRect\r\n} from \"../../core/utils/position\";\r\nimport AsyncCollectionWidget from \"../collection/ui.collection_widget.async\";\r\nimport {\r\n BindableTemplate\r\n} from \"../../core/templates/bindable_template\";\r\nimport fx from \"../../animation/fx\";\r\nimport {\r\n TOOLBAR_CLASS\r\n} from \"./constants\";\r\nvar TOOLBAR_BEFORE_CLASS = \"dx-toolbar-before\";\r\nvar TOOLBAR_CENTER_CLASS = \"dx-toolbar-center\";\r\nvar TOOLBAR_AFTER_CLASS = \"dx-toolbar-after\";\r\nvar TOOLBAR_MINI_CLASS = \"dx-toolbar-mini\";\r\nvar TOOLBAR_ITEM_CLASS = \"dx-toolbar-item\";\r\nvar TOOLBAR_LABEL_CLASS = \"dx-toolbar-label\";\r\nvar TOOLBAR_BUTTON_CLASS = \"dx-toolbar-button\";\r\nvar TOOLBAR_ITEMS_CONTAINER_CLASS = \"dx-toolbar-items-container\";\r\nvar TOOLBAR_GROUP_CLASS = \"dx-toolbar-group\";\r\nvar TOOLBAR_COMPACT_CLASS = \"dx-toolbar-compact\";\r\nvar TEXT_BUTTON_MODE = \"text\";\r\nvar DEFAULT_BUTTON_TYPE = \"default\";\r\nvar DEFAULT_DROPDOWNBUTTON_STYLING_MODE = \"contained\";\r\nvar TOOLBAR_ITEM_DATA_KEY = \"dxToolbarItemDataKey\";\r\nvar ANIMATION_TIMEOUT = 15;\r\nclass ToolbarBase extends AsyncCollectionWidget {\r\n _getSynchronizableOptionsForCreateComponent() {\r\n return super._getSynchronizableOptionsForCreateComponent().filter(item => \"disabled\" !== item)\r\n }\r\n _initTemplates() {\r\n super._initTemplates();\r\n var template = new BindableTemplate(function($container, data, rawModel) {\r\n if (isPlainObject(data)) {\r\n var {\r\n text: text,\r\n html: html,\r\n widget: widget\r\n } = data;\r\n if (text) {\r\n $container.text(text).wrapInner(\"<div>\")\r\n }\r\n if (html) {\r\n $container.html(html)\r\n }\r\n if (\"dxDropDownButton\" === widget) {\r\n var _data$options;\r\n data.options = null !== (_data$options = data.options) && void 0 !== _data$options ? _data$options : {};\r\n if (!isDefined(data.options.stylingMode)) {\r\n data.options.stylingMode = this.option(\"useFlatButtons\") ? TEXT_BUTTON_MODE : DEFAULT_DROPDOWNBUTTON_STYLING_MODE\r\n }\r\n }\r\n if (\"dxButton\" === widget) {\r\n if (this.option(\"useFlatButtons\")) {\r\n var _data$options2, _data$options$styling;\r\n data.options = null !== (_data$options2 = data.options) && void 0 !== _data$options2 ? _data$options2 : {};\r\n data.options.stylingMode = null !== (_data$options$styling = data.options.stylingMode) && void 0 !== _data$options$styling ? _data$options$styling : TEXT_BUTTON_MODE\r\n }\r\n if (this.option(\"useDefaultButtons\")) {\r\n var _data$options3, _data$options$type;\r\n data.options = null !== (_data$options3 = data.options) && void 0 !== _data$options3 ? _data$options3 : {};\r\n data.options.type = null !== (_data$options$type = data.options.type) && void 0 !== _data$options$type ? _data$options$type : DEFAULT_BUTTON_TYPE\r\n }\r\n }\r\n } else {\r\n $container.text(String(data))\r\n }\r\n this._getTemplate(\"dx-polymorph-widget\").render({\r\n container: $container,\r\n model: rawModel,\r\n parent: this\r\n })\r\n }.bind(this), [\"text\", \"html\", \"widget\", \"options\"], this.option(\"integrationOptions.watchMethod\"));\r\n this._templateManager.addDefaultTemplates({\r\n item: template,\r\n menuItem: template\r\n })\r\n }\r\n _getDefaultOptions() {\r\n return extend(super._getDefaultOptions(), {\r\n renderAs: \"topToolbar\",\r\n grouped: false,\r\n useFlatButtons: false,\r\n useDefaultButtons: false\r\n })\r\n }\r\n _defaultOptionsRules() {\r\n return super._defaultOptionsRules().concat([{\r\n device: function() {\r\n return isMaterial()\r\n },\r\n options: {\r\n useFlatButtons: true\r\n }\r\n }])\r\n }\r\n _itemContainer() {\r\n return this._$toolbarItemsContainer.find([\".\".concat(TOOLBAR_BEFORE_CLASS), \".\".concat(TOOLBAR_CENTER_CLASS), \".\".concat(TOOLBAR_AFTER_CLASS)].join(\",\"))\r\n }\r\n _itemClass() {\r\n return TOOLBAR_ITEM_CLASS\r\n }\r\n _itemDataKey() {\r\n return TOOLBAR_ITEM_DATA_KEY\r\n }\r\n _dimensionChanged() {\r\n this._arrangeItems();\r\n this._applyCompactMode()\r\n }\r\n _initMarkup() {\r\n this._renderToolbar();\r\n this._renderSections();\r\n super._initMarkup()\r\n }\r\n _render() {\r\n super._render();\r\n this._renderItemsAsync();\r\n this._updateDimensionsInMaterial()\r\n }\r\n _postProcessRenderItems() {\r\n this._arrangeItems()\r\n }\r\n _renderToolbar() {\r\n this.$element().addClass(TOOLBAR_CLASS);\r\n this._$toolbarItemsContainer = $(\"<div>\").addClass(TOOLBAR_ITEMS_CONTAINER_CLASS).appendTo(this.$element());\r\n this.setAria(\"role\", \"toolbar\")\r\n }\r\n _renderSections() {\r\n var $container = this._$toolbarItemsContainer;\r\n each([\"before\", \"center\", \"after\"], (_, section) => {\r\n var sectionClass = \"dx-toolbar-\".concat(section);\r\n var $section = $container.find(\".\".concat(sectionClass));\r\n if (!$section.length) {\r\n this[\"_$\".concat(section, \"Section\")] = $(\"<div>\").addClass(sectionClass).appendTo($container)\r\n }\r\n })\r\n }\r\n _arrangeItems(elementWidth) {\r\n var _elementWidth;\r\n elementWidth = null !== (_elementWidth = elementWidth) && void 0 !== _elementWidth ? _elementWidth : getWidth(this.$element());\r\n this._$centerSection.css({\r\n margin: \"0 auto\",\r\n float: \"none\"\r\n });\r\n var beforeRect = getBoundingRect(this._$beforeSection.get(0));\r\n var afterRect = getBoundingRect(this._$afterSection.get(0));\r\n this._alignCenterSection(beforeRect, afterRect, elementWidth);\r\n var $label = this._$toolbarItemsContainer.find(\".\".concat(TOOLBAR_LABEL_CLASS)).eq(0);\r\n var $section = $label.parent();\r\n if (!$label.length) {\r\n return\r\n }\r\n var labelOffset = beforeRect.width ? beforeRect.width : $label.position().left;\r\n var widthBeforeSection = $section.hasClass(TOOLBAR_BEFORE_CLASS) ? 0 : labelOffset;\r\n var widthAfterSection = $section.hasClass(TOOLBAR_AFTER_CLASS) ? 0 : afterRect.width;\r\n var elemsAtSectionWidth = 0;\r\n $section.children().not(\".\".concat(TOOLBAR_LABEL_CLASS)).each((function() {\r\n elemsAtSectionWidth += getOuterWidth(this)\r\n }));\r\n var freeSpace = elementWidth - elemsAtSectionWidth;\r\n var sectionMaxWidth = Math.max(freeSpace - widthBeforeSection - widthAfterSection, 0);\r\n if ($section.hasClass(TOOLBAR_BEFORE_CLASS)) {\r\n this._alignSection(this._$beforeSection, sectionMaxWidth)\r\n } else {\r\n var labelPaddings = getOuterWidth($label) - getWidth($label);\r\n $label.css(\"maxWidth\", sectionMaxWidth - labelPaddings)\r\n }\r\n }\r\n _alignCenterSection(beforeRect, afterRect, elementWidth) {\r\n this._alignSection(this._$centerSection, elementWidth - beforeRect.width - afterRect.width);\r\n var isRTL = this.option(\"rtlEnabled\");\r\n var leftRect = isRTL ? afterRect : beforeRect;\r\n var rightRect = isRTL ? beforeRect : afterRect;\r\n var centerRect = getBoundingRect(this._$centerSection.get(0));\r\n if (leftRect.right > centerRect.left || centerRect.right > rightRect.left) {\r\n this._$centerSection.css({\r\n marginLeft: leftRect.width,\r\n marginRight: rightRect.width,\r\n float: leftRect.width > rightRect.width ? \"none\" : \"right\"\r\n })\r\n }\r\n }\r\n _alignSection($section, maxWidth) {\r\n var $labels = $section.find(\".\".concat(TOOLBAR_LABEL_CLASS));\r\n var labels = $labels.toArray();\r\n maxWidth -= this._getCurrentLabelsPaddings(labels);\r\n var currentWidth = this._getCurrentLabelsWidth(labels);\r\n var difference = Math.abs(currentWidth - maxWidth);\r\n if (maxWidth < currentWidth) {\r\n labels = labels.reverse();\r\n this._alignSectionLabels(labels, difference, false)\r\n } else {\r\n this._alignSectionLabels(labels, difference, true)\r\n }\r\n }\r\n _alignSectionLabels(labels, difference, expanding) {\r\n var getRealLabelWidth = function(label) {\r\n return getBoundingRect(label).width\r\n };\r\n for (var i = 0; i < labels.length; i++) {\r\n var $label = $(labels[i]);\r\n var currentLabelWidth = Math.ceil(getRealLabelWidth(labels[i]));\r\n var labelMaxWidth = void 0;\r\n if (expanding) {\r\n $label.css(\"maxWidth\", \"inherit\")\r\n }\r\n var possibleLabelWidth = Math.ceil(expanding ? getRealLabelWidth(labels[i]) : currentLabelWidth);\r\n if (possibleLabelWidth < difference) {\r\n labelMaxWidth = expanding ? possibleLabelWidth : 0;\r\n difference -= possibleLabelWidth\r\n } else {\r\n labelMaxWidth = expanding ? currentLabelWidth + difference : currentLabelWidth - difference;\r\n $label.css(\"maxWidth\", labelMaxWidth);\r\n break\r\n }\r\n $label.css(\"maxWidth\", labelMaxWidth)\r\n }\r\n }\r\n _applyCompactMode() {\r\n var $element = this.$element();\r\n $element.removeClass(TOOLBAR_COMPACT_CLASS);\r\n if (this.option(\"compactMode\") && this._getSummaryItemsWidth(this.itemElements(), true) > getWidth($element)) {\r\n $element.addClass(TOOLBAR_COMPACT_CLASS)\r\n }\r\n }\r\n _getCurrentLabelsWidth(labels) {\r\n var width = 0;\r\n labels.forEach((function(label, index) {\r\n width += getOuterWidth(label)\r\n }));\r\n return width\r\n }\r\n _getCurrentLabelsPaddings(labels) {\r\n var padding = 0;\r\n labels.forEach((function(label, index) {\r\n padding += getOuterWidth(label) - getWidth(label)\r\n }));\r\n return padding\r\n }\r\n _renderItem(index, item, itemContainer, $after) {\r\n var _item$location, _item$text;\r\n var location = null !== (_item$location = item.location) && void 0 !== _item$location ? _item$location : \"center\";\r\n var container = null !== itemContainer && void 0 !== itemContainer ? itemContainer : this[\"_$\".concat(location, \"Section\")];\r\n var itemHasText = !!(null !== (_item$text = item.text) && void 0 !== _item$text ? _item$text : item.html);\r\n var itemElement = super._renderItem(index, item, container, $after);\r\n itemElement.toggleClass(TOOLBAR_BUTTON_CLASS, !itemHasText).toggleClass(TOOLBAR_LABEL_CLASS, itemHasText).addClass(item.cssClass);\r\n return itemElement\r\n }\r\n _renderGroupedItems() {\r\n each(this.option(\"items\"), (groupIndex, group) => {\r\n var _group$location;\r\n var groupItems = group.items;\r\n var $container = $(\"<div>\").addClass(TOOLBAR_GROUP_CLASS);\r\n var location = null !== (_group$location = group.location) && void 0 !== _group$location ? _group$location : \"center\";\r\n if (!groupItems || !groupItems.length) {\r\n return\r\n }\r\n each(groupItems, (itemIndex, item) => {\r\n this._renderItem(itemIndex, item, $container, null)\r\n });\r\n this._$toolbarItemsContainer.find(\".dx-toolbar-\".concat(location)).append($container)\r\n })\r\n }\r\n _renderItems(items) {\r\n var grouped = this.option(\"grouped\") && items.length && items[0].items;\r\n grouped ? this._renderGroupedItems() : super._renderItems(items)\r\n }\r\n _getToolbarItems() {\r\n var _this$option;\r\n return null !== (_this$option = this.option(\"items\")) && void 0 !== _this$option ? _this$option : []\r\n }\r\n _renderContentImpl() {\r\n var items = this._getToolbarItems();\r\n this.$element().toggleClass(TOOLBAR_MINI_CLASS, 0 === items.length);\r\n if (this._renderedItemsCount) {\r\n this._renderItems(items.slice(this._renderedItemsCount))\r\n } else {\r\n this._renderItems(items)\r\n }\r\n this._applyCompactMode()\r\n }\r\n _renderEmptyMessage() {}\r\n _clean() {\r\n this._$toolbarItemsContainer.children().empty();\r\n this.$element().empty();\r\n delete this._$beforeSection;\r\n delete this._$centerSection;\r\n delete this._$afterSection\r\n }\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._arrangeItems()\r\n }\r\n }\r\n _isVisible() {\r\n return getWidth(this.$element()) > 0 && getHeight(this.$element()) > 0\r\n }\r\n _getIndexByItem(item) {\r\n return this._getToolbarItems().indexOf(item)\r\n }\r\n _itemOptionChanged(item, property, value) {\r\n super._itemOptionChanged.apply(this, [item, property, value]);\r\n this._arrangeItems()\r\n }\r\n _optionChanged(_ref) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref;\r\n switch (name) {\r\n case \"width\":\r\n super._optionChanged.apply(this, arguments);\r\n this._dimensionChanged();\r\n break;\r\n case \"renderAs\":\r\n case \"useFlatButtons\":\r\n case \"useDefaultButtons\":\r\n this._invalidate();\r\n break;\r\n case \"compactMode\":\r\n this._applyCompactMode();\r\n break;\r\n case \"grouped\":\r\n break;\r\n default:\r\n super._optionChanged.apply(this, arguments)\r\n }\r\n }\r\n _dispose() {\r\n super._dispose();\r\n clearTimeout(this._waitParentAnimationTimeout)\r\n }\r\n _updateDimensionsInMaterial() {\r\n if (isMaterial()) {\r\n Promise.all([(() => new Promise(resolve => {\r\n var check = () => {\r\n var readyToResolve = true;\r\n this.$element().parents().each((_, parent) => {\r\n if (fx.isAnimating($(parent))) {\r\n readyToResolve = false;\r\n return false\r\n }\r\n });\r\n if (readyToResolve) {\r\n resolve()\r\n }\r\n return readyToResolve\r\n };\r\n var runCheck = () => {\r\n clearTimeout(this._waitParentAnimationTimeout);\r\n this._waitParentAnimationTimeout = setTimeout(() => check() || runCheck(), ANIMATION_TIMEOUT)\r\n };\r\n runCheck()\r\n }))(), (() => {\r\n var $labels = this.$element().find(\".\".concat(TOOLBAR_LABEL_CLASS));\r\n var promises = [];\r\n $labels.each((_, label) => {\r\n var text = $(label).text();\r\n var fontWeight = $(label).css(\"fontWeight\");\r\n promises.push(waitWebFont(text, fontWeight))\r\n });\r\n return Promise.all(promises)\r\n })()]).then(() => {\r\n this._dimensionChanged()\r\n })\r\n }\r\n }\r\n}\r\nregisterComponent(\"dxToolbarBase\", ToolbarBase);\r\nexport default ToolbarBase;\r\n","/**\r\n * DevExtreme (esm/ui/tooltip/tooltip.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Guid from \"../../core/guid\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport Popover from \"../popover/ui.popover\";\r\nvar TOOLTIP_CLASS = \"dx-tooltip\";\r\nvar TOOLTIP_WRAPPER_CLASS = \"dx-tooltip-wrapper\";\r\nimport {\r\n isWindow\r\n} from \"../../core/utils/type\";\r\nvar Tooltip = Popover.inherit({\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n toolbarItems: [],\r\n showCloseButton: false,\r\n showTitle: false,\r\n title: null,\r\n titleTemplate: null,\r\n onTitleRendered: null,\r\n bottomTemplate: null,\r\n propagateOutsideClick: true\r\n })\r\n },\r\n _render: function() {\r\n this.$element().addClass(TOOLTIP_CLASS);\r\n this.$wrapper().addClass(TOOLTIP_WRAPPER_CLASS);\r\n this.callBase()\r\n },\r\n _renderContent: function() {\r\n this.callBase();\r\n this._contentId = \"dx-\" + new Guid;\r\n this.$overlayContent().attr({\r\n id: this._contentId,\r\n role: \"tooltip\"\r\n });\r\n this._toggleAriaDescription(true)\r\n },\r\n _toggleAriaDescription: function(showing) {\r\n var $target = $(this.option(\"target\"));\r\n var label = showing ? this._contentId : void 0;\r\n if (!isWindow($target.get(0))) {\r\n this.setAria(\"describedby\", label, $target)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxTooltip\", Tooltip);\r\nexport default Tooltip;\r\n","/**\r\n * DevExtreme (esm/ui/tooltip.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Tooltip from \"./tooltip/tooltip\";\r\nexport default Tooltip;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.base.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nimport eventsEngine from \"../../events/core/events_engine\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport {\r\n name as clickEventName\r\n} from \"../../events/click\";\r\nimport {\r\n asyncNoop,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n hasWindow\r\n} from \"../../core/utils/window\";\r\nimport {\r\n isDefined,\r\n isPrimitive,\r\n isFunction,\r\n isString\r\n} from \"../../core/utils/type\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n getPublicElement\r\n} from \"../../core/element\";\r\nimport CheckBox from \"../check_box\";\r\nimport HierarchicalCollectionWidget from \"../hierarchical_collection/ui.hierarchical_collection_widget\";\r\nimport {\r\n addNamespace\r\n} from \"../../events/utils/index\";\r\nimport pointerEvents from \"../../events/pointer\";\r\nimport {\r\n name as dblclickEvent\r\n} from \"../../events/double_click\";\r\nimport fx from \"../../animation/fx\";\r\nimport Scrollable from \"../scroll_view/ui.scrollable\";\r\nimport LoadIndicator from \"../load_indicator\";\r\nimport {\r\n fromPromise,\r\n Deferred,\r\n when\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n nativeScrolling\r\n} from \"../../core/utils/support\";\r\nimport {\r\n getRelativeOffset\r\n} from \"../../renovation/ui/scroll_view/utils/get_relative_offset\";\r\nimport {\r\n SCROLLABLE_CONTENT_CLASS,\r\n DIRECTION_HORIZONTAL,\r\n DIRECTION_VERTICAL\r\n} from \"../../renovation/ui/scroll_view/common/consts\";\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CLASS = \"\".concat(WIDGET_CLASS, \"-node\");\r\nvar NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container\");\r\nvar NODE_LOAD_INDICATOR_CLASS = \"\".concat(NODE_CLASS, \"-loadindicator\");\r\nvar OPENED_NODE_CONTAINER_CLASS = \"\".concat(NODE_CLASS, \"-container-opened\");\r\nvar IS_LEAF = \"\".concat(NODE_CLASS, \"-is-leaf\");\r\nvar ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-item\");\r\nvar ITEM_WITH_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-with-checkbox\");\r\nvar ITEM_WITHOUT_CHECKBOX_CLASS = \"\".concat(ITEM_CLASS, \"-without-checkbox\");\r\nvar ITEM_DATA_KEY = \"\".concat(ITEM_CLASS, \"-data\");\r\nvar TOGGLE_ITEM_VISIBILITY_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility\");\r\nvar LOAD_INDICATOR_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator\");\r\nvar LOAD_INDICATOR_WRAPPER_CLASS = \"\".concat(WIDGET_CLASS, \"-loadindicator-wrapper\");\r\nvar TOGGLE_ITEM_VISIBILITY_OPENED_CLASS = \"\".concat(WIDGET_CLASS, \"-toggle-item-visibility-opened\");\r\nvar SELECT_ALL_ITEM_CLASS = \"\".concat(WIDGET_CLASS, \"-select-all-item\");\r\nvar INVISIBLE_STATE_CLASS = \"dx-state-invisible\";\r\nvar DISABLED_STATE_CLASS = \"dx-state-disabled\";\r\nvar SELECTED_ITEM_CLASS = \"dx-state-selected\";\r\nvar EXPAND_EVENT_NAMESPACE = \"dxTreeView_expand\";\r\nvar DATA_ITEM_ID = \"data-item-id\";\r\nvar TreeViewBase = HierarchicalCollectionWidget.inherit({\r\n _supportedKeys: function(e) {\r\n var click = e => {\r\n var $itemElement = $(this.option(\"focusedElement\"));\r\n if (!$itemElement.length) {\r\n return\r\n }\r\n e.target = $itemElement;\r\n e.currentTarget = $itemElement;\r\n this._itemClickHandler(e, $itemElement.children(\".\" + ITEM_CLASS));\r\n var expandEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var expandByClick = expandEventName === addNamespace(clickEventName, EXPAND_EVENT_NAMESPACE);\r\n if (expandByClick) {\r\n this._expandEventHandler(e)\r\n }\r\n };\r\n var select = e => {\r\n e.preventDefault();\r\n var $focusedElement = $(this.option(\"focusedElement\"));\r\n var checkboxInstance = this._getCheckBoxInstance($focusedElement);\r\n if (!checkboxInstance.option(\"disabled\")) {\r\n var currentState = checkboxInstance.option(\"value\");\r\n this._updateItemSelection(!currentState, $focusedElement.find(\".\" + ITEM_CLASS).get(0), true)\r\n }\r\n };\r\n var toggleExpandedNestedItems = function(state, e) {\r\n if (!this.option(\"expandAllEnabled\")) {\r\n return\r\n }\r\n e.preventDefault();\r\n var $rootElement = $(this.option(\"focusedElement\"));\r\n if (!$rootElement.length) {\r\n return\r\n }\r\n var rootItem = this._getItemData($rootElement.find(\".\".concat(ITEM_CLASS)));\r\n this._toggleExpandedNestedItems([rootItem], state)\r\n };\r\n return extend(this.callBase(), {\r\n enter: this._showCheckboxes() ? select : click,\r\n space: this._showCheckboxes() ? select : click,\r\n asterisk: toggleExpandedNestedItems.bind(this, true),\r\n minus: toggleExpandedNestedItems.bind(this, false)\r\n })\r\n },\r\n _toggleExpandedNestedItems: function(items, state) {\r\n if (!items) {\r\n return\r\n }\r\n for (var i = 0, len = items.length; i < len; i++) {\r\n var item = items[i];\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n this._toggleExpandedState(node, state);\r\n this._toggleExpandedNestedItems(item.items, state)\r\n }\r\n },\r\n _getNodeElement: function(node, cache) {\r\n var key = this._encodeString(node.internalFields.key);\r\n if (cache) {\r\n if (!cache.$nodeByKey) {\r\n cache.$nodeByKey = {};\r\n this.$element().find(\".\".concat(NODE_CLASS)).each((function() {\r\n var $node = $(this);\r\n var key = $node.attr(DATA_ITEM_ID);\r\n cache.$nodeByKey[key] = $node\r\n }))\r\n }\r\n return cache.$nodeByKey[key] || $()\r\n }\r\n var element = this.$element().get(0).querySelector(\"[\".concat(DATA_ITEM_ID, '=\"').concat(key, '\"]'));\r\n return $(element)\r\n },\r\n _activeStateUnit: \".\" + ITEM_CLASS,\r\n _widgetClass: function() {\r\n return WIDGET_CLASS\r\n },\r\n _getDefaultOptions: function() {\r\n var defaultOptions = extend(this.callBase(), {\r\n animationEnabled: true,\r\n dataStructure: \"tree\",\r\n deferRendering: true,\r\n expandAllEnabled: false,\r\n hasItemsExpr: \"hasItems\",\r\n selectNodesRecursive: true,\r\n expandNodesRecursive: true,\r\n showCheckBoxesMode: \"none\",\r\n selectAllText: messageLocalization.format(\"dxList-selectAll\"),\r\n onItemSelectionChanged: null,\r\n onItemExpanded: null,\r\n onItemCollapsed: null,\r\n scrollDirection: \"vertical\",\r\n useNativeScrolling: true,\r\n virtualModeEnabled: false,\r\n rootValue: 0,\r\n focusStateEnabled: false,\r\n selectionMode: \"multiple\",\r\n expandEvent: \"dblclick\",\r\n selectByClick: false,\r\n createChildren: null,\r\n onSelectAllValueChanged: null\r\n });\r\n return extend(true, defaultOptions, {\r\n integrationOptions: {\r\n useDeferUpdateForTemplates: false\r\n }\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n return !nativeScrolling\r\n },\r\n options: {\r\n useNativeScrolling: false\r\n }\r\n }])\r\n },\r\n _initSelectedItems: noop,\r\n _syncSelectionOptions: asyncNoop,\r\n _fireSelectionChanged: function() {\r\n var selectionChangePromise = this._selectionChangePromise;\r\n when(selectionChangePromise).done(function() {\r\n this._createActionByOption(\"onSelectionChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })()\r\n }.bind(this))\r\n },\r\n _createSelectAllValueChangedAction: function() {\r\n this._selectAllValueChangedAction = this._createActionByOption(\"onSelectAllValueChanged\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _fireSelectAllValueChanged: function(value) {\r\n this._selectAllValueChangedAction({\r\n value: value\r\n })\r\n },\r\n _checkBoxModeChange: function(value, previousValue) {\r\n if (\"none\" === previousValue || \"none\" === value) {\r\n this.repaint();\r\n return\r\n }\r\n var selectAllExists = this._$selectAllItem && this._$selectAllItem.length;\r\n switch (value) {\r\n case \"selectAll\":\r\n if (!selectAllExists) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem()\r\n }\r\n break;\r\n case \"normal\":\r\n if (selectAllExists) {\r\n this._$selectAllItem.remove();\r\n delete this._$selectAllItem\r\n }\r\n }\r\n },\r\n _removeSelection: function() {\r\n var that = this;\r\n each(this._dataAdapter.getFullData(), (function(_, node) {\r\n if (!that._hasChildren(node)) {\r\n return\r\n }\r\n that._dataAdapter.toggleSelection(node.internalFields.key, false, true)\r\n }))\r\n },\r\n _optionChanged: function(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"selectAllText\":\r\n if (this._$selectAllItem) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"text\", value)\r\n }\r\n break;\r\n case \"showCheckBoxesMode\":\r\n this._checkBoxModeChange(value, previousValue);\r\n break;\r\n case \"scrollDirection\":\r\n this.getScrollable().option(\"direction\", value);\r\n break;\r\n case \"useNativeScrolling\":\r\n this.getScrollable().option(\"useNative\", value);\r\n break;\r\n case \"items\":\r\n delete this._$selectAllItem;\r\n this.callBase(args);\r\n break;\r\n case \"dataSource\":\r\n this.callBase(args);\r\n this._initDataAdapter();\r\n this._filter = {};\r\n break;\r\n case \"hasItemsExpr\":\r\n this._initAccessors();\r\n this.repaint();\r\n break;\r\n case \"expandEvent\":\r\n this._initExpandEvent();\r\n break;\r\n case \"deferRendering\":\r\n case \"dataStructure\":\r\n case \"rootValue\":\r\n case \"createChildren\":\r\n case \"expandNodesRecursive\":\r\n case \"onItemSelectionChanged\":\r\n case \"onItemExpanded\":\r\n case \"onItemCollapsed\":\r\n case \"expandAllEnabled\":\r\n case \"animationEnabled\":\r\n case \"virtualModeEnabled\":\r\n case \"selectByClick\":\r\n break;\r\n case \"selectionMode\":\r\n this._initDataAdapter();\r\n this.callBase(args);\r\n break;\r\n case \"onSelectAllValueChanged\":\r\n this._createSelectAllValueChangedAction();\r\n break;\r\n case \"selectNodesRecursive\":\r\n this._dataAdapter.setOption(\"recursiveSelection\", args.value);\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _initDataSource: function() {\r\n if (this._useCustomChildrenLoader()) {\r\n this._loadChildrenByCustomLoader(null).done(function(newItems) {\r\n if (newItems && newItems.length) {\r\n this.option(\"items\", newItems)\r\n }\r\n }.bind(this))\r\n } else {\r\n this.callBase();\r\n this._isVirtualMode() && this._initVirtualMode()\r\n }\r\n },\r\n _initVirtualMode: function() {\r\n var filter = this._filter;\r\n if (!filter.custom) {\r\n filter.custom = this._dataSource.filter()\r\n }\r\n if (!filter.internal) {\r\n filter.internal = [this.option(\"parentIdExpr\"), this.option(\"rootValue\")]\r\n }\r\n },\r\n _useCustomChildrenLoader: function() {\r\n return isFunction(this.option(\"createChildren\")) && this._isDataStructurePlain()\r\n },\r\n _loadChildrenByCustomLoader: function(parentNode) {\r\n var invocationResult = this.option(\"createChildren\").call(this, parentNode);\r\n if (Array.isArray(invocationResult)) {\r\n return (new Deferred).resolve(invocationResult).promise()\r\n }\r\n if (invocationResult && isFunction(invocationResult.then)) {\r\n return fromPromise(invocationResult)\r\n }\r\n return (new Deferred).resolve([]).promise()\r\n },\r\n _combineFilter: function() {\r\n if (!this._filter.custom || !this._filter.custom.length) {\r\n return this._filter.internal\r\n }\r\n return [this._filter.custom, this._filter.internal]\r\n },\r\n _dataSourceLoadErrorHandler: function() {\r\n this._renderEmptyMessage()\r\n },\r\n _init: function() {\r\n this._filter = {};\r\n this.callBase();\r\n this._initStoreChangeHandlers()\r\n },\r\n _dataSourceChangedHandler: function(newItems) {\r\n var items = this.option(\"items\");\r\n if (this._initialized && this._isVirtualMode() && items.length) {\r\n return\r\n }\r\n this.option(\"items\", newItems)\r\n },\r\n _removeTreeViewLoadIndicator: function() {\r\n if (!this._treeViewLoadIndicator) {\r\n return\r\n }\r\n this._treeViewLoadIndicator.remove();\r\n this._treeViewLoadIndicator = null\r\n },\r\n _createTreeViewLoadIndicator: function() {\r\n this._treeViewLoadIndicator = $(\"<div>\").addClass(LOAD_INDICATOR_CLASS);\r\n this._createComponent(this._treeViewLoadIndicator, LoadIndicator, {});\r\n return this._treeViewLoadIndicator\r\n },\r\n _dataSourceLoadingChangedHandler: function(isLoading) {\r\n var resultFilter;\r\n if (this._isVirtualMode()) {\r\n resultFilter = this._combineFilter();\r\n this._dataSource.filter(resultFilter)\r\n }\r\n if (isLoading && !this._dataSource.isLoaded()) {\r\n this.option(\"items\", []);\r\n var $wrapper = $(\"<div>\").addClass(LOAD_INDICATOR_WRAPPER_CLASS);\r\n this._createTreeViewLoadIndicator().appendTo($wrapper);\r\n this.itemsContainer().append($wrapper);\r\n if (this._isVirtualMode() && this._dataSource.filter() !== resultFilter) {\r\n this._dataSource.filter([])\r\n }\r\n } else {\r\n this._removeTreeViewLoadIndicator()\r\n }\r\n },\r\n _initStoreChangeHandlers: function() {\r\n if (\"plain\" !== this.option(\"dataStructure\")) {\r\n return\r\n }\r\n this._dataSource && this._dataSource.store().on(\"inserted\", newItem => {\r\n this.option().items = this.option(\"items\").concat(newItem);\r\n this._dataAdapter.addItem(newItem);\r\n if (!this._dataAdapter.isFiltered(newItem)) {\r\n return\r\n }\r\n this._updateLevel(this._parentIdGetter(newItem))\r\n }).on(\"removed\", removedKey => {\r\n var node = this._dataAdapter.getNodeByKey(removedKey);\r\n if (isDefined(node)) {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(node.internalFields.key)] = 0;\r\n this._markChildrenItemsToRemove(node);\r\n this._removeItems();\r\n this._dataAdapter.removeItem(removedKey);\r\n this._updateLevel(this._parentIdGetter(node))\r\n }\r\n })\r\n },\r\n _markChildrenItemsToRemove: function(node) {\r\n var keys = node.internalFields.childrenKeys;\r\n each(keys, (_, key) => {\r\n this.option(\"items\")[this._dataAdapter.getIndexByKey(key)] = 0;\r\n this._markChildrenItemsToRemove(this._dataAdapter.getNodeByKey(key))\r\n })\r\n },\r\n _removeItems: function() {\r\n var items = extend(true, [], this.option(\"items\"));\r\n var counter = 0;\r\n each(items, (index, item) => {\r\n if (!item) {\r\n this.option(\"items\").splice(index - counter, 1);\r\n counter++\r\n }\r\n })\r\n },\r\n _updateLevel: function(parentId) {\r\n var $container = this._getContainerByParentKey(parentId);\r\n this._renderItems($container, this._dataAdapter.getChildrenNodes(parentId))\r\n },\r\n _getOldContainer: function($itemElement) {\r\n if ($itemElement.length) {\r\n return $itemElement.children(\".\".concat(NODE_CONTAINER_CLASS))\r\n }\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n return $(scrollable.content()).children()\r\n }\r\n return $()\r\n },\r\n _getContainerByParentKey: function(parentId) {\r\n var node = this._dataAdapter.getNodeByKey(parentId);\r\n var $itemElement = node ? this._getNodeElement(node) : [];\r\n this._getOldContainer($itemElement).remove();\r\n var $container = this._renderNodeContainer($itemElement);\r\n if (this._isRootLevel(parentId)) {\r\n var scrollable = this.getScrollable();\r\n if (!scrollable) {\r\n this._renderScrollableContainer()\r\n }\r\n $(scrollable.content()).append($container)\r\n }\r\n return $container\r\n },\r\n _isRootLevel: function(parentId) {\r\n return parentId === this.option(\"rootValue\")\r\n },\r\n _getAccessors: function() {\r\n var accessors = this.callBase();\r\n accessors.push(\"hasItems\");\r\n return accessors\r\n },\r\n _getDataAdapterOptions: function() {\r\n return {\r\n rootValue: this.option(\"rootValue\"),\r\n multipleSelection: !this._isSingleSelection(),\r\n recursiveSelection: this._isRecursiveSelection(),\r\n recursiveExpansion: this.option(\"expandNodesRecursive\"),\r\n selectionRequired: this.option(\"selectionRequired\"),\r\n dataType: this.option(\"dataStructure\"),\r\n sort: this._dataSource && this._dataSource.sort()\r\n }\r\n },\r\n _initMarkup: function() {\r\n this._renderScrollableContainer();\r\n this._renderEmptyMessage(this._dataAdapter.getRootNodes());\r\n this.callBase();\r\n this.setAria(\"role\", \"tree\")\r\n },\r\n _renderContentImpl: function() {\r\n var $nodeContainer = this._renderNodeContainer();\r\n $(this.getScrollable().content()).append($nodeContainer);\r\n if (!this.option(\"items\") || !this.option(\"items\").length) {\r\n return\r\n }\r\n this._renderItems($nodeContainer, this._dataAdapter.getRootNodes());\r\n this._initExpandEvent();\r\n if (this._selectAllEnabled()) {\r\n this._createSelectAllValueChangedAction();\r\n this._renderSelectAllItem($nodeContainer)\r\n }\r\n },\r\n _isVirtualMode: function() {\r\n return this.option(\"virtualModeEnabled\") && this._isDataStructurePlain() && !!this.option(\"dataSource\")\r\n },\r\n _isDataStructurePlain: function() {\r\n return \"plain\" === this.option(\"dataStructure\")\r\n },\r\n _fireContentReadyAction: function() {\r\n var dataSource = this.getDataSource();\r\n var skipContentReadyAction = dataSource && !dataSource.isLoaded();\r\n var scrollable = this.getScrollable();\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n if (!skipContentReadyAction) {\r\n this.callBase()\r\n }\r\n if (scrollable && hasWindow()) {\r\n scrollable.update()\r\n }\r\n },\r\n _renderScrollableContainer: function() {\r\n this._scrollable = this._createComponent($(\"<div>\").appendTo(this.$element()), Scrollable, {\r\n useNative: this.option(\"useNativeScrolling\"),\r\n direction: this.option(\"scrollDirection\"),\r\n useKeyboard: false\r\n })\r\n },\r\n _renderNodeContainer: function($parent) {\r\n var $container = $(\"<ul>\").addClass(NODE_CONTAINER_CLASS);\r\n this.setAria(\"role\", \"group\", $container);\r\n if ($parent && $parent.length) {\r\n var itemData = this._getItemData($parent.children(\".\" + ITEM_CLASS));\r\n if (this._expandedGetter(itemData)) {\r\n $container.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n $container.appendTo($parent)\r\n }\r\n return $container\r\n },\r\n _createDOMElement: function($nodeContainer, node) {\r\n var $node = $(\"<li>\").addClass(NODE_CLASS).attr(DATA_ITEM_ID, this._encodeString(node.internalFields.key)).prependTo($nodeContainer);\r\n this.setAria({\r\n role: \"treeitem\",\r\n label: this._displayGetter(node.internalFields.item) || \"\",\r\n expanded: node.internalFields.expanded || false,\r\n level: this._getLevel($nodeContainer)\r\n }, $node);\r\n return $node\r\n },\r\n _getLevel: function($nodeContainer) {\r\n var parent = $nodeContainer.parent();\r\n return parent.hasClass(\"dx-scrollable-content\") ? 1 : parseInt(parent.attr(\"aria-level\")) + 1\r\n },\r\n _showCheckboxes: function() {\r\n return \"none\" !== this.option(\"showCheckBoxesMode\")\r\n },\r\n _selectAllEnabled: function() {\r\n return \"selectAll\" === this.option(\"showCheckBoxesMode\") && !this._isSingleSelection()\r\n },\r\n _renderItems: function($nodeContainer, nodes) {\r\n var length = nodes.length - 1;\r\n for (var i = length; i >= 0; i--) {\r\n this._renderItem(i, nodes[i], $nodeContainer)\r\n }\r\n this._renderedItemsCount += nodes.length\r\n },\r\n _renderItem: function(nodeIndex, node, $nodeContainer) {\r\n var $node = this._createDOMElement($nodeContainer, node);\r\n var nodeData = node.internalFields;\r\n var showCheckBox = this._showCheckboxes();\r\n $node.addClass(showCheckBox ? ITEM_WITH_CHECKBOX_CLASS : ITEM_WITHOUT_CHECKBOX_CLASS);\r\n $node.toggleClass(INVISIBLE_STATE_CLASS, false === nodeData.item.visible);\r\n showCheckBox && this._renderCheckBox($node, node);\r\n this.setAria(\"selected\", nodeData.selected, $node);\r\n this._toggleSelectedClass($node, nodeData.selected);\r\n this.callBase(this._renderedItemsCount + nodeIndex, nodeData.item, $node);\r\n if (false !== nodeData.item.visible) {\r\n this._renderChildren($node, node)\r\n }\r\n },\r\n _setAriaSelected: function() {},\r\n _renderChildren: function($node, node) {\r\n if (!this._hasChildren(node)) {\r\n this._addLeafClass($node);\r\n return\r\n }\r\n this._renderToggleItemVisibilityIcon($node, node);\r\n if (this.option(\"deferRendering\") && !node.internalFields.expanded) {\r\n return\r\n }\r\n this._loadSublevel(node).done(childNodes => {\r\n this._renderSublevel($node, this._getActualNode(node), childNodes)\r\n })\r\n },\r\n _getActualNode: function(cachedNode) {\r\n return this._dataAdapter.getNodeByKey(cachedNode.internalFields.key)\r\n },\r\n _hasChildren: function(node) {\r\n if (this._isVirtualMode() || this._useCustomChildrenLoader()) {\r\n return false !== this._hasItemsGetter(node.internalFields.item)\r\n }\r\n return this.callBase(node)\r\n },\r\n _loadSublevel: function(node) {\r\n var deferred = new Deferred;\r\n var childrenNodes = this._getChildNodes(node);\r\n if (childrenNodes.length) {\r\n deferred.resolve(childrenNodes)\r\n } else {\r\n this._loadNestedItems(node).done(items => {\r\n deferred.resolve(this._dataAdapter.getNodesByItems(items))\r\n })\r\n }\r\n return deferred.promise()\r\n },\r\n _renderSublevel: function($node, node, childNodes) {\r\n var $nestedNodeContainer = this._renderNodeContainer($node, node);\r\n var childNodesByChildrenKeys = childNodes.filter(childNode => -1 !== node.internalFields.childrenKeys.indexOf(childNode.internalFields.key));\r\n this._renderItems($nestedNodeContainer, childNodesByChildrenKeys);\r\n if (childNodesByChildrenKeys.length && !node.internalFields.selected) {\r\n var firstChild = childNodesByChildrenKeys[0];\r\n this._updateParentsState(firstChild, this._getNodeElement(firstChild))\r\n }\r\n this._normalizeIconState($node, childNodesByChildrenKeys.length);\r\n if (node.internalFields.expanded) {\r\n $nestedNodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n },\r\n _executeItemRenderAction: function(itemIndex, itemData, itemElement) {\r\n var node = this._getNode(itemElement);\r\n this._getItemRenderAction()({\r\n itemElement: itemElement,\r\n itemIndex: itemIndex,\r\n itemData: itemData,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _addLeafClass: function($node) {\r\n $node.addClass(IS_LEAF)\r\n },\r\n _expandEventHandler: function(e) {\r\n var $nodeElement = $(e.currentTarget.parentNode);\r\n if (!$nodeElement.hasClass(IS_LEAF)) {\r\n this._toggleExpandedState(e.currentTarget, void 0, e)\r\n }\r\n },\r\n _initExpandEvent: function() {\r\n var expandedEventName = this._getEventNameByOption(this.option(\"expandEvent\"));\r\n var $itemsContainer = this._itemContainer();\r\n var itemSelector = this._itemSelector();\r\n eventsEngine.off($itemsContainer, \".\" + EXPAND_EVENT_NAMESPACE, itemSelector);\r\n eventsEngine.on($itemsContainer, expandedEventName, itemSelector, this._expandEventHandler.bind(this))\r\n },\r\n _getEventNameByOption: function(name) {\r\n var event = \"click\" === name ? clickEventName : dblclickEvent;\r\n return addNamespace(event, EXPAND_EVENT_NAMESPACE)\r\n },\r\n _getNode: function(identifier) {\r\n if (!isDefined(identifier)) {\r\n return null\r\n }\r\n if (identifier.internalFields) {\r\n return identifier\r\n }\r\n if (isPrimitive(identifier)) {\r\n return this._dataAdapter.getNodeByKey(identifier)\r\n }\r\n var itemElement = $(identifier).get(0);\r\n if (!itemElement) {\r\n return null\r\n }\r\n if (domAdapter.isElementNode(itemElement)) {\r\n return this._getNodeByElement(itemElement)\r\n }\r\n return this._dataAdapter.getNodeByItem(itemElement)\r\n },\r\n _getNodeByElement: function(itemElement) {\r\n var $node = $(itemElement).closest(\".\" + NODE_CLASS);\r\n var key = this._decodeString($node.attr(DATA_ITEM_ID));\r\n return this._dataAdapter.getNodeByKey(key)\r\n },\r\n _toggleExpandedState: function(itemElement, state, e) {\r\n var node = this._getNode(itemElement);\r\n if (!node) {\r\n return (new Deferred).reject().promise()\r\n }\r\n if (node.internalFields.disabled) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var currentState = node.internalFields.expanded;\r\n if (currentState === state) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n if (this._hasChildren(node)) {\r\n var $node = this._getNodeElement(node);\r\n if ($node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS, \":not(.\").concat(INVISIBLE_STATE_CLASS, \")\")).length) {\r\n return (new Deferred).reject().promise()\r\n }\r\n this._createLoadIndicator($node)\r\n }\r\n if (!isDefined(state)) {\r\n state = !currentState\r\n }\r\n this._dataAdapter.toggleExpansion(node.internalFields.key, state);\r\n return this._updateExpandedItemsUI(node, state, e)\r\n },\r\n _createLoadIndicator: function($node) {\r\n var $icon = $node.children(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if ($icon.hasClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS) || $nodeContainer.not(\":empty\").length) {\r\n return\r\n }\r\n this._createComponent($(\"<div>\").addClass(NODE_LOAD_INDICATOR_CLASS), LoadIndicator, {}).$element().appendTo($node);\r\n $icon.hide()\r\n },\r\n _renderToggleItemVisibilityIcon: function($node, node) {\r\n var $icon = $(\"<div>\").addClass(TOGGLE_ITEM_VISIBILITY_CLASS).appendTo($node);\r\n if (node.internalFields.expanded) {\r\n $icon.addClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS);\r\n $node.parent().addClass(OPENED_NODE_CONTAINER_CLASS)\r\n }\r\n if (node.internalFields.disabled) {\r\n $icon.addClass(DISABLED_STATE_CLASS)\r\n }\r\n this._renderToggleItemVisibilityIconClick($icon, node)\r\n },\r\n _renderToggleItemVisibilityIconClick: function($icon, node) {\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n eventsEngine.off($icon, eventName);\r\n eventsEngine.on($icon, eventName, e => {\r\n this._toggleExpandedState(node.internalFields.key, void 0, e)\r\n })\r\n },\r\n _updateExpandedItemsUI: function(node, state, e) {\r\n var $node = this._getNodeElement(node);\r\n var isHiddenNode = !$node.length || state && $node.is(\":hidden\");\r\n if (this.option(\"expandNodesRecursive\") && isHiddenNode) {\r\n var parentNode = this._getNode(node.internalFields.parentKey);\r\n if (parentNode) {\r\n this._updateExpandedItemsUI(parentNode, state, e)\r\n }\r\n }\r\n var $icon = $node.children(\".\" + TOGGLE_ITEM_VISIBILITY_CLASS);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n $icon.toggleClass(TOGGLE_ITEM_VISIBILITY_OPENED_CLASS, state);\r\n var nodeContainerExists = $nodeContainer.length > 0;\r\n var completionCallback = new Deferred;\r\n if (!state || nodeContainerExists && !$nodeContainer.is(\":empty\")) {\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n if (0 === node.internalFields.childrenKeys.length && (this._isVirtualMode() || this._useCustomChildrenLoader())) {\r\n this._loadNestedItemsWithUpdate(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n }\r\n this._renderSublevel($node, node, this._getChildNodes(node));\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(node, state, e, completionCallback);\r\n return completionCallback.promise()\r\n },\r\n _loadNestedItemsWithUpdate: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n this._loadNestedItems(node).done(items => {\r\n var actualNodeData = this._getActualNode(node);\r\n this._renderSublevel($node, actualNodeData, this._dataAdapter.getNodesByItems(items));\r\n if (!items || !items.length) {\r\n completionCallback.resolve();\r\n return\r\n }\r\n this._fireContentReadyAction();\r\n this._animateNodeContainer(actualNodeData, state, e, completionCallback)\r\n })\r\n },\r\n _loadNestedItems: function(node) {\r\n if (this._useCustomChildrenLoader()) {\r\n var publicNode = this._dataAdapter.getPublicNode(node);\r\n return this._loadChildrenByCustomLoader(publicNode).done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n }\r\n if (!this._isVirtualMode()) {\r\n return (new Deferred).resolve([]).promise()\r\n }\r\n this._filter.internal = [this.option(\"parentIdExpr\"), node.internalFields.key];\r\n this._dataSource.filter(this._combineFilter());\r\n return this._dataSource.load().done(newItems => {\r\n if (!this._areNodesExists(newItems)) {\r\n this._appendItems(newItems)\r\n }\r\n })\r\n },\r\n _areNodesExists: function(newItems, items) {\r\n var keyOfRootItem = this.keyOf(newItems[0]);\r\n var fullData = this._dataAdapter.getFullData();\r\n return !!this._dataAdapter.getNodeByKey(keyOfRootItem, fullData)\r\n },\r\n _appendItems: function(newItems) {\r\n this.option().items = this.option(\"items\").concat(newItems);\r\n this._initDataAdapter()\r\n },\r\n _animateNodeContainer: function(node, state, e, completionCallback) {\r\n var $node = this._getNodeElement(node);\r\n var $nodeContainer = $node.children(\".\".concat(NODE_CONTAINER_CLASS));\r\n if (node && completionCallback && 0 === $nodeContainer.length) {\r\n completionCallback.resolve()\r\n }\r\n $nodeContainer.addClass(OPENED_NODE_CONTAINER_CLASS);\r\n var nodeHeight = getHeight($nodeContainer);\r\n fx.stop($nodeContainer, true);\r\n fx.animate($nodeContainer, {\r\n type: \"custom\",\r\n duration: this.option(\"animationEnabled\") ? 400 : 0,\r\n from: {\r\n maxHeight: state ? 0 : nodeHeight\r\n },\r\n to: {\r\n maxHeight: state ? nodeHeight : 0\r\n },\r\n complete: function() {\r\n $nodeContainer.css(\"maxHeight\", \"none\");\r\n $nodeContainer.toggleClass(OPENED_NODE_CONTAINER_CLASS, state);\r\n this.setAria(\"expanded\", state, $node);\r\n this.getScrollable().update();\r\n this._fireExpandedStateUpdatedEvent(state, node, e);\r\n if (completionCallback) {\r\n completionCallback.resolve()\r\n }\r\n }.bind(this)\r\n })\r\n },\r\n _fireExpandedStateUpdatedEvent: function(isExpanded, node, e) {\r\n if (!this._hasChildren(node)) {\r\n return\r\n }\r\n var optionName = isExpanded ? \"onItemExpanded\" : \"onItemCollapsed\";\r\n if (isDefined(e)) {\r\n this._itemDXEventHandler(e, optionName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n } else {\r\n var target = this._getNodeElement(node);\r\n this._itemEventHandler(target, optionName, {\r\n event: e,\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n }\r\n },\r\n _normalizeIconState: function($node, hasNewItems) {\r\n var $loadIndicator = $node.find(\".\".concat(NODE_LOAD_INDICATOR_CLASS));\r\n if ($loadIndicator.length) {\r\n var _LoadIndicator$getIns;\r\n null === (_LoadIndicator$getIns = LoadIndicator.getInstance($loadIndicator)) || void 0 === _LoadIndicator$getIns ? void 0 : _LoadIndicator$getIns.option(\"visible\", false)\r\n }\r\n var $toggleItem = $node.find(\".\".concat(TOGGLE_ITEM_VISIBILITY_CLASS));\r\n if (hasNewItems) {\r\n $toggleItem.show();\r\n return\r\n }\r\n $toggleItem.removeClass(TOGGLE_ITEM_VISIBILITY_CLASS);\r\n $node.addClass(IS_LEAF)\r\n },\r\n _emptyMessageContainer: function() {\r\n var scrollable = this.getScrollable();\r\n return scrollable ? $(scrollable.content()) : this.callBase()\r\n },\r\n _renderContent: function() {\r\n var items = this.option(\"items\");\r\n if (items && items.length) {\r\n this._contentAlreadyRendered = true\r\n }\r\n this.callBase()\r\n },\r\n _renderSelectAllItem: function($container) {\r\n $container = $container || this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n this._$selectAllItem = $(\"<div>\").addClass(SELECT_ALL_ITEM_CLASS);\r\n var value = this._dataAdapter.isAllSelected();\r\n this._createComponent(this._$selectAllItem, CheckBox, {\r\n value: value,\r\n tabIndex: 1,\r\n text: this.option(\"selectAllText\"),\r\n onValueChanged: this._onSelectAllCheckboxValueChanged.bind(this)\r\n });\r\n this._toggleSelectedClass(this._$selectAllItem, value);\r\n $container.before(this._$selectAllItem)\r\n },\r\n _onSelectAllCheckboxValueChanged: function(args) {\r\n this._toggleSelectAll(args);\r\n this._fireSelectAllValueChanged(args.value)\r\n },\r\n _toggleSelectAll: function(args) {\r\n this._dataAdapter.toggleSelectAll(args.value);\r\n this._updateItemsUI();\r\n this._fireSelectionChanged()\r\n },\r\n _renderCheckBox: function($node, node) {\r\n var $checkbox = $(\"<div>\").appendTo($node);\r\n this._createComponent($checkbox, CheckBox, {\r\n value: node.internalFields.selected,\r\n onValueChanged: this._changeCheckboxValue.bind(this),\r\n focusStateEnabled: false,\r\n disabled: this._disabledGetter(node)\r\n })\r\n },\r\n _toggleSelectedClass: function($node, value) {\r\n $node.toggleClass(SELECTED_ITEM_CLASS, !!value)\r\n },\r\n _toggleNodeDisabledState: function(node, state) {\r\n var $node = this._getNodeElement(node);\r\n var $item = $node.find(\".\" + ITEM_CLASS).eq(0);\r\n this._dataAdapter.toggleNodeDisabledState(node.internalFields.key, state);\r\n $item.toggleClass(DISABLED_STATE_CLASS, !!state);\r\n if (this._showCheckboxes()) {\r\n var checkbox = this._getCheckBoxInstance($node);\r\n checkbox.option(\"disabled\", !!state)\r\n }\r\n },\r\n _itemOptionChanged: function(item, property, value) {\r\n var node = this._dataAdapter.getNodeByItem(item);\r\n if (property === this.option(\"disabledExpr\")) {\r\n this._toggleNodeDisabledState(node, value)\r\n }\r\n },\r\n _changeCheckboxValue: function(e) {\r\n var $node = $(e.element).parent(\".\" + NODE_CLASS);\r\n var $item = $node.children(\".\" + ITEM_CLASS);\r\n var item = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n var value = e.value;\r\n if (node && node.internalFields.selected === value) {\r\n return\r\n }\r\n this._updateItemSelection(value, item, e.event)\r\n },\r\n _isSingleSelection: function() {\r\n return \"single\" === this.option(\"selectionMode\")\r\n },\r\n _isRecursiveSelection: function() {\r\n return this.option(\"selectNodesRecursive\") && \"single\" !== this.option(\"selectionMode\")\r\n },\r\n _isLastSelectedBranch: function(publicNode, selectedNodesKeys, deep) {\r\n var keyIndex = selectedNodesKeys.indexOf(publicNode.key);\r\n if (keyIndex >= 0) {\r\n selectedNodesKeys.splice(keyIndex, 1)\r\n }\r\n if (deep) {\r\n each(publicNode.children, function(_, childNode) {\r\n this._isLastSelectedBranch(childNode, selectedNodesKeys, true)\r\n }.bind(this))\r\n }\r\n if (publicNode.parent) {\r\n this._isLastSelectedBranch(publicNode.parent, selectedNodesKeys)\r\n }\r\n return 0 === selectedNodesKeys.length\r\n },\r\n _isLastRequired: function(node) {\r\n var selectionRequired = this.option(\"selectionRequired\");\r\n var isSingleMode = this._isSingleSelection();\r\n var selectedNodesKeys = this.getSelectedNodeKeys();\r\n if (!selectionRequired) {\r\n return\r\n }\r\n if (isSingleMode) {\r\n return 1 === selectedNodesKeys.length\r\n } else {\r\n return this._isLastSelectedBranch(node.internalFields.publicNode, selectedNodesKeys.slice(), true)\r\n }\r\n },\r\n _updateItemSelection: function(value, itemElement, dxEvent) {\r\n var node = this._getNode(itemElement);\r\n if (!node || false === node.visible) {\r\n return false\r\n }\r\n if (node.internalFields.selected === value) {\r\n return true\r\n }\r\n if (!value && this._isLastRequired(node)) {\r\n if (this._showCheckboxes()) {\r\n var $node = this._getNodeElement(node);\r\n this._getCheckBoxInstance($node).option(\"value\", true)\r\n }\r\n return false\r\n }\r\n if (value && this._isSingleSelection()) {\r\n var selectedKeys = this.getSelectedNodeKeys();\r\n each(selectedKeys, (index, key) => {\r\n this._dataAdapter.toggleSelection(key, false);\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(this._getNode(key))\r\n })\r\n }\r\n this._dataAdapter.toggleSelection(node.internalFields.key, value);\r\n var isAllSelected = this._dataAdapter.isAllSelected();\r\n var needFireSelectAllChanged = this._selectAllEnabled() && this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\") !== isAllSelected;\r\n this._updateItemsUI();\r\n this._fireItemSelectionChanged(node, dxEvent);\r\n this._fireSelectionChanged();\r\n if (needFireSelectAllChanged) {\r\n this._fireSelectAllValueChanged(isAllSelected)\r\n }\r\n return true\r\n },\r\n _fireItemSelectionChanged: function(node, dxEvent) {\r\n var initiator = dxEvent || this._findItemElementByItem(node.internalFields.item);\r\n var handler = dxEvent ? this._itemDXEventHandler : this._itemEventHandler;\r\n handler.call(this, initiator, \"onItemSelectionChanged\", {\r\n node: this._dataAdapter.getPublicNode(node),\r\n itemData: node.internalFields.item\r\n })\r\n },\r\n _getCheckBoxInstance: function($node) {\r\n return $node.children(\".dx-checkbox\").dxCheckBox(\"instance\")\r\n },\r\n _updateItemsUI: function() {\r\n var cache = {};\r\n each(this._dataAdapter.getData(), (_, node) => {\r\n var $node = this._getNodeElement(node, cache);\r\n var nodeSelection = node.internalFields.selected;\r\n if (!$node.length) {\r\n return\r\n }\r\n this._toggleSelectedClass($node, nodeSelection);\r\n this.setAria(\"selected\", nodeSelection, $node);\r\n if (this._showCheckboxes()) {\r\n this._getCheckBoxInstance($node).option(\"value\", nodeSelection)\r\n }\r\n });\r\n if (this._selectAllEnabled()) {\r\n var selectAllCheckbox = this._$selectAllItem.dxCheckBox(\"instance\");\r\n selectAllCheckbox.option(\"onValueChanged\", void 0);\r\n selectAllCheckbox.option(\"value\", this._dataAdapter.isAllSelected());\r\n selectAllCheckbox.option(\"onValueChanged\", this._onSelectAllCheckboxValueChanged.bind(this))\r\n }\r\n },\r\n _updateParentsState: function(node, $node) {\r\n if (!$node) {\r\n return\r\n }\r\n var parentNode = this._dataAdapter.getNodeByKey(node.internalFields.parentKey);\r\n var $parentNode = $($node.parents(\".\" + NODE_CLASS)[0]);\r\n if (this._showCheckboxes()) {\r\n var parentValue = parentNode.internalFields.selected;\r\n this._getCheckBoxInstance($parentNode).option(\"value\", parentValue);\r\n this._toggleSelectedClass($parentNode, parentValue)\r\n }\r\n if (parentNode.internalFields.parentKey !== this.option(\"rootValue\")) {\r\n this._updateParentsState(parentNode, $parentNode)\r\n }\r\n },\r\n _itemEventHandlerImpl: function(initiator, action, actionArgs) {\r\n var $itemElement = $(initiator).closest(\".\" + NODE_CLASS).children(\".\" + ITEM_CLASS);\r\n return action(extend(this._extendActionArgs($itemElement), actionArgs))\r\n },\r\n _itemContextMenuHandler: function(e) {\r\n this._createEventHandler(\"onItemContextMenu\", e)\r\n },\r\n _itemHoldHandler: function(e) {\r\n this._createEventHandler(\"onItemHold\", e)\r\n },\r\n _createEventHandler: function(eventName, e) {\r\n var node = this._getNodeByElement(e.currentTarget);\r\n this._itemDXEventHandler(e, eventName, {\r\n node: this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n _itemClass: function() {\r\n return ITEM_CLASS\r\n },\r\n _itemDataKey: function() {\r\n return ITEM_DATA_KEY\r\n },\r\n _attachClickEvent: function() {\r\n var clickSelector = \".\" + this._itemClass();\r\n var pointerDownSelector = \".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS;\r\n var eventName = addNamespace(clickEventName, this.NAME);\r\n var pointerDownEvent = addNamespace(pointerEvents.down, this.NAME);\r\n var $itemContainer = this._itemContainer();\r\n var that = this;\r\n eventsEngine.off($itemContainer, eventName, clickSelector);\r\n eventsEngine.off($itemContainer, pointerDownEvent, pointerDownSelector);\r\n eventsEngine.on($itemContainer, eventName, clickSelector, (function(e) {\r\n that._itemClickHandler(e, $(this))\r\n }));\r\n eventsEngine.on($itemContainer, pointerDownEvent, pointerDownSelector, (function(e) {\r\n that._itemPointerDownHandler(e)\r\n }))\r\n },\r\n _itemClickHandler: function(e, $item) {\r\n var itemData = this._getItemData($item);\r\n var node = this._getNodeByElement($item);\r\n this._itemDXEventHandler(e, \"onItemClick\", {\r\n node: this._dataAdapter.getPublicNode(node)\r\n });\r\n if (this.option(\"selectByClick\") && !e.isDefaultPrevented()) {\r\n this._updateItemSelection(!node.internalFields.selected, itemData, e)\r\n }\r\n },\r\n _updateSelectionToFirstItem: function($items, startIndex) {\r\n var itemIndex = startIndex;\r\n while (itemIndex >= 0) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex--\r\n }\r\n },\r\n _updateSelectionToLastItem: function($items, startIndex) {\r\n var length = $items.length;\r\n var itemIndex = startIndex;\r\n while (itemIndex < length) {\r\n var $item = $($items[itemIndex]);\r\n this._updateItemSelection(true, $item.find(\".\" + ITEM_CLASS).get(0));\r\n itemIndex++\r\n }\r\n },\r\n _focusInHandler: function(e) {\r\n this._updateFocusState(e, true);\r\n var isSelectAllItem = $(e.target).hasClass(SELECT_ALL_ITEM_CLASS);\r\n if (isSelectAllItem || this.option(\"focusedElement\")) {\r\n clearTimeout(this._setFocusedItemTimeout);\r\n var element = isSelectAllItem ? getPublicElement(this._$selectAllItem) : $(this.option(\"focusedElement\"));\r\n this._setFocusedItemTimeout = setTimeout(() => {\r\n this._setFocusedItem(element)\r\n });\r\n return\r\n }\r\n var $activeItem = this._getActiveItem();\r\n this.option(\"focusedElement\", getPublicElement($activeItem.closest(\".\" + NODE_CLASS)))\r\n },\r\n _setFocusedItem: function($target) {\r\n if (!$target || !$target.length) {\r\n return\r\n }\r\n if (!$target.children().hasClass(DISABLED_STATE_CLASS)) {\r\n this.callBase($target)\r\n }\r\n },\r\n _itemPointerDownHandler: function(e) {\r\n if (!this.option(\"focusStateEnabled\")) {\r\n return\r\n }\r\n var $target = $(e.target).closest(\".\" + NODE_CLASS + \", .\" + SELECT_ALL_ITEM_CLASS);\r\n if (!$target.length) {\r\n return\r\n }\r\n var itemElement = $target.hasClass(DISABLED_STATE_CLASS) ? null : $target;\r\n this.option(\"focusedElement\", getPublicElement(itemElement))\r\n },\r\n _findNonDisabledNodes: function($nodes) {\r\n return $nodes.not((function() {\r\n return $(this).children(\".\" + ITEM_CLASS).hasClass(DISABLED_STATE_CLASS)\r\n }))\r\n },\r\n _moveFocus: function(location, e) {\r\n var FOCUS_UP = \"up\";\r\n var FOCUS_DOWN = \"down\";\r\n var FOCUS_FIRST = \"first\";\r\n var FOCUS_LAST = \"last\";\r\n var FOCUS_LEFT = this.option(\"rtlEnabled\") ? \"right\" : \"left\";\r\n var FOCUS_RIGHT = this.option(\"rtlEnabled\") ? \"left\" : \"right\";\r\n this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).each((function() {\r\n fx.stop(this, true)\r\n }));\r\n var $items = this._findNonDisabledNodes(this._nodeElements());\r\n if (!$items || !$items.length) {\r\n return\r\n }\r\n switch (location) {\r\n case FOCUS_UP:\r\n var $prevItem = this._prevItem($items);\r\n this.option(\"focusedElement\", getPublicElement($prevItem));\r\n var prevItemElement = this._getNodeItemElement($prevItem);\r\n this.getScrollable().scrollToElement(prevItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, prevItemElement)\r\n }\r\n break;\r\n case FOCUS_DOWN:\r\n var $nextItem = this._nextItem($items);\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n var nextItemElement = this._getNodeItemElement($nextItem);\r\n this.getScrollable().scrollToElement(nextItemElement);\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateItemSelection(true, nextItemElement)\r\n }\r\n break;\r\n case FOCUS_FIRST:\r\n var $firstItem = $items.first();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToFirstItem($items, $items.index(this._prevItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($firstItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($firstItem));\r\n break;\r\n case FOCUS_LAST:\r\n var $lastItem = $items.last();\r\n if (e.shiftKey && this._showCheckboxes()) {\r\n this._updateSelectionToLastItem($items, $items.index(this._nextItem($items)))\r\n }\r\n this.option(\"focusedElement\", getPublicElement($lastItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($lastItem));\r\n break;\r\n case FOCUS_RIGHT:\r\n this._expandFocusedContainer();\r\n break;\r\n case FOCUS_LEFT:\r\n this._collapseFocusedContainer();\r\n break;\r\n default:\r\n this.callBase.apply(this, arguments);\r\n return\r\n }\r\n },\r\n _getNodeItemElement: function($node) {\r\n return $node.find(\".\" + ITEM_CLASS).get(0)\r\n },\r\n _nodeElements: function() {\r\n return this.$element().find(\".\" + NODE_CLASS).not(\":hidden\")\r\n },\r\n _expandFocusedContainer: function() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length || $focusedNode.hasClass(IS_LEAF)) {\r\n return\r\n }\r\n var $node = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if ($node.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var $nextItem = this._nextItem(this._findNonDisabledNodes(this._nodeElements()));\r\n this.option(\"focusedElement\", getPublicElement($nextItem));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement($nextItem));\r\n return\r\n }\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, true)\r\n },\r\n _getClosestNonDisabledNode: function($node) {\r\n do {\r\n $node = $node.parent().closest(\".\" + NODE_CLASS)\r\n } while ($node.children(\".dx-treeview-item.dx-state-disabled\").length);\r\n return $node\r\n },\r\n _collapseFocusedContainer: function() {\r\n var $focusedNode = $(this.option(\"focusedElement\"));\r\n if (!$focusedNode.length) {\r\n return\r\n }\r\n var nodeElement = $focusedNode.find(\".\".concat(NODE_CONTAINER_CLASS)).eq(0);\r\n if (!$focusedNode.hasClass(IS_LEAF) && nodeElement.hasClass(OPENED_NODE_CONTAINER_CLASS)) {\r\n var node = this._getNodeByElement($focusedNode.children(\".\" + ITEM_CLASS));\r\n this._toggleExpandedState(node, false)\r\n } else {\r\n var collapsedNode = this._getClosestNonDisabledNode($focusedNode);\r\n collapsedNode.length && this.option(\"focusedElement\", getPublicElement(collapsedNode));\r\n this.getScrollable().scrollToElement(this._getNodeItemElement(collapsedNode))\r\n }\r\n },\r\n _encodeString: function(value) {\r\n return isString(value) ? encodeURI(value) : value\r\n },\r\n _decodeString: function(value) {\r\n return isString(value) ? decodeURI(value) : value\r\n },\r\n getScrollable: function() {\r\n return this._scrollable\r\n },\r\n updateDimensions: function() {\r\n var deferred = new Deferred;\r\n var scrollable = this.getScrollable();\r\n if (scrollable) {\r\n scrollable.update().done(() => {\r\n deferred.resolveWith(this)\r\n })\r\n } else {\r\n deferred.resolveWith(this)\r\n }\r\n return deferred.promise()\r\n },\r\n selectItem: function(itemElement) {\r\n return this._updateItemSelection(true, itemElement)\r\n },\r\n unselectItem: function(itemElement) {\r\n return this._updateItemSelection(false, itemElement)\r\n },\r\n expandItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, true)\r\n },\r\n collapseItem: function(itemElement) {\r\n return this._toggleExpandedState(itemElement, false)\r\n },\r\n getNodes: function() {\r\n return this._dataAdapter.getTreeNodes()\r\n },\r\n getSelectedNodes: function() {\r\n return this.getSelectedNodeKeys().map(key => {\r\n var node = this._dataAdapter.getNodeByKey(key);\r\n return this._dataAdapter.getPublicNode(node)\r\n })\r\n },\r\n getSelectedNodeKeys: function() {\r\n return this._dataAdapter.getSelectedNodesKeys()\r\n },\r\n selectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", true)\r\n } else {\r\n this._toggleSelectAll({\r\n value: true\r\n })\r\n }\r\n },\r\n unselectAll: function() {\r\n if (this._selectAllEnabled()) {\r\n this._$selectAllItem.dxCheckBox(\"instance\").option(\"value\", false)\r\n } else {\r\n this._toggleSelectAll({\r\n value: false\r\n })\r\n }\r\n },\r\n expandAll: function() {\r\n var dataAdapter = this._dataAdapter;\r\n each(dataAdapter.getData(), (_, node) => dataAdapter.toggleExpansion(node.internalFields.key, true));\r\n this.repaint()\r\n },\r\n collapseAll: function() {\r\n each(this._dataAdapter.getExpandedNodesKeys(), function(_, key) {\r\n this._toggleExpandedState(key, false)\r\n }.bind(this))\r\n },\r\n scrollToItem: function(keyOrItemOrElement) {\r\n var node = this._getNode(keyOrItemOrElement);\r\n if (!node) {\r\n return (new Deferred).reject().promise()\r\n }\r\n var nodeKeysToExpand = [];\r\n var parentNode = node.internalFields.publicNode.parent;\r\n while (null != parentNode) {\r\n if (!parentNode.expanded) {\r\n nodeKeysToExpand.push(parentNode.key)\r\n }\r\n parentNode = parentNode.parent\r\n }\r\n var scrollCallback = new Deferred;\r\n this._expandNodes(nodeKeysToExpand.reverse()).always(() => {\r\n var $element = this._getNodeElement(node);\r\n if ($element && $element.length) {\r\n this.scrollToElementTopLeft($element.get(0));\r\n scrollCallback.resolve()\r\n } else {\r\n scrollCallback.reject()\r\n }\r\n });\r\n return scrollCallback.promise()\r\n },\r\n scrollToElementTopLeft: function(targetElement) {\r\n var scrollable = this.getScrollable();\r\n var {\r\n scrollDirection: scrollDirection,\r\n rtlEnabled: rtlEnabled\r\n } = this.option();\r\n var targetLocation = {\r\n top: 0,\r\n left: 0\r\n };\r\n var relativeOffset = getRelativeOffset(SCROLLABLE_CONTENT_CLASS, targetElement);\r\n if (scrollDirection !== DIRECTION_VERTICAL) {\r\n var containerElement = $(scrollable.container()).get(0);\r\n targetLocation.left = rtlEnabled ? relativeOffset.left + targetElement.offsetWidth - containerElement.clientWidth : relativeOffset.left\r\n }\r\n if (scrollDirection !== DIRECTION_HORIZONTAL) {\r\n targetLocation.top = relativeOffset.top\r\n }\r\n scrollable.scrollTo(targetLocation)\r\n },\r\n _expandNodes: function(keysToExpand) {\r\n if (!keysToExpand || 0 === keysToExpand.length) {\r\n return (new Deferred).resolve().promise()\r\n }\r\n var resultCallback = new Deferred;\r\n var callbacksByNodes = keysToExpand.map(key => this.expandItem(key));\r\n when.apply($, callbacksByNodes).done(() => resultCallback.resolve()).fail(() => resultCallback.reject());\r\n return resultCallback.promise()\r\n },\r\n _dispose: function() {\r\n this.callBase();\r\n clearTimeout(this._setFocusedItemTimeout)\r\n }\r\n});\r\nexport default TreeViewBase;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view/ui.tree_view.search.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport registerComponent from \"../../core/component_registrator\";\r\nimport searchBoxMixin from \"../widget/ui.search_box_mixin\";\r\nimport TextBox from \"../text_box\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport TreeViewBase from \"./ui.tree_view.base\";\r\nsearchBoxMixin.setEditorClass(TextBox);\r\nvar WIDGET_CLASS = \"dx-treeview\";\r\nvar NODE_CONTAINER_CLASS = \"\".concat(WIDGET_CLASS, \"-node-container\");\r\nvar TreeViewSearch = TreeViewBase.inherit(searchBoxMixin).inherit({\r\n _addWidgetPrefix: function(className) {\r\n return \"\".concat(WIDGET_CLASS, \"-\").concat(className)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchValue\":\r\n if (this._showCheckboxes() && this._isRecursiveSelection()) {\r\n this._removeSelection()\r\n }\r\n this._initDataAdapter();\r\n this._updateSearch();\r\n this._repaintContainer();\r\n this.option(\"focusedElement\", null);\r\n break;\r\n case \"searchExpr\":\r\n this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n case \"searchMode\":\r\n this.option(\"expandNodesRecursive\") ? this._updateDataAdapter() : this._initDataAdapter();\r\n this.repaint();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _updateDataAdapter: function() {\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", false);\r\n this._initDataAdapter();\r\n this._setOptionWithoutOptionChange(\"expandNodesRecursive\", true)\r\n },\r\n _getDataAdapterOptions: function() {\r\n return extend(this.callBase(), {\r\n searchValue: this.option(\"searchValue\"),\r\n searchMode: this.option(\"searchMode\") || \"contains\",\r\n searchExpr: this.option(\"searchExpr\")\r\n })\r\n },\r\n _updateSearch: function() {\r\n if (this._searchEditor) {\r\n var editorOptions = this._getSearchEditorOptions();\r\n this._searchEditor.option(editorOptions)\r\n }\r\n },\r\n _repaintContainer: function() {\r\n var $container = this.$element().find(\".\".concat(NODE_CONTAINER_CLASS)).first();\r\n var rootNodes;\r\n if ($container.length) {\r\n $container.empty();\r\n rootNodes = this._dataAdapter.getRootNodes();\r\n this._renderEmptyMessage(rootNodes);\r\n this._renderItems($container, rootNodes);\r\n this._fireContentReadyAction()\r\n }\r\n },\r\n _itemContainer: function(isSearchMode) {\r\n if (this._scrollable && isSearchMode) {\r\n return $(this._scrollable.content())\r\n }\r\n return this.callBase()\r\n },\r\n _addWidgetClass: function() {\r\n this.$element().addClass(this._widgetClass())\r\n },\r\n _clean: function() {\r\n this.callBase();\r\n this._removeSearchBox()\r\n }\r\n});\r\nregisterComponent(\"dxTreeView\", TreeViewSearch);\r\nexport default TreeViewSearch;\r\n","/**\r\n * DevExtreme (esm/ui/tree_view.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport TreeView from \"./tree_view/ui.tree_view.search\";\r\nexport default TreeView;\r\n","/**\r\n * DevExtreme (esm/ui/validation_engine.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../core/class\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each\r\n} from \"../core/utils/iterator\";\r\nimport {\r\n EventsStrategy\r\n} from \"../core/events_strategy\";\r\nimport errors from \"../core/errors\";\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n isDefined,\r\n isString,\r\n isDate,\r\n isBoolean,\r\n isObject,\r\n isFunction,\r\n isPromise,\r\n isNumeric\r\n} from \"../core/utils/type\";\r\nimport numberLocalization from \"../localization/number\";\r\nimport messageLocalization from \"../localization/message\";\r\nimport {\r\n fromPromise,\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nvar STATUS = {\r\n valid: \"valid\",\r\n invalid: \"invalid\",\r\n pending: \"pending\"\r\n};\r\nclass BaseRuleValidator {\r\n constructor() {\r\n this.NAME = \"base\"\r\n }\r\n defaultMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME))(value)\r\n }\r\n defaultFormattedMessage(value) {\r\n return messageLocalization.getFormatter(\"validation-\".concat(this.NAME, \"-formatted\"))(value)\r\n }\r\n _isValueEmpty(value) {\r\n return !rulesValidators.required.validate(value, {})\r\n }\r\n validate(value, rule) {\r\n var valueArray = Array.isArray(value) ? value : [value];\r\n var result = true;\r\n if (valueArray.length) {\r\n valueArray.every(itemValue => {\r\n result = this._validate(itemValue, rule);\r\n return result\r\n })\r\n } else {\r\n result = this._validate(null, rule)\r\n }\r\n return result\r\n }\r\n}\r\nclass RequiredRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"required\"\r\n }\r\n _validate(value, rule) {\r\n if (!isDefined(value)) {\r\n return false\r\n }\r\n if (false === value) {\r\n return false\r\n }\r\n value = String(value);\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n return \"\" !== value\r\n }\r\n}\r\nclass NumericRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"numeric\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n if (rule.useCultureSettings && isString(value)) {\r\n return !isNaN(numberLocalization.parse(value))\r\n } else {\r\n return isNumeric(value)\r\n }\r\n }\r\n}\r\nclass RangeRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"range\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validNumber = rulesValidators.numeric.validate(value, rule);\r\n var validValue = isDefined(value) && \"\" !== value;\r\n var number = validNumber ? parseFloat(value) : validValue && value.valueOf();\r\n var min = rule.min;\r\n var max = rule.max;\r\n if (!(validNumber || isDate(value)) && !validValue) {\r\n return false\r\n }\r\n if (isDefined(min)) {\r\n if (isDefined(max)) {\r\n return number >= min && number <= max\r\n }\r\n return number >= min\r\n } else if (isDefined(max)) {\r\n return number <= max\r\n } else {\r\n throw errors.Error(\"E0101\")\r\n }\r\n }\r\n}\r\nclass StringLengthRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"stringLength\"\r\n }\r\n _validate(value, rule) {\r\n var _value;\r\n value = String(null !== (_value = value) && void 0 !== _value ? _value : \"\");\r\n if (rule.trim || !isDefined(rule.trim)) {\r\n value = value.trim()\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.range.validate(value.length, extend({}, rule))\r\n }\r\n}\r\nclass CustomRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"custom\"\r\n }\r\n validate(value, rule) {\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n return rule.validationCallback(params)\r\n }\r\n}\r\nclass AsyncRuleValidator extends CustomRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"async\"\r\n }\r\n validate(value, rule) {\r\n if (!isDefined(rule.reevaluate)) {\r\n extend(rule, {\r\n reevaluate: true\r\n })\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var validator = rule.validator;\r\n var dataGetter = validator && isFunction(validator.option) && validator.option(\"dataGetter\");\r\n var extraParams = isFunction(dataGetter) && dataGetter();\r\n var params = {\r\n value: value,\r\n validator: validator,\r\n rule: rule\r\n };\r\n if (extraParams) {\r\n extend(params, extraParams)\r\n }\r\n var callbackResult = rule.validationCallback(params);\r\n if (!isPromise(callbackResult)) {\r\n throw errors.Error(\"E0103\")\r\n }\r\n return this._getWrappedPromise(fromPromise(callbackResult).promise())\r\n }\r\n _getWrappedPromise(promise) {\r\n var deferred = new Deferred;\r\n promise.then((function(res) {\r\n deferred.resolve(res)\r\n }), (function(err) {\r\n var res = {\r\n isValid: false\r\n };\r\n if (isDefined(err)) {\r\n if (isString(err)) {\r\n res.message = err\r\n } else if (isObject(err) && isDefined(err.message) && isString(err.message)) {\r\n res.message = err.message\r\n }\r\n }\r\n deferred.resolve(res)\r\n }));\r\n return deferred.promise()\r\n }\r\n}\r\nclass CompareRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"compare\"\r\n }\r\n _validate(value, rule) {\r\n if (!rule.comparisonTarget) {\r\n throw errors.Error(\"E0102\")\r\n }\r\n if (rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n extend(rule, {\r\n reevaluate: true\r\n });\r\n var otherValue = rule.comparisonTarget();\r\n var type = rule.comparisonType || \"==\";\r\n switch (type) {\r\n case \"==\":\r\n return value == otherValue;\r\n case \"!=\":\r\n return value != otherValue;\r\n case \"===\":\r\n return value === otherValue;\r\n case \"!==\":\r\n return value !== otherValue;\r\n case \">\":\r\n return value > otherValue;\r\n case \">=\":\r\n return value >= otherValue;\r\n case \"<\":\r\n return value < otherValue;\r\n case \"<=\":\r\n return value <= otherValue\r\n }\r\n }\r\n}\r\nclass PatternRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"pattern\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n var pattern = rule.pattern;\r\n if (isString(pattern)) {\r\n pattern = new RegExp(pattern)\r\n }\r\n return pattern.test(value)\r\n }\r\n}\r\nclass EmailRuleValidator extends BaseRuleValidator {\r\n constructor() {\r\n super();\r\n this.NAME = \"email\"\r\n }\r\n _validate(value, rule) {\r\n if (false !== rule.ignoreEmptyValue && this._isValueEmpty(value)) {\r\n return true\r\n }\r\n return rulesValidators.pattern.validate(value, extend({}, rule, {\r\n pattern: /^[\\d\\w._-]+@[\\d\\w._-]+\\.[\\w]+$/i\r\n }))\r\n }\r\n}\r\nvar rulesValidators = {\r\n required: new RequiredRuleValidator,\r\n numeric: new NumericRuleValidator,\r\n range: new RangeRuleValidator,\r\n stringLength: new StringLengthRuleValidator,\r\n custom: new CustomRuleValidator,\r\n async: new AsyncRuleValidator,\r\n compare: new CompareRuleValidator,\r\n pattern: new PatternRuleValidator,\r\n email: new EmailRuleValidator\r\n};\r\nvar GroupConfig = Class.inherit({\r\n ctor(group) {\r\n this.group = group;\r\n this.validators = [];\r\n this._pendingValidators = [];\r\n this._onValidatorStatusChanged = this._onValidatorStatusChanged.bind(this);\r\n this._resetValidationInfo();\r\n this._eventsStrategy = new EventsStrategy(this)\r\n },\r\n validate() {\r\n var result = {\r\n isValid: true,\r\n brokenRules: [],\r\n validators: [],\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n this._unsubscribeFromAllChangeEvents();\r\n this._pendingValidators = [];\r\n this._resetValidationInfo();\r\n each(this.validators, (_, validator) => {\r\n var validatorResult = validator.validate();\r\n result.isValid = result.isValid && validatorResult.isValid;\r\n if (validatorResult.brokenRules) {\r\n result.brokenRules = result.brokenRules.concat(validatorResult.brokenRules)\r\n }\r\n result.validators.push(validator);\r\n if (validatorResult.status === STATUS.pending) {\r\n this._addPendingValidator(validator)\r\n }\r\n this._subscribeToChangeEvents(validator)\r\n });\r\n if (this._pendingValidators.length) {\r\n result.status = STATUS.pending\r\n } else {\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n this._unsubscribeFromAllChangeEvents();\r\n this._raiseValidatedEvent(result)\r\n }\r\n this._updateValidationInfo(result);\r\n return extend({}, this._validationInfo.result)\r\n },\r\n _subscribeToChangeEvents(validator) {\r\n validator.on(\"validating\", this._onValidatorStatusChanged);\r\n validator.on(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromChangeEvents(validator) {\r\n validator.off(\"validating\", this._onValidatorStatusChanged);\r\n validator.off(\"validated\", this._onValidatorStatusChanged)\r\n },\r\n _unsubscribeFromAllChangeEvents() {\r\n each(this.validators, (_, validator) => {\r\n this._unsubscribeFromChangeEvents(validator)\r\n })\r\n },\r\n _updateValidationInfo(result) {\r\n this._validationInfo.result = result;\r\n if (result.status !== STATUS.pending) {\r\n return\r\n }\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n },\r\n _addPendingValidator(validator) {\r\n var foundValidator = grep(this._pendingValidators, (function(val) {\r\n return val === validator\r\n }))[0];\r\n if (!foundValidator) {\r\n this._pendingValidators.push(validator)\r\n }\r\n },\r\n _removePendingValidator(validator) {\r\n var index = this._pendingValidators.indexOf(validator);\r\n if (index >= 0) {\r\n this._pendingValidators.splice(index, 1)\r\n }\r\n },\r\n _orderBrokenRules(brokenRules) {\r\n var orderedRules = [];\r\n each(this.validators, (function(_, validator) {\r\n var foundRules = grep(brokenRules, (function(rule) {\r\n return rule.validator === validator\r\n }));\r\n if (foundRules.length) {\r\n orderedRules = orderedRules.concat(foundRules)\r\n }\r\n }));\r\n return orderedRules\r\n },\r\n _updateBrokenRules(result) {\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n var brokenRules = this._validationInfo.result.brokenRules;\r\n var rules = grep(brokenRules, (function(rule) {\r\n return rule.validator !== result.validator\r\n }));\r\n if (result.brokenRules) {\r\n brokenRules = rules.concat(result.brokenRules)\r\n }\r\n this._validationInfo.result.brokenRules = this._orderBrokenRules(brokenRules)\r\n },\r\n _onValidatorStatusChanged(result) {\r\n if (result.status === STATUS.pending) {\r\n this._addPendingValidator(result.validator);\r\n return\r\n }\r\n this._resolveIfComplete(result)\r\n },\r\n _resolveIfComplete(result) {\r\n this._removePendingValidator(result.validator);\r\n this._updateBrokenRules(result);\r\n if (!this._pendingValidators.length) {\r\n this._unsubscribeFromAllChangeEvents();\r\n if (!this._validationInfo.result) {\r\n return\r\n }\r\n this._validationInfo.result.status = 0 === this._validationInfo.result.brokenRules.length ? STATUS.valid : STATUS.invalid;\r\n this._validationInfo.result.isValid = this._validationInfo.result.status === STATUS.valid;\r\n var res = extend({}, this._validationInfo.result, {\r\n complete: null\r\n });\r\n var deferred = this._validationInfo.deferred;\r\n this._validationInfo.deferred = null;\r\n this._raiseValidatedEvent(res);\r\n deferred && setTimeout(() => {\r\n deferred.resolve(res)\r\n })\r\n }\r\n },\r\n _raiseValidatedEvent(result) {\r\n this._eventsStrategy.fireEvent(\"validated\", [result])\r\n },\r\n _resetValidationInfo() {\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null\r\n }\r\n },\r\n _synchronizeValidationInfo() {\r\n if (this._validationInfo.result) {\r\n this._validationInfo.result.validators = this.validators\r\n }\r\n },\r\n removeRegisteredValidator(validator) {\r\n var index = this.validators.indexOf(validator);\r\n if (index > -1) {\r\n this.validators.splice(index, 1);\r\n this._synchronizeValidationInfo();\r\n this._resolveIfComplete({\r\n validator: validator\r\n })\r\n }\r\n },\r\n registerValidator(validator) {\r\n if (!this.validators.includes(validator)) {\r\n this.validators.push(validator);\r\n this._synchronizeValidationInfo()\r\n }\r\n },\r\n reset() {\r\n each(this.validators, (function(_, validator) {\r\n validator.reset()\r\n }));\r\n this._pendingValidators = [];\r\n this._resetValidationInfo()\r\n },\r\n on(eventName, eventHandler) {\r\n this._eventsStrategy.on(eventName, eventHandler);\r\n return this\r\n },\r\n off(eventName, eventHandler) {\r\n this._eventsStrategy.off(eventName, eventHandler);\r\n return this\r\n }\r\n});\r\nvar ValidationEngine = {\r\n groups: [],\r\n getGroupConfig(group) {\r\n var result = grep(this.groups, (function(config) {\r\n return config.group === group\r\n }));\r\n if (result.length) {\r\n return result[0]\r\n }\r\n },\r\n findGroup($element, model) {\r\n var _$element$data, _$element$data$dxComp;\r\n var hasValidationGroup = null === (_$element$data = $element.data()) || void 0 === _$element$data ? void 0 : null === (_$element$data$dxComp = _$element$data.dxComponents) || void 0 === _$element$data$dxComp ? void 0 : _$element$data$dxComp.includes(\"dxValidationGroup\");\r\n var validationGroup = hasValidationGroup && $element.dxValidationGroup(\"instance\");\r\n if (validationGroup) {\r\n return validationGroup\r\n }\r\n var $dxGroup = $element.parents(\".dx-validationgroup\").first();\r\n if ($dxGroup.length) {\r\n return $dxGroup.dxValidationGroup(\"instance\")\r\n }\r\n return model\r\n },\r\n initGroups() {\r\n this.groups = [];\r\n this.addGroup()\r\n },\r\n addGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n if (!config) {\r\n config = new GroupConfig(group);\r\n this.groups.push(config)\r\n }\r\n return config\r\n },\r\n removeGroup(group) {\r\n var config = this.getGroupConfig(group);\r\n var index = this.groups.indexOf(config);\r\n if (index > -1) {\r\n this.groups.splice(index, 1)\r\n }\r\n return config\r\n },\r\n _setDefaultMessage(info) {\r\n var {\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n } = info;\r\n if (!isDefined(rule.message)) {\r\n if (validator.defaultFormattedMessage && isDefined(name)) {\r\n rule.message = validator.defaultFormattedMessage(name)\r\n } else {\r\n rule.message = validator.defaultMessage()\r\n }\r\n }\r\n },\r\n _addBrokenRule(info) {\r\n var {\r\n result: result,\r\n rule: rule\r\n } = info;\r\n if (!result.brokenRule) {\r\n result.brokenRule = rule\r\n }\r\n if (!result.brokenRules) {\r\n result.brokenRules = []\r\n }\r\n result.brokenRules.push(rule)\r\n },\r\n validate(value, rules, name) {\r\n var _rules$;\r\n var result = {\r\n name: name,\r\n value: value,\r\n brokenRule: null,\r\n brokenRules: null,\r\n isValid: true,\r\n validationRules: rules,\r\n pendingRules: null,\r\n status: STATUS.valid,\r\n complete: null\r\n };\r\n var validator = null === rules || void 0 === rules ? void 0 : null === (_rules$ = rules[0]) || void 0 === _rules$ ? void 0 : _rules$.validator;\r\n var asyncRuleItems = [];\r\n each(rules || [], (_, rule) => {\r\n var ruleValidator = rulesValidators[rule.type];\r\n var ruleValidationResult;\r\n if (ruleValidator) {\r\n if (isDefined(rule.isValid) && rule.value === value && !rule.reevaluate) {\r\n if (!rule.isValid) {\r\n result.isValid = false;\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n });\r\n return false\r\n }\r\n return true\r\n }\r\n rule.value = value;\r\n if (\"async\" === rule.type) {\r\n asyncRuleItems.push({\r\n rule: rule,\r\n ruleValidator: ruleValidator\r\n });\r\n return true\r\n }\r\n ruleValidationResult = ruleValidator.validate(value, rule);\r\n rule.isValid = ruleValidationResult;\r\n if (!ruleValidationResult) {\r\n result.isValid = false;\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: ruleValidator,\r\n name: name\r\n });\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n if (!rule.isValid) {\r\n return false\r\n }\r\n } else {\r\n throw errors.Error(\"E0100\")\r\n }\r\n });\r\n if (result.isValid && !result.brokenRules && asyncRuleItems.length) {\r\n result = this._validateAsyncRules({\r\n value: value,\r\n items: asyncRuleItems,\r\n result: result,\r\n name: name\r\n })\r\n }\r\n this._synchronizeGroupValidationInfo(validator, result);\r\n result.status = result.pendingRules ? STATUS.pending : result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n _synchronizeGroupValidationInfo(validator, result) {\r\n var _result$brokenRules;\r\n if (!validator) {\r\n return\r\n }\r\n var groupConfig = ValidationEngine.getGroupConfig(validator._validationGroup);\r\n groupConfig._updateBrokenRules.call(groupConfig, {\r\n validator: validator,\r\n brokenRules: null !== (_result$brokenRules = result.brokenRules) && void 0 !== _result$brokenRules ? _result$brokenRules : []\r\n })\r\n },\r\n _validateAsyncRules(_ref) {\r\n var {\r\n result: result,\r\n value: value,\r\n items: items,\r\n name: name\r\n } = _ref;\r\n var asyncResults = [];\r\n each(items, (_, item) => {\r\n var validateResult = item.ruleValidator.validate(value, item.rule);\r\n if (!isPromise(validateResult)) {\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: this._getPatchedRuleResult(validateResult),\r\n validator: item.ruleValidator,\r\n name: name\r\n })\r\n } else {\r\n if (!result.pendingRules) {\r\n result.pendingRules = []\r\n }\r\n result.pendingRules.push(item.rule);\r\n var asyncResult = validateResult.then(res => {\r\n var ruleResult = this._getPatchedRuleResult(res);\r\n this._updateRuleConfig({\r\n rule: item.rule,\r\n ruleResult: ruleResult,\r\n validator: item.ruleValidator,\r\n name: name\r\n });\r\n return ruleResult\r\n });\r\n asyncResults.push(asyncResult)\r\n }\r\n });\r\n if (asyncResults.length) {\r\n result.complete = Promise.all(asyncResults).then(values => this._getAsyncRulesResult({\r\n result: result,\r\n values: values\r\n }))\r\n }\r\n return result\r\n },\r\n _updateRuleConfig(_ref2) {\r\n var {\r\n rule: rule,\r\n ruleResult: ruleResult,\r\n validator: validator,\r\n name: name\r\n } = _ref2;\r\n rule.isValid = ruleResult.isValid;\r\n if (!ruleResult.isValid) {\r\n if (isDefined(ruleResult.message) && isString(ruleResult.message) && ruleResult.message.length) {\r\n rule.message = ruleResult.message\r\n } else {\r\n this._setDefaultMessage({\r\n rule: rule,\r\n validator: validator,\r\n name: name\r\n })\r\n }\r\n }\r\n },\r\n _getPatchedRuleResult(ruleResult) {\r\n var result;\r\n if (isObject(ruleResult)) {\r\n result = extend({}, ruleResult);\r\n if (!isDefined(result.isValid)) {\r\n result.isValid = true\r\n }\r\n } else {\r\n result = {\r\n isValid: isBoolean(ruleResult) ? ruleResult : true\r\n }\r\n }\r\n return result\r\n },\r\n _getAsyncRulesResult(_ref3) {\r\n var {\r\n values: values,\r\n result: result\r\n } = _ref3;\r\n each(values, (index, val) => {\r\n if (false === val.isValid) {\r\n result.isValid = val.isValid;\r\n var rule = result.pendingRules[index];\r\n this._addBrokenRule({\r\n result: result,\r\n rule: rule\r\n })\r\n }\r\n });\r\n result.pendingRules = null;\r\n result.complete = null;\r\n result.status = result.isValid ? STATUS.valid : STATUS.invalid;\r\n return result\r\n },\r\n registerValidatorInGroup(group, validator) {\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n groupConfig.registerValidator.call(groupConfig, validator)\r\n },\r\n _shouldRemoveGroup(group, validatorsInGroup) {\r\n var isDefaultGroup = void 0 === group;\r\n var isValidationGroupInstance = group && \"dxValidationGroup\" === group.NAME;\r\n return !isDefaultGroup && !isValidationGroupInstance && !validatorsInGroup.length\r\n },\r\n removeRegisteredValidator(group, validator) {\r\n var config = ValidationEngine.getGroupConfig(group);\r\n if (config) {\r\n config.removeRegisteredValidator.call(config, validator);\r\n var validatorsInGroup = config.validators;\r\n if (this._shouldRemoveGroup(group, validatorsInGroup)) {\r\n this.removeGroup(group)\r\n }\r\n }\r\n },\r\n initValidationOptions(options) {\r\n var initedOptions = {};\r\n if (options) {\r\n [\"isValid\", \"validationStatus\", \"validationError\", \"validationErrors\"].forEach(prop => {\r\n if (prop in options) {\r\n extend(initedOptions, this.synchronizeValidationOptions({\r\n name: prop,\r\n value: options[prop]\r\n }, options))\r\n }\r\n })\r\n }\r\n return initedOptions\r\n },\r\n synchronizeValidationOptions(_ref4, options) {\r\n var {\r\n name: name,\r\n value: value\r\n } = _ref4;\r\n switch (name) {\r\n case \"validationStatus\":\r\n var isValid = value === STATUS.valid || value === STATUS.pending;\r\n return options.isValid !== isValid ? {\r\n isValid: isValid\r\n } : {};\r\n case \"isValid\":\r\n var {\r\n validationStatus: validationStatus\r\n } = options;\r\n var newStatus = validationStatus;\r\n if (value && validationStatus === STATUS.invalid) {\r\n newStatus = STATUS.valid\r\n } else if (!value && validationStatus !== STATUS.invalid) {\r\n newStatus = STATUS.invalid\r\n }\r\n return newStatus !== validationStatus ? {\r\n validationStatus: newStatus\r\n } : {};\r\n case \"validationErrors\":\r\n var validationError = !value || !value.length ? null : value[0];\r\n return options.validationError !== validationError ? {\r\n validationError: validationError\r\n } : {};\r\n case \"validationError\":\r\n var {\r\n validationErrors: validationErrors\r\n } = options;\r\n if (!value && validationErrors) {\r\n return {\r\n validationErrors: null\r\n }\r\n } else if (value && !validationErrors) {\r\n return {\r\n validationErrors: [value]\r\n }\r\n } else if (value && validationErrors && value !== validationErrors[0]) {\r\n validationErrors[0] = value;\r\n return {\r\n validationErrors: validationErrors.slice()\r\n }\r\n }\r\n }\r\n return {}\r\n },\r\n validateGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.validate()\r\n },\r\n resetGroup(group) {\r\n var groupConfig = ValidationEngine.getGroupConfig(group);\r\n if (!groupConfig) {\r\n throw errors.Error(\"E0110\")\r\n }\r\n return groupConfig.reset()\r\n }\r\n};\r\nValidationEngine.initGroups();\r\nexport default ValidationEngine;\r\n","/**\r\n * DevExtreme (esm/ui/validation_group.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport ValidationSummary from \"./validation_summary\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport Validator from \"./validator\";\r\nvar VALIDATION_ENGINE_CLASS = \"dx-validationgroup\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nclass ValidationGroup extends DOMComponent {\r\n _getDefaultOptions() {\r\n return super._getDefaultOptions()\r\n }\r\n _init() {\r\n super._init();\r\n ValidationEngine.addGroup(this)\r\n }\r\n _initMarkup() {\r\n var $element = this.$element();\r\n $element.addClass(VALIDATION_ENGINE_CLASS);\r\n $element.find(\".\".concat(VALIDATOR_CLASS)).each((function(_, validatorContainer) {\r\n Validator.getInstance($(validatorContainer))._initGroupRegistration()\r\n }));\r\n $element.find(\".\".concat(VALIDATION_SUMMARY_CLASS)).each((function(_, summaryContainer) {\r\n ValidationSummary.getInstance($(summaryContainer)).refreshValidationGroup()\r\n }));\r\n super._initMarkup()\r\n }\r\n validate() {\r\n return ValidationEngine.validateGroup(this)\r\n }\r\n reset() {\r\n return ValidationEngine.resetGroup(this)\r\n }\r\n _dispose() {\r\n ValidationEngine.removeGroup(this);\r\n this.$element().removeClass(VALIDATION_ENGINE_CLASS);\r\n super._dispose()\r\n }\r\n _useTemplates() {\r\n return false\r\n }\r\n}\r\nregisterComponent(\"dxValidationGroup\", ValidationGroup);\r\nexport default ValidationGroup;\r\n","/**\r\n * DevExtreme (esm/ui/validation_message.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\r\nimport {\r\n getOuterWidth\r\n} from \"../core/utils/size\";\r\nimport $ from \"../core/renderer\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport Overlay from \"./overlay/ui.overlay\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n encodeHtml\r\n} from \"../core/utils/string\";\r\nimport {\r\n getDefaultAlignment\r\n} from \"../core/utils/position\";\r\nvar INVALID_MESSAGE = \"dx-invalid-message\";\r\nvar INVALID_MESSAGE_AUTO = \"dx-invalid-message-auto\";\r\nvar INVALID_MESSAGE_ALWAYS = \"dx-invalid-message-always\";\r\nvar INVALID_MESSAGE_CONTENT = \"dx-invalid-message-content\";\r\nvar VALIDATION_MESSAGE_MIN_WIDTH = 100;\r\nvar ValidationMessage = Overlay.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n integrationOptions: {},\r\n templatesRenderAsynchronously: false,\r\n shading: false,\r\n width: \"auto\",\r\n height: \"auto\",\r\n hideOnOutsideClick: false,\r\n animation: null,\r\n visible: true,\r\n propagateOutsideClick: true,\r\n _checkParentVisibility: false,\r\n rtlEnabled: false,\r\n contentTemplate: this._renderInnerHtml,\r\n maxWidth: \"100%\",\r\n container: this.$element(),\r\n target: void 0,\r\n mode: \"auto\",\r\n validationErrors: void 0,\r\n positionSide: \"top\",\r\n boundary: void 0,\r\n offset: {\r\n h: 0,\r\n v: 0\r\n },\r\n contentId: void 0\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this.updateMaxWidth();\r\n this._updatePosition()\r\n },\r\n _initMarkup() {\r\n this.callBase();\r\n this._ensureMessageNotEmpty();\r\n this._updatePositionByTarget();\r\n this._toggleModeClass();\r\n this._updateContentId()\r\n },\r\n _updatePositionByTarget: function() {\r\n var {\r\n target: target\r\n } = this.option();\r\n this.option(\"position.of\", target)\r\n },\r\n _ensureMessageNotEmpty: function() {\r\n this._textMarkup = this._getTextMarkup();\r\n var shouldShowMessage = this.option(\"visible\") && this._textMarkup;\r\n this._toggleVisibilityClasses(shouldShowMessage)\r\n },\r\n _toggleVisibilityClasses: function(visible) {\r\n if (visible) {\r\n this.$element().addClass(INVALID_MESSAGE);\r\n this.$wrapper().addClass(INVALID_MESSAGE)\r\n } else {\r\n this.$element().removeClass(INVALID_MESSAGE);\r\n this.$wrapper().removeClass(INVALID_MESSAGE)\r\n }\r\n },\r\n _updateContentId() {\r\n var {\r\n container: container,\r\n contentId: contentId\r\n } = this.option();\r\n var id = null !== contentId && void 0 !== contentId ? contentId : $(container).attr(\"aria-describedby\");\r\n this.$content().addClass(INVALID_MESSAGE_CONTENT).attr(\"id\", id)\r\n },\r\n _renderInnerHtml(element) {\r\n var $element = element && $(element);\r\n null === $element || void 0 === $element ? void 0 : $element.html(this._textMarkup)\r\n },\r\n _getTextMarkup() {\r\n var _this$option;\r\n var validationErrors = null !== (_this$option = this.option(\"validationErrors\")) && void 0 !== _this$option ? _this$option : [];\r\n var validationErrorMessage = \"\";\r\n validationErrors.forEach(err => {\r\n var _err$message;\r\n var separator = validationErrorMessage ? \"<br />\" : \"\";\r\n validationErrorMessage += separator + encodeHtml(null !== (_err$message = null === err || void 0 === err ? void 0 : err.message) && void 0 !== _err$message ? _err$message : \"\")\r\n });\r\n return validationErrorMessage\r\n },\r\n _toggleModeClass() {\r\n var mode = this.option(\"mode\");\r\n this.$wrapper().toggleClass(INVALID_MESSAGE_AUTO, \"auto\" === mode).toggleClass(INVALID_MESSAGE_ALWAYS, \"always\" === mode)\r\n },\r\n updateMaxWidth() {\r\n var target = this.option(\"target\");\r\n var targetWidth = getOuterWidth(target);\r\n var maxWidth = \"100%\";\r\n if (targetWidth) {\r\n maxWidth = Math.max(targetWidth, VALIDATION_MESSAGE_MIN_WIDTH)\r\n }\r\n this.option({\r\n maxWidth: maxWidth\r\n })\r\n },\r\n _getPositionsArray: function(positionSide, rtlSide) {\r\n switch (positionSide) {\r\n case \"top\":\r\n return [\"\".concat(rtlSide, \" bottom\"), \"\".concat(rtlSide, \" top\")];\r\n case \"left\":\r\n return [\"right\", \"left\"];\r\n case \"right\":\r\n return [\"left\", \"right\"];\r\n default:\r\n return [\"\".concat(rtlSide, \" top\"), \"\".concat(rtlSide, \" bottom\")]\r\n }\r\n },\r\n _updatePosition: function() {\r\n var {\r\n positionSide: positionSide,\r\n rtlEnabled: rtlEnabled,\r\n offset: componentOffset,\r\n boundary: boundary\r\n } = this.option();\r\n var rtlSide = getDefaultAlignment(rtlEnabled);\r\n var positions = this._getPositionsArray(positionSide, rtlSide);\r\n var offset = _extends({}, componentOffset);\r\n this.$element().addClass(\"dx-invalid-message-\".concat(positionSide));\r\n if (rtlEnabled && \"left\" !== positionSide && \"right\" !== positionSide) {\r\n offset.h = -offset.h\r\n }\r\n if (\"top\" === positionSide) {\r\n offset.v = -offset.v\r\n }\r\n if (\"left\" === positionSide) {\r\n offset.h = -offset.h\r\n }\r\n this.option(\"position\", {\r\n offset: offset,\r\n boundary: boundary,\r\n my: positions[0],\r\n at: positions[1],\r\n collision: \"none flip\"\r\n })\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"target\":\r\n this._updatePositionByTarget();\r\n this.updateMaxWidth();\r\n this.callBase(args);\r\n break;\r\n case \"boundary\":\r\n this.option(\"position.boundary\", value);\r\n break;\r\n case \"mode\":\r\n this._toggleModeClass(value);\r\n break;\r\n case \"rtlEnabled\":\r\n case \"offset\":\r\n case \"positionSide\":\r\n this.$element().removeClass(\"dx-invalid-message-\".concat(previousValue));\r\n this._updatePosition();\r\n break;\r\n case \"container\":\r\n this._updateContentId();\r\n this.callBase(args);\r\n break;\r\n case \"contentId\":\r\n this._updateContentId();\r\n break;\r\n case \"validationErrors\":\r\n this._ensureMessageNotEmpty();\r\n this._renderInnerHtml(this.$content());\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n }\r\n});\r\nregisterComponent(\"dxValidationMessage\", ValidationMessage);\r\nexport default ValidationMessage;\r\n","/**\r\n * DevExtreme (esm/ui/validation_summary.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport eventsEngine from \"../events/core/events_engine\";\r\nimport {\r\n grep\r\n} from \"../core/utils/common\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n each,\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport CollectionWidget from \"./collection/ui.collection_widget.edit\";\r\nvar VALIDATION_SUMMARY_CLASS = \"dx-validationsummary\";\r\nvar ITEM_CLASS = VALIDATION_SUMMARY_CLASS + \"-item\";\r\nvar ITEM_DATA_KEY = VALIDATION_SUMMARY_CLASS + \"-item-data\";\r\nvar ValidationSummary = CollectionWidget.inherit({\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n focusStateEnabled: false,\r\n noDataText: null\r\n })\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration()\r\n },\r\n _initGroupRegistration() {\r\n var $element = this.$element();\r\n var group = this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element));\r\n var groupConfig = ValidationEngine.addGroup(group);\r\n this._unsubscribeGroup();\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n this.groupSubscription = this._groupValidationHandler.bind(this);\r\n groupConfig.on(\"validated\", this.groupSubscription)\r\n },\r\n _unsubscribeGroup() {\r\n var groupConfig = ValidationEngine.getGroupConfig(this._validationGroup);\r\n groupConfig && groupConfig.off(\"validated\", this.groupSubscription)\r\n },\r\n _getOrderedItems(validators, items) {\r\n var orderedItems = [];\r\n each(validators, (function(_, validator) {\r\n var foundItems = grep(items, (function(item) {\r\n if (item.validator === validator) {\r\n return true\r\n }\r\n }));\r\n if (foundItems.length) {\r\n orderedItems = orderedItems.concat(foundItems)\r\n }\r\n }));\r\n return orderedItems\r\n },\r\n _groupValidationHandler(params) {\r\n var items = this._getOrderedItems(params.validators, map(params.brokenRules, (function(rule) {\r\n return {\r\n text: rule.message,\r\n validator: rule.validator,\r\n index: rule.index\r\n }\r\n })));\r\n this.validators = params.validators;\r\n each(this.validators, (_, validator) => {\r\n if (validator._validationSummary !== this) {\r\n var handler = this._itemValidationHandler.bind(this);\r\n validator.on(\"validated\", handler);\r\n validator.on(\"disposing\", (function() {\r\n validator.off(\"validated\", handler);\r\n validator._validationSummary = null;\r\n handler = null\r\n }));\r\n validator._validationSummary = this\r\n }\r\n });\r\n this.option(\"items\", items)\r\n },\r\n _itemValidationHandler(_ref) {\r\n var {\r\n isValid: isValid,\r\n validator: validator,\r\n brokenRules: brokenRules\r\n } = _ref;\r\n var items = this.option(\"items\");\r\n var itemsChanged = false;\r\n var itemIndex = 0;\r\n var _loop = function() {\r\n var item = items[itemIndex];\r\n if (item.validator === validator) {\r\n var foundRule = grep(brokenRules || [], (function(rule) {\r\n return rule.index === item.index\r\n }))[0];\r\n if (isValid || !foundRule) {\r\n items.splice(itemIndex, 1);\r\n itemsChanged = true;\r\n return \"continue\"\r\n }\r\n if (foundRule.message !== item.text) {\r\n item.text = foundRule.message;\r\n itemsChanged = true\r\n }\r\n }\r\n itemIndex++\r\n };\r\n while (itemIndex < items.length) {\r\n var _ret = _loop();\r\n if (\"continue\" === _ret) {\r\n continue\r\n }\r\n }\r\n each(brokenRules, (function(_, rule) {\r\n var foundItem = grep(items, (function(item) {\r\n return item.validator === validator && item.index === rule.index\r\n }))[0];\r\n if (!foundItem) {\r\n items.push({\r\n text: rule.message,\r\n validator: validator,\r\n index: rule.index\r\n });\r\n itemsChanged = true\r\n }\r\n }));\r\n if (itemsChanged) {\r\n items = this._getOrderedItems(this.validators, items);\r\n this.option(\"items\", items)\r\n }\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATION_SUMMARY_CLASS);\r\n this.callBase()\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _itemClass: () => ITEM_CLASS,\r\n _itemDataKey: () => ITEM_DATA_KEY,\r\n _postprocessRenderItem(params) {\r\n eventsEngine.on(params.itemElement, \"click\", (function() {\r\n params.itemData.validator && params.itemData.validator.focus && params.itemData.validator.focus()\r\n }))\r\n },\r\n _dispose() {\r\n this.callBase();\r\n this._unsubscribeGroup()\r\n },\r\n refreshValidationGroup() {\r\n this._initGroupRegistration()\r\n }\r\n});\r\nregisterComponent(\"dxValidationSummary\", ValidationSummary);\r\nexport default ValidationSummary;\r\n","/**\r\n * DevExtreme (esm/ui/validation/default_adapter.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport Class from \"../../core/class\";\r\nvar DefaultAdapter = Class.inherit({\r\n ctor(editor, validator) {\r\n this.editor = editor;\r\n this.validator = validator;\r\n this.validationRequestsCallbacks = [];\r\n var handler = args => {\r\n this.validationRequestsCallbacks.forEach(item => item(args))\r\n };\r\n editor.validationRequest.add(handler);\r\n editor.on(\"disposing\", (function() {\r\n editor.validationRequest.remove(handler)\r\n }))\r\n },\r\n getValue() {\r\n return this.editor.option(\"value\")\r\n },\r\n getCurrentValidationError() {\r\n return this.editor.option(\"validationError\")\r\n },\r\n bypass() {\r\n return this.editor.option(\"disabled\")\r\n },\r\n applyValidationResults(params) {\r\n this.editor.option({\r\n validationErrors: params.brokenRules,\r\n validationStatus: params.status\r\n })\r\n },\r\n reset() {\r\n this.editor.reset()\r\n },\r\n focus() {\r\n this.editor.focus()\r\n }\r\n});\r\nexport default DefaultAdapter;\r\n","/**\r\n * DevExtreme (esm/ui/validator.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n data as elementData\r\n} from \"../core/element_data\";\r\nimport Callbacks from \"../core/utils/callbacks\";\r\nimport errors from \"./widget/ui.errors\";\r\nimport DOMComponent from \"../core/dom_component\";\r\nimport {\r\n extend\r\n} from \"../core/utils/extend\";\r\nimport {\r\n map\r\n} from \"../core/utils/iterator\";\r\nimport ValidationEngine from \"./validation_engine\";\r\nimport DefaultAdapter from \"./validation/default_adapter\";\r\nimport registerComponent from \"../core/component_registrator\";\r\nimport {\r\n Deferred\r\n} from \"../core/utils/deferred\";\r\nimport Guid from \"../core/guid\";\r\nvar VALIDATOR_CLASS = \"dx-validator\";\r\nvar VALIDATION_STATUS_VALID = \"valid\";\r\nvar VALIDATION_STATUS_INVALID = \"invalid\";\r\nvar VALIDATION_STATUS_PENDING = \"pending\";\r\nvar Validator = DOMComponent.inherit({\r\n _initOptions: function(options) {\r\n this.callBase.apply(this, arguments);\r\n this.option(ValidationEngine.initValidationOptions(options))\r\n },\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n validationRules: []\r\n })\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initGroupRegistration();\r\n this.focused = Callbacks();\r\n this._initAdapter();\r\n this._validationInfo = {\r\n result: null,\r\n deferred: null,\r\n skipValidation: false\r\n }\r\n },\r\n _initGroupRegistration() {\r\n var group = this._findGroup();\r\n if (!this._groupWasInit) {\r\n this.on(\"disposing\", (function(args) {\r\n ValidationEngine.removeRegisteredValidator(args.component._validationGroup, args.component)\r\n }))\r\n }\r\n if (!this._groupWasInit || this._validationGroup !== group) {\r\n ValidationEngine.removeRegisteredValidator(this._validationGroup, this);\r\n this._groupWasInit = true;\r\n this._validationGroup = group;\r\n ValidationEngine.registerValidatorInGroup(group, this)\r\n }\r\n },\r\n _setOptionsByReference() {\r\n this.callBase();\r\n extend(this._optionsByReference, {\r\n validationGroup: true\r\n })\r\n },\r\n _getEditor() {\r\n var element = this.$element()[0];\r\n return elementData(element, \"dx-validation-target\")\r\n },\r\n _initAdapter() {\r\n var dxStandardEditor = this._getEditor();\r\n var adapter = this.option(\"adapter\");\r\n if (!adapter) {\r\n if (dxStandardEditor) {\r\n adapter = new DefaultAdapter(dxStandardEditor, this);\r\n adapter.validationRequestsCallbacks.push(args => {\r\n if (this._validationInfo.skipValidation) {\r\n return\r\n }\r\n this.validate(args)\r\n });\r\n this.option(\"adapter\", adapter);\r\n return\r\n }\r\n throw errors.Error(\"E0120\")\r\n }\r\n var callbacks = adapter.validationRequestsCallbacks;\r\n if (callbacks) {\r\n callbacks.push(args => {\r\n this.validate(args)\r\n })\r\n }\r\n },\r\n _toggleRTLDirection(isRtl) {\r\n var _this$option$editor$o, _this$option, _this$option$editor;\r\n var rtlEnabled = null !== (_this$option$editor$o = null === (_this$option = this.option(\"adapter\")) || void 0 === _this$option ? void 0 : null === (_this$option$editor = _this$option.editor) || void 0 === _this$option$editor ? void 0 : _this$option$editor.option(\"rtlEnabled\")) && void 0 !== _this$option$editor$o ? _this$option$editor$o : isRtl;\r\n this.callBase(rtlEnabled)\r\n },\r\n _initMarkup() {\r\n this.$element().addClass(VALIDATOR_CLASS);\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._toggleAccessibilityAttributes()\r\n },\r\n _toggleAccessibilityAttributes() {\r\n var dxStandardEditor = this._getEditor();\r\n if (dxStandardEditor) {\r\n var rules = this.option(\"validationRules\") || [];\r\n var isRequired = rules.some(_ref => {\r\n var {\r\n type: type\r\n } = _ref;\r\n return \"required\" === type\r\n }) || null;\r\n if (dxStandardEditor.isInitialized()) {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n }\r\n dxStandardEditor.option(\"_onMarkupRendered\", () => {\r\n dxStandardEditor.setAria(\"required\", isRequired)\r\n })\r\n }\r\n },\r\n _visibilityChanged(visible) {\r\n if (visible) {\r\n this._initGroupRegistration()\r\n }\r\n },\r\n _optionChanged(args) {\r\n switch (args.name) {\r\n case \"validationGroup\":\r\n this._initGroupRegistration();\r\n return;\r\n case \"validationRules\":\r\n this._resetValidationRules();\r\n this._toggleAccessibilityAttributes();\r\n void 0 !== this.option(\"isValid\") && this.validate();\r\n return;\r\n case \"adapter\":\r\n this._initAdapter();\r\n break;\r\n case \"isValid\":\r\n case \"validationStatus\":\r\n this.option(ValidationEngine.synchronizeValidationOptions(args, this.option()));\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _getValidationRules() {\r\n if (!this._validationRules) {\r\n this._validationRules = map(this.option(\"validationRules\"), (rule, index) => extend({}, rule, {\r\n validator: this,\r\n index: index\r\n }))\r\n }\r\n return this._validationRules\r\n },\r\n _findGroup() {\r\n var $element = this.$element();\r\n return this.option(\"validationGroup\") || ValidationEngine.findGroup($element, this._modelByElement($element))\r\n },\r\n _resetValidationRules() {\r\n delete this._validationRules\r\n },\r\n validate(args) {\r\n var adapter = this.option(\"adapter\");\r\n var name = this.option(\"name\");\r\n var bypass = adapter.bypass && adapter.bypass();\r\n var value = args && void 0 !== args.value ? args.value : adapter.getValue();\r\n var currentError = adapter.getCurrentValidationError && adapter.getCurrentValidationError();\r\n var rules = this._getValidationRules();\r\n var currentResult = this._validationInfo && this._validationInfo.result;\r\n if (currentResult && currentResult.status === VALIDATION_STATUS_PENDING && currentResult.value === value) {\r\n return extend({}, currentResult)\r\n }\r\n var result;\r\n if (bypass) {\r\n result = {\r\n isValid: true,\r\n status: VALIDATION_STATUS_VALID\r\n }\r\n } else if (currentError && currentError.editorSpecific) {\r\n currentError.validator = this;\r\n result = {\r\n isValid: false,\r\n status: VALIDATION_STATUS_INVALID,\r\n brokenRule: currentError,\r\n brokenRules: [currentError]\r\n }\r\n } else {\r\n result = ValidationEngine.validate(value, rules, name)\r\n }\r\n result.id = (new Guid).toString();\r\n this._applyValidationResult(result, adapter);\r\n result.complete && result.complete.then(res => {\r\n if (res.id === this._validationInfo.result.id) {\r\n this._applyValidationResult(res, adapter)\r\n }\r\n });\r\n return extend({}, this._validationInfo.result)\r\n },\r\n reset() {\r\n var adapter = this.option(\"adapter\");\r\n var result = {\r\n id: null,\r\n isValid: true,\r\n brokenRule: null,\r\n brokenRules: null,\r\n pendingRules: null,\r\n status: VALIDATION_STATUS_VALID,\r\n complete: null\r\n };\r\n this._validationInfo.skipValidation = true;\r\n adapter.reset();\r\n this._validationInfo.skipValidation = false;\r\n this._resetValidationRules();\r\n this._applyValidationResult(result, adapter)\r\n },\r\n _updateValidationResult(result) {\r\n if (!this._validationInfo.result || this._validationInfo.result.id !== result.id) {\r\n var complete = this._validationInfo.deferred && this._validationInfo.result.complete;\r\n this._validationInfo.result = extend({}, result, {\r\n complete: complete\r\n })\r\n } else {\r\n for (var prop in result) {\r\n if (\"id\" !== prop && \"complete\" !== prop) {\r\n this._validationInfo.result[prop] = result[prop]\r\n }\r\n }\r\n }\r\n },\r\n _applyValidationResult(result, adapter) {\r\n var validatedAction = this._createActionByOption(\"onValidated\", {\r\n excludeValidators: [\"readOnly\"]\r\n });\r\n result.validator = this;\r\n this._updateValidationResult(result);\r\n adapter.applyValidationResults && adapter.applyValidationResults(this._validationInfo.result);\r\n this.option({\r\n validationStatus: this._validationInfo.result.status\r\n });\r\n if (this._validationInfo.result.status === VALIDATION_STATUS_PENDING) {\r\n if (!this._validationInfo.deferred) {\r\n this._validationInfo.deferred = new Deferred;\r\n this._validationInfo.result.complete = this._validationInfo.deferred.promise()\r\n }\r\n this._eventsStrategy.fireEvent(\"validating\", [this._validationInfo.result]);\r\n return\r\n }\r\n if (this._validationInfo.result.status !== VALIDATION_STATUS_PENDING) {\r\n validatedAction(result);\r\n if (this._validationInfo.deferred) {\r\n this._validationInfo.deferred.resolve(result);\r\n this._validationInfo.deferred = null\r\n }\r\n }\r\n },\r\n focus() {\r\n var adapter = this.option(\"adapter\");\r\n adapter && adapter.focus && adapter.focus()\r\n },\r\n _useTemplates: function() {\r\n return false\r\n }\r\n});\r\nregisterComponent(\"dxValidator\", Validator);\r\nexport default Validator;\r\n","/**\r\n * DevExtreme (esm/ui/widget/selectors.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport domAdapter from \"../../core/dom_adapter\";\r\nvar focusableFn = function(element, tabIndex) {\r\n if (!visible(element)) {\r\n return false\r\n }\r\n var nodeName = element.nodeName.toLowerCase();\r\n var isTabIndexNotNaN = !isNaN(tabIndex);\r\n var isDisabled = element.disabled;\r\n var isDefaultFocus = /^(input|select|textarea|button|object|iframe)$/.test(nodeName);\r\n var isHyperlink = \"a\" === nodeName;\r\n var isFocusable;\r\n var isContentEditable = element.isContentEditable;\r\n if (isDefaultFocus || isContentEditable) {\r\n isFocusable = !isDisabled\r\n } else if (isHyperlink) {\r\n isFocusable = element.href || isTabIndexNotNaN\r\n } else {\r\n isFocusable = isTabIndexNotNaN\r\n }\r\n return isFocusable\r\n};\r\n\r\nfunction visible(element) {\r\n var $element = $(element);\r\n return $element.is(\":visible\") && \"hidden\" !== $element.css(\"visibility\") && \"hidden\" !== $element.parents().css(\"visibility\")\r\n}\r\nexport var focusable = function(index, element) {\r\n return focusableFn(element, $(element).attr(\"tabIndex\"))\r\n};\r\nexport var tabbable = function(index, element) {\r\n var tabIndex = $(element).attr(\"tabIndex\");\r\n return (isNaN(tabIndex) || tabIndex >= 0) && focusableFn(element, tabIndex)\r\n};\r\nexport var focused = function($element) {\r\n var element = $($element).get(0);\r\n return domAdapter.getActiveElement(element) === element\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/widget/swatch_container.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n value\r\n} from \"../../core/utils/view_port\";\r\nvar SWATCH_CONTAINER_CLASS_PREFIX = \"dx-swatch-\";\r\nvar getSwatchContainer = element => {\r\n var $element = $(element);\r\n var swatchContainer = $element.closest('[class^=\"'.concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"], [class*=\" ').concat(SWATCH_CONTAINER_CLASS_PREFIX, '\"]'));\r\n var viewport = value();\r\n if (!swatchContainer.length) {\r\n return viewport\r\n }\r\n var swatchClassRegex = new RegExp(\"(\\\\s|^)(\".concat(SWATCH_CONTAINER_CLASS_PREFIX, \".*?)(\\\\s|$)\"));\r\n var swatchClass = swatchContainer[0].className.match(swatchClassRegex)[2];\r\n var viewportSwatchContainer = viewport.children(\".\" + swatchClass);\r\n if (!viewportSwatchContainer.length) {\r\n viewportSwatchContainer = $(\"<div>\").addClass(swatchClass).appendTo(viewport)\r\n }\r\n return viewportSwatchContainer\r\n};\r\nexport default {\r\n getSwatchContainer: getSwatchContainer\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.errors.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport errorUtils from \"../../core/utils/error\";\r\nimport errors from \"../../core/errors\";\r\nexport default errorUtils(errors.ERROR_MESSAGES, {\r\n E1001: \"Module '{0}'. Controller '{1}' is already registered\",\r\n E1002: \"Module '{0}'. Controller '{1}' does not inherit from DevExpress.ui.dxDataGrid.Controller\",\r\n E1003: \"Module '{0}'. View '{1}' is already registered\",\r\n E1004: \"Module '{0}'. View '{1}' does not inherit from DevExpress.ui.dxDataGrid.View\",\r\n E1005: \"Public method '{0}' is already registered\",\r\n E1006: \"Public method '{0}.{1}' does not exist\",\r\n E1007: \"State storing cannot be provided due to the restrictions of the browser\",\r\n E1010: \"The template does not contain the TextBox widget\",\r\n E1011: 'Items cannot be deleted from the List. Implement the \"remove\" function in the data store',\r\n E1012: \"Editing type '{0}' with the name '{1}' is unsupported\",\r\n E1016: \"Unexpected type of data source is provided for a lookup column\",\r\n E1018: \"The 'collapseAll' method cannot be called if you use a remote data source\",\r\n E1019: \"Search mode '{0}' is unavailable\",\r\n E1020: \"The type cannot be changed after initialization\",\r\n E1021: \"{0} '{1}' you are trying to remove does not exist\",\r\n E1022: 'The \"markers\" option is given an invalid value. Assign an array instead',\r\n E1023: 'The \"routes\" option is given an invalid value. Assign an array instead',\r\n E1025: \"This layout is too complex to render\",\r\n E1026: 'The \"calculateCustomSummary\" function is missing from a field whose \"summaryType\" option is set to \"custom\"',\r\n E1031: \"Unknown subscription in the Scheduler widget: '{0}'\",\r\n E1032: \"Unknown start date in an appointment: '{0}'\",\r\n E1033: \"Unknown step in the date navigator: '{0}'\",\r\n E1034: \"The browser does not implement an API for saving files\",\r\n E1035: \"The editor cannot be created: {0}\",\r\n E1037: \"Invalid structure of grouped data\",\r\n E1038: \"The browser does not support local storages for local web pages\",\r\n E1039: \"A cell's position cannot be calculated\",\r\n E1040: \"The '{0}' key value is not unique within the data array\",\r\n E1041: \"The '{0}' script is referenced after the DevExtreme scripts or not referenced at all\",\r\n E1042: \"{0} requires the key field to be specified\",\r\n E1043: \"Changes cannot be processed due to the incorrectly set key\",\r\n E1044: \"The key field specified by the keyExpr option does not match the key field specified in the data store\",\r\n E1045: \"Editing requires the key field to be specified in the data store\",\r\n E1046: \"The '{0}' key field is not found in data objects\",\r\n E1047: 'The \"{0}\" field is not found in the fields array',\r\n E1048: 'The \"{0}\" operation is not found in the filterOperations array',\r\n E1049: \"Column '{0}': filtering is allowed but the 'dataField' or 'name' option is not specified\",\r\n E1050: \"The validationRules option does not apply to third-party editors defined in the editCellTemplate\",\r\n E1051: 'HtmlEditor\\'s valueType is \"{0}\", but the {0} converter was not imported.',\r\n E1052: '{0} should have the \"dataSource\" option specified',\r\n E1053: 'The \"buttons\" option accepts an array that contains only objects or string values',\r\n E1054: \"All text editor buttons must have names\",\r\n E1055: 'One or several text editor buttons have invalid or non-unique \"name\" values',\r\n E1056: 'The {0} widget does not support buttons of the \"{1}\" type',\r\n E1058: 'The \"startDayHour\" must be earlier than the \"endDayHour\"',\r\n E1059: \"The following column names are not unique: {0}\",\r\n E1060: \"All editable columns must have names\",\r\n W1001: 'The \"key\" option cannot be modified after initialization',\r\n W1002: \"An item with the key '{0}' does not exist\",\r\n W1003: \"A group with the key '{0}' in which you are trying to select items does not exist\",\r\n W1004: \"The item '{0}' you are trying to select in the group '{1}' does not exist\",\r\n W1005: \"Due to column data types being unspecified, data has been loaded twice in order to apply initial filter settings. To resolve this issue, specify data types for all grid columns.\",\r\n W1006: \"The map service returned the following error: '{0}'\",\r\n W1007: \"No item with key {0} was found in the data source, but this key was used as the parent key for item {1}\",\r\n W1008: \"Cannot scroll to the '{0}' date because it does not exist on the current view\",\r\n W1009: \"Searching works only if data is specified using the dataSource option\",\r\n W1010: \"The capability to select all items works with source data of plain structure only\",\r\n W1011: 'The \"keyExpr\" option is not applied when dataSource is not an array',\r\n W1012: \"The '{0}' key field is not found in data objects\",\r\n W1013: 'The \"message\" field in the dialog component was renamed to \"messageHtml\". Change your code correspondingly. In addition, if you used HTML code in the message, make sure that it is secure',\r\n W1014: \"The Floating Action Button exceeds the recommended speed dial action count. If you need to display more speed dial actions, increase the maxSpeedDialActionCount option value in the global config.\",\r\n W1015: 'The \"cellDuration\" should divide the range from the \"startDayHour\" to the \"endDayHour\" into even intervals',\r\n W1016: \"The '{0}' field in the HTML Editor toolbar item configuration was renamed to '{1}'. Please make a corresponding change in your code.\",\r\n W1017: \"The 'key' property is not specified for a lookup data source. Please specify it to prevent requests for the entire dataset when users filter data.\",\r\n W1018: \"Infinite scrolling may not work properly with multiple selection. To use these features together, set 'selection.deferred' to true or set 'selection.selectAllMode' to 'page'.\",\r\n W1019: \"Filter query string exceeds maximum length limit of {0} characters.\",\r\n W1020: \"hideEvent is ignored when the shading property is true\",\r\n W1021: \"The '{0}' is not rendered because none of the DOM elements match the value of the \\\"container\\\" property.\"\r\n});\r\n","/**\r\n * DevExtreme (esm/core/utils/stubs.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nexport function stubComponent(componentName) {\r\n return class {\r\n constructor() {\r\n throw new Error(\"Module '\".concat(componentName, \"' not found\"))\r\n }\r\n static getInstance() {}\r\n }\r\n}\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.search_box_mixin.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport messageLocalization from \"../../localization/message\";\r\nimport errors from \"../widget/ui.errors\";\r\nimport {\r\n Deferred\r\n} from \"../../core/utils/deferred\";\r\nimport {\r\n stubComponent\r\n} from \"../../core/utils/stubs\";\r\nvar EditorClass = stubComponent(\"TextBox\");\r\nexport default {\r\n _getDefaultOptions: function() {\r\n return extend(this.callBase(), {\r\n searchMode: \"\",\r\n searchExpr: null,\r\n searchValue: \"\",\r\n searchEnabled: false,\r\n searchEditorOptions: {}\r\n })\r\n },\r\n _initMarkup: function() {\r\n this._renderSearch();\r\n this.callBase()\r\n },\r\n _renderSearch: function() {\r\n var $element = this.$element();\r\n var searchEnabled = this.option(\"searchEnabled\");\r\n var searchBoxClassName = this._addWidgetPrefix(\"search\");\r\n var rootElementClassName = this._addWidgetPrefix(\"with-search\");\r\n if (!searchEnabled) {\r\n $element.removeClass(rootElementClassName);\r\n this._removeSearchBox();\r\n return\r\n }\r\n var editorOptions = this._getSearchEditorOptions();\r\n if (this._searchEditor) {\r\n this._searchEditor.option(editorOptions)\r\n } else {\r\n $element.addClass(rootElementClassName);\r\n this._$searchEditorElement = $(\"<div>\").addClass(searchBoxClassName).prependTo($element);\r\n this._searchEditor = this._createComponent(this._$searchEditorElement, EditorClass, editorOptions)\r\n }\r\n },\r\n _removeSearchBox: function() {\r\n this._$searchEditorElement && this._$searchEditorElement.remove();\r\n delete this._$searchEditorElement;\r\n delete this._searchEditor\r\n },\r\n _getSearchEditorOptions: function() {\r\n var that = this;\r\n var userEditorOptions = that.option(\"searchEditorOptions\");\r\n var searchText = messageLocalization.format(\"Search\");\r\n return extend({\r\n mode: \"search\",\r\n placeholder: searchText,\r\n tabIndex: that.option(\"tabIndex\"),\r\n value: that.option(\"searchValue\"),\r\n valueChangeEvent: \"input\",\r\n inputAttr: {\r\n \"aria-label\": searchText\r\n },\r\n onValueChanged: function(e) {\r\n var searchTimeout = that.option(\"searchTimeout\");\r\n that._valueChangeDeferred = new Deferred;\r\n clearTimeout(that._valueChangeTimeout);\r\n that._valueChangeDeferred.done(function() {\r\n this.option(\"searchValue\", e.value)\r\n }.bind(that));\r\n if (e.event && \"input\" === e.event.type && searchTimeout) {\r\n that._valueChangeTimeout = setTimeout((function() {\r\n that._valueChangeDeferred.resolve()\r\n }), searchTimeout)\r\n } else {\r\n that._valueChangeDeferred.resolve()\r\n }\r\n }\r\n }, userEditorOptions)\r\n },\r\n _getAriaTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.$element()\r\n },\r\n _focusTarget: function() {\r\n if (this.option(\"searchEnabled\")) {\r\n return this._itemContainer(true)\r\n }\r\n return this.callBase()\r\n },\r\n _updateFocusState: function(e, isFocused) {\r\n if (this.option(\"searchEnabled\")) {\r\n this._toggleFocusClass(isFocused, this.$element())\r\n }\r\n this.callBase(e, isFocused)\r\n },\r\n getOperationBySearchMode: function(searchMode) {\r\n return \"equals\" === searchMode ? \"=\" : searchMode\r\n },\r\n _cleanAria: function($target) {\r\n this.setAria({\r\n role: null,\r\n activedescendant: null\r\n }, $target);\r\n $target.attr(\"tabIndex\", null)\r\n },\r\n _optionChanged: function(args) {\r\n switch (args.name) {\r\n case \"searchEnabled\":\r\n case \"searchEditorOptions\":\r\n this._cleanAria(this.option(\"searchEnabled\") ? this.$element() : this._itemContainer());\r\n this._invalidate();\r\n break;\r\n case \"searchExpr\":\r\n case \"searchMode\":\r\n case \"searchValue\":\r\n if (!this._dataSource) {\r\n errors.log(\"W1009\");\r\n return\r\n }\r\n if (\"searchMode\" === args.name) {\r\n this._dataSource.searchOperation(this.getOperationBySearchMode(args.value))\r\n } else {\r\n this._dataSource[args.name](args.value)\r\n }\r\n this._dataSource.load();\r\n break;\r\n case \"searchTimeout\":\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n focus: function() {\r\n if (!this.option(\"focusedElement\") && this.option(\"searchEnabled\")) {\r\n this._searchEditor && this._searchEditor.focus();\r\n return\r\n }\r\n this.callBase()\r\n },\r\n _refresh: function() {\r\n if (this._valueChangeDeferred) {\r\n this._valueChangeDeferred.resolve()\r\n }\r\n this.callBase()\r\n },\r\n setEditorClass: function(value) {\r\n EditorClass = value\r\n }\r\n};\r\n","/**\r\n * DevExtreme (esm/ui/widget/ui.widget.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport $ from \"../../core/renderer\";\r\nimport Action from \"../../core/action\";\r\nimport DOMComponent from \"../../core/dom_component\";\r\nimport {\r\n active,\r\n focus,\r\n hover,\r\n keyboard\r\n} from \"../../events/short\";\r\nimport {\r\n deferRender,\r\n deferRenderer,\r\n noop\r\n} from \"../../core/utils/common\";\r\nimport {\r\n each\r\n} from \"../../core/utils/iterator\";\r\nimport {\r\n extend\r\n} from \"../../core/utils/extend\";\r\nimport {\r\n focusable as focusableSelector\r\n} from \"./selectors\";\r\nimport {\r\n isPlainObject,\r\n isDefined\r\n} from \"../../core/utils/type\";\r\nimport devices from \"../../core/devices\";\r\nimport {\r\n compare as compareVersions\r\n} from \"../../core/utils/version\";\r\nimport \"../../events/click\";\r\nimport \"../../events/core/emitter.feedback\";\r\nimport \"../../events/hover\";\r\n\r\nfunction setAttribute(name, value, target) {\r\n name = \"role\" === name || \"id\" === name ? name : \"aria-\".concat(name);\r\n value = isDefined(value) ? value.toString() : null;\r\n target.attr(name, value)\r\n}\r\nvar Widget = DOMComponent.inherit({\r\n _feedbackHideTimeout: 400,\r\n _feedbackShowTimeout: 30,\r\n _supportedKeys: () => ({}),\r\n _getDefaultOptions() {\r\n return extend(this.callBase(), {\r\n hoveredElement: null,\r\n isActive: false,\r\n disabled: false,\r\n visible: true,\r\n hint: void 0,\r\n activeStateEnabled: false,\r\n onContentReady: null,\r\n hoverStateEnabled: false,\r\n focusStateEnabled: false,\r\n tabIndex: 0,\r\n accessKey: void 0,\r\n onFocusIn: null,\r\n onFocusOut: null,\r\n onKeyboardHandled: null,\r\n ignoreParentReadOnly: false,\r\n useResizeObserver: true\r\n })\r\n },\r\n _defaultOptionsRules: function() {\r\n return this.callBase().concat([{\r\n device: function() {\r\n var device = devices.real();\r\n var platform = device.platform;\r\n var version = device.version;\r\n return \"ios\" === platform && compareVersions(version, \"13.3\") <= 0\r\n },\r\n options: {\r\n useResizeObserver: false\r\n }\r\n }])\r\n },\r\n _init() {\r\n this.callBase();\r\n this._initContentReadyAction()\r\n },\r\n _innerWidgetOptionChanged: function(innerWidget, args) {\r\n var options = Widget.getOptionsFromContainer(args);\r\n innerWidget && innerWidget.option(options);\r\n this._options.cache(args.name, options)\r\n },\r\n _bindInnerWidgetOptions(innerWidget, optionsContainer) {\r\n var syncOptions = () => this._options.silent(optionsContainer, extend({}, innerWidget.option()));\r\n syncOptions();\r\n innerWidget.on(\"optionChanged\", syncOptions)\r\n },\r\n _getAriaTarget() {\r\n return this._focusTarget()\r\n },\r\n _initContentReadyAction() {\r\n this._contentReadyAction = this._createActionByOption(\"onContentReady\", {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n })\r\n },\r\n _initMarkup() {\r\n var {\r\n disabled: disabled,\r\n visible: visible\r\n } = this.option();\r\n this.$element().addClass(\"dx-widget\");\r\n this._toggleDisabledState(disabled);\r\n this._toggleVisibility(visible);\r\n this._renderHint();\r\n this._isFocusable() && this._renderFocusTarget();\r\n this.callBase()\r\n },\r\n _render() {\r\n this.callBase();\r\n this._renderContent();\r\n this._renderFocusState();\r\n this._attachFeedbackEvents();\r\n this._attachHoverEvents();\r\n this._toggleIndependentState()\r\n },\r\n _renderHint() {\r\n var {\r\n hint: hint\r\n } = this.option();\r\n this.$element().attr(\"title\", hint || null)\r\n },\r\n _renderContent() {\r\n deferRender(() => !this._disposed ? this._renderContentImpl() : void 0).done(() => !this._disposed ? this._fireContentReadyAction() : void 0)\r\n },\r\n _renderContentImpl: noop,\r\n _fireContentReadyAction: deferRenderer((function() {\r\n return this._contentReadyAction()\r\n })),\r\n _dispose() {\r\n this._contentReadyAction = null;\r\n this._detachKeyboardEvents();\r\n this.callBase()\r\n },\r\n _resetActiveState() {\r\n this._toggleActiveState(this._eventBindingTarget(), false)\r\n },\r\n _clean() {\r\n this._cleanFocusState();\r\n this._resetActiveState();\r\n this.callBase();\r\n this.$element().empty()\r\n },\r\n _toggleVisibility(visible) {\r\n this.$element().toggleClass(\"dx-state-invisible\", !visible);\r\n this.setAria(\"hidden\", !visible || void 0)\r\n },\r\n _renderFocusState() {\r\n this._attachKeyboardEvents();\r\n if (this._isFocusable()) {\r\n this._renderFocusTarget();\r\n this._attachFocusEvents();\r\n this._renderAccessKey()\r\n }\r\n },\r\n _renderAccessKey() {\r\n var $el = this._focusTarget();\r\n var {\r\n accessKey: accessKey\r\n } = this.option();\r\n $el.attr(\"accesskey\", accessKey)\r\n },\r\n _isFocusable() {\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n disabled: disabled\r\n } = this.option();\r\n return focusStateEnabled && !disabled\r\n },\r\n _eventBindingTarget() {\r\n return this.$element()\r\n },\r\n _focusTarget() {\r\n return this._getActiveElement()\r\n },\r\n _isFocusTarget: function(element) {\r\n var focusTargets = $(this._focusTarget()).toArray();\r\n return focusTargets.includes(element)\r\n },\r\n _getActiveElement() {\r\n var activeElement = this._eventBindingTarget();\r\n if (this._activeStateUnit) {\r\n return activeElement.find(this._activeStateUnit).not(\".dx-state-disabled\")\r\n }\r\n return activeElement\r\n },\r\n _renderFocusTarget() {\r\n var {\r\n tabIndex: tabIndex\r\n } = this.option();\r\n this._focusTarget().attr(\"tabIndex\", tabIndex)\r\n },\r\n _keyboardEventBindingTarget() {\r\n return this._eventBindingTarget()\r\n },\r\n _refreshFocusEvent() {\r\n this._detachFocusEvents();\r\n this._attachFocusEvents()\r\n },\r\n _focusEventTarget() {\r\n return this._focusTarget()\r\n },\r\n _focusInHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusIn\", {\r\n beforeExecute: () => this._updateFocusState(event, true),\r\n excludeValidators: [\"readOnly\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _focusOutHandler(event) {\r\n if (!event.isDefaultPrevented()) {\r\n this._createActionByOption(\"onFocusOut\", {\r\n beforeExecute: () => this._updateFocusState(event, false),\r\n excludeValidators: [\"readOnly\", \"disabled\"]\r\n })({\r\n event: event\r\n })\r\n }\r\n },\r\n _updateFocusState(_ref, isFocused) {\r\n var {\r\n target: target\r\n } = _ref;\r\n if (this._isFocusTarget(target)) {\r\n this._toggleFocusClass(isFocused, $(target))\r\n }\r\n },\r\n _toggleFocusClass(isFocused, $element) {\r\n var $focusTarget = $element && $element.length ? $element : this._focusTarget();\r\n $focusTarget.toggleClass(\"dx-state-focused\", isFocused)\r\n },\r\n _hasFocusClass(element) {\r\n var $focusTarget = $(element || this._focusTarget());\r\n return $focusTarget.hasClass(\"dx-state-focused\")\r\n },\r\n _isFocused() {\r\n return this._hasFocusClass()\r\n },\r\n _getKeyboardListeners: () => [],\r\n _attachKeyboardEvents() {\r\n this._detachKeyboardEvents();\r\n var {\r\n focusStateEnabled: focusStateEnabled,\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n var hasChildListeners = this._getKeyboardListeners().length;\r\n var hasKeyboardEventHandler = !!onKeyboardHandled;\r\n var shouldAttach = focusStateEnabled || hasChildListeners || hasKeyboardEventHandler;\r\n if (shouldAttach) {\r\n this._keyboardListenerId = keyboard.on(this._keyboardEventBindingTarget(), this._focusTarget(), opts => this._keyboardHandler(opts))\r\n }\r\n },\r\n _keyboardHandler(options, onlyChildProcessing) {\r\n if (!onlyChildProcessing) {\r\n var {\r\n originalEvent: originalEvent,\r\n keyName: keyName,\r\n which: which\r\n } = options;\r\n var keys = this._supportedKeys(originalEvent);\r\n var func = keys[keyName] || keys[which];\r\n if (void 0 !== func) {\r\n var handler = func.bind(this);\r\n var result = handler(originalEvent, options);\r\n if (!result) {\r\n return false\r\n }\r\n }\r\n }\r\n var keyboardListeners = this._getKeyboardListeners();\r\n var {\r\n onKeyboardHandled: onKeyboardHandled\r\n } = this.option();\r\n keyboardListeners.forEach(listener => listener && listener._keyboardHandler(options));\r\n onKeyboardHandled && onKeyboardHandled(options);\r\n return true\r\n },\r\n _refreshFocusState() {\r\n this._cleanFocusState();\r\n this._renderFocusState()\r\n },\r\n _cleanFocusState() {\r\n var $element = this._focusTarget();\r\n $element.removeAttr(\"tabIndex\");\r\n this._toggleFocusClass(false);\r\n this._detachFocusEvents();\r\n this._detachKeyboardEvents()\r\n },\r\n _detachKeyboardEvents() {\r\n keyboard.off(this._keyboardListenerId);\r\n this._keyboardListenerId = null\r\n },\r\n _attachHoverEvents() {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n hover.off($el, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n });\r\n if (hoverStateEnabled) {\r\n hover.on($el, new Action(_ref2 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref2;\r\n this._hoverStartHandler(event);\r\n this.option(\"hoveredElement\", $(element))\r\n }, {\r\n excludeValidators: [\"readOnly\"]\r\n }), event => {\r\n this.option(\"hoveredElement\", null);\r\n this._hoverEndHandler(event)\r\n }, {\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _attachFeedbackEvents() {\r\n var {\r\n activeStateEnabled: activeStateEnabled\r\n } = this.option();\r\n var selector = this._activeStateUnit;\r\n var $el = this._eventBindingTarget();\r\n active.off($el, {\r\n namespace: \"UIFeedback\",\r\n selector: selector\r\n });\r\n if (activeStateEnabled) {\r\n active.on($el, new Action(_ref3 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref3;\r\n return this._toggleActiveState($(element), true, event)\r\n }), new Action(_ref4 => {\r\n var {\r\n event: event,\r\n element: element\r\n } = _ref4;\r\n return this._toggleActiveState($(element), false, event)\r\n }, {\r\n excludeValidators: [\"disabled\", \"readOnly\"]\r\n }), {\r\n showTimeout: this._feedbackShowTimeout,\r\n hideTimeout: this._feedbackHideTimeout,\r\n selector: selector,\r\n namespace: \"UIFeedback\"\r\n })\r\n }\r\n },\r\n _detachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.off($el, {\r\n namespace: \"\".concat(this.NAME, \"Focus\")\r\n })\r\n },\r\n _attachFocusEvents() {\r\n var $el = this._focusEventTarget();\r\n focus.on($el, e => this._focusInHandler(e), e => this._focusOutHandler(e), {\r\n namespace: \"\".concat(this.NAME, \"Focus\"),\r\n isFocusable: (index, el) => $(el).is(focusableSelector)\r\n })\r\n },\r\n _hoverStartHandler: noop,\r\n _hoverEndHandler: noop,\r\n _toggleActiveState($element, value) {\r\n this.option(\"isActive\", value);\r\n $element.toggleClass(\"dx-state-active\", value)\r\n },\r\n _updatedHover() {\r\n var hoveredElement = this._options.silent(\"hoveredElement\");\r\n this._hover(hoveredElement, hoveredElement)\r\n },\r\n _findHoverTarget($el) {\r\n return $el && $el.closest(this._activeStateUnit || this._eventBindingTarget())\r\n },\r\n _hover($el, $previous) {\r\n var {\r\n hoverStateEnabled: hoverStateEnabled,\r\n disabled: disabled,\r\n isActive: isActive\r\n } = this.option();\r\n $previous = this._findHoverTarget($previous);\r\n $previous && $previous.toggleClass(\"dx-state-hover\", false);\r\n if ($el && hoverStateEnabled && !disabled && !isActive) {\r\n var newHoveredElement = this._findHoverTarget($el);\r\n newHoveredElement && newHoveredElement.toggleClass(\"dx-state-hover\", true)\r\n }\r\n },\r\n _toggleDisabledState(value) {\r\n this.$element().toggleClass(\"dx-state-disabled\", Boolean(value));\r\n this.setAria(\"disabled\", value || void 0)\r\n },\r\n _toggleIndependentState() {\r\n this.$element().toggleClass(\"dx-state-independent\", this.option(\"ignoreParentReadOnly\"))\r\n },\r\n _setWidgetOption(widgetName, args) {\r\n if (!this[widgetName]) {\r\n return\r\n }\r\n if (isPlainObject(args[0])) {\r\n each(args[0], (option, value) => this._setWidgetOption(widgetName, [option, value]));\r\n return\r\n }\r\n var optionName = args[0];\r\n var value = args[1];\r\n if (1 === args.length) {\r\n value = this.option(optionName)\r\n }\r\n var widgetOptionMap = this[\"\".concat(widgetName, \"OptionMap\")];\r\n this[widgetName].option(widgetOptionMap ? widgetOptionMap(optionName) : optionName, value)\r\n },\r\n _optionChanged(args) {\r\n var {\r\n name: name,\r\n value: value,\r\n previousValue: previousValue\r\n } = args;\r\n switch (name) {\r\n case \"disabled\":\r\n this._toggleDisabledState(value);\r\n this._updatedHover();\r\n this._refreshFocusState();\r\n break;\r\n case \"hint\":\r\n this._renderHint();\r\n break;\r\n case \"ignoreParentReadOnly\":\r\n this._toggleIndependentState();\r\n break;\r\n case \"activeStateEnabled\":\r\n this._attachFeedbackEvents();\r\n break;\r\n case \"hoverStateEnabled\":\r\n this._attachHoverEvents();\r\n this._updatedHover();\r\n break;\r\n case \"tabIndex\":\r\n case \"focusStateEnabled\":\r\n this._refreshFocusState();\r\n break;\r\n case \"onFocusIn\":\r\n case \"onFocusOut\":\r\n case \"useResizeObserver\":\r\n break;\r\n case \"accessKey\":\r\n this._renderAccessKey();\r\n break;\r\n case \"hoveredElement\":\r\n this._hover(value, previousValue);\r\n break;\r\n case \"isActive\":\r\n this._updatedHover();\r\n break;\r\n case \"visible\":\r\n this._toggleVisibility(value);\r\n if (this._isVisibilityChangeSupported()) {\r\n this._checkVisibilityChanged(value ? \"shown\" : \"hiding\")\r\n }\r\n break;\r\n case \"onKeyboardHandled\":\r\n this._attachKeyboardEvents();\r\n break;\r\n case \"onContentReady\":\r\n this._initContentReadyAction();\r\n break;\r\n default:\r\n this.callBase(args)\r\n }\r\n },\r\n _isVisible() {\r\n var {\r\n visible: visible\r\n } = this.option();\r\n return this.callBase() && visible\r\n },\r\n beginUpdate() {\r\n this._ready(false);\r\n this.callBase()\r\n },\r\n endUpdate() {\r\n this.callBase();\r\n if (this._initialized) {\r\n this._ready(true)\r\n }\r\n },\r\n _ready(value) {\r\n if (0 === arguments.length) {\r\n return this._isReady\r\n }\r\n this._isReady = value\r\n },\r\n setAria() {\r\n if (!isPlainObject(arguments.length <= 0 ? void 0 : arguments[0])) {\r\n setAttribute(arguments.length <= 0 ? void 0 : arguments[0], arguments.length <= 1 ? void 0 : arguments[1], (arguments.length <= 2 ? void 0 : arguments[2]) || this._getAriaTarget())\r\n } else {\r\n var target = (arguments.length <= 1 ? void 0 : arguments[1]) || this._getAriaTarget();\r\n each(arguments.length <= 0 ? void 0 : arguments[0], (name, value) => setAttribute(name, value, target))\r\n }\r\n },\r\n isReady() {\r\n return this._ready()\r\n },\r\n repaint() {\r\n this._refresh()\r\n },\r\n focus() {\r\n focus.trigger(this._focusTarget())\r\n },\r\n registerKeyHandler(key, handler) {\r\n var currentKeys = this._supportedKeys();\r\n this._supportedKeys = () => extend(currentKeys, {\r\n [key]: handler\r\n })\r\n }\r\n});\r\nWidget.getOptionsFromContainer = _ref5 => {\r\n var {\r\n name: name,\r\n fullName: fullName,\r\n value: value\r\n } = _ref5;\r\n var options = {};\r\n if (name === fullName) {\r\n options = value\r\n } else {\r\n var option = fullName.split(\".\").pop();\r\n options[option] = value\r\n }\r\n return options\r\n};\r\nexport default Widget;\r\n","/**\r\n * DevExtreme (esm/ui/widget/utils.ink_ripple.js)\r\n * Version: 22.2.3\r\n * Build date: Mon Dec 05 2022\r\n *\r\n * Copyright (c) 2012 - 2022 Developer Express Inc. ALL RIGHTS RESERVED\r\n * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/\r\n */\r\nimport {\r\n getOuterWidth,\r\n getOuterHeight\r\n} from \"../../core/utils/size\";\r\nimport $ from \"../../core/renderer\";\r\nvar INKRIPPLE_CLASS = \"dx-inkripple\";\r\nvar INKRIPPLE_WAVE_CLASS = \"dx-inkripple-wave\";\r\nvar INKRIPPLE_SHOWING_CLASS = \"dx-inkripple-showing\";\r\nvar INKRIPPLE_HIDING_CLASS = \"dx-inkripple-hiding\";\r\nvar DEFAULT_WAVE_SIZE_COEFFICIENT = 2;\r\nvar MAX_WAVE_SIZE = 4e3;\r\nvar ANIMATION_DURATION = 300;\r\nvar HOLD_ANIMATION_DURATION = 1e3;\r\nvar DEFAULT_WAVE_INDEX = 0;\r\nexport var initConfig = function() {\r\n var config = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : {};\r\n var {\r\n useHoldAnimation: useHoldAnimation,\r\n waveSizeCoefficient: waveSizeCoefficient,\r\n isCentered: isCentered,\r\n wavesNumber: wavesNumber\r\n } = config;\r\n return {\r\n waveSizeCoefficient: waveSizeCoefficient || DEFAULT_WAVE_SIZE_COEFFICIENT,\r\n isCentered: isCentered || false,\r\n wavesNumber: wavesNumber || 1,\r\n durations: getDurations(null !== useHoldAnimation && void 0 !== useHoldAnimation ? useHoldAnimation : true)\r\n }\r\n};\r\nexport var render = function(args) {\r\n var config = initConfig(args);\r\n return {\r\n showWave: showWave.bind(this, config),\r\n hideWave: hideWave.bind(this, config)\r\n }\r\n};\r\nvar getInkRipple = function(element) {\r\n var result = element.children(\".\" + INKRIPPLE_CLASS);\r\n if (0 === result.length) {\r\n result = $(\"<div>\").addClass(INKRIPPLE_CLASS).appendTo(element)\r\n }\r\n return result\r\n};\r\nvar getWaves = function(element, wavesNumber) {\r\n var inkRipple = getInkRipple($(element));\r\n var result = inkRipple.children(\".\" + INKRIPPLE_WAVE_CLASS).toArray();\r\n for (var i = result.length; i < wavesNumber; i++) {\r\n var $currentWave = $(\"<div>\").appendTo(inkRipple).addClass(INKRIPPLE_WAVE_CLASS);\r\n result.push($currentWave[0])\r\n }\r\n return $(result)\r\n};\r\nvar getWaveStyleConfig = function(args, config) {\r\n var element = $(config.element);\r\n var elementWidth = getOuterWidth(element);\r\n var elementHeight = getOuterHeight(element);\r\n var elementDiagonal = parseInt(Math.sqrt(elementWidth * elementWidth + elementHeight * elementHeight));\r\n var waveSize = Math.min(MAX_WAVE_SIZE, parseInt(elementDiagonal * args.waveSizeCoefficient));\r\n var left;\r\n var top;\r\n if (args.isCentered) {\r\n left = (elementWidth - waveSize) / 2;\r\n top = (elementHeight - waveSize) / 2\r\n } else {\r\n var event = config.event;\r\n var position = element.offset();\r\n var x = event.pageX - position.left;\r\n var y = event.pageY - position.top;\r\n left = x - waveSize / 2;\r\n top = y - waveSize / 2\r\n }\r\n return {\r\n left: left,\r\n top: top,\r\n height: waveSize,\r\n width: waveSize\r\n }\r\n};\r\nexport function showWave(args, config) {\r\n var $wave = getWaves(config.element, args.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n args.hidingTimeout && clearTimeout(args.hidingTimeout);\r\n hideSelectedWave($wave);\r\n $wave.css(getWaveStyleConfig(args, config));\r\n args.showingTimeout = setTimeout(showingWaveHandler.bind(this, args, $wave), 0)\r\n}\r\n\r\nfunction showingWaveHandler(args, $wave) {\r\n var durationCss = args.durations.showingScale + \"ms\";\r\n $wave.addClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss)\r\n}\r\n\r\nfunction getDurations(useHoldAnimation) {\r\n return {\r\n showingScale: useHoldAnimation ? HOLD_ANIMATION_DURATION : ANIMATION_DURATION,\r\n hidingScale: ANIMATION_DURATION,\r\n hidingOpacity: ANIMATION_DURATION\r\n }\r\n}\r\n\r\nfunction hideSelectedWave($wave) {\r\n $wave.removeClass(INKRIPPLE_HIDING_CLASS).css(\"transitionDuration\", \"\")\r\n}\r\nexport function hideWave(args, config) {\r\n args.showingTimeout && clearTimeout(args.showingTimeout);\r\n var $wave = getWaves(config.element, config.wavesNumber).eq(config.wave || DEFAULT_WAVE_INDEX);\r\n var durations = args.durations;\r\n var durationCss = durations.hidingScale + \"ms, \" + durations.hidingOpacity + \"ms\";\r\n $wave.addClass(INKRIPPLE_HIDING_CLASS).removeClass(INKRIPPLE_SHOWING_CLASS).css(\"transitionDuration\", durationCss);\r\n var animationDuration = Math.max(durations.hidingScale, durations.hidingOpacity);\r\n args.hidingTimeout = setTimeout(hideSelectedWave.bind(this, $wave), animationDuration)\r\n}\r\n","import { getFlagsForElementVnode, createComponentVNode, createFragment, createVNode } from 'inferno';\n\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\n\nvar componentHooks = {\n onComponentDidMount: 1,\n onComponentDidUpdate: 1,\n onComponentShouldUpdate: 1,\n onComponentWillMount: 1,\n onComponentWillUnmount: 1,\n onComponentWillUpdate: 1\n};\nfunction createElement(type, props, _children) {\n var arguments$1 = arguments;\n var children;\n var ref = null;\n var key = null;\n var className = null;\n var flags = 0;\n var newProps;\n var childLen = arguments.length - 2;\n if (childLen === 1) {\n children = _children;\n }\n else if (childLen > 1) {\n children = [];\n while (childLen-- > 0) {\n children[childLen] = arguments$1[childLen + 2];\n }\n }\n if (isString(type)) {\n flags = getFlagsForElementVnode(type);\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop in props) {\n if (prop === 'className' || prop === 'class') {\n className = props[prop];\n }\n else if (prop === 'key') {\n key = props.key;\n }\n else if (prop === 'children' && isUndefined(children)) {\n children = props.children; // always favour children args over props\n }\n else if (prop === 'ref') {\n ref = props.ref;\n }\n else {\n if (prop === 'contenteditable') {\n flags |= 4096 /* ContentEditable */;\n }\n newProps[prop] = props[prop];\n }\n }\n }\n }\n else {\n flags = 2 /* ComponentUnknown */;\n if (!isUndefined(children)) {\n if (!props) {\n props = {};\n }\n props.children = children;\n }\n if (!isNullOrUndef(props)) {\n newProps = {};\n for (var prop$1 in props) {\n if (prop$1 === 'key') {\n key = props.key;\n }\n else if (prop$1 === 'ref') {\n ref = props.ref;\n }\n else if (componentHooks[prop$1] === 1) {\n if (!ref) {\n ref = {};\n }\n ref[prop$1] = props[prop$1];\n }\n else {\n newProps[prop$1] = props[prop$1];\n }\n }\n }\n return createComponentVNode(flags, type, newProps, key, ref);\n }\n if (flags & 8192 /* Fragment */) {\n return createFragment(childLen === 1 ? [children] : children, 0 /* UnknownChildren */, key);\n }\n return createVNode(flags, type, className, children, 0 /* UnknownChildren */, newProps, key, ref);\n}\n\nexport { createElement };\n","var isArray = Array.isArray;\nfunction isStringOrNumber(o) {\n var type = typeof o;\n return type === 'string' || type === 'number';\n}\nfunction isNullOrUndef(o) {\n return o === void 0 || o === null;\n}\nfunction isInvalid(o) {\n return o === null || o === false || o === true || o === void 0;\n}\nfunction isFunction(o) {\n return typeof o === 'function';\n}\nfunction isString(o) {\n return typeof o === 'string';\n}\nfunction isNumber(o) {\n return typeof o === 'number';\n}\nfunction isNull(o) {\n return o === null;\n}\nfunction isUndefined(o) {\n return o === void 0;\n}\nfunction combineFrom(first, second) {\n var out = {};\n if (first) {\n for (var key in first) {\n out[key] = first[key];\n }\n }\n if (second) {\n for (var key$1 in second) {\n out[key$1] = second[key$1];\n }\n }\n return out;\n}\n\n/**\n * Links given data to event as first parameter\n * @param {*} data data to be linked, it will be available in function as first parameter\n * @param {Function} event Function to be called when event occurs\n * @returns {{data: *, event: Function}}\n */\nfunction linkEvent(data, event) {\n if (isFunction(event)) {\n return { data: data, event: event };\n }\n return null; // Return null when event is invalid, to avoid creating unnecessary event handlers\n}\n// object.event should always be function, otherwise its badly created object.\nfunction isLinkEventObject(o) {\n return !isNull(o) && typeof o === 'object';\n}\n\n// We need EMPTY_OBJ defined in one place.\n// Its used for comparison so we cant inline it into shared\nvar EMPTY_OBJ = {};\nvar Fragment = '$F';\nfunction normalizeEventName(name) {\n return name.substr(2).toLowerCase();\n}\nfunction appendChild(parentDOM, dom) {\n parentDOM.appendChild(dom);\n}\nfunction insertOrAppend(parentDOM, newNode, nextNode) {\n if (isNull(nextNode)) {\n appendChild(parentDOM, newNode);\n }\n else {\n parentDOM.insertBefore(newNode, nextNode);\n }\n}\nfunction documentCreateElement(tag, isSVG) {\n if (isSVG) {\n return document.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n return document.createElement(tag);\n}\nfunction replaceChild(parentDOM, newDom, lastDom) {\n parentDOM.replaceChild(newDom, lastDom);\n}\nfunction removeChild(parentDOM, childNode) {\n parentDOM.removeChild(childNode);\n}\nfunction callAll(arrayFn) {\n for (var i = 0; i < arrayFn.length; i++) {\n arrayFn[i]();\n }\n}\nfunction findChildVNode(vNode, startEdge, flags) {\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n return children.$LI;\n }\n if (flags & 8192 /* Fragment */) {\n return vNode.childFlags === 2 /* HasVNodeChildren */ ? children : children[startEdge ? 0 : children.length - 1];\n }\n return children;\n}\nfunction findDOMfromVNode(vNode, startEdge) {\n var flags;\n while (vNode) {\n flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n return vNode.dom;\n }\n vNode = findChildVNode(vNode, startEdge, flags);\n }\n return null;\n}\nfunction removeVNodeDOM(vNode, parentDOM) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n removeChild(parentDOM, vNode.dom);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n removeVNodeDOM(children[i], parentDOM);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction moveVNodeDOM(vNode, parentDOM, nextNode) {\n do {\n var flags = vNode.flags;\n if (flags & 2033 /* DOMRef */) {\n insertOrAppend(parentDOM, vNode.dom, nextNode);\n return;\n }\n var children = vNode.children;\n if (flags & 4 /* ComponentClass */) {\n vNode = children.$LI;\n }\n if (flags & 8 /* ComponentFunction */) {\n vNode = children;\n }\n if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n vNode = children;\n }\n else {\n for (var i = 0, len = children.length; i < len; ++i) {\n moveVNodeDOM(children[i], parentDOM, nextNode);\n }\n return;\n }\n }\n } while (vNode);\n}\nfunction createDerivedState(instance, nextProps, state) {\n if (instance.constructor.getDerivedStateFromProps) {\n return combineFrom(state, instance.constructor.getDerivedStateFromProps(nextProps, state));\n }\n return state;\n}\nvar renderCheck = {\n v: false\n};\nvar options = {\n componentComparator: null,\n createVNode: null,\n renderComplete: null\n};\nfunction setTextContent(dom, children) {\n dom.textContent = children;\n}\n// Calling this function assumes, nextValue is linkEvent\nfunction isLastValueSameLinkEvent(lastValue, nextValue) {\n return (isLinkEventObject(lastValue) &&\n lastValue.event === nextValue.event &&\n lastValue.data === nextValue.data);\n}\nfunction mergeUnsetProperties(to, from) {\n for (var propName in from) {\n if (isUndefined(to[propName])) {\n to[propName] = from[propName];\n }\n }\n return to;\n}\nfunction safeCall1(method, arg1) {\n return !!isFunction(method) && (method(arg1), true);\n}\n\nvar keyPrefix = '$';\nfunction V(childFlags, children, className, flags, key, props, ref, type) {\n this.childFlags = childFlags;\n this.children = children;\n this.className = className;\n this.dom = null;\n this.flags = flags;\n this.key = key === void 0 ? null : key;\n this.props = props === void 0 ? null : props;\n this.ref = ref === void 0 ? null : ref;\n this.type = type;\n}\nfunction createVNode(flags, type, className, children, childFlags, props, key, ref) {\n var childFlag = childFlags === void 0 ? 1 /* HasInvalidChildren */ : childFlags;\n var vNode = new V(childFlag, children, className, flags, key, props, ref, type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n if (childFlag === 0 /* UnknownChildren */) {\n normalizeChildren(vNode, vNode.children);\n }\n return vNode;\n}\nfunction mergeDefaultHooks(flags, type, ref) {\n if (flags & 4 /* ComponentClass */) {\n return ref;\n }\n var defaultHooks = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultHooks;\n if (isNullOrUndef(defaultHooks)) {\n return ref;\n }\n if (isNullOrUndef(ref)) {\n return defaultHooks;\n }\n return mergeUnsetProperties(ref, defaultHooks);\n}\nfunction mergeDefaultProps(flags, type, props) {\n // set default props\n var defaultProps = (flags & 32768 /* ForwardRef */ ? type.render : type).defaultProps;\n if (isNullOrUndef(defaultProps)) {\n return props;\n }\n if (isNullOrUndef(props)) {\n return combineFrom(defaultProps, null);\n }\n return mergeUnsetProperties(props, defaultProps);\n}\nfunction resolveComponentFlags(flags, type) {\n if (flags & 12 /* ComponentKnown */) {\n return flags;\n }\n if (type.prototype && type.prototype.render) {\n return 4 /* ComponentClass */;\n }\n if (type.render) {\n return 32776 /* ForwardRefComponent */;\n }\n return 8 /* ComponentFunction */;\n}\nfunction createComponentVNode(flags, type, props, key, ref) {\n flags = resolveComponentFlags(flags, type);\n var vNode = new V(1 /* HasInvalidChildren */, null, null, flags, key, mergeDefaultProps(flags, type, props), mergeDefaultHooks(flags, type, ref), type);\n if (options.createVNode) {\n options.createVNode(vNode);\n }\n return vNode;\n}\nfunction createTextVNode(text, key) {\n return new V(1 /* HasInvalidChildren */, isNullOrUndef(text) || text === true || text === false ? '' : text, null, 16 /* Text */, key, null, null, null);\n}\nfunction createFragment(children, childFlags, key) {\n var fragment = createVNode(8192 /* Fragment */, 8192 /* Fragment */, null, children, childFlags, null, key, null);\n switch (fragment.childFlags) {\n case 1 /* HasInvalidChildren */:\n fragment.children = createVoidVNode();\n fragment.childFlags = 2 /* HasVNodeChildren */;\n break;\n case 16 /* HasTextChildren */:\n fragment.children = [createTextVNode(children)];\n fragment.childFlags = 4 /* HasNonKeyedChildren */;\n break;\n }\n return fragment;\n}\nfunction normalizeProps(vNode) {\n var props = vNode.props;\n if (props) {\n var flags = vNode.flags;\n if (flags & 481 /* Element */) {\n if (props.children !== void 0 && isNullOrUndef(vNode.children)) {\n normalizeChildren(vNode, props.children);\n }\n if (props.className !== void 0) {\n if (isNullOrUndef(vNode.className)) {\n vNode.className = props.className || null;\n }\n props.className = undefined;\n }\n }\n if (props.key !== void 0) {\n vNode.key = props.key;\n props.key = undefined;\n }\n if (props.ref !== void 0) {\n if (flags & 8 /* ComponentFunction */) {\n vNode.ref = combineFrom(vNode.ref, props.ref);\n }\n else {\n vNode.ref = props.ref;\n }\n props.ref = undefined;\n }\n }\n return vNode;\n}\n/*\n * Fragment is different than normal vNode,\n * because when it needs to be cloned we need to clone its children too\n * But not normalize, because otherwise those possibly get KEY and re-mount\n */\nfunction cloneFragment(vNodeToClone) {\n var oldChildren = vNodeToClone.children;\n var childFlags = vNodeToClone.childFlags;\n return createFragment(childFlags === 2 /* HasVNodeChildren */ ? directClone(oldChildren) : oldChildren.map(directClone), childFlags, vNodeToClone.key);\n}\nfunction directClone(vNodeToClone) {\n var flags = vNodeToClone.flags & -16385 /* ClearInUse */;\n var props = vNodeToClone.props;\n if (flags & 14 /* Component */) {\n if (!isNull(props)) {\n var propsToClone = props;\n props = {};\n for (var key in propsToClone) {\n props[key] = propsToClone[key];\n }\n }\n }\n if ((flags & 8192 /* Fragment */) === 0) {\n return new V(vNodeToClone.childFlags, vNodeToClone.children, vNodeToClone.className, flags, vNodeToClone.key, props, vNodeToClone.ref, vNodeToClone.type);\n }\n return cloneFragment(vNodeToClone);\n}\nfunction createVoidVNode() {\n return createTextVNode('', null);\n}\nfunction createPortal(children, container) {\n var normalizedRoot = normalizeRoot(children);\n return createVNode(1024 /* Portal */, 1024 /* Portal */, null, normalizedRoot, 0 /* UnknownChildren */, null, normalizedRoot.key, container);\n}\nfunction _normalizeVNodes(nodes, result, index, currentKey) {\n for (var len = nodes.length; index < len; index++) {\n var n = nodes[index];\n if (!isInvalid(n)) {\n var newKey = currentKey + keyPrefix + index;\n if (isArray(n)) {\n _normalizeVNodes(n, result, 0, newKey);\n }\n else {\n if (isStringOrNumber(n)) {\n n = createTextVNode(n, newKey);\n }\n else {\n var oldKey = n.key;\n var isPrefixedKey = isString(oldKey) && oldKey[0] === keyPrefix;\n if (n.flags & 81920 /* InUseOrNormalized */ || isPrefixedKey) {\n n = directClone(n);\n }\n n.flags |= 65536 /* Normalized */;\n if (!isPrefixedKey) {\n if (isNull(oldKey)) {\n n.key = newKey;\n }\n else {\n n.key = currentKey + oldKey;\n }\n }\n else if (oldKey.substring(0, currentKey.length) !== currentKey) {\n n.key = currentKey + oldKey;\n }\n }\n result.push(n);\n }\n }\n }\n}\nfunction getFlagsForElementVnode(type) {\n switch (type) {\n case 'svg':\n return 32 /* SvgElement */;\n case 'input':\n return 64 /* InputElement */;\n case 'select':\n return 256 /* SelectElement */;\n case 'textarea':\n return 128 /* TextareaElement */;\n case Fragment:\n return 8192 /* Fragment */;\n default:\n return 1 /* HtmlElement */;\n }\n}\nfunction normalizeChildren(vNode, children) {\n var newChildren;\n var newChildFlags = 1 /* HasInvalidChildren */;\n // Don't change children to match strict equal (===) true in patching\n if (isInvalid(children)) {\n newChildren = children;\n }\n else if (isStringOrNumber(children)) {\n newChildFlags = 16 /* HasTextChildren */;\n newChildren = children;\n }\n else if (isArray(children)) {\n var len = children.length;\n for (var i = 0; i < len; ++i) {\n var n = children[i];\n if (isInvalid(n) || isArray(n)) {\n newChildren = newChildren || children.slice(0, i);\n _normalizeVNodes(children, newChildren, i, '');\n break;\n }\n else if (isStringOrNumber(n)) {\n newChildren = newChildren || children.slice(0, i);\n newChildren.push(createTextVNode(n, keyPrefix + i));\n }\n else {\n var key = n.key;\n var needsCloning = (n.flags & 81920 /* InUseOrNormalized */) > 0;\n var isNullKey = isNull(key);\n var isPrefixed = isString(key) && key[0] === keyPrefix;\n if (needsCloning || isNullKey || isPrefixed) {\n newChildren = newChildren || children.slice(0, i);\n if (needsCloning || isPrefixed) {\n n = directClone(n);\n }\n if (isNullKey || isPrefixed) {\n n.key = keyPrefix + i;\n }\n newChildren.push(n);\n }\n else if (newChildren) {\n newChildren.push(n);\n }\n n.flags |= 65536 /* Normalized */;\n }\n }\n newChildren = newChildren || children;\n if (newChildren.length === 0) {\n newChildFlags = 1 /* HasInvalidChildren */;\n }\n else {\n newChildFlags = 8 /* HasKeyedChildren */;\n }\n }\n else {\n newChildren = children;\n newChildren.flags |= 65536 /* Normalized */;\n if (children.flags & 81920 /* InUseOrNormalized */) {\n newChildren = directClone(children);\n }\n newChildFlags = 2 /* HasVNodeChildren */;\n }\n vNode.children = newChildren;\n vNode.childFlags = newChildFlags;\n return vNode;\n}\nfunction normalizeRoot(input) {\n if (isInvalid(input) || isStringOrNumber(input)) {\n return createTextVNode(input, null);\n }\n if (isArray(input)) {\n return createFragment(input, 0 /* UnknownChildren */, null);\n }\n return input.flags & 16384 /* InUse */ ? directClone(input) : input;\n}\n\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\nvar xmlNS = 'http://www.w3.org/XML/1998/namespace';\nvar namespaces = {\n 'xlink:actuate': xlinkNS,\n 'xlink:arcrole': xlinkNS,\n 'xlink:href': xlinkNS,\n 'xlink:role': xlinkNS,\n 'xlink:show': xlinkNS,\n 'xlink:title': xlinkNS,\n 'xlink:type': xlinkNS,\n 'xml:base': xmlNS,\n 'xml:lang': xmlNS,\n 'xml:space': xmlNS\n};\n\nfunction getDelegatedEventObject(v) {\n return {\n onClick: v,\n onDblClick: v,\n onFocusIn: v,\n onFocusOut: v,\n onKeyDown: v,\n onKeyPress: v,\n onKeyUp: v,\n onMouseDown: v,\n onMouseMove: v,\n onMouseUp: v,\n onTouchEnd: v,\n onTouchMove: v,\n onTouchStart: v\n };\n}\nvar attachedEventCounts = getDelegatedEventObject(0);\nvar attachedEvents = getDelegatedEventObject(null);\nvar syntheticEvents = getDelegatedEventObject(true);\nfunction updateOrAddSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (!eventsObject) {\n eventsObject = dom.$EV = getDelegatedEventObject(null);\n }\n if (!eventsObject[name]) {\n if (++attachedEventCounts[name] === 1) {\n attachedEvents[name] = attachEventToDocument(name);\n }\n }\n return eventsObject;\n}\nfunction unmountSyntheticEvent(name, dom) {\n var eventsObject = dom.$EV;\n if (eventsObject && eventsObject[name]) {\n if (--attachedEventCounts[name] === 0) {\n document.removeEventListener(normalizeEventName(name), attachedEvents[name]);\n attachedEvents[name] = null;\n }\n eventsObject[name] = null;\n }\n}\nfunction handleSyntheticEvent(name, lastEvent, nextEvent, dom) {\n if (isFunction(nextEvent)) {\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else if (isLinkEventObject(nextEvent)) {\n if (isLastValueSameLinkEvent(lastEvent, nextEvent)) {\n return;\n }\n updateOrAddSyntheticEvent(name, dom)[name] = nextEvent;\n }\n else {\n unmountSyntheticEvent(name, dom);\n }\n}\n// When browsers fully support event.composedPath we could loop it through instead of using parentNode property\nfunction getTargetNode(event) {\n return isFunction(event.composedPath) ? event.composedPath()[0] : event.target;\n}\nfunction dispatchEvents(event, isClick, name, eventData) {\n var dom = getTargetNode(event);\n do {\n // Html Nodes can be nested fe: span inside button in that scenario browser does not handle disabled attribute on parent,\n // because the event listener is on document.body\n // Don't process clicks on disabled elements\n if (isClick && dom.disabled) {\n return;\n }\n var eventsObject = dom.$EV;\n if (eventsObject) {\n var currentEvent = eventsObject[name];\n if (currentEvent) {\n // linkEvent object\n eventData.dom = dom;\n currentEvent.event ? currentEvent.event(currentEvent.data, event) : currentEvent(event);\n if (event.cancelBubble) {\n return;\n }\n }\n }\n dom = dom.parentNode;\n } while (!isNull(dom));\n}\nfunction stopPropagation() {\n this.cancelBubble = true;\n if (!this.immediatePropagationStopped) {\n this.stopImmediatePropagation();\n }\n}\nfunction isDefaultPrevented() {\n return this.defaultPrevented;\n}\nfunction isPropagationStopped() {\n return this.cancelBubble;\n}\nfunction extendEventProperties(event) {\n // Event data needs to be object to save reference to currentTarget getter\n var eventData = {\n dom: document\n };\n event.isDefaultPrevented = isDefaultPrevented;\n event.isPropagationStopped = isPropagationStopped;\n event.stopPropagation = stopPropagation;\n Object.defineProperty(event, 'currentTarget', {\n configurable: true,\n get: function get() {\n return eventData.dom;\n }\n });\n return eventData;\n}\nfunction rootClickEvent(name) {\n return function (event) {\n if (event.button !== 0) {\n // Firefox incorrectly triggers click event for mid/right mouse buttons.\n // This bug has been active for 17 years.\n // https://bugzilla.mozilla.org/show_bug.cgi?id=184051\n event.stopPropagation();\n return;\n }\n dispatchEvents(event, true, name, extendEventProperties(event));\n };\n}\nfunction rootEvent(name) {\n return function (event) {\n dispatchEvents(event, false, name, extendEventProperties(event));\n };\n}\nfunction attachEventToDocument(name) {\n var attachedEvent = name === 'onClick' || name === 'onDblClick' ? rootClickEvent(name) : rootEvent(name);\n document.addEventListener(normalizeEventName(name), attachedEvent);\n return attachedEvent;\n}\n\nfunction isSameInnerHTML(dom, innerHTML) {\n var tempdom = document.createElement('i');\n tempdom.innerHTML = innerHTML;\n return tempdom.innerHTML === dom.innerHTML;\n}\n\nfunction triggerEventListener(props, methodName, e) {\n if (props[methodName]) {\n var listener = props[methodName];\n if (listener.event) {\n listener.event(listener.data, e);\n }\n else {\n listener(e);\n }\n }\n else {\n var nativeListenerName = methodName.toLowerCase();\n if (props[nativeListenerName]) {\n props[nativeListenerName](e);\n }\n }\n}\nfunction createWrappedFunction(methodName, applyValue) {\n var fnMethod = function (e) {\n var vNode = this.$V;\n // If vNode is gone by the time event fires, no-op\n if (!vNode) {\n return;\n }\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n if (isString(methodName)) {\n triggerEventListener(props, methodName, e);\n }\n else {\n for (var i = 0; i < methodName.length; ++i) {\n triggerEventListener(props, methodName[i], e);\n }\n }\n if (isFunction(applyValue)) {\n var newVNode = this.$V;\n var newProps = newVNode.props || EMPTY_OBJ;\n applyValue(newProps, dom, false, newVNode);\n }\n };\n Object.defineProperty(fnMethod, 'wrapped', {\n configurable: false,\n enumerable: false,\n value: true,\n writable: false\n });\n return fnMethod;\n}\n\nfunction attachEvent(dom, eventName, handler) {\n var previousKey = \"$\" + eventName;\n var previousArgs = dom[previousKey];\n if (previousArgs) {\n if (previousArgs[1].wrapped) {\n return;\n }\n dom.removeEventListener(previousArgs[0], previousArgs[1]);\n dom[previousKey] = null;\n }\n if (isFunction(handler)) {\n dom.addEventListener(eventName, handler);\n dom[previousKey] = [eventName, handler];\n }\n}\n\nfunction isCheckedType(type) {\n return type === 'checkbox' || type === 'radio';\n}\nvar onTextInputChange = createWrappedFunction('onInput', applyValueInput);\nvar wrappedOnChange = createWrappedFunction(['onClick', 'onChange'], applyValueInput);\n/* tslint:disable-next-line:no-empty */\nfunction emptywrapper(event) {\n event.stopPropagation();\n}\nemptywrapper.wrapped = true;\nfunction inputEvents(dom, nextPropsOrEmpty) {\n if (isCheckedType(nextPropsOrEmpty.type)) {\n attachEvent(dom, 'change', wrappedOnChange);\n attachEvent(dom, 'click', emptywrapper);\n }\n else {\n attachEvent(dom, 'input', onTextInputChange);\n }\n}\nfunction applyValueInput(nextPropsOrEmpty, dom) {\n var type = nextPropsOrEmpty.type;\n var value = nextPropsOrEmpty.value;\n var checked = nextPropsOrEmpty.checked;\n var multiple = nextPropsOrEmpty.multiple;\n var defaultValue = nextPropsOrEmpty.defaultValue;\n var hasValue = !isNullOrUndef(value);\n if (type && type !== dom.type) {\n dom.setAttribute('type', type);\n }\n if (!isNullOrUndef(multiple) && multiple !== dom.multiple) {\n dom.multiple = multiple;\n }\n if (!isNullOrUndef(defaultValue) && !hasValue) {\n dom.defaultValue = defaultValue + '';\n }\n if (isCheckedType(type)) {\n if (hasValue) {\n dom.value = value;\n }\n if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n else {\n if (hasValue && dom.value !== value) {\n dom.defaultValue = value;\n dom.value = value;\n }\n else if (!isNullOrUndef(checked)) {\n dom.checked = checked;\n }\n }\n}\n\nfunction updateChildOptions(vNode, value) {\n if (vNode.type === 'option') {\n updateChildOption(vNode, value);\n }\n else {\n var children = vNode.children;\n var flags = vNode.flags;\n if (flags & 4 /* ComponentClass */) {\n updateChildOptions(children.$LI, value);\n }\n else if (flags & 8 /* ComponentFunction */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags === 2 /* HasVNodeChildren */) {\n updateChildOptions(children, value);\n }\n else if (vNode.childFlags & 12 /* MultipleChildren */) {\n for (var i = 0, len = children.length; i < len; ++i) {\n updateChildOptions(children[i], value);\n }\n }\n }\n}\nfunction updateChildOption(vNode, value) {\n var props = vNode.props || EMPTY_OBJ;\n var dom = vNode.dom;\n // we do this as multiple may have changed\n dom.value = props.value;\n if (props.value === value || (isArray(value) && value.indexOf(props.value) !== -1)) {\n dom.selected = true;\n }\n else if (!isNullOrUndef(value) || !isNullOrUndef(props.selected)) {\n dom.selected = props.selected || false;\n }\n}\nvar onSelectChange = createWrappedFunction('onChange', applyValueSelect);\nfunction selectEvents(dom) {\n attachEvent(dom, 'change', onSelectChange);\n}\nfunction applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode) {\n var multiplePropInBoolean = Boolean(nextPropsOrEmpty.multiple);\n if (!isNullOrUndef(nextPropsOrEmpty.multiple) && multiplePropInBoolean !== dom.multiple) {\n dom.multiple = multiplePropInBoolean;\n }\n var index = nextPropsOrEmpty.selectedIndex;\n if (index === -1) {\n dom.selectedIndex = -1;\n }\n var childFlags = vNode.childFlags;\n if (childFlags !== 1 /* HasInvalidChildren */) {\n var value = nextPropsOrEmpty.value;\n if (isNumber(index) && index > -1 && dom.options[index]) {\n value = dom.options[index].value;\n }\n if (mounting && isNullOrUndef(value)) {\n value = nextPropsOrEmpty.defaultValue;\n }\n updateChildOptions(vNode, value);\n }\n}\n\nvar onTextareaInputChange = createWrappedFunction('onInput', applyValueTextArea);\nvar wrappedOnChange$1 = createWrappedFunction('onChange');\nfunction textAreaEvents(dom, nextPropsOrEmpty) {\n attachEvent(dom, 'input', onTextareaInputChange);\n if (nextPropsOrEmpty.onChange) {\n attachEvent(dom, 'change', wrappedOnChange$1);\n }\n}\nfunction applyValueTextArea(nextPropsOrEmpty, dom, mounting) {\n var value = nextPropsOrEmpty.value;\n var domValue = dom.value;\n if (isNullOrUndef(value)) {\n if (mounting) {\n var defaultValue = nextPropsOrEmpty.defaultValue;\n if (!isNullOrUndef(defaultValue) && defaultValue !== domValue) {\n dom.defaultValue = defaultValue;\n dom.value = defaultValue;\n }\n }\n }\n else if (domValue !== value) {\n /* There is value so keep it controlled */\n dom.defaultValue = value;\n dom.value = value;\n }\n}\n\nfunction processElement(flags, vNode, dom, nextPropsOrEmpty, mounting, isControlled) {\n if (flags & 64 /* InputElement */) {\n applyValueInput(nextPropsOrEmpty, dom);\n }\n else if (flags & 256 /* SelectElement */) {\n applyValueSelect(nextPropsOrEmpty, dom, mounting, vNode);\n }\n else if (flags & 128 /* TextareaElement */) {\n applyValueTextArea(nextPropsOrEmpty, dom, mounting);\n }\n if (isControlled) {\n dom.$V = vNode;\n }\n}\nfunction addFormElementEventHandlers(flags, dom, nextPropsOrEmpty) {\n if (flags & 64 /* InputElement */) {\n inputEvents(dom, nextPropsOrEmpty);\n }\n else if (flags & 256 /* SelectElement */) {\n selectEvents(dom);\n }\n else if (flags & 128 /* TextareaElement */) {\n textAreaEvents(dom, nextPropsOrEmpty);\n }\n}\nfunction isControlledFormElement(nextPropsOrEmpty) {\n return nextPropsOrEmpty.type && isCheckedType(nextPropsOrEmpty.type) ? !isNullOrUndef(nextPropsOrEmpty.checked) : !isNullOrUndef(nextPropsOrEmpty.value);\n}\n\nfunction createRef() {\n return {\n current: null\n };\n}\nfunction forwardRef(render) {\n // @ts-ignore\n return {\n render: render\n };\n}\nfunction unmountRef(ref) {\n if (ref) {\n if (!safeCall1(ref, null) && ref.current) {\n ref.current = null;\n }\n }\n}\nfunction mountRef(ref, value, lifecycle) {\n if (ref && (isFunction(ref) || ref.current !== void 0)) {\n lifecycle.push(function () {\n if (!safeCall1(ref, value) && ref.current !== void 0) {\n ref.current = value;\n }\n });\n }\n}\n\nfunction remove(vNode, parentDOM) {\n unmount(vNode);\n removeVNodeDOM(vNode, parentDOM);\n}\nfunction unmount(vNode) {\n var flags = vNode.flags;\n var children = vNode.children;\n var ref;\n if (flags & 481 /* Element */) {\n ref = vNode.ref;\n var props = vNode.props;\n unmountRef(ref);\n var childFlags = vNode.childFlags;\n if (!isNull(props)) {\n var keys = Object.keys(props);\n for (var i = 0, len = keys.length; i < len; i++) {\n var key = keys[i];\n if (syntheticEvents[key]) {\n unmountSyntheticEvent(key, vNode.dom);\n }\n }\n }\n if (childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n else if (childFlags === 2 /* HasVNodeChildren */) {\n unmount(children);\n }\n }\n else if (children) {\n if (flags & 4 /* ComponentClass */) {\n if (isFunction(children.componentWillUnmount)) {\n children.componentWillUnmount();\n }\n unmountRef(vNode.ref);\n children.$UN = true;\n unmount(children.$LI);\n }\n else if (flags & 8 /* ComponentFunction */) {\n ref = vNode.ref;\n if (!isNullOrUndef(ref) && isFunction(ref.onComponentWillUnmount)) {\n ref.onComponentWillUnmount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n }\n unmount(children);\n }\n else if (flags & 1024 /* Portal */) {\n remove(children, vNode.ref);\n }\n else if (flags & 8192 /* Fragment */) {\n if (vNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(children);\n }\n }\n }\n}\nfunction unmountAllChildren(children) {\n for (var i = 0, len = children.length; i < len; ++i) {\n unmount(children[i]);\n }\n}\nfunction clearDOM(dom) {\n // Optimization for clearing dom\n dom.textContent = '';\n}\nfunction removeAllChildren(dom, vNode, children) {\n unmountAllChildren(children);\n if (vNode.flags & 8192 /* Fragment */) {\n removeVNodeDOM(vNode, dom);\n }\n else {\n clearDOM(dom);\n }\n}\n\nfunction wrapLinkEvent(nextValue) {\n // This variable makes sure there is no \"this\" context in callback\n var ev = nextValue.event;\n return function (e) {\n ev(nextValue.data, e);\n };\n}\nfunction patchEvent(name, lastValue, nextValue, dom) {\n if (isLinkEventObject(nextValue)) {\n if (isLastValueSameLinkEvent(lastValue, nextValue)) {\n return;\n }\n nextValue = wrapLinkEvent(nextValue);\n }\n attachEvent(dom, normalizeEventName(name), nextValue);\n}\n// We are assuming here that we come from patchProp routine\n// -nextAttrValue cannot be null or undefined\nfunction patchStyle(lastAttrValue, nextAttrValue, dom) {\n if (isNullOrUndef(nextAttrValue)) {\n dom.removeAttribute('style');\n return;\n }\n var domStyle = dom.style;\n var style;\n var value;\n if (isString(nextAttrValue)) {\n domStyle.cssText = nextAttrValue;\n return;\n }\n if (!isNullOrUndef(lastAttrValue) && !isString(lastAttrValue)) {\n for (style in nextAttrValue) {\n // do not add a hasOwnProperty check here, it affects performance\n value = nextAttrValue[style];\n if (value !== lastAttrValue[style]) {\n domStyle.setProperty(style, value);\n }\n }\n for (style in lastAttrValue) {\n if (isNullOrUndef(nextAttrValue[style])) {\n domStyle.removeProperty(style);\n }\n }\n }\n else {\n for (style in nextAttrValue) {\n value = nextAttrValue[style];\n domStyle.setProperty(style, value);\n }\n }\n}\nfunction patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom) {\n var lastHtml = (lastValue && lastValue.__html) || '';\n var nextHtml = (nextValue && nextValue.__html) || '';\n if (lastHtml !== nextHtml) {\n if (!isNullOrUndef(nextHtml) && !isSameInnerHTML(dom, nextHtml)) {\n if (!isNull(lastVNode)) {\n if (lastVNode.childFlags & 12 /* MultipleChildren */) {\n unmountAllChildren(lastVNode.children);\n }\n else if (lastVNode.childFlags === 2 /* HasVNodeChildren */) {\n unmount(lastVNode.children);\n }\n lastVNode.children = null;\n lastVNode.childFlags = 1 /* HasInvalidChildren */;\n }\n dom.innerHTML = nextHtml;\n }\n }\n}\nfunction patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode) {\n switch (prop) {\n case 'children':\n case 'childrenType':\n case 'className':\n case 'defaultValue':\n case 'key':\n case 'multiple':\n case 'ref':\n case 'selectedIndex':\n break;\n case 'autoFocus':\n dom.autofocus = !!nextValue;\n break;\n case 'allowfullscreen':\n case 'autoplay':\n case 'capture':\n case 'checked':\n case 'controls':\n case 'default':\n case 'disabled':\n case 'hidden':\n case 'indeterminate':\n case 'loop':\n case 'muted':\n case 'novalidate':\n case 'open':\n case 'readOnly':\n case 'required':\n case 'reversed':\n case 'scoped':\n case 'seamless':\n case 'selected':\n dom[prop] = !!nextValue;\n break;\n case 'defaultChecked':\n case 'value':\n case 'volume':\n if (hasControlledValue && prop === 'value') {\n break;\n }\n var value = isNullOrUndef(nextValue) ? '' : nextValue;\n if (dom[prop] !== value) {\n dom[prop] = value;\n }\n break;\n case 'style':\n patchStyle(lastValue, nextValue, dom);\n break;\n case 'dangerouslySetInnerHTML':\n patchDangerInnerHTML(lastValue, nextValue, lastVNode, dom);\n break;\n default:\n if (syntheticEvents[prop]) {\n handleSyntheticEvent(prop, lastValue, nextValue, dom);\n }\n else if (prop.charCodeAt(0) === 111 && prop.charCodeAt(1) === 110) {\n patchEvent(prop, lastValue, nextValue, dom);\n }\n else if (isNullOrUndef(nextValue)) {\n dom.removeAttribute(prop);\n }\n else if (isSVG && namespaces[prop]) {\n // We optimize for isSVG being false\n // If we end up in this path we can read property again\n dom.setAttributeNS(namespaces[prop], prop, nextValue);\n }\n else {\n dom.setAttribute(prop, nextValue);\n }\n break;\n }\n}\nfunction mountProps(vNode, flags, props, dom, isSVG) {\n var hasControlledValue = false;\n var isFormElement = (flags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(props);\n if (hasControlledValue) {\n addFormElementEventHandlers(flags, dom, props);\n }\n }\n for (var prop in props) {\n // do not add a hasOwnProperty check here, it affects performance\n patchProp(prop, null, props[prop], dom, isSVG, hasControlledValue, null);\n }\n if (isFormElement) {\n processElement(flags, vNode, dom, props, true, hasControlledValue);\n }\n}\n\nfunction renderNewInput(instance, props, context) {\n var nextInput = normalizeRoot(instance.render(props, instance.state, context));\n var childContext = context;\n if (isFunction(instance.getChildContext)) {\n childContext = combineFrom(context, instance.getChildContext());\n }\n instance.$CX = childContext;\n return nextInput;\n}\nfunction createClassComponentInstance(vNode, Component, props, context, isSVG, lifecycle) {\n var instance = new Component(props, context);\n var usesNewAPI = (instance.$N = Boolean(Component.getDerivedStateFromProps || instance.getSnapshotBeforeUpdate));\n instance.$SVG = isSVG;\n instance.$L = lifecycle;\n vNode.children = instance;\n instance.$BS = false;\n instance.context = context;\n if (instance.props === EMPTY_OBJ) {\n instance.props = props;\n }\n if (!usesNewAPI) {\n if (isFunction(instance.componentWillMount)) {\n instance.$BR = true;\n instance.componentWillMount();\n var pending = instance.$PS;\n if (!isNull(pending)) {\n var state = instance.state;\n if (isNull(state)) {\n instance.state = pending;\n }\n else {\n for (var key in pending) {\n state[key] = pending[key];\n }\n }\n instance.$PS = null;\n }\n instance.$BR = false;\n }\n }\n else {\n instance.state = createDerivedState(instance, props, instance.state);\n }\n instance.$LI = renderNewInput(instance, props, context);\n return instance;\n}\nfunction renderFunctionalComponent(vNode, context) {\n var props = vNode.props || EMPTY_OBJ;\n return vNode.flags & 32768 /* ForwardRef */ ? vNode.type.render(props, vNode.ref, context) : vNode.type(props, context);\n}\n\nfunction mount(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = (vNode.flags |= 16384 /* InUse */);\n if (flags & 481 /* Element */) {\n mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 4 /* ComponentClass */) {\n mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (flags & 8 /* ComponentFunction */) {\n mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle);\n mountFunctionalComponentCallbacks(vNode, lifecycle);\n }\n else if (flags & 512 /* Void */ || flags & 16 /* Text */) {\n mountText(vNode, parentDOM, nextNode);\n }\n else if (flags & 8192 /* Fragment */) {\n mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle);\n }\n else if (flags & 1024 /* Portal */) {\n mountPortal(vNode, context, parentDOM, nextNode, lifecycle);\n }\n else ;\n}\nfunction mountPortal(vNode, context, parentDOM, nextNode, lifecycle) {\n mount(vNode.children, vNode.ref, context, false, null, lifecycle);\n var placeHolderVNode = createVoidVNode();\n mountText(placeHolderVNode, parentDOM, nextNode);\n vNode.dom = placeHolderVNode.dom;\n}\nfunction mountFragment(vNode, context, parentDOM, isSVG, nextNode, lifecycle) {\n var children = vNode.children;\n var childFlags = vNode.childFlags;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (childFlags & 12 /* MultipleChildren */ && children.length === 0) {\n childFlags = vNode.childFlags = 2 /* HasVNodeChildren */;\n children = vNode.children = createVoidVNode();\n }\n if (childFlags === 2 /* HasVNodeChildren */) {\n mount(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else {\n mountArrayChildren(children, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountText(vNode, parentDOM, nextNode) {\n var dom = (vNode.dom = document.createTextNode(vNode.children));\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n}\nfunction mountElement(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var flags = vNode.flags;\n var props = vNode.props;\n var className = vNode.className;\n var childFlags = vNode.childFlags;\n var dom = (vNode.dom = documentCreateElement(vNode.type, (isSVG = isSVG || (flags & 32 /* SvgElement */) > 0)));\n var children = vNode.children;\n if (!isNullOrUndef(className) && className !== '') {\n if (isSVG) {\n dom.setAttribute('class', className);\n }\n else {\n dom.className = className;\n }\n }\n if (childFlags === 16 /* HasTextChildren */) {\n setTextContent(dom, children);\n }\n else if (childFlags !== 1 /* HasInvalidChildren */) {\n var childrenIsSVG = isSVG && vNode.type !== 'foreignObject';\n if (childFlags === 2 /* HasVNodeChildren */) {\n if (children.flags & 16384 /* InUse */) {\n vNode.children = children = directClone(children);\n }\n mount(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n else if (childFlags === 8 /* HasKeyedChildren */ || childFlags === 4 /* HasNonKeyedChildren */) {\n mountArrayChildren(children, dom, context, childrenIsSVG, null, lifecycle);\n }\n }\n if (!isNull(parentDOM)) {\n insertOrAppend(parentDOM, dom, nextNode);\n }\n if (!isNull(props)) {\n mountProps(vNode, flags, props, dom, isSVG);\n }\n mountRef(vNode.ref, dom, lifecycle);\n}\nfunction mountArrayChildren(children, dom, context, isSVG, nextNode, lifecycle) {\n for (var i = 0; i < children.length; ++i) {\n var child = children[i];\n if (child.flags & 16384 /* InUse */) {\n children[i] = child = directClone(child);\n }\n mount(child, dom, context, isSVG, nextNode, lifecycle);\n }\n}\nfunction mountClassComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = createClassComponentInstance(vNode, vNode.type, vNode.props || EMPTY_OBJ, context, isSVG, lifecycle);\n mount(instance.$LI, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n mountClassComponentCallbacks(vNode.ref, instance, lifecycle);\n}\nfunction mountFunctionalComponent(vNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n mount((vNode.children = normalizeRoot(renderFunctionalComponent(vNode, context))), parentDOM, context, isSVG, nextNode, lifecycle);\n}\nfunction createClassMountCallback(instance) {\n return function () {\n instance.componentDidMount();\n };\n}\nfunction mountClassComponentCallbacks(ref, instance, lifecycle) {\n mountRef(ref, instance, lifecycle);\n if (isFunction(instance.componentDidMount)) {\n lifecycle.push(createClassMountCallback(instance));\n }\n}\nfunction createOnMountCallback(ref, vNode) {\n return function () {\n ref.onComponentDidMount(findDOMfromVNode(vNode, true), vNode.props || EMPTY_OBJ);\n };\n}\nfunction mountFunctionalComponentCallbacks(vNode, lifecycle) {\n var ref = vNode.ref;\n if (!isNullOrUndef(ref)) {\n safeCall1(ref.onComponentWillMount, vNode.props || EMPTY_OBJ);\n if (isFunction(ref.onComponentDidMount)) {\n lifecycle.push(createOnMountCallback(ref, vNode));\n }\n }\n}\n\nfunction replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n unmount(lastVNode);\n if ((nextVNode.flags & lastVNode.flags & 2033 /* DOMRef */) !== 0) {\n mount(nextVNode, null, context, isSVG, null, lifecycle);\n // Single DOM operation, when we have dom references available\n replaceChild(parentDOM, nextVNode.dom, lastVNode.dom);\n }\n else {\n mount(nextVNode, parentDOM, context, isSVG, findDOMfromVNode(lastVNode, true), lifecycle);\n removeVNodeDOM(lastVNode, parentDOM);\n }\n}\nfunction patch(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var nextFlags = (nextVNode.flags |= 16384 /* InUse */);\n if (lastVNode.flags !== nextFlags || lastVNode.type !== nextVNode.type || lastVNode.key !== nextVNode.key || nextFlags & 2048 /* ReCreate */) {\n if (lastVNode.flags & 16384 /* InUse */) {\n replaceWithNewNode(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n // Last vNode is not in use, it has crashed at application level. Just mount nextVNode and ignore last one\n mount(nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextFlags & 481 /* Element */) {\n patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle);\n }\n else if (nextFlags & 4 /* ComponentClass */) {\n patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 8 /* ComponentFunction */) {\n patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n else if (nextFlags & 16 /* Text */) {\n patchText(lastVNode, nextVNode);\n }\n else if (nextFlags & 512 /* Void */) {\n nextVNode.dom = lastVNode.dom;\n }\n else if (nextFlags & 8192 /* Fragment */) {\n patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle);\n }\n else {\n patchPortal(lastVNode, nextVNode, context, lifecycle);\n }\n}\nfunction patchSingleTextChild(lastChildren, nextChildren, parentDOM) {\n if (lastChildren !== nextChildren) {\n if (lastChildren !== '') {\n parentDOM.firstChild.nodeValue = nextChildren;\n }\n else {\n setTextContent(parentDOM, nextChildren);\n }\n }\n}\nfunction patchContentEditableChildren(dom, nextChildren) {\n if (dom.textContent !== nextChildren) {\n dom.textContent = nextChildren;\n }\n}\nfunction patchFragment(lastVNode, nextVNode, parentDOM, context, isSVG, lifecycle) {\n var lastChildren = lastVNode.children;\n var nextChildren = nextVNode.children;\n var lastChildFlags = lastVNode.childFlags;\n var nextChildFlags = nextVNode.childFlags;\n var nextNode = null;\n // When fragment is optimized for multiple children, check if there is no children and change flag to invalid\n // This is the only normalization always done, to keep optimization flags API same for fragments and regular elements\n if (nextChildFlags & 12 /* MultipleChildren */ && nextChildren.length === 0) {\n nextChildFlags = nextVNode.childFlags = 2 /* HasVNodeChildren */;\n nextChildren = nextVNode.children = createVoidVNode();\n }\n var nextIsSingle = (nextChildFlags & 2 /* HasVNodeChildren */) !== 0;\n if (lastChildFlags & 12 /* MultipleChildren */) {\n var lastLen = lastChildren.length;\n // We need to know Fragment's edge node when\n if (\n // It uses keyed algorithm\n (lastChildFlags & 8 /* HasKeyedChildren */ && nextChildFlags & 8 /* HasKeyedChildren */) ||\n // It transforms from many to single\n nextIsSingle ||\n // It will append more nodes\n (!nextIsSingle && nextChildren.length > lastLen)) {\n // When fragment has multiple children there is always at least one vNode\n nextNode = findDOMfromVNode(lastChildren[lastLen - 1], false).nextSibling;\n }\n }\n patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lastVNode, lifecycle);\n}\nfunction patchPortal(lastVNode, nextVNode, context, lifecycle) {\n var lastContainer = lastVNode.ref;\n var nextContainer = nextVNode.ref;\n var nextChildren = nextVNode.children;\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, lastContainer, context, false, null, lastVNode, lifecycle);\n nextVNode.dom = lastVNode.dom;\n if (lastContainer !== nextContainer && !isInvalid(nextChildren)) {\n var node = nextChildren.dom;\n removeChild(lastContainer, node);\n appendChild(nextContainer, node);\n }\n}\nfunction patchElement(lastVNode, nextVNode, context, isSVG, nextFlags, lifecycle) {\n var dom = (nextVNode.dom = lastVNode.dom);\n var lastProps = lastVNode.props;\n var nextProps = nextVNode.props;\n var isFormElement = false;\n var hasControlledValue = false;\n var nextPropsOrEmpty;\n isSVG = isSVG || (nextFlags & 32 /* SvgElement */) > 0;\n // inlined patchProps -- starts --\n if (lastProps !== nextProps) {\n var lastPropsOrEmpty = lastProps || EMPTY_OBJ;\n nextPropsOrEmpty = nextProps || EMPTY_OBJ;\n if (nextPropsOrEmpty !== EMPTY_OBJ) {\n isFormElement = (nextFlags & 448 /* FormElement */) > 0;\n if (isFormElement) {\n hasControlledValue = isControlledFormElement(nextPropsOrEmpty);\n }\n for (var prop in nextPropsOrEmpty) {\n var lastValue = lastPropsOrEmpty[prop];\n var nextValue = nextPropsOrEmpty[prop];\n if (lastValue !== nextValue) {\n patchProp(prop, lastValue, nextValue, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n if (lastPropsOrEmpty !== EMPTY_OBJ) {\n for (var prop$1 in lastPropsOrEmpty) {\n if (isNullOrUndef(nextPropsOrEmpty[prop$1]) && !isNullOrUndef(lastPropsOrEmpty[prop$1])) {\n patchProp(prop$1, lastPropsOrEmpty[prop$1], null, dom, isSVG, hasControlledValue, lastVNode);\n }\n }\n }\n }\n var nextChildren = nextVNode.children;\n var nextClassName = nextVNode.className;\n // inlined patchProps -- ends --\n if (lastVNode.className !== nextClassName) {\n if (isNullOrUndef(nextClassName)) {\n dom.removeAttribute('class');\n }\n else if (isSVG) {\n dom.setAttribute('class', nextClassName);\n }\n else {\n dom.className = nextClassName;\n }\n }\n if (nextFlags & 4096 /* ContentEditable */) {\n patchContentEditableChildren(dom, nextChildren);\n }\n else {\n patchChildren(lastVNode.childFlags, nextVNode.childFlags, lastVNode.children, nextChildren, dom, context, isSVG && nextVNode.type !== 'foreignObject', null, lastVNode, lifecycle);\n }\n if (isFormElement) {\n processElement(nextFlags, nextVNode, dom, nextPropsOrEmpty, false, hasControlledValue);\n }\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, dom, lifecycle);\n }\n}\nfunction replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle) {\n unmount(lastChildren);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, findDOMfromVNode(lastChildren, true), lifecycle);\n removeVNodeDOM(lastChildren, parentDOM);\n}\nfunction patchChildren(lastChildFlags, nextChildFlags, lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, parentVNode, lifecycle) {\n switch (lastChildFlags) {\n case 2 /* HasVNodeChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n patch(lastChildren, nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n remove(lastChildren, parentDOM);\n break;\n case 16 /* HasTextChildren */:\n unmount(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n replaceOneVNodeWithMultipleVNodes(lastChildren, nextChildren, parentDOM, context, isSVG, lifecycle);\n break;\n }\n break;\n case 1 /* HasInvalidChildren */:\n switch (nextChildFlags) {\n case 2 /* HasVNodeChildren */:\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n break;\n case 16 /* HasTextChildren */:\n setTextContent(parentDOM, nextChildren);\n break;\n default:\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n case 16 /* HasTextChildren */:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n patchSingleTextChild(lastChildren, nextChildren, parentDOM);\n break;\n case 2 /* HasVNodeChildren */:\n clearDOM(parentDOM);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n clearDOM(parentDOM);\n break;\n default:\n clearDOM(parentDOM);\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n }\n break;\n default:\n switch (nextChildFlags) {\n case 16 /* HasTextChildren */:\n unmountAllChildren(lastChildren);\n setTextContent(parentDOM, nextChildren);\n break;\n case 2 /* HasVNodeChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n mount(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n break;\n case 1 /* HasInvalidChildren */:\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n break;\n default:\n var lastLength = lastChildren.length | 0;\n var nextLength = nextChildren.length | 0;\n // Fast path's for both algorithms\n if (lastLength === 0) {\n if (nextLength > 0) {\n mountArrayChildren(nextChildren, parentDOM, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (nextLength === 0) {\n removeAllChildren(parentDOM, parentVNode, lastChildren);\n }\n else if (nextChildFlags === 8 /* HasKeyedChildren */ && lastChildFlags === 8 /* HasKeyedChildren */) {\n patchKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, parentVNode, lifecycle);\n }\n else {\n patchNonKeyedChildren(lastChildren, nextChildren, parentDOM, context, isSVG, lastLength, nextLength, nextNode, lifecycle);\n }\n break;\n }\n break;\n }\n}\nfunction createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle) {\n lifecycle.push(function () {\n instance.componentDidUpdate(lastProps, lastState, snapshot);\n });\n}\nfunction updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, force, nextNode, lifecycle) {\n var lastState = instance.state;\n var lastProps = instance.props;\n var usesNewAPI = Boolean(instance.$N);\n var hasSCU = isFunction(instance.shouldComponentUpdate);\n if (usesNewAPI) {\n nextState = createDerivedState(instance, nextProps, nextState !== lastState ? combineFrom(lastState, nextState) : nextState);\n }\n if (force || !hasSCU || (hasSCU && instance.shouldComponentUpdate(nextProps, nextState, context))) {\n if (!usesNewAPI && isFunction(instance.componentWillUpdate)) {\n instance.componentWillUpdate(nextProps, nextState, context);\n }\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n var snapshot = null;\n var nextInput = renderNewInput(instance, nextProps, context);\n if (usesNewAPI && isFunction(instance.getSnapshotBeforeUpdate)) {\n snapshot = instance.getSnapshotBeforeUpdate(lastProps, lastState);\n }\n patch(instance.$LI, nextInput, parentDOM, instance.$CX, isSVG, nextNode, lifecycle);\n // Dont update Last input, until patch has been succesfully executed\n instance.$LI = nextInput;\n if (isFunction(instance.componentDidUpdate)) {\n createDidUpdate(instance, lastProps, lastState, snapshot, lifecycle);\n }\n }\n else {\n instance.props = nextProps;\n instance.state = nextState;\n instance.context = context;\n }\n}\nfunction patchClassComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var instance = (nextVNode.children = lastVNode.children);\n // If Component has crashed, ignore it to stay functional\n if (isNull(instance)) {\n return;\n }\n instance.$L = lifecycle;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastRef = lastVNode.ref;\n var nextState = instance.state;\n if (!instance.$N) {\n if (isFunction(instance.componentWillReceiveProps)) {\n instance.$BR = true;\n instance.componentWillReceiveProps(nextProps, context);\n // If instance component was removed during its own update do nothing.\n if (instance.$UN) {\n return;\n }\n instance.$BR = false;\n }\n if (!isNull(instance.$PS)) {\n nextState = combineFrom(nextState, instance.$PS);\n instance.$PS = null;\n }\n }\n updateClassComponent(instance, nextState, nextProps, parentDOM, context, isSVG, false, nextNode, lifecycle);\n if (lastRef !== nextRef) {\n unmountRef(lastRef);\n mountRef(nextRef, instance, lifecycle);\n }\n}\nfunction patchFunctionalComponent(lastVNode, nextVNode, parentDOM, context, isSVG, nextNode, lifecycle) {\n var shouldUpdate = true;\n var nextProps = nextVNode.props || EMPTY_OBJ;\n var nextRef = nextVNode.ref;\n var lastProps = lastVNode.props;\n var nextHooksDefined = !isNullOrUndef(nextRef);\n var lastInput = lastVNode.children;\n if (nextHooksDefined && isFunction(nextRef.onComponentShouldUpdate)) {\n shouldUpdate = nextRef.onComponentShouldUpdate(lastProps, nextProps);\n }\n if (shouldUpdate !== false) {\n if (nextHooksDefined && isFunction(nextRef.onComponentWillUpdate)) {\n nextRef.onComponentWillUpdate(lastProps, nextProps);\n }\n var nextInput = normalizeRoot(renderFunctionalComponent(nextVNode, context));\n patch(lastInput, nextInput, parentDOM, context, isSVG, nextNode, lifecycle);\n nextVNode.children = nextInput;\n if (nextHooksDefined && isFunction(nextRef.onComponentDidUpdate)) {\n nextRef.onComponentDidUpdate(lastProps, nextProps);\n }\n }\n else {\n nextVNode.children = lastInput;\n }\n}\nfunction patchText(lastVNode, nextVNode) {\n var nextText = nextVNode.children;\n var dom = (nextVNode.dom = lastVNode.dom);\n if (nextText !== lastVNode.children) {\n dom.nodeValue = nextText;\n }\n}\nfunction patchNonKeyedChildren(lastChildren, nextChildren, dom, context, isSVG, lastChildrenLength, nextChildrenLength, nextNode, lifecycle) {\n var commonLength = lastChildrenLength > nextChildrenLength ? nextChildrenLength : lastChildrenLength;\n var i = 0;\n var nextChild;\n var lastChild;\n for (; i < commonLength; ++i) {\n nextChild = nextChildren[i];\n lastChild = lastChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n patch(lastChild, nextChild, dom, context, isSVG, nextNode, lifecycle);\n lastChildren[i] = nextChild;\n }\n if (lastChildrenLength < nextChildrenLength) {\n for (i = commonLength; i < nextChildrenLength; ++i) {\n nextChild = nextChildren[i];\n if (nextChild.flags & 16384 /* InUse */) {\n nextChild = nextChildren[i] = directClone(nextChild);\n }\n mount(nextChild, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n else if (lastChildrenLength > nextChildrenLength) {\n for (i = commonLength; i < lastChildrenLength; ++i) {\n remove(lastChildren[i], dom);\n }\n }\n}\nfunction patchKeyedChildren(a, b, dom, context, isSVG, aLength, bLength, outerEdge, parentVNode, lifecycle) {\n var aEnd = aLength - 1;\n var bEnd = bLength - 1;\n var j = 0;\n var aNode = a[j];\n var bNode = b[j];\n var nextPos;\n var nextNode;\n // Step 1\n // tslint:disable-next-line\n outer: {\n // Sync nodes with the same key at the beginning.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[j] = bNode;\n ++j;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[j];\n bNode = b[j];\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n // Sync nodes with the same key at the end.\n while (aNode.key === bNode.key) {\n if (bNode.flags & 16384 /* InUse */) {\n b[bEnd] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n a[aEnd] = bNode;\n aEnd--;\n bEnd--;\n if (j > aEnd || j > bEnd) {\n break outer;\n }\n aNode = a[aEnd];\n bNode = b[bEnd];\n }\n }\n if (j > aEnd) {\n if (j <= bEnd) {\n nextPos = bEnd + 1;\n nextNode = nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge;\n while (j <= bEnd) {\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n ++j;\n mount(bNode, dom, context, isSVG, nextNode, lifecycle);\n }\n }\n }\n else if (j > bEnd) {\n while (j <= aEnd) {\n remove(a[j++], dom);\n }\n }\n else {\n patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle);\n }\n}\nfunction patchKeyedChildrenComplex(a, b, context, aLength, bLength, aEnd, bEnd, j, dom, isSVG, outerEdge, parentVNode, lifecycle) {\n var aNode;\n var bNode;\n var nextPos;\n var i = 0;\n var aStart = j;\n var bStart = j;\n var aLeft = aEnd - j + 1;\n var bLeft = bEnd - j + 1;\n var sources = new Int32Array(bLeft + 1);\n // Keep track if its possible to remove whole DOM using textContent = '';\n var canRemoveWholeContent = aLeft === aLength;\n var moved = false;\n var pos = 0;\n var patched = 0;\n // When sizes are small, just loop them through\n if (bLength < 4 || (aLeft | bLeft) < 32) {\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n for (j = bStart; j <= bEnd; j++) {\n bNode = b[j];\n if (aNode.key === bNode.key) {\n sources[j - bStart] = i + 1;\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (aStart < i) {\n remove(a[aStart++], dom);\n }\n }\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n break;\n }\n }\n if (!canRemoveWholeContent && j > bEnd) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n else {\n var keyIndex = {};\n // Map keys by their index\n for (i = bStart; i <= bEnd; ++i) {\n keyIndex[b[i].key] = i;\n }\n // Try to patch same keys\n for (i = aStart; i <= aEnd; ++i) {\n aNode = a[i];\n if (patched < bLeft) {\n j = keyIndex[aNode.key];\n if (j !== void 0) {\n if (canRemoveWholeContent) {\n canRemoveWholeContent = false;\n while (i > aStart) {\n remove(a[aStart++], dom);\n }\n }\n sources[j - bStart] = i + 1;\n if (pos > j) {\n moved = true;\n }\n else {\n pos = j;\n }\n bNode = b[j];\n if (bNode.flags & 16384 /* InUse */) {\n b[j] = bNode = directClone(bNode);\n }\n patch(aNode, bNode, dom, context, isSVG, outerEdge, lifecycle);\n ++patched;\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n else if (!canRemoveWholeContent) {\n remove(aNode, dom);\n }\n }\n }\n // fast-path: if nothing patched remove all old and add all new\n if (canRemoveWholeContent) {\n removeAllChildren(dom, parentVNode, a);\n mountArrayChildren(b, dom, context, isSVG, outerEdge, lifecycle);\n }\n else if (moved) {\n var seq = lis_algorithm(sources);\n j = seq.length - 1;\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n else if (j < 0 || i !== seq[j]) {\n pos = i + bStart;\n bNode = b[pos];\n nextPos = pos + 1;\n moveVNodeDOM(bNode, dom, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge);\n }\n else {\n j--;\n }\n }\n }\n else if (patched !== bLeft) {\n // when patched count doesn't match b length we need to insert those new ones\n // loop backwards so we can use insertBefore\n for (i = bLeft - 1; i >= 0; i--) {\n if (sources[i] === 0) {\n pos = i + bStart;\n bNode = b[pos];\n if (bNode.flags & 16384 /* InUse */) {\n b[pos] = bNode = directClone(bNode);\n }\n nextPos = pos + 1;\n mount(bNode, dom, context, isSVG, nextPos < bLength ? findDOMfromVNode(b[nextPos], true) : outerEdge, lifecycle);\n }\n }\n }\n}\nvar result;\nvar p;\nvar maxLen = 0;\n// https://en.wikipedia.org/wiki/Longest_increasing_subsequence\nfunction lis_algorithm(arr) {\n var arrI = 0;\n var i = 0;\n var j = 0;\n var k = 0;\n var u = 0;\n var v = 0;\n var c = 0;\n var len = arr.length;\n if (len > maxLen) {\n maxLen = len;\n result = new Int32Array(len);\n p = new Int32Array(len);\n }\n for (; i < len; ++i) {\n arrI = arr[i];\n if (arrI !== 0) {\n j = result[k];\n if (arr[j] < arrI) {\n p[i] = j;\n result[++k] = i;\n continue;\n }\n u = 0;\n v = k;\n while (u < v) {\n c = (u + v) >> 1;\n if (arr[result[c]] < arrI) {\n u = c + 1;\n }\n else {\n v = c;\n }\n }\n if (arrI < arr[result[u]]) {\n if (u > 0) {\n p[i] = result[u - 1];\n }\n result[u] = i;\n }\n }\n }\n u = k + 1;\n var seq = new Int32Array(u);\n v = result[u - 1];\n while (u-- > 0) {\n seq[u] = v;\n v = p[v];\n result[u] = 0;\n }\n return seq;\n}\n\nvar hasDocumentAvailable = typeof document !== 'undefined';\nif (hasDocumentAvailable) {\n /*\n * Defining $EV and $V properties on Node.prototype\n * fixes v8 \"wrong map\" de-optimization\n */\n if (window.Node) {\n Node.prototype.$EV = null;\n Node.prototype.$V = null;\n }\n}\nfunction __render(input, parentDOM, callback, context) {\n var lifecycle = [];\n var rootInput = parentDOM.$V;\n renderCheck.v = true;\n if (isNullOrUndef(rootInput)) {\n if (!isNullOrUndef(input)) {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n mount(input, parentDOM, context, false, null, lifecycle);\n parentDOM.$V = input;\n rootInput = input;\n }\n }\n else {\n if (isNullOrUndef(input)) {\n remove(rootInput, parentDOM);\n parentDOM.$V = null;\n }\n else {\n if (input.flags & 16384 /* InUse */) {\n input = directClone(input);\n }\n patch(rootInput, input, parentDOM, context, false, null, lifecycle);\n rootInput = parentDOM.$V = input;\n }\n }\n callAll(lifecycle);\n renderCheck.v = false;\n if (isFunction(callback)) {\n callback();\n }\n if (isFunction(options.renderComplete)) {\n options.renderComplete(rootInput, parentDOM);\n }\n}\nfunction render(input, parentDOM, callback, context) {\n if ( callback === void 0 ) callback = null;\n if ( context === void 0 ) context = EMPTY_OBJ;\n\n __render(input, parentDOM, callback, context);\n}\nfunction createRenderer(parentDOM) {\n return function renderer(lastInput, nextInput, callback, context) {\n if (!parentDOM) {\n parentDOM = lastInput;\n }\n render(nextInput, parentDOM, callback, context);\n };\n}\n\nvar QUEUE = [];\nvar nextTick = typeof Promise !== 'undefined'\n ? Promise.resolve().then.bind(Promise.resolve())\n : function (a) {\n window.setTimeout(a, 0);\n };\nvar microTaskPending = false;\nfunction queueStateChanges(component, newState, callback, force) {\n var pending = component.$PS;\n if (isFunction(newState)) {\n newState = newState(pending ? combineFrom(component.state, pending) : component.state, component.props, component.context);\n }\n if (isNullOrUndef(pending)) {\n component.$PS = newState;\n }\n else {\n for (var stateKey in newState) {\n pending[stateKey] = newState[stateKey];\n }\n }\n if (!component.$BR) {\n if (!renderCheck.v) {\n if (QUEUE.length === 0) {\n applyState(component, force);\n if (isFunction(callback)) {\n callback.call(component);\n }\n return;\n }\n }\n if (QUEUE.indexOf(component) === -1) {\n QUEUE.push(component);\n }\n if (force) {\n component.$F = true;\n }\n if (!microTaskPending) {\n microTaskPending = true;\n nextTick(rerender);\n }\n if (isFunction(callback)) {\n var QU = component.$QU;\n if (!QU) {\n QU = component.$QU = [];\n }\n QU.push(callback);\n }\n }\n else if (isFunction(callback)) {\n component.$L.push(callback.bind(component));\n }\n}\nfunction callSetStateCallbacks(component) {\n var queue = component.$QU;\n for (var i = 0; i < queue.length; ++i) {\n queue[i].call(component);\n }\n component.$QU = null;\n}\nfunction rerender() {\n var component;\n microTaskPending = false;\n while ((component = QUEUE.shift())) {\n if (!component.$UN) {\n var force = component.$F;\n component.$F = false;\n applyState(component, force);\n if (component.$QU) {\n callSetStateCallbacks(component);\n }\n }\n }\n}\nfunction applyState(component, force) {\n if (force || !component.$BR) {\n var pendingState = component.$PS;\n component.$PS = null;\n var lifecycle = [];\n renderCheck.v = true;\n updateClassComponent(component, combineFrom(component.state, pendingState), component.props, findDOMfromVNode(component.$LI, true).parentNode, component.context, component.$SVG, force, null, lifecycle);\n callAll(lifecycle);\n renderCheck.v = false;\n }\n else {\n component.state = component.$PS;\n component.$PS = null;\n }\n}\nvar Component = function Component(props, context) {\n // Public\n this.state = null;\n // Internal properties\n this.$BR = false; // BLOCK RENDER\n this.$BS = true; // BLOCK STATE\n this.$PS = null; // PENDING STATE (PARTIAL or FULL)\n this.$LI = null; // LAST INPUT\n this.$UN = false; // UNMOUNTED\n this.$CX = null; // CHILDCONTEXT\n this.$QU = null; // QUEUE\n this.$N = false; // Uses new lifecycle API Flag\n this.$L = null; // Current lifecycle of this component\n this.$SVG = false; // Flag to keep track if component is inside SVG tree\n this.$F = false; // Force update flag\n this.props = props || EMPTY_OBJ;\n this.context = context || EMPTY_OBJ; // context should not be mutable\n};\nComponent.prototype.forceUpdate = function forceUpdate (callback) {\n if (this.$UN) {\n return;\n }\n // Do not allow double render during force update\n queueStateChanges(this, {}, callback, true);\n};\nComponent.prototype.setState = function setState (newState, callback) {\n if (this.$UN) {\n return;\n }\n if (!this.$BS) {\n queueStateChanges(this, newState, callback, false);\n }\n};\nComponent.prototype.render = function render (_nextProps, _nextState, _nextContext) {\n return null;\n};\n\nvar version = \"7.4.11\";\n\nexport { Component, EMPTY_OBJ, Fragment, createClassComponentInstance as _CI, normalizeRoot as _HI, mount as _M, mountClassComponentCallbacks as _MCCC, mountElement as _ME, mountFunctionalComponentCallbacks as _MFCC, mountProps as _MP, mountRef as _MR, renderFunctionalComponent as _RFC, __render, createComponentVNode, createFragment, createPortal, createRef, createRenderer, createTextVNode, createVNode, directClone, findDOMfromVNode, forwardRef, getFlagsForElementVnode, linkEvent, normalizeProps, options, render, rerender, version };\n","/*!\n\nJSZip v3.10.1 - A JavaScript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2016 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/main/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/main/LICENSE\n*/\n\n!function(e){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=e();else if(\"function\"==typeof define&&define.amd)define([],e);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).JSZip=e()}}(function(){return function s(a,o,h){function u(r,e){if(!o[r]){if(!a[r]){var t=\"function\"==typeof require&&require;if(!e&&t)return t(r,!0);if(l)return l(r,!0);var n=new Error(\"Cannot find module '\"+r+\"'\");throw n.code=\"MODULE_NOT_FOUND\",n}var i=o[r]={exports:{}};a[r][0].call(i.exports,function(e){var t=a[r][1][e];return u(t||e)},i,i.exports,s,a,o,h)}return o[r].exports}for(var l=\"function\"==typeof require&&require,e=0;e<h.length;e++)u(h[e]);return u}({1:[function(e,t,r){\"use strict\";var d=e(\"./utils\"),c=e(\"./support\"),p=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";r.encode=function(e){for(var t,r,n,i,s,a,o,h=[],u=0,l=e.length,f=l,c=\"string\"!==d.getTypeOf(e);u<e.length;)f=l-u,n=c?(t=e[u++],r=u<l?e[u++]:0,u<l?e[u++]:0):(t=e.charCodeAt(u++),r=u<l?e.charCodeAt(u++):0,u<l?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|r>>4,a=1<f?(15&r)<<2|n>>6:64,o=2<f?63&n:64,h.push(p.charAt(i)+p.charAt(s)+p.charAt(a)+p.charAt(o));return h.join(\"\")},r.decode=function(e){var t,r,n,i,s,a,o=0,h=0,u=\"data:\";if(e.substr(0,u.length)===u)throw new Error(\"Invalid base64 input, it looks like a data url.\");var l,f=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,\"\")).length/4;if(e.charAt(e.length-1)===p.charAt(64)&&f--,e.charAt(e.length-2)===p.charAt(64)&&f--,f%1!=0)throw new Error(\"Invalid base64 input, bad content length.\");for(l=c.uint8array?new Uint8Array(0|f):new Array(0|f);o<e.length;)t=p.indexOf(e.charAt(o++))<<2|(i=p.indexOf(e.charAt(o++)))>>4,r=(15&i)<<4|(s=p.indexOf(e.charAt(o++)))>>2,n=(3&s)<<6|(a=p.indexOf(e.charAt(o++))),l[h++]=t,64!==s&&(l[h++]=r),64!==a&&(l[h++]=n);return l}},{\"./support\":30,\"./utils\":32}],2:[function(e,t,r){\"use strict\";var n=e(\"./external\"),i=e(\"./stream/DataWorker\"),s=e(\"./stream/Crc32Probe\"),a=e(\"./stream/DataLengthProbe\");function o(e,t,r,n,i){this.compressedSize=e,this.uncompressedSize=t,this.crc32=r,this.compression=n,this.compressedContent=i}o.prototype={getContentWorker:function(){var e=new i(n.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new a(\"data_length\")),t=this;return e.on(\"end\",function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error(\"Bug : uncompressed data size mismatch\")}),e},getCompressedWorker:function(){return new i(n.Promise.resolve(this.compressedContent)).withStreamInfo(\"compressedSize\",this.compressedSize).withStreamInfo(\"uncompressedSize\",this.uncompressedSize).withStreamInfo(\"crc32\",this.crc32).withStreamInfo(\"compression\",this.compression)}},o.createWorkerFrom=function(e,t,r){return e.pipe(new s).pipe(new a(\"uncompressedSize\")).pipe(t.compressWorker(r)).pipe(new a(\"compressedSize\")).withStreamInfo(\"compression\",t)},t.exports=o},{\"./external\":6,\"./stream/Crc32Probe\":25,\"./stream/DataLengthProbe\":26,\"./stream/DataWorker\":27}],3:[function(e,t,r){\"use strict\";var n=e(\"./stream/GenericWorker\");r.STORE={magic:\"\\0\\0\",compressWorker:function(){return new n(\"STORE compression\")},uncompressWorker:function(){return new n(\"STORE decompression\")}},r.DEFLATE=e(\"./flate\")},{\"./flate\":7,\"./stream/GenericWorker\":28}],4:[function(e,t,r){\"use strict\";var n=e(\"./utils\");var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?\"string\"!==n.getTypeOf(e)?function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}(0|t,e,e.length,0):function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t.charCodeAt(a))];return-1^e}(0|t,e,e.length,0):0}},{\"./utils\":32}],5:[function(e,t,r){\"use strict\";r.base64=!1,r.binary=!1,r.dir=!1,r.createFolders=!0,r.date=null,r.compression=null,r.compressionOptions=null,r.comment=null,r.unixPermissions=null,r.dosPermissions=null},{}],6:[function(e,t,r){\"use strict\";var n=null;n=\"undefined\"!=typeof Promise?Promise:e(\"lie\"),t.exports={Promise:n}},{lie:37}],7:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,i=e(\"pako\"),s=e(\"./utils\"),a=e(\"./stream/GenericWorker\"),o=n?\"uint8array\":\"array\";function h(e,t){a.call(this,\"FlateWorker/\"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}r.magic=\"\\b\\0\",s.inherits(h,a),h.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(s.transformTo(o,e.data),!1)},h.prototype.flush=function(){a.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},h.prototype.cleanUp=function(){a.prototype.cleanUp.call(this),this._pako=null},h.prototype._createPako=function(){this._pako=new i[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var t=this;this._pako.onData=function(e){t.push({data:e,meta:t.meta})}},r.compressWorker=function(e){return new h(\"Deflate\",e)},r.uncompressWorker=function(){return new h(\"Inflate\",{})}},{\"./stream/GenericWorker\":28,\"./utils\":32,pako:38}],8:[function(e,t,r){\"use strict\";function A(e,t){var r,n=\"\";for(r=0;r<t;r++)n+=String.fromCharCode(255&e),e>>>=8;return n}function n(e,t,r,n,i,s){var a,o,h=e.file,u=e.compression,l=s!==O.utf8encode,f=I.transformTo(\"string\",s(h.name)),c=I.transformTo(\"string\",O.utf8encode(h.name)),d=h.comment,p=I.transformTo(\"string\",s(d)),m=I.transformTo(\"string\",O.utf8encode(d)),_=c.length!==h.name.length,g=m.length!==d.length,b=\"\",v=\"\",y=\"\",w=h.dir,k=h.date,x={crc32:0,compressedSize:0,uncompressedSize:0};t&&!r||(x.crc32=e.crc32,x.compressedSize=e.compressedSize,x.uncompressedSize=e.uncompressedSize);var S=0;t&&(S|=8),l||!_&&!g||(S|=2048);var z=0,C=0;w&&(z|=16),\"UNIX\"===i?(C=798,z|=function(e,t){var r=e;return e||(r=t?16893:33204),(65535&r)<<16}(h.unixPermissions,w)):(C=20,z|=function(e){return 63&(e||0)}(h.dosPermissions)),a=k.getUTCHours(),a<<=6,a|=k.getUTCMinutes(),a<<=5,a|=k.getUTCSeconds()/2,o=k.getUTCFullYear()-1980,o<<=4,o|=k.getUTCMonth()+1,o<<=5,o|=k.getUTCDate(),_&&(v=A(1,1)+A(B(f),4)+c,b+=\"up\"+A(v.length,2)+v),g&&(y=A(1,1)+A(B(p),4)+m,b+=\"uc\"+A(y.length,2)+y);var E=\"\";return E+=\"\\n\\0\",E+=A(S,2),E+=u.magic,E+=A(a,2),E+=A(o,2),E+=A(x.crc32,4),E+=A(x.compressedSize,4),E+=A(x.uncompressedSize,4),E+=A(f.length,2),E+=A(b.length,2),{fileRecord:R.LOCAL_FILE_HEADER+E+f+b,dirRecord:R.CENTRAL_FILE_HEADER+A(C,2)+E+A(p.length,2)+\"\\0\\0\\0\\0\"+A(z,4)+A(n,4)+f+b+p}}var I=e(\"../utils\"),i=e(\"../stream/GenericWorker\"),O=e(\"../utf8\"),B=e(\"../crc32\"),R=e(\"../signature\");function s(e,t,r,n){i.call(this,\"ZipFileWorker\"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=r,this.encodeFileName=n,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}I.inherits(s,i),s.prototype.push=function(e){var t=e.meta.percent||0,r=this.entriesCount,n=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:r?(t+100*(r-n-1))/r:100}}))},s.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var r=n(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:r.fileRecord,meta:{percent:0}})}else this.accumulate=!0},s.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,r=n(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(r.dirRecord),t)this.push({data:function(e){return R.DATA_DESCRIPTOR+A(e.crc32,4)+A(e.compressedSize,4)+A(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:r.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},s.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var r=this.bytesWritten-e,n=function(e,t,r,n,i){var s=I.transformTo(\"string\",i(n));return R.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+A(e,2)+A(e,2)+A(t,4)+A(r,4)+A(s.length,2)+s}(this.dirRecords.length,r,e,this.zipComment,this.encodeFileName);this.push({data:n,meta:{percent:100}})},s.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},s.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()}),e.on(\"error\",function(e){t.error(e)}),this},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},s.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return!1;for(var r=0;r<t.length;r++)try{t[r].error(e)}catch(e){}return!0},s.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=s},{\"../crc32\":4,\"../signature\":23,\"../stream/GenericWorker\":28,\"../utf8\":31,\"../utils\":32}],9:[function(e,t,r){\"use strict\";var u=e(\"../compressions\"),n=e(\"./ZipFileWorker\");r.generateWorker=function(e,a,t){var o=new n(a.streamFiles,t,a.platform,a.encodeFileName),h=0;try{e.forEach(function(e,t){h++;var r=function(e,t){var r=e||t,n=u[r];if(!n)throw new Error(r+\" is not a valid compression method !\");return n}(t.options.compression,a.compression),n=t.options.compressionOptions||a.compressionOptions||{},i=t.dir,s=t.date;t._compressWorker(r,n).withStreamInfo(\"file\",{name:e,dir:i,date:s,comment:t.comment||\"\",unixPermissions:t.unixPermissions,dosPermissions:t.dosPermissions}).pipe(o)}),o.entriesCount=h}catch(e){o.error(e)}return o}},{\"../compressions\":3,\"./ZipFileWorker\":8}],10:[function(e,t,r){\"use strict\";function n(){if(!(this instanceof n))return new n;if(arguments.length)throw new Error(\"The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.\");this.files=Object.create(null),this.comment=null,this.root=\"\",this.clone=function(){var e=new n;for(var t in this)\"function\"!=typeof this[t]&&(e[t]=this[t]);return e}}(n.prototype=e(\"./object\")).loadAsync=e(\"./load\"),n.support=e(\"./support\"),n.defaults=e(\"./defaults\"),n.version=\"3.10.1\",n.loadAsync=function(e,t){return(new n).loadAsync(e,t)},n.external=e(\"./external\"),t.exports=n},{\"./defaults\":5,\"./external\":6,\"./load\":11,\"./object\":15,\"./support\":30}],11:[function(e,t,r){\"use strict\";var u=e(\"./utils\"),i=e(\"./external\"),n=e(\"./utf8\"),s=e(\"./zipEntries\"),a=e(\"./stream/Crc32Probe\"),l=e(\"./nodejsUtils\");function f(n){return new i.Promise(function(e,t){var r=n.decompressed.getContentWorker().pipe(new a);r.on(\"error\",function(e){t(e)}).on(\"end\",function(){r.streamInfo.crc32!==n.decompressed.crc32?t(new Error(\"Corrupted zip : CRC32 mismatch\")):e()}).resume()})}t.exports=function(e,o){var h=this;return o=u.extend(o||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:n.utf8decode}),l.isNode&&l.isStream(e)?i.Promise.reject(new Error(\"JSZip can't accept a stream when loading a zip file.\")):u.prepareContent(\"the loaded zip file\",e,!0,o.optimizedBinaryString,o.base64).then(function(e){var t=new s(o);return t.load(e),t}).then(function(e){var t=[i.Promise.resolve(e)],r=e.files;if(o.checkCRC32)for(var n=0;n<r.length;n++)t.push(f(r[n]));return i.Promise.all(t)}).then(function(e){for(var t=e.shift(),r=t.files,n=0;n<r.length;n++){var i=r[n],s=i.fileNameStr,a=u.resolve(i.fileNameStr);h.file(a,i.decompressed,{binary:!0,optimizedBinaryString:!0,date:i.date,dir:i.dir,comment:i.fileCommentStr.length?i.fileCommentStr:null,unixPermissions:i.unixPermissions,dosPermissions:i.dosPermissions,createFolders:o.createFolders}),i.dir||(h.file(a).unsafeOriginalName=s)}return t.zipComment.length&&(h.comment=t.zipComment),h})}},{\"./external\":6,\"./nodejsUtils\":14,\"./stream/Crc32Probe\":25,\"./utf8\":31,\"./utils\":32,\"./zipEntries\":33}],12:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../stream/GenericWorker\");function s(e,t){i.call(this,\"Nodejs stream input adapter for \"+e),this._upstreamEnded=!1,this._bindStream(t)}n.inherits(s,i),s.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on(\"data\",function(e){t.push({data:e,meta:{percent:0}})}).on(\"error\",function(e){t.isPaused?this.generatedError=e:t.error(e)}).on(\"end\",function(){t.isPaused?t._upstreamEnded=!0:t.end()})},s.prototype.pause=function(){return!!i.prototype.pause.call(this)&&(this._stream.pause(),!0)},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=s},{\"../stream/GenericWorker\":28,\"../utils\":32}],13:[function(e,t,r){\"use strict\";var i=e(\"readable-stream\").Readable;function n(e,t,r){i.call(this,t),this._helper=e;var n=this;e.on(\"data\",function(e,t){n.push(e)||n._helper.pause(),r&&r(t)}).on(\"error\",function(e){n.emit(\"error\",e)}).on(\"end\",function(){n.push(null)})}e(\"../utils\").inherits(n,i),n.prototype._read=function(){this._helper.resume()},t.exports=n},{\"../utils\":32,\"readable-stream\":16}],14:[function(e,t,r){\"use strict\";t.exports={isNode:\"undefined\"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if(\"number\"==typeof e)throw new Error('The \"data\" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&\"function\"==typeof e.on&&\"function\"==typeof e.pause&&\"function\"==typeof e.resume}}},{}],15:[function(e,t,r){\"use strict\";function s(e,t,r){var n,i=u.getTypeOf(t),s=u.extend(r||{},f);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),\"string\"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=g(e)),s.createFolders&&(n=_(e))&&b.call(this,n,!0);var a=\"string\"===i&&!1===s.binary&&!1===s.base64;r&&void 0!==r.binary||(s.binary=!a),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t=\"\",s.compression=\"STORE\",i=\"string\");var o=null;o=t instanceof c||t instanceof l?t:p.isNode&&p.isStream(t)?new m(e,t):u.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var h=new d(e,o,s);this.files[e]=h}var i=e(\"./utf8\"),u=e(\"./utils\"),l=e(\"./stream/GenericWorker\"),a=e(\"./stream/StreamHelper\"),f=e(\"./defaults\"),c=e(\"./compressedObject\"),d=e(\"./zipObject\"),o=e(\"./generate\"),p=e(\"./nodejsUtils\"),m=e(\"./nodejs/NodejsStreamInputAdapter\"),_=function(e){\"/\"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf(\"/\");return 0<t?e.substring(0,t):\"\"},g=function(e){return\"/\"!==e.slice(-1)&&(e+=\"/\"),e},b=function(e,t){return t=void 0!==t?t:f.createFolders,e=g(e),this.files[e]||s.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function h(e){return\"[object RegExp]\"===Object.prototype.toString.call(e)}var n={load:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},forEach:function(e){var t,r,n;for(t in this.files)n=this.files[t],(r=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(r,n)},filter:function(r){var n=[];return this.forEach(function(e,t){r(e,t)&&n.push(t)}),n},file:function(e,t,r){if(1!==arguments.length)return e=this.root+e,s.call(this,e,t,r),this;if(h(e)){var n=e;return this.filter(function(e,t){return!t.dir&&n.test(e)})}var i=this.files[this.root+e];return i&&!i.dir?i:null},folder:function(r){if(!r)return this;if(h(r))return this.filter(function(e,t){return t.dir&&r.test(e)});var e=this.root+r,t=b.call(this,e),n=this.clone();return n.root=t.name,n},remove:function(r){r=this.root+r;var e=this.files[r];if(e||(\"/\"!==r.slice(-1)&&(r+=\"/\"),e=this.files[r]),e&&!e.dir)delete this.files[r];else for(var t=this.filter(function(e,t){return t.name.slice(0,r.length)===r}),n=0;n<t.length;n++)delete this.files[t[n].name];return this},generate:function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},generateInternalStream:function(e){var t,r={};try{if((r=u.extend(e||{},{streamFiles:!1,compression:\"STORE\",compressionOptions:null,type:\"\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:i.utf8encode})).type=r.type.toLowerCase(),r.compression=r.compression.toUpperCase(),\"binarystring\"===r.type&&(r.type=\"string\"),!r.type)throw new Error(\"No output type specified.\");u.checkSupport(r.type),\"darwin\"!==r.platform&&\"freebsd\"!==r.platform&&\"linux\"!==r.platform&&\"sunos\"!==r.platform||(r.platform=\"UNIX\"),\"win32\"===r.platform&&(r.platform=\"DOS\");var n=r.comment||this.comment||\"\";t=o.generateWorker(this,r,n)}catch(e){(t=new l(\"error\")).error(e)}return new a(t,r.type||\"string\",r.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type=\"nodebuffer\"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=n},{\"./compressedObject\":2,\"./defaults\":5,\"./generate\":9,\"./nodejs/NodejsStreamInputAdapter\":12,\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31,\"./utils\":32,\"./zipObject\":35}],16:[function(e,t,r){\"use strict\";t.exports=e(\"stream\")},{stream:void 0}],17:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data[this.zero+e]},i.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.length-4;0<=s;--s)if(this.data[s]===t&&this.data[s+1]===r&&this.data[s+2]===n&&this.data[s+3]===i)return s-this.zero;return-1},i.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),r=e.charCodeAt(1),n=e.charCodeAt(2),i=e.charCodeAt(3),s=this.readData(4);return t===s[0]&&r===s[1]&&n===s[2]&&i===s[3]},i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],18:[function(e,t,r){\"use strict\";var n=e(\"../utils\");function i(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}i.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+e+\"). Corrupted zip ?\")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,r=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)r=(r<<8)+this.byteAt(t);return this.index+=e,r},readString:function(e){return n.transformTo(\"string\",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=i},{\"../utils\":32}],19:[function(e,t,r){\"use strict\";var n=e(\"./Uint8ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./Uint8ArrayReader\":21}],20:[function(e,t,r){\"use strict\";var n=e(\"./DataReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},i.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},i.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},i.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./DataReader\":18}],21:[function(e,t,r){\"use strict\";var n=e(\"./ArrayReader\");function i(e){n.call(this,e)}e(\"../utils\").inherits(i,n),i.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=i},{\"../utils\":32,\"./ArrayReader\":17}],22:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"../support\"),s=e(\"./ArrayReader\"),a=e(\"./StringReader\"),o=e(\"./NodeBufferReader\"),h=e(\"./Uint8ArrayReader\");t.exports=function(e){var t=n.getTypeOf(e);return n.checkSupport(t),\"string\"!==t||i.uint8array?\"nodebuffer\"===t?new o(e):i.uint8array?new h(n.transformTo(\"uint8array\",e)):new s(n.transformTo(\"array\",e)):new a(e)}},{\"../support\":30,\"../utils\":32,\"./ArrayReader\":17,\"./NodeBufferReader\":19,\"./StringReader\":20,\"./Uint8ArrayReader\":21}],23:[function(e,t,r){\"use strict\";r.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",r.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",r.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",r.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",r.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",r.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],24:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../utils\");function s(e){n.call(this,\"ConvertWorker to \"+e),this.destType=e}i.inherits(s,n),s.prototype.processChunk=function(e){this.push({data:i.transformTo(this.destType,e.data),meta:e.meta})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],25:[function(e,t,r){\"use strict\";var n=e(\"./GenericWorker\"),i=e(\"../crc32\");function s(){n.call(this,\"Crc32Probe\"),this.withStreamInfo(\"crc32\",0)}e(\"../utils\").inherits(s,n),s.prototype.processChunk=function(e){this.streamInfo.crc32=i(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=s},{\"../crc32\":4,\"../utils\":32,\"./GenericWorker\":28}],26:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataLengthProbe for \"+e),this.propName=e,this.withStreamInfo(e,0)}n.inherits(s,i),s.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}i.prototype.processChunk.call(this,e)},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],27:[function(e,t,r){\"use strict\";var n=e(\"../utils\"),i=e(\"./GenericWorker\");function s(e){i.call(this,\"DataWorker\");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type=\"\",this._tickScheduled=!1,e.then(function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=n.getTypeOf(e),t.isPaused||t._tickAndRepeat()},function(e){t.error(e)})}n.inherits(s,i),s.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this.data=null},s.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,n.delay(this._tickAndRepeat,[],this)),!0)},s.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(n.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},s.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case\"string\":e=this.data.substring(this.index,t);break;case\"uint8array\":e=this.data.subarray(this.index,t);break;case\"array\":case\"nodebuffer\":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=s},{\"../utils\":32,\"./GenericWorker\":28}],28:[function(e,t,r){\"use strict\";function n(e){this.name=e||\"default\",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}n.prototype={push:function(e){this.emit(\"data\",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit(\"end\"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit(\"error\",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit(\"error\",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var r=0;r<this._listeners[e].length;r++)this._listeners[e][r].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on(\"data\",function(e){t.processChunk(e)}),e.on(\"end\",function(){t.end()}),e.on(\"error\",function(e){t.error(e)}),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error(\"The stream '\"+this+\"' has already been used.\");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e=\"Worker \"+this.name;return this.previous?this.previous+\" -> \"+e:e}},t.exports=n},{}],29:[function(e,t,r){\"use strict\";var h=e(\"../utils\"),i=e(\"./ConvertWorker\"),s=e(\"./GenericWorker\"),u=e(\"../base64\"),n=e(\"../support\"),a=e(\"../external\"),o=null;if(n.nodestream)try{o=e(\"../nodejs/NodejsStreamOutputAdapter\")}catch(e){}function l(e,o){return new a.Promise(function(t,r){var n=[],i=e._internalType,s=e._outputType,a=e._mimeType;e.on(\"data\",function(e,t){n.push(e),o&&o(t)}).on(\"error\",function(e){n=[],r(e)}).on(\"end\",function(){try{var e=function(e,t,r){switch(e){case\"blob\":return h.newBlob(h.transformTo(\"arraybuffer\",t),r);case\"base64\":return u.encode(t);default:return h.transformTo(e,t)}}(s,function(e,t){var r,n=0,i=null,s=0;for(r=0;r<t.length;r++)s+=t[r].length;switch(e){case\"string\":return t.join(\"\");case\"array\":return Array.prototype.concat.apply([],t);case\"uint8array\":for(i=new Uint8Array(s),r=0;r<t.length;r++)i.set(t[r],n),n+=t[r].length;return i;case\"nodebuffer\":return Buffer.concat(t);default:throw new Error(\"concat : unsupported type '\"+e+\"'\")}}(i,n),a);t(e)}catch(e){r(e)}n=[]}).resume()})}function f(e,t,r){var n=t;switch(t){case\"blob\":case\"arraybuffer\":n=\"uint8array\";break;case\"base64\":n=\"string\"}try{this._internalType=n,this._outputType=t,this._mimeType=r,h.checkSupport(n),this._worker=e.pipe(new i(n)),e.lock()}catch(e){this._worker=new s(\"error\"),this._worker.error(e)}}f.prototype={accumulate:function(e){return l(this,e)},on:function(e,t){var r=this;return\"data\"===e?this._worker.on(e,function(e){t.call(r,e.data,e.meta)}):this._worker.on(e,function(){h.delay(t,arguments,r)}),this},resume:function(){return h.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(h.checkSupport(\"nodestream\"),\"nodebuffer\"!==this._outputType)throw new Error(this._outputType+\" is not supported by this method\");return new o(this,{objectMode:\"nodebuffer\"!==this._outputType},e)}},t.exports=f},{\"../base64\":1,\"../external\":6,\"../nodejs/NodejsStreamOutputAdapter\":13,\"../support\":30,\"../utils\":32,\"./ConvertWorker\":24,\"./GenericWorker\":28}],30:[function(e,t,r){\"use strict\";if(r.base64=!0,r.array=!0,r.string=!0,r.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,r.nodebuffer=\"undefined\"!=typeof Buffer,r.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)r.blob=!1;else{var n=new ArrayBuffer(0);try{r.blob=0===new Blob([n],{type:\"application/zip\"}).size}catch(e){try{var i=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);i.append(n),r.blob=0===i.getBlob(\"application/zip\").size}catch(e){r.blob=!1}}}try{r.nodestream=!!e(\"readable-stream\").Readable}catch(e){r.nodestream=!1}},{\"readable-stream\":16}],31:[function(e,t,s){\"use strict\";for(var o=e(\"./utils\"),h=e(\"./support\"),r=e(\"./nodejsUtils\"),n=e(\"./stream/GenericWorker\"),u=new Array(256),i=0;i<256;i++)u[i]=252<=i?6:248<=i?5:240<=i?4:224<=i?3:192<=i?2:1;u[254]=u[254]=1;function a(){n.call(this,\"utf-8 decode\"),this.leftOver=null}function l(){n.call(this,\"utf-8 encode\")}s.utf8encode=function(e){return h.nodebuffer?r.newBufferFrom(e,\"utf-8\"):function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=h.uint8array?new Uint8Array(o):new Array(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t}(e)},s.utf8decode=function(e){return h.nodebuffer?o.transformTo(\"nodebuffer\",e).toString(\"utf-8\"):function(e){var t,r,n,i,s=e.length,a=new Array(2*s);for(t=r=0;t<s;)if((n=e[t++])<128)a[r++]=n;else if(4<(i=u[n]))a[r++]=65533,t+=i-1;else{for(n&=2===i?31:3===i?15:7;1<i&&t<s;)n=n<<6|63&e[t++],i--;1<i?a[r++]=65533:n<65536?a[r++]=n:(n-=65536,a[r++]=55296|n>>10&1023,a[r++]=56320|1023&n)}return a.length!==r&&(a.subarray?a=a.subarray(0,r):a.length=r),o.applyFromCharCode(a)}(e=o.transformTo(h.uint8array?\"uint8array\":\"array\",e))},o.inherits(a,n),a.prototype.processChunk=function(e){var t=o.transformTo(h.uint8array?\"uint8array\":\"array\",e.data);if(this.leftOver&&this.leftOver.length){if(h.uint8array){var r=t;(t=new Uint8Array(r.length+this.leftOver.length)).set(this.leftOver,0),t.set(r,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var n=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}(t),i=t;n!==t.length&&(h.uint8array?(i=t.subarray(0,n),this.leftOver=t.subarray(n,t.length)):(i=t.slice(0,n),this.leftOver=t.slice(n,t.length))),this.push({data:s.utf8decode(i),meta:e.meta})},a.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:s.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},s.Utf8DecodeWorker=a,o.inherits(l,n),l.prototype.processChunk=function(e){this.push({data:s.utf8encode(e.data),meta:e.meta})},s.Utf8EncodeWorker=l},{\"./nodejsUtils\":14,\"./stream/GenericWorker\":28,\"./support\":30,\"./utils\":32}],32:[function(e,t,a){\"use strict\";var o=e(\"./support\"),h=e(\"./base64\"),r=e(\"./nodejsUtils\"),u=e(\"./external\");function n(e){return e}function l(e,t){for(var r=0;r<e.length;++r)t[r]=255&e.charCodeAt(r);return t}e(\"setimmediate\"),a.newBlob=function(t,r){a.checkSupport(\"blob\");try{return new Blob([t],{type:r})}catch(e){try{var n=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return n.append(t),n.getBlob(r)}catch(e){throw new Error(\"Bug : can't construct the Blob.\")}}};var i={stringifyByChunk:function(e,t,r){var n=[],i=0,s=e.length;if(s<=r)return String.fromCharCode.apply(null,e);for(;i<s;)\"array\"===t||\"nodebuffer\"===t?n.push(String.fromCharCode.apply(null,e.slice(i,Math.min(i+r,s)))):n.push(String.fromCharCode.apply(null,e.subarray(i,Math.min(i+r,s)))),i+=r;return n.join(\"\")},stringifyByChar:function(e){for(var t=\"\",r=0;r<e.length;r++)t+=String.fromCharCode(e[r]);return t},applyCanBeUsed:{uint8array:function(){try{return o.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return o.nodebuffer&&1===String.fromCharCode.apply(null,r.allocBuffer(1)).length}catch(e){return!1}}()}};function s(e){var t=65536,r=a.getTypeOf(e),n=!0;if(\"uint8array\"===r?n=i.applyCanBeUsed.uint8array:\"nodebuffer\"===r&&(n=i.applyCanBeUsed.nodebuffer),n)for(;1<t;)try{return i.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return i.stringifyByChar(e)}function f(e,t){for(var r=0;r<e.length;r++)t[r]=e[r];return t}a.applyFromCharCode=s;var c={};c.string={string:n,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return c.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,r.allocBuffer(e.length))}},c.array={string:s,array:n,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(e)}},c.arraybuffer={string:function(e){return s(new Uint8Array(e))},array:function(e){return f(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:n,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return r.newBufferFrom(new Uint8Array(e))}},c.uint8array={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:n,nodebuffer:function(e){return r.newBufferFrom(e)}},c.nodebuffer={string:s,array:function(e){return f(e,new Array(e.length))},arraybuffer:function(e){return c.nodebuffer.uint8array(e).buffer},uint8array:function(e){return f(e,new Uint8Array(e.length))},nodebuffer:n},a.transformTo=function(e,t){if(t=t||\"\",!e)return t;a.checkSupport(e);var r=a.getTypeOf(t);return c[r][e](t)},a.resolve=function(e){for(var t=e.split(\"/\"),r=[],n=0;n<t.length;n++){var i=t[n];\".\"===i||\"\"===i&&0!==n&&n!==t.length-1||(\"..\"===i?r.pop():r.push(i))}return r.join(\"/\")},a.getTypeOf=function(e){return\"string\"==typeof e?\"string\":\"[object Array]\"===Object.prototype.toString.call(e)?\"array\":o.nodebuffer&&r.isBuffer(e)?\"nodebuffer\":o.uint8array&&e instanceof Uint8Array?\"uint8array\":o.arraybuffer&&e instanceof ArrayBuffer?\"arraybuffer\":void 0},a.checkSupport=function(e){if(!o[e.toLowerCase()])throw new Error(e+\" is not supported by this platform\")},a.MAX_VALUE_16BITS=65535,a.MAX_VALUE_32BITS=-1,a.pretty=function(e){var t,r,n=\"\";for(r=0;r<(e||\"\").length;r++)n+=\"\\\\x\"+((t=e.charCodeAt(r))<16?\"0\":\"\")+t.toString(16).toUpperCase();return n},a.delay=function(e,t,r){setImmediate(function(){e.apply(r||null,t||[])})},a.inherits=function(e,t){function r(){}r.prototype=t.prototype,e.prototype=new r},a.extend=function(){var e,t,r={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===r[t]&&(r[t]=arguments[e][t]);return r},a.prepareContent=function(r,e,n,i,s){return u.Promise.resolve(e).then(function(n){return o.blob&&(n instanceof Blob||-1!==[\"[object File]\",\"[object Blob]\"].indexOf(Object.prototype.toString.call(n)))&&\"undefined\"!=typeof FileReader?new u.Promise(function(t,r){var e=new FileReader;e.onload=function(e){t(e.target.result)},e.onerror=function(e){r(e.target.error)},e.readAsArrayBuffer(n)}):n}).then(function(e){var t=a.getTypeOf(e);return t?(\"arraybuffer\"===t?e=a.transformTo(\"uint8array\",e):\"string\"===t&&(s?e=h.decode(e):n&&!0!==i&&(e=function(e){return l(e,o.uint8array?new Uint8Array(e.length):new Array(e.length))}(e))),e):u.Promise.reject(new Error(\"Can't read the data of '\"+r+\"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?\"))})}},{\"./base64\":1,\"./external\":6,\"./nodejsUtils\":14,\"./support\":30,setimmediate:54}],33:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),i=e(\"./utils\"),s=e(\"./signature\"),a=e(\"./zipEntry\"),o=e(\"./support\");function h(e){this.files=[],this.loadOptions=e}h.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error(\"Corrupted zip or bug: unexpected signature (\"+i.pretty(t)+\", expected \"+i.pretty(e)+\")\")}},isSignature:function(e,t){var r=this.reader.index;this.reader.setIndex(e);var n=this.reader.readString(4)===t;return this.reader.setIndex(r),n},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=o.uint8array?\"uint8array\":\"array\",r=i.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(r)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,r,n=this.zip64EndOfCentralSize-44;0<n;)e=this.reader.readInt(2),t=this.reader.readInt(4),r=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:r}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(s.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(s.CENTRAL_FILE_HEADER);)(e=new a({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(s.CENTRAL_DIRECTORY_END);if(e<0)throw!this.isSignature(0,s.LOCAL_FILE_HEADER)?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip: can't find end of central directory\");this.reader.setIndex(e);var t=e;if(this.checkSignature(s.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(e),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,s.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip: can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(s.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var r=this.centralDirOffset+this.centralDirSize;this.zip64&&(r+=20,r+=12+this.zip64EndOfCentralSize);var n=t-r;if(0<n)this.isSignature(t,s.CENTRAL_FILE_HEADER)||(this.reader.zero=n);else if(n<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(n)+\" bytes.\")},prepareReader:function(e){this.reader=n(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=h},{\"./reader/readerFor\":22,\"./signature\":23,\"./support\":30,\"./utils\":32,\"./zipEntry\":34}],34:[function(e,t,r){\"use strict\";var n=e(\"./reader/readerFor\"),s=e(\"./utils\"),i=e(\"./compressedObject\"),a=e(\"./crc32\"),o=e(\"./utf8\"),h=e(\"./compressions\"),u=e(\"./support\");function l(e,t){this.options=e,this.loadOptions=t}l.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,r;if(e.skip(22),this.fileNameLength=e.readInt(2),r=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(r),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error(\"Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)\");if(null===(t=function(e){for(var t in h)if(Object.prototype.hasOwnProperty.call(h,t)&&h[t].magic===e)return h[t];return null}(this.compressionMethod)))throw new Error(\"Corrupted zip : compression \"+s.pretty(this.compressionMethod)+\" unknown (inner file : \"+s.transformTo(\"string\",this.fileName)+\")\");this.decompressed=new i(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=n(this.extraFields[1].value);this.uncompressedSize===s.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===s.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===s.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===s.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,r,n,i=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<i;)t=e.readInt(2),r=e.readInt(2),n=e.readData(r),this.extraFields[t]={id:t,length:r,value:n};e.setIndex(i)},handleUTF8:function(){var e=u.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=o.utf8decode(this.fileName),this.fileCommentStr=o.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var r=s.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(r)}var n=this.findExtraFieldUnicodeComment();if(null!==n)this.fileCommentStr=n;else{var i=s.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(i)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileName)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=n(e.value);return 1!==t.readInt(1)?null:a(this.fileComment)!==t.readInt(4)?null:o.utf8decode(t.readData(e.length-5))}return null}},t.exports=l},{\"./compressedObject\":2,\"./compressions\":3,\"./crc32\":4,\"./reader/readerFor\":22,\"./support\":30,\"./utf8\":31,\"./utils\":32}],35:[function(e,t,r){\"use strict\";function n(e,t,r){this.name=e,this.dir=r.dir,this.date=r.date,this.comment=r.comment,this.unixPermissions=r.unixPermissions,this.dosPermissions=r.dosPermissions,this._data=t,this._dataBinary=r.binary,this.options={compression:r.compression,compressionOptions:r.compressionOptions}}var s=e(\"./stream/StreamHelper\"),i=e(\"./stream/DataWorker\"),a=e(\"./utf8\"),o=e(\"./compressedObject\"),h=e(\"./stream/GenericWorker\");n.prototype={internalStream:function(e){var t=null,r=\"string\";try{if(!e)throw new Error(\"No output type specified.\");var n=\"string\"===(r=e.toLowerCase())||\"text\"===r;\"binarystring\"!==r&&\"text\"!==r||(r=\"string\"),t=this._decompressWorker();var i=!this._dataBinary;i&&!n&&(t=t.pipe(new a.Utf8EncodeWorker)),!i&&n&&(t=t.pipe(new a.Utf8DecodeWorker))}catch(e){(t=new h(\"error\")).error(e)}return new s(t,r,\"\")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||\"nodebuffer\").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof o&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var r=this._decompressWorker();return this._dataBinary||(r=r.pipe(new a.Utf8EncodeWorker)),o.createWorkerFrom(r,e,t)},_decompressWorker:function(){return this._data instanceof o?this._data.getContentWorker():this._data instanceof h?this._data:new i(this._data)}};for(var u=[\"asText\",\"asBinary\",\"asNodeBuffer\",\"asUint8Array\",\"asArrayBuffer\"],l=function(){throw new Error(\"This method has been removed in JSZip 3.0, please check the upgrade guide.\")},f=0;f<u.length;f++)n.prototype[u[f]]=l;t.exports=n},{\"./compressedObject\":2,\"./stream/DataWorker\":27,\"./stream/GenericWorker\":28,\"./stream/StreamHelper\":29,\"./utf8\":31}],36:[function(e,l,t){(function(t){\"use strict\";var r,n,e=t.MutationObserver||t.WebKitMutationObserver;if(e){var i=0,s=new e(u),a=t.document.createTextNode(\"\");s.observe(a,{characterData:!0}),r=function(){a.data=i=++i%2}}else if(t.setImmediate||void 0===t.MessageChannel)r=\"document\"in t&&\"onreadystatechange\"in t.document.createElement(\"script\")?function(){var e=t.document.createElement(\"script\");e.onreadystatechange=function(){u(),e.onreadystatechange=null,e.parentNode.removeChild(e),e=null},t.document.documentElement.appendChild(e)}:function(){setTimeout(u,0)};else{var o=new t.MessageChannel;o.port1.onmessage=u,r=function(){o.port2.postMessage(0)}}var h=[];function u(){var e,t;n=!0;for(var r=h.length;r;){for(t=h,h=[],e=-1;++e<r;)t[e]();r=h.length}n=!1}l.exports=function(e){1!==h.push(e)||n||r()}}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],37:[function(e,t,r){\"use strict\";var i=e(\"immediate\");function u(){}var l={},s=[\"REJECTED\"],a=[\"FULFILLED\"],n=[\"PENDING\"];function o(e){if(\"function\"!=typeof e)throw new TypeError(\"resolver must be a function\");this.state=n,this.queue=[],this.outcome=void 0,e!==u&&d(this,e)}function h(e,t,r){this.promise=e,\"function\"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),\"function\"==typeof r&&(this.onRejected=r,this.callRejected=this.otherCallRejected)}function f(t,r,n){i(function(){var e;try{e=r(n)}catch(e){return l.reject(t,e)}e===t?l.reject(t,new TypeError(\"Cannot resolve promise with itself\")):l.resolve(t,e)})}function c(e){var t=e&&e.then;if(e&&(\"object\"==typeof e||\"function\"==typeof e)&&\"function\"==typeof t)return function(){t.apply(e,arguments)}}function d(t,e){var r=!1;function n(e){r||(r=!0,l.reject(t,e))}function i(e){r||(r=!0,l.resolve(t,e))}var s=p(function(){e(i,n)});\"error\"===s.status&&n(s.value)}function p(e,t){var r={};try{r.value=e(t),r.status=\"success\"}catch(e){r.status=\"error\",r.value=e}return r}(t.exports=o).prototype.finally=function(t){if(\"function\"!=typeof t)return this;var r=this.constructor;return this.then(function(e){return r.resolve(t()).then(function(){return e})},function(e){return r.resolve(t()).then(function(){throw e})})},o.prototype.catch=function(e){return this.then(null,e)},o.prototype.then=function(e,t){if(\"function\"!=typeof e&&this.state===a||\"function\"!=typeof t&&this.state===s)return this;var r=new this.constructor(u);this.state!==n?f(r,this.state===a?e:t,this.outcome):this.queue.push(new h(r,e,t));return r},h.prototype.callFulfilled=function(e){l.resolve(this.promise,e)},h.prototype.otherCallFulfilled=function(e){f(this.promise,this.onFulfilled,e)},h.prototype.callRejected=function(e){l.reject(this.promise,e)},h.prototype.otherCallRejected=function(e){f(this.promise,this.onRejected,e)},l.resolve=function(e,t){var r=p(c,t);if(\"error\"===r.status)return l.reject(e,r.value);var n=r.value;if(n)d(e,n);else{e.state=a,e.outcome=t;for(var i=-1,s=e.queue.length;++i<s;)e.queue[i].callFulfilled(t)}return e},l.reject=function(e,t){e.state=s,e.outcome=t;for(var r=-1,n=e.queue.length;++r<n;)e.queue[r].callRejected(t);return e},o.resolve=function(e){if(e instanceof this)return e;return l.resolve(new this(u),e)},o.reject=function(e){var t=new this(u);return l.reject(t,e)},o.all=function(e){var r=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var n=e.length,i=!1;if(!n)return this.resolve([]);var s=new Array(n),a=0,t=-1,o=new this(u);for(;++t<n;)h(e[t],t);return o;function h(e,t){r.resolve(e).then(function(e){s[t]=e,++a!==n||i||(i=!0,l.resolve(o,s))},function(e){i||(i=!0,l.reject(o,e))})}},o.race=function(e){var t=this;if(\"[object Array]\"!==Object.prototype.toString.call(e))return this.reject(new TypeError(\"must be an array\"));var r=e.length,n=!1;if(!r)return this.resolve([]);var i=-1,s=new this(u);for(;++i<r;)a=e[i],t.resolve(a).then(function(e){n||(n=!0,l.resolve(s,e))},function(e){n||(n=!0,l.reject(s,e))});var a;return s}},{immediate:36}],38:[function(e,t,r){\"use strict\";var n={};(0,e(\"./lib/utils/common\").assign)(n,e(\"./lib/deflate\"),e(\"./lib/inflate\"),e(\"./lib/zlib/constants\")),t.exports=n},{\"./lib/deflate\":39,\"./lib/inflate\":40,\"./lib/utils/common\":41,\"./lib/zlib/constants\":44}],39:[function(e,t,r){\"use strict\";var a=e(\"./zlib/deflate\"),o=e(\"./utils/common\"),h=e(\"./utils/strings\"),i=e(\"./zlib/messages\"),s=e(\"./zlib/zstream\"),u=Object.prototype.toString,l=0,f=-1,c=0,d=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:f,method:d,chunkSize:16384,windowBits:15,memLevel:8,strategy:c,to:\"\"},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var r=a.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(r!==l)throw new Error(i[r]);if(t.header&&a.deflateSetHeader(this.strm,t.header),t.dictionary){var n;if(n=\"string\"==typeof t.dictionary?h.string2buf(t.dictionary):\"[object ArrayBuffer]\"===u.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(r=a.deflateSetDictionary(this.strm,n))!==l)throw new Error(i[r]);this._dict_set=!0}}function n(e,t){var r=new p(t);if(r.push(e,!0),r.err)throw r.msg||i[r.err];return r.result}p.prototype.push=function(e,t){var r,n,i=this.strm,s=this.options.chunkSize;if(this.ended)return!1;n=t===~~t?t:!0===t?4:0,\"string\"==typeof e?i.input=h.string2buf(e):\"[object ArrayBuffer]\"===u.call(e)?i.input=new Uint8Array(e):i.input=e,i.next_in=0,i.avail_in=i.input.length;do{if(0===i.avail_out&&(i.output=new o.Buf8(s),i.next_out=0,i.avail_out=s),1!==(r=a.deflate(i,n))&&r!==l)return this.onEnd(r),!(this.ended=!0);0!==i.avail_out&&(0!==i.avail_in||4!==n&&2!==n)||(\"string\"===this.options.to?this.onData(h.buf2binstring(o.shrinkBuf(i.output,i.next_out))):this.onData(o.shrinkBuf(i.output,i.next_out)))}while((0<i.avail_in||0===i.avail_out)&&1!==r);return 4===n?(r=a.deflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===l):2!==n||(this.onEnd(l),!(i.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===l&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Deflate=p,r.deflate=n,r.deflateRaw=function(e,t){return(t=t||{}).raw=!0,n(e,t)},r.gzip=function(e,t){return(t=t||{}).gzip=!0,n(e,t)}},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/deflate\":46,\"./zlib/messages\":51,\"./zlib/zstream\":53}],40:[function(e,t,r){\"use strict\";var c=e(\"./zlib/inflate\"),d=e(\"./utils/common\"),p=e(\"./utils/strings\"),m=e(\"./zlib/constants\"),n=e(\"./zlib/messages\"),i=e(\"./zlib/zstream\"),s=e(\"./zlib/gzheader\"),_=Object.prototype.toString;function a(e){if(!(this instanceof a))return new a(e);this.options=d.assign({chunkSize:16384,windowBits:0,to:\"\"},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new i,this.strm.avail_out=0;var r=c.inflateInit2(this.strm,t.windowBits);if(r!==m.Z_OK)throw new Error(n[r]);this.header=new s,c.inflateGetHeader(this.strm,this.header)}function o(e,t){var r=new a(t);if(r.push(e,!0),r.err)throw r.msg||n[r.err];return r.result}a.prototype.push=function(e,t){var r,n,i,s,a,o,h=this.strm,u=this.options.chunkSize,l=this.options.dictionary,f=!1;if(this.ended)return!1;n=t===~~t?t:!0===t?m.Z_FINISH:m.Z_NO_FLUSH,\"string\"==typeof e?h.input=p.binstring2buf(e):\"[object ArrayBuffer]\"===_.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new d.Buf8(u),h.next_out=0,h.avail_out=u),(r=c.inflate(h,m.Z_NO_FLUSH))===m.Z_NEED_DICT&&l&&(o=\"string\"==typeof l?p.string2buf(l):\"[object ArrayBuffer]\"===_.call(l)?new Uint8Array(l):l,r=c.inflateSetDictionary(this.strm,o)),r===m.Z_BUF_ERROR&&!0===f&&(r=m.Z_OK,f=!1),r!==m.Z_STREAM_END&&r!==m.Z_OK)return this.onEnd(r),!(this.ended=!0);h.next_out&&(0!==h.avail_out&&r!==m.Z_STREAM_END&&(0!==h.avail_in||n!==m.Z_FINISH&&n!==m.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(i=p.utf8border(h.output,h.next_out),s=h.next_out-i,a=p.buf2string(h.output,i),h.next_out=s,h.avail_out=u-s,s&&d.arraySet(h.output,h.output,i,s,0),this.onData(a)):this.onData(d.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(f=!0)}while((0<h.avail_in||0===h.avail_out)&&r!==m.Z_STREAM_END);return r===m.Z_STREAM_END&&(n=m.Z_FINISH),n===m.Z_FINISH?(r=c.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,r===m.Z_OK):n!==m.Z_SYNC_FLUSH||(this.onEnd(m.Z_OK),!(h.avail_out=0))},a.prototype.onData=function(e){this.chunks.push(e)},a.prototype.onEnd=function(e){e===m.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=d.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},r.Inflate=a,r.inflate=o,r.inflateRaw=function(e,t){return(t=t||{}).raw=!0,o(e,t)},r.ungzip=o},{\"./utils/common\":41,\"./utils/strings\":42,\"./zlib/constants\":44,\"./zlib/gzheader\":47,\"./zlib/inflate\":49,\"./zlib/messages\":51,\"./zlib/zstream\":53}],41:[function(e,t,r){\"use strict\";var n=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;r.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var r=t.shift();if(r){if(\"object\"!=typeof r)throw new TypeError(r+\"must be non-object\");for(var n in r)r.hasOwnProperty(n)&&(e[n]=r[n])}}return e},r.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,r,n,i){if(t.subarray&&e.subarray)e.set(t.subarray(r,r+n),i);else for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){var t,r,n,i,s,a;for(t=n=0,r=e.length;t<r;t++)n+=e[t].length;for(a=new Uint8Array(n),t=i=0,r=e.length;t<r;t++)s=e[t],a.set(s,i),i+=s.length;return a}},s={arraySet:function(e,t,r,n,i){for(var s=0;s<n;s++)e[i+s]=t[r+s]},flattenChunks:function(e){return[].concat.apply([],e)}};r.setTyped=function(e){e?(r.Buf8=Uint8Array,r.Buf16=Uint16Array,r.Buf32=Int32Array,r.assign(r,i)):(r.Buf8=Array,r.Buf16=Array,r.Buf32=Array,r.assign(r,s))},r.setTyped(n)},{}],42:[function(e,t,r){\"use strict\";var h=e(\"./common\"),i=!0,s=!0;try{String.fromCharCode.apply(null,[0])}catch(e){i=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){s=!1}for(var u=new h.Buf8(256),n=0;n<256;n++)u[n]=252<=n?6:248<=n?5:240<=n?4:224<=n?3:192<=n?2:1;function l(e,t){if(t<65537&&(e.subarray&&s||!e.subarray&&i))return String.fromCharCode.apply(null,h.shrinkBuf(e,t));for(var r=\"\",n=0;n<t;n++)r+=String.fromCharCode(e[n]);return r}u[254]=u[254]=1,r.string2buf=function(e){var t,r,n,i,s,a=e.length,o=0;for(i=0;i<a;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),o+=r<128?1:r<2048?2:r<65536?3:4;for(t=new h.Buf8(o),i=s=0;s<o;i++)55296==(64512&(r=e.charCodeAt(i)))&&i+1<a&&56320==(64512&(n=e.charCodeAt(i+1)))&&(r=65536+(r-55296<<10)+(n-56320),i++),r<128?t[s++]=r:(r<2048?t[s++]=192|r>>>6:(r<65536?t[s++]=224|r>>>12:(t[s++]=240|r>>>18,t[s++]=128|r>>>12&63),t[s++]=128|r>>>6&63),t[s++]=128|63&r);return t},r.buf2binstring=function(e){return l(e,e.length)},r.binstring2buf=function(e){for(var t=new h.Buf8(e.length),r=0,n=t.length;r<n;r++)t[r]=e.charCodeAt(r);return t},r.buf2string=function(e,t){var r,n,i,s,a=t||e.length,o=new Array(2*a);for(r=n=0;r<a;)if((i=e[r++])<128)o[n++]=i;else if(4<(s=u[i]))o[n++]=65533,r+=s-1;else{for(i&=2===s?31:3===s?15:7;1<s&&r<a;)i=i<<6|63&e[r++],s--;1<s?o[n++]=65533:i<65536?o[n++]=i:(i-=65536,o[n++]=55296|i>>10&1023,o[n++]=56320|1023&i)}return l(o,n)},r.utf8border=function(e,t){var r;for((t=t||e.length)>e.length&&(t=e.length),r=t-1;0<=r&&128==(192&e[r]);)r--;return r<0?t:0===r?t:r+u[e[r]]>t?r:t}},{\"./common\":41}],43:[function(e,t,r){\"use strict\";t.exports=function(e,t,r,n){for(var i=65535&e|0,s=e>>>16&65535|0,a=0;0!==r;){for(r-=a=2e3<r?2e3:r;s=s+(i=i+t[n++]|0)|0,--a;);i%=65521,s%=65521}return i|s<<16|0}},{}],44:[function(e,t,r){\"use strict\";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,r){\"use strict\";var o=function(){for(var e,t=[],r=0;r<256;r++){e=r;for(var n=0;n<8;n++)e=1&e?3988292384^e>>>1:e>>>1;t[r]=e}return t}();t.exports=function(e,t,r,n){var i=o,s=n+r;e^=-1;for(var a=n;a<s;a++)e=e>>>8^i[255&(e^t[a])];return-1^e}},{}],46:[function(e,t,r){\"use strict\";var h,c=e(\"../utils/common\"),u=e(\"./trees\"),d=e(\"./adler32\"),p=e(\"./crc32\"),n=e(\"./messages\"),l=0,f=4,m=0,_=-2,g=-1,b=4,i=2,v=8,y=9,s=286,a=30,o=19,w=2*s+1,k=15,x=3,S=258,z=S+x+1,C=42,E=113,A=1,I=2,O=3,B=4;function R(e,t){return e.msg=n[t],t}function T(e){return(e<<1)-(4<e?9:0)}function D(e){for(var t=e.length;0<=--t;)e[t]=0}function F(e){var t=e.state,r=t.pending;r>e.avail_out&&(r=e.avail_out),0!==r&&(c.arraySet(e.output,t.pending_buf,t.pending_out,r,e.next_out),e.next_out+=r,t.pending_out+=r,e.total_out+=r,e.avail_out-=r,t.pending-=r,0===t.pending&&(t.pending_out=0))}function N(e,t){u._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,F(e.strm)}function U(e,t){e.pending_buf[e.pending++]=t}function P(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function L(e,t){var r,n,i=e.max_chain_length,s=e.strstart,a=e.prev_length,o=e.nice_match,h=e.strstart>e.w_size-z?e.strstart-(e.w_size-z):0,u=e.window,l=e.w_mask,f=e.prev,c=e.strstart+S,d=u[s+a-1],p=u[s+a];e.prev_length>=e.good_match&&(i>>=2),o>e.lookahead&&(o=e.lookahead);do{if(u[(r=t)+a]===p&&u[r+a-1]===d&&u[r]===u[s]&&u[++r]===u[s+1]){s+=2,r++;do{}while(u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&u[++s]===u[++r]&&s<c);if(n=S-(c-s),s=c-S,a<n){if(e.match_start=t,o<=(a=n))break;d=u[s+a-1],p=u[s+a]}}}while((t=f[t&l])>h&&0!=--i);return a<=e.lookahead?a:e.lookahead}function j(e){var t,r,n,i,s,a,o,h,u,l,f=e.w_size;do{if(i=e.window_size-e.lookahead-e.strstart,e.strstart>=f+(f-z)){for(c.arraySet(e.window,e.window,f,f,0),e.match_start-=f,e.strstart-=f,e.block_start-=f,t=r=e.hash_size;n=e.head[--t],e.head[t]=f<=n?n-f:0,--r;);for(t=r=f;n=e.prev[--t],e.prev[t]=f<=n?n-f:0,--r;);i+=f}if(0===e.strm.avail_in)break;if(a=e.strm,o=e.window,h=e.strstart+e.lookahead,u=i,l=void 0,l=a.avail_in,u<l&&(l=u),r=0===l?0:(a.avail_in-=l,c.arraySet(o,a.input,a.next_in,l,h),1===a.state.wrap?a.adler=d(a.adler,o,l,h):2===a.state.wrap&&(a.adler=p(a.adler,o,l,h)),a.next_in+=l,a.total_in+=l,l),e.lookahead+=r,e.lookahead+e.insert>=x)for(s=e.strstart-e.insert,e.ins_h=e.window[s],e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[s+x-1])&e.hash_mask,e.prev[s&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=s,s++,e.insert--,!(e.lookahead+e.insert<x)););}while(e.lookahead<z&&0!==e.strm.avail_in)}function Z(e,t){for(var r,n;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==r&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r)),e.match_length>=x)if(n=u._tr_tally(e,e.strstart-e.match_start,e.match_length-x),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=x){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else n=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(n&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function W(e,t){for(var r,n,i;;){if(e.lookahead<z){if(j(e),e.lookahead<z&&t===l)return A;if(0===e.lookahead)break}if(r=0,e.lookahead>=x&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=x-1,0!==r&&e.prev_length<e.max_lazy_match&&e.strstart-r<=e.w_size-z&&(e.match_length=L(e,r),e.match_length<=5&&(1===e.strategy||e.match_length===x&&4096<e.strstart-e.match_start)&&(e.match_length=x-1)),e.prev_length>=x&&e.match_length<=e.prev_length){for(i=e.strstart+e.lookahead-x,n=u._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-x),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=i&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+x-1])&e.hash_mask,r=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=x-1,e.strstart++,n&&(N(e,!1),0===e.strm.avail_out))return A}else if(e.match_available){if((n=u._tr_tally(e,0,e.window[e.strstart-1]))&&N(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return A}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(n=u._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<x-1?e.strstart:x-1,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}function M(e,t,r,n,i){this.good_length=e,this.max_lazy=t,this.nice_length=r,this.max_chain=n,this.func=i}function H(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=v,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new c.Buf16(2*w),this.dyn_dtree=new c.Buf16(2*(2*a+1)),this.bl_tree=new c.Buf16(2*(2*o+1)),D(this.dyn_ltree),D(this.dyn_dtree),D(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new c.Buf16(k+1),this.heap=new c.Buf16(2*s+1),D(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new c.Buf16(2*s+1),D(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function G(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=i,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?C:E,e.adler=2===t.wrap?0:1,t.last_flush=l,u._tr_init(t),m):R(e,_)}function K(e){var t=G(e);return t===m&&function(e){e.window_size=2*e.w_size,D(e.head),e.max_lazy_match=h[e.level].max_lazy,e.good_match=h[e.level].good_length,e.nice_match=h[e.level].nice_length,e.max_chain_length=h[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=x-1,e.match_available=0,e.ins_h=0}(e.state),t}function Y(e,t,r,n,i,s){if(!e)return _;var a=1;if(t===g&&(t=6),n<0?(a=0,n=-n):15<n&&(a=2,n-=16),i<1||y<i||r!==v||n<8||15<n||t<0||9<t||s<0||b<s)return R(e,_);8===n&&(n=9);var o=new H;return(e.state=o).strm=e,o.wrap=a,o.gzhead=null,o.w_bits=n,o.w_size=1<<o.w_bits,o.w_mask=o.w_size-1,o.hash_bits=i+7,o.hash_size=1<<o.hash_bits,o.hash_mask=o.hash_size-1,o.hash_shift=~~((o.hash_bits+x-1)/x),o.window=new c.Buf8(2*o.w_size),o.head=new c.Buf16(o.hash_size),o.prev=new c.Buf16(o.w_size),o.lit_bufsize=1<<i+6,o.pending_buf_size=4*o.lit_bufsize,o.pending_buf=new c.Buf8(o.pending_buf_size),o.d_buf=1*o.lit_bufsize,o.l_buf=3*o.lit_bufsize,o.level=t,o.strategy=s,o.method=r,K(e)}h=[new M(0,0,0,0,function(e,t){var r=65535;for(r>e.pending_buf_size-5&&(r=e.pending_buf_size-5);;){if(e.lookahead<=1){if(j(e),0===e.lookahead&&t===l)return A;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var n=e.block_start+r;if((0===e.strstart||e.strstart>=n)&&(e.lookahead=e.strstart-n,e.strstart=n,N(e,!1),0===e.strm.avail_out))return A;if(e.strstart-e.block_start>=e.w_size-z&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):(e.strstart>e.block_start&&(N(e,!1),e.strm.avail_out),A)}),new M(4,4,8,4,Z),new M(4,5,16,8,Z),new M(4,6,32,32,Z),new M(4,4,16,16,W),new M(8,16,32,32,W),new M(8,16,128,128,W),new M(8,32,128,256,W),new M(32,128,258,1024,W),new M(32,258,258,4096,W)],r.deflateInit=function(e,t){return Y(e,t,v,15,8,0)},r.deflateInit2=Y,r.deflateReset=K,r.deflateResetKeep=G,r.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?_:(e.state.gzhead=t,m):_},r.deflate=function(e,t){var r,n,i,s;if(!e||!e.state||5<t||t<0)return e?R(e,_):_;if(n=e.state,!e.output||!e.input&&0!==e.avail_in||666===n.status&&t!==f)return R(e,0===e.avail_out?-5:_);if(n.strm=e,r=n.last_flush,n.last_flush=t,n.status===C)if(2===n.wrap)e.adler=0,U(n,31),U(n,139),U(n,8),n.gzhead?(U(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),U(n,255&n.gzhead.time),U(n,n.gzhead.time>>8&255),U(n,n.gzhead.time>>16&255),U(n,n.gzhead.time>>24&255),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,255&n.gzhead.os),n.gzhead.extra&&n.gzhead.extra.length&&(U(n,255&n.gzhead.extra.length),U(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=p(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=69):(U(n,0),U(n,0),U(n,0),U(n,0),U(n,0),U(n,9===n.level?2:2<=n.strategy||n.level<2?4:0),U(n,3),n.status=E);else{var a=v+(n.w_bits-8<<4)<<8;a|=(2<=n.strategy||n.level<2?0:n.level<6?1:6===n.level?2:3)<<6,0!==n.strstart&&(a|=32),a+=31-a%31,n.status=E,P(n,a),0!==n.strstart&&(P(n,e.adler>>>16),P(n,65535&e.adler)),e.adler=1}if(69===n.status)if(n.gzhead.extra){for(i=n.pending;n.gzindex<(65535&n.gzhead.extra.length)&&(n.pending!==n.pending_buf_size||(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending!==n.pending_buf_size));)U(n,255&n.gzhead.extra[n.gzindex]),n.gzindex++;n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex===n.gzhead.extra.length&&(n.gzindex=0,n.status=73)}else n.status=73;if(73===n.status)if(n.gzhead.name){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.name.length?255&n.gzhead.name.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.gzindex=0,n.status=91)}else n.status=91;if(91===n.status)if(n.gzhead.comment){i=n.pending;do{if(n.pending===n.pending_buf_size&&(n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),F(e),i=n.pending,n.pending===n.pending_buf_size)){s=1;break}s=n.gzindex<n.gzhead.comment.length?255&n.gzhead.comment.charCodeAt(n.gzindex++):0,U(n,s)}while(0!==s);n.gzhead.hcrc&&n.pending>i&&(e.adler=p(e.adler,n.pending_buf,n.pending-i,i)),0===s&&(n.status=103)}else n.status=103;if(103===n.status&&(n.gzhead.hcrc?(n.pending+2>n.pending_buf_size&&F(e),n.pending+2<=n.pending_buf_size&&(U(n,255&e.adler),U(n,e.adler>>8&255),e.adler=0,n.status=E)):n.status=E),0!==n.pending){if(F(e),0===e.avail_out)return n.last_flush=-1,m}else if(0===e.avail_in&&T(t)<=T(r)&&t!==f)return R(e,-5);if(666===n.status&&0!==e.avail_in)return R(e,-5);if(0!==e.avail_in||0!==n.lookahead||t!==l&&666!==n.status){var o=2===n.strategy?function(e,t){for(var r;;){if(0===e.lookahead&&(j(e),0===e.lookahead)){if(t===l)return A;break}if(e.match_length=0,r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):3===n.strategy?function(e,t){for(var r,n,i,s,a=e.window;;){if(e.lookahead<=S){if(j(e),e.lookahead<=S&&t===l)return A;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=x&&0<e.strstart&&(n=a[i=e.strstart-1])===a[++i]&&n===a[++i]&&n===a[++i]){s=e.strstart+S;do{}while(n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&n===a[++i]&&i<s);e.match_length=S-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=x?(r=u._tr_tally(e,1,e.match_length-x),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(r=u._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),r&&(N(e,!1),0===e.strm.avail_out))return A}return e.insert=0,t===f?(N(e,!0),0===e.strm.avail_out?O:B):e.last_lit&&(N(e,!1),0===e.strm.avail_out)?A:I}(n,t):h[n.level].func(n,t);if(o!==O&&o!==B||(n.status=666),o===A||o===O)return 0===e.avail_out&&(n.last_flush=-1),m;if(o===I&&(1===t?u._tr_align(n):5!==t&&(u._tr_stored_block(n,0,0,!1),3===t&&(D(n.head),0===n.lookahead&&(n.strstart=0,n.block_start=0,n.insert=0))),F(e),0===e.avail_out))return n.last_flush=-1,m}return t!==f?m:n.wrap<=0?1:(2===n.wrap?(U(n,255&e.adler),U(n,e.adler>>8&255),U(n,e.adler>>16&255),U(n,e.adler>>24&255),U(n,255&e.total_in),U(n,e.total_in>>8&255),U(n,e.total_in>>16&255),U(n,e.total_in>>24&255)):(P(n,e.adler>>>16),P(n,65535&e.adler)),F(e),0<n.wrap&&(n.wrap=-n.wrap),0!==n.pending?m:1)},r.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==C&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?R(e,_):(e.state=null,t===E?R(e,-3):m):_},r.deflateSetDictionary=function(e,t){var r,n,i,s,a,o,h,u,l=t.length;if(!e||!e.state)return _;if(2===(s=(r=e.state).wrap)||1===s&&r.status!==C||r.lookahead)return _;for(1===s&&(e.adler=d(e.adler,t,l,0)),r.wrap=0,l>=r.w_size&&(0===s&&(D(r.head),r.strstart=0,r.block_start=0,r.insert=0),u=new c.Buf8(r.w_size),c.arraySet(u,t,l-r.w_size,r.w_size,0),t=u,l=r.w_size),a=e.avail_in,o=e.next_in,h=e.input,e.avail_in=l,e.next_in=0,e.input=t,j(r);r.lookahead>=x;){for(n=r.strstart,i=r.lookahead-(x-1);r.ins_h=(r.ins_h<<r.hash_shift^r.window[n+x-1])&r.hash_mask,r.prev[n&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=n,n++,--i;);r.strstart=n,r.lookahead=x-1,j(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=x-1,r.match_available=0,e.next_in=o,e.input=h,e.avail_in=a,r.wrap=s,m},r.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./messages\":51,\"./trees\":52}],47:[function(e,t,r){\"use strict\";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,r){\"use strict\";t.exports=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C;r=e.state,n=e.next_in,z=e.input,i=n+(e.avail_in-5),s=e.next_out,C=e.output,a=s-(t-e.avail_out),o=s+(e.avail_out-257),h=r.dmax,u=r.wsize,l=r.whave,f=r.wnext,c=r.window,d=r.hold,p=r.bits,m=r.lencode,_=r.distcode,g=(1<<r.lenbits)-1,b=(1<<r.distbits)-1;e:do{p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=m[d&g];t:for(;;){if(d>>>=y=v>>>24,p-=y,0===(y=v>>>16&255))C[s++]=65535&v;else{if(!(16&y)){if(0==(64&y)){v=m[(65535&v)+(d&(1<<y)-1)];continue t}if(32&y){r.mode=12;break e}e.msg=\"invalid literal/length code\",r.mode=30;break e}w=65535&v,(y&=15)&&(p<y&&(d+=z[n++]<<p,p+=8),w+=d&(1<<y)-1,d>>>=y,p-=y),p<15&&(d+=z[n++]<<p,p+=8,d+=z[n++]<<p,p+=8),v=_[d&b];r:for(;;){if(d>>>=y=v>>>24,p-=y,!(16&(y=v>>>16&255))){if(0==(64&y)){v=_[(65535&v)+(d&(1<<y)-1)];continue r}e.msg=\"invalid distance code\",r.mode=30;break e}if(k=65535&v,p<(y&=15)&&(d+=z[n++]<<p,(p+=8)<y&&(d+=z[n++]<<p,p+=8)),h<(k+=d&(1<<y)-1)){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(d>>>=y,p-=y,(y=s-a)<k){if(l<(y=k-y)&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break e}if(S=c,(x=0)===f){if(x+=u-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}}else if(f<y){if(x+=u+f-y,(y-=f)<w){for(w-=y;C[s++]=c[x++],--y;);if(x=0,f<w){for(w-=y=f;C[s++]=c[x++],--y;);x=s-k,S=C}}}else if(x+=f-y,y<w){for(w-=y;C[s++]=c[x++],--y;);x=s-k,S=C}for(;2<w;)C[s++]=S[x++],C[s++]=S[x++],C[s++]=S[x++],w-=3;w&&(C[s++]=S[x++],1<w&&(C[s++]=S[x++]))}else{for(x=s-k;C[s++]=C[x++],C[s++]=C[x++],C[s++]=C[x++],2<(w-=3););w&&(C[s++]=C[x++],1<w&&(C[s++]=C[x++]))}break}}break}}while(n<i&&s<o);n-=w=p>>3,d&=(1<<(p-=w<<3))-1,e.next_in=n,e.next_out=s,e.avail_in=n<i?i-n+5:5-(n-i),e.avail_out=s<o?o-s+257:257-(s-o),r.hold=d,r.bits=p}},{}],49:[function(e,t,r){\"use strict\";var I=e(\"../utils/common\"),O=e(\"./adler32\"),B=e(\"./crc32\"),R=e(\"./inffast\"),T=e(\"./inftrees\"),D=1,F=2,N=0,U=-2,P=1,n=852,i=592;function L(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function s(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new I.Buf16(320),this.work=new I.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function a(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg=\"\",t.wrap&&(e.adler=1&t.wrap),t.mode=P,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new I.Buf32(n),t.distcode=t.distdyn=new I.Buf32(i),t.sane=1,t.back=-1,N):U}function o(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,a(e)):U}function h(e,t){var r,n;return e&&e.state?(n=e.state,t<0?(r=0,t=-t):(r=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?U:(null!==n.window&&n.wbits!==t&&(n.window=null),n.wrap=r,n.wbits=t,o(e))):U}function u(e,t){var r,n;return e?(n=new s,(e.state=n).window=null,(r=h(e,t))!==N&&(e.state=null),r):U}var l,f,c=!0;function j(e){if(c){var t;for(l=new I.Buf32(512),f=new I.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(T(D,e.lens,0,288,l,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;T(F,e.lens,0,32,f,0,e.work,{bits:5}),c=!1}e.lencode=l,e.lenbits=9,e.distcode=f,e.distbits=5}function Z(e,t,r,n){var i,s=e.state;return null===s.window&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new I.Buf8(s.wsize)),n>=s.wsize?(I.arraySet(s.window,t,r-s.wsize,s.wsize,0),s.wnext=0,s.whave=s.wsize):(n<(i=s.wsize-s.wnext)&&(i=n),I.arraySet(s.window,t,r-n,i,s.wnext),(n-=i)?(I.arraySet(s.window,t,r-n,n,0),s.wnext=n,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0}r.inflateReset=o,r.inflateReset2=h,r.inflateResetKeep=a,r.inflateInit=function(e){return u(e,15)},r.inflateInit2=u,r.inflate=function(e,t){var r,n,i,s,a,o,h,u,l,f,c,d,p,m,_,g,b,v,y,w,k,x,S,z,C=0,E=new I.Buf8(4),A=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;12===(r=e.state).mode&&(r.mode=13),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,f=o,c=h,x=N;e:for(;;)switch(r.mode){case P:if(0===r.wrap){r.mode=13;break}for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(2&r.wrap&&35615===u){E[r.check=0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0),l=u=0,r.mode=2;break}if(r.flags=0,r.head&&(r.head.done=!1),!(1&r.wrap)||(((255&u)<<8)+(u>>8))%31){e.msg=\"incorrect header check\",r.mode=30;break}if(8!=(15&u)){e.msg=\"unknown compression method\",r.mode=30;break}if(l-=4,k=8+(15&(u>>>=4)),0===r.wbits)r.wbits=k;else if(k>r.wbits){e.msg=\"invalid window size\",r.mode=30;break}r.dmax=1<<k,e.adler=r.check=1,r.mode=512&u?10:12,l=u=0;break;case 2:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.flags=u,8!=(255&r.flags)){e.msg=\"unknown compression method\",r.mode=30;break}if(57344&r.flags){e.msg=\"unknown header flags set\",r.mode=30;break}r.head&&(r.head.text=u>>8&1),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=3;case 3:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.time=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,E[2]=u>>>16&255,E[3]=u>>>24&255,r.check=B(r.check,E,4,0)),l=u=0,r.mode=4;case 4:for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.head&&(r.head.xflags=255&u,r.head.os=u>>8),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0,r.mode=5;case 5:if(1024&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length=u,r.head&&(r.head.extra_len=u),512&r.flags&&(E[0]=255&u,E[1]=u>>>8&255,r.check=B(r.check,E,2,0)),l=u=0}else r.head&&(r.head.extra=null);r.mode=6;case 6:if(1024&r.flags&&(o<(d=r.length)&&(d=o),d&&(r.head&&(k=r.head.extra_len-r.length,r.head.extra||(r.head.extra=new Array(r.head.extra_len)),I.arraySet(r.head.extra,n,s,d,k)),512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,r.length-=d),r.length))break e;r.length=0,r.mode=7;case 7:if(2048&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.name+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.name=null);r.length=0,r.mode=8;case 8:if(4096&r.flags){if(0===o)break e;for(d=0;k=n[s+d++],r.head&&k&&r.length<65536&&(r.head.comment+=String.fromCharCode(k)),k&&d<o;);if(512&r.flags&&(r.check=B(r.check,n,d,s)),o-=d,s+=d,k)break e}else r.head&&(r.head.comment=null);r.mode=9;case 9:if(512&r.flags){for(;l<16;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(65535&r.check)){e.msg=\"header crc mismatch\",r.mode=30;break}l=u=0}r.head&&(r.head.hcrc=r.flags>>9&1,r.head.done=!0),e.adler=r.check=0,r.mode=12;break;case 10:for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}e.adler=r.check=L(u),l=u=0,r.mode=11;case 11:if(0===r.havedict)return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,2;e.adler=r.check=1,r.mode=12;case 12:if(5===t||6===t)break e;case 13:if(r.last){u>>>=7&l,l-=7&l,r.mode=27;break}for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}switch(r.last=1&u,l-=1,3&(u>>>=1)){case 0:r.mode=14;break;case 1:if(j(r),r.mode=20,6!==t)break;u>>>=2,l-=2;break e;case 2:r.mode=17;break;case 3:e.msg=\"invalid block type\",r.mode=30}u>>>=2,l-=2;break;case 14:for(u>>>=7&l,l-=7&l;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if((65535&u)!=(u>>>16^65535)){e.msg=\"invalid stored block lengths\",r.mode=30;break}if(r.length=65535&u,l=u=0,r.mode=15,6===t)break e;case 15:r.mode=16;case 16:if(d=r.length){if(o<d&&(d=o),h<d&&(d=h),0===d)break e;I.arraySet(i,n,s,d,a),o-=d,s+=d,h-=d,a+=d,r.length-=d;break}r.mode=12;break;case 17:for(;l<14;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(r.nlen=257+(31&u),u>>>=5,l-=5,r.ndist=1+(31&u),u>>>=5,l-=5,r.ncode=4+(15&u),u>>>=4,l-=4,286<r.nlen||30<r.ndist){e.msg=\"too many length or distance symbols\",r.mode=30;break}r.have=0,r.mode=18;case 18:for(;r.have<r.ncode;){for(;l<3;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.lens[A[r.have++]]=7&u,u>>>=3,l-=3}for(;r.have<19;)r.lens[A[r.have++]]=0;if(r.lencode=r.lendyn,r.lenbits=7,S={bits:r.lenbits},x=T(0,r.lens,0,19,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid code lengths set\",r.mode=30;break}r.have=0,r.mode=19;case 19:for(;r.have<r.nlen+r.ndist;){for(;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(b<16)u>>>=_,l-=_,r.lens[r.have++]=b;else{if(16===b){for(z=_+2;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u>>>=_,l-=_,0===r.have){e.msg=\"invalid bit length repeat\",r.mode=30;break}k=r.lens[r.have-1],d=3+(3&u),u>>>=2,l-=2}else if(17===b){for(z=_+3;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=3+(7&(u>>>=_)),u>>>=3,l-=3}else{for(z=_+7;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}l-=_,k=0,d=11+(127&(u>>>=_)),u>>>=7,l-=7}if(r.have+d>r.nlen+r.ndist){e.msg=\"invalid bit length repeat\",r.mode=30;break}for(;d--;)r.lens[r.have++]=k}}if(30===r.mode)break;if(0===r.lens[256]){e.msg=\"invalid code -- missing end-of-block\",r.mode=30;break}if(r.lenbits=9,S={bits:r.lenbits},x=T(D,r.lens,0,r.nlen,r.lencode,0,r.work,S),r.lenbits=S.bits,x){e.msg=\"invalid literal/lengths set\",r.mode=30;break}if(r.distbits=6,r.distcode=r.distdyn,S={bits:r.distbits},x=T(F,r.lens,r.nlen,r.ndist,r.distcode,0,r.work,S),r.distbits=S.bits,x){e.msg=\"invalid distances set\",r.mode=30;break}if(r.mode=20,6===t)break e;case 20:r.mode=21;case 21:if(6<=o&&258<=h){e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,R(e,c),a=e.next_out,i=e.output,h=e.avail_out,s=e.next_in,n=e.input,o=e.avail_in,u=r.hold,l=r.bits,12===r.mode&&(r.back=-1);break}for(r.back=0;g=(C=r.lencode[u&(1<<r.lenbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(g&&0==(240&g)){for(v=_,y=g,w=b;g=(C=r.lencode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,r.length=b,0===g){r.mode=26;break}if(32&g){r.back=-1,r.mode=12;break}if(64&g){e.msg=\"invalid literal/length code\",r.mode=30;break}r.extra=15&g,r.mode=22;case 22:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.length+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}r.was=r.length,r.mode=23;case 23:for(;g=(C=r.distcode[u&(1<<r.distbits)-1])>>>16&255,b=65535&C,!((_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(0==(240&g)){for(v=_,y=g,w=b;g=(C=r.distcode[w+((u&(1<<v+y)-1)>>v)])>>>16&255,b=65535&C,!(v+(_=C>>>24)<=l);){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}u>>>=v,l-=v,r.back+=v}if(u>>>=_,l-=_,r.back+=_,64&g){e.msg=\"invalid distance code\",r.mode=30;break}r.offset=b,r.extra=15&g,r.mode=24;case 24:if(r.extra){for(z=r.extra;l<z;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}r.offset+=u&(1<<r.extra)-1,u>>>=r.extra,l-=r.extra,r.back+=r.extra}if(r.offset>r.dmax){e.msg=\"invalid distance too far back\",r.mode=30;break}r.mode=25;case 25:if(0===h)break e;if(d=c-h,r.offset>d){if((d=r.offset-d)>r.whave&&r.sane){e.msg=\"invalid distance too far back\",r.mode=30;break}p=d>r.wnext?(d-=r.wnext,r.wsize-d):r.wnext-d,d>r.length&&(d=r.length),m=r.window}else m=i,p=a-r.offset,d=r.length;for(h<d&&(d=h),h-=d,r.length-=d;i[a++]=m[p++],--d;);0===r.length&&(r.mode=21);break;case 26:if(0===h)break e;i[a++]=r.length,h--,r.mode=21;break;case 27:if(r.wrap){for(;l<32;){if(0===o)break e;o--,u|=n[s++]<<l,l+=8}if(c-=h,e.total_out+=c,r.total+=c,c&&(e.adler=r.check=r.flags?B(r.check,i,c,a-c):O(r.check,i,c,a-c)),c=h,(r.flags?u:L(u))!==r.check){e.msg=\"incorrect data check\",r.mode=30;break}l=u=0}r.mode=28;case 28:if(r.wrap&&r.flags){for(;l<32;){if(0===o)break e;o--,u+=n[s++]<<l,l+=8}if(u!==(4294967295&r.total)){e.msg=\"incorrect length check\",r.mode=30;break}l=u=0}r.mode=29;case 29:x=1;break e;case 30:x=-3;break e;case 31:return-4;case 32:default:return U}return e.next_out=a,e.avail_out=h,e.next_in=s,e.avail_in=o,r.hold=u,r.bits=l,(r.wsize||c!==e.avail_out&&r.mode<30&&(r.mode<27||4!==t))&&Z(e,e.output,e.next_out,c-e.avail_out)?(r.mode=31,-4):(f-=e.avail_in,c-=e.avail_out,e.total_in+=f,e.total_out+=c,r.total+=c,r.wrap&&c&&(e.adler=r.check=r.flags?B(r.check,i,c,e.next_out-c):O(r.check,i,c,e.next_out-c)),e.data_type=r.bits+(r.last?64:0)+(12===r.mode?128:0)+(20===r.mode||15===r.mode?256:0),(0==f&&0===c||4===t)&&x===N&&(x=-5),x)},r.inflateEnd=function(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,N},r.inflateGetHeader=function(e,t){var r;return e&&e.state?0==(2&(r=e.state).wrap)?U:((r.head=t).done=!1,N):U},r.inflateSetDictionary=function(e,t){var r,n=t.length;return e&&e.state?0!==(r=e.state).wrap&&11!==r.mode?U:11===r.mode&&O(1,t,n,0)!==r.check?-3:Z(e,t,n,n)?(r.mode=31,-4):(r.havedict=1,N):U},r.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":41,\"./adler32\":43,\"./crc32\":45,\"./inffast\":48,\"./inftrees\":50}],50:[function(e,t,r){\"use strict\";var D=e(\"../utils/common\"),F=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],N=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],U=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],P=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,r,n,i,s,a,o){var h,u,l,f,c,d,p,m,_,g=o.bits,b=0,v=0,y=0,w=0,k=0,x=0,S=0,z=0,C=0,E=0,A=null,I=0,O=new D.Buf16(16),B=new D.Buf16(16),R=null,T=0;for(b=0;b<=15;b++)O[b]=0;for(v=0;v<n;v++)O[t[r+v]]++;for(k=g,w=15;1<=w&&0===O[w];w--);if(w<k&&(k=w),0===w)return i[s++]=20971520,i[s++]=20971520,o.bits=1,0;for(y=1;y<w&&0===O[y];y++);for(k<y&&(k=y),b=z=1;b<=15;b++)if(z<<=1,(z-=O[b])<0)return-1;if(0<z&&(0===e||1!==w))return-1;for(B[1]=0,b=1;b<15;b++)B[b+1]=B[b]+O[b];for(v=0;v<n;v++)0!==t[r+v]&&(a[B[t[r+v]]++]=v);if(d=0===e?(A=R=a,19):1===e?(A=F,I-=257,R=N,T-=257,256):(A=U,R=P,-1),b=y,c=s,S=v=E=0,l=-1,f=(C=1<<(x=k))-1,1===e&&852<C||2===e&&592<C)return 1;for(;;){for(p=b-S,_=a[v]<d?(m=0,a[v]):a[v]>d?(m=R[T+a[v]],A[I+a[v]]):(m=96,0),h=1<<b-S,y=u=1<<x;i[c+(E>>S)+(u-=h)]=p<<24|m<<16|_|0,0!==u;);for(h=1<<b-1;E&h;)h>>=1;if(0!==h?(E&=h-1,E+=h):E=0,v++,0==--O[b]){if(b===w)break;b=t[r+a[v]]}if(k<b&&(E&f)!==l){for(0===S&&(S=k),c+=y,z=1<<(x=b-S);x+S<w&&!((z-=O[x+S])<=0);)x++,z<<=1;if(C+=1<<x,1===e&&852<C||2===e&&592<C)return 1;i[l=E&f]=k<<24|x<<16|c-s|0}}return 0!==E&&(i[c+E]=b-S<<24|64<<16|0),o.bits=k,0}},{\"../utils/common\":41}],51:[function(e,t,r){\"use strict\";t.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],52:[function(e,t,r){\"use strict\";var i=e(\"../utils/common\"),o=0,h=1;function n(e){for(var t=e.length;0<=--t;)e[t]=0}var s=0,a=29,u=256,l=u+1+a,f=30,c=19,_=2*l+1,g=15,d=16,p=7,m=256,b=16,v=17,y=18,w=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],k=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],x=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],S=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],z=new Array(2*(l+2));n(z);var C=new Array(2*f);n(C);var E=new Array(512);n(E);var A=new Array(256);n(A);var I=new Array(a);n(I);var O,B,R,T=new Array(f);function D(e,t,r,n,i){this.static_tree=e,this.extra_bits=t,this.extra_base=r,this.elems=n,this.max_length=i,this.has_stree=e&&e.length}function F(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function N(e){return e<256?E[e]:E[256+(e>>>7)]}function U(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function P(e,t,r){e.bi_valid>d-r?(e.bi_buf|=t<<e.bi_valid&65535,U(e,e.bi_buf),e.bi_buf=t>>d-e.bi_valid,e.bi_valid+=r-d):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=r)}function L(e,t,r){P(e,r[2*t],r[2*t+1])}function j(e,t){for(var r=0;r|=1&e,e>>>=1,r<<=1,0<--t;);return r>>>1}function Z(e,t,r){var n,i,s=new Array(g+1),a=0;for(n=1;n<=g;n++)s[n]=a=a+r[n-1]<<1;for(i=0;i<=t;i++){var o=e[2*i+1];0!==o&&(e[2*i]=j(s[o]++,o))}}function W(e){var t;for(t=0;t<l;t++)e.dyn_ltree[2*t]=0;for(t=0;t<f;t++)e.dyn_dtree[2*t]=0;for(t=0;t<c;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*m]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function M(e){8<e.bi_valid?U(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function H(e,t,r,n){var i=2*t,s=2*r;return e[i]<e[s]||e[i]===e[s]&&n[t]<=n[r]}function G(e,t,r){for(var n=e.heap[r],i=r<<1;i<=e.heap_len&&(i<e.heap_len&&H(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!H(t,n,e.heap[i],e.depth));)e.heap[r]=e.heap[i],r=i,i<<=1;e.heap[r]=n}function K(e,t,r){var n,i,s,a,o=0;if(0!==e.last_lit)for(;n=e.pending_buf[e.d_buf+2*o]<<8|e.pending_buf[e.d_buf+2*o+1],i=e.pending_buf[e.l_buf+o],o++,0===n?L(e,i,t):(L(e,(s=A[i])+u+1,t),0!==(a=w[s])&&P(e,i-=I[s],a),L(e,s=N(--n),r),0!==(a=k[s])&&P(e,n-=T[s],a)),o<e.last_lit;);L(e,m,t)}function Y(e,t){var r,n,i,s=t.dyn_tree,a=t.stat_desc.static_tree,o=t.stat_desc.has_stree,h=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=_,r=0;r<h;r++)0!==s[2*r]?(e.heap[++e.heap_len]=u=r,e.depth[r]=0):s[2*r+1]=0;for(;e.heap_len<2;)s[2*(i=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[i]=0,e.opt_len--,o&&(e.static_len-=a[2*i+1]);for(t.max_code=u,r=e.heap_len>>1;1<=r;r--)G(e,s,r);for(i=h;r=e.heap[1],e.heap[1]=e.heap[e.heap_len--],G(e,s,1),n=e.heap[1],e.heap[--e.heap_max]=r,e.heap[--e.heap_max]=n,s[2*i]=s[2*r]+s[2*n],e.depth[i]=(e.depth[r]>=e.depth[n]?e.depth[r]:e.depth[n])+1,s[2*r+1]=s[2*n+1]=i,e.heap[1]=i++,G(e,s,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var r,n,i,s,a,o,h=t.dyn_tree,u=t.max_code,l=t.stat_desc.static_tree,f=t.stat_desc.has_stree,c=t.stat_desc.extra_bits,d=t.stat_desc.extra_base,p=t.stat_desc.max_length,m=0;for(s=0;s<=g;s++)e.bl_count[s]=0;for(h[2*e.heap[e.heap_max]+1]=0,r=e.heap_max+1;r<_;r++)p<(s=h[2*h[2*(n=e.heap[r])+1]+1]+1)&&(s=p,m++),h[2*n+1]=s,u<n||(e.bl_count[s]++,a=0,d<=n&&(a=c[n-d]),o=h[2*n],e.opt_len+=o*(s+a),f&&(e.static_len+=o*(l[2*n+1]+a)));if(0!==m){do{for(s=p-1;0===e.bl_count[s];)s--;e.bl_count[s]--,e.bl_count[s+1]+=2,e.bl_count[p]--,m-=2}while(0<m);for(s=p;0!==s;s--)for(n=e.bl_count[s];0!==n;)u<(i=e.heap[--r])||(h[2*i+1]!==s&&(e.opt_len+=(s-h[2*i+1])*h[2*i],h[2*i+1]=s),n--)}}(e,t),Z(s,u,e.bl_count)}function X(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),t[2*(r+1)+1]=65535,n=0;n<=r;n++)i=a,a=t[2*(n+1)+1],++o<h&&i===a||(o<u?e.bl_tree[2*i]+=o:0!==i?(i!==s&&e.bl_tree[2*i]++,e.bl_tree[2*b]++):o<=10?e.bl_tree[2*v]++:e.bl_tree[2*y]++,s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4))}function V(e,t,r){var n,i,s=-1,a=t[1],o=0,h=7,u=4;for(0===a&&(h=138,u=3),n=0;n<=r;n++)if(i=a,a=t[2*(n+1)+1],!(++o<h&&i===a)){if(o<u)for(;L(e,i,e.bl_tree),0!=--o;);else 0!==i?(i!==s&&(L(e,i,e.bl_tree),o--),L(e,b,e.bl_tree),P(e,o-3,2)):o<=10?(L(e,v,e.bl_tree),P(e,o-3,3)):(L(e,y,e.bl_tree),P(e,o-11,7));s=i,u=(o=0)===a?(h=138,3):i===a?(h=6,3):(h=7,4)}}n(T);var q=!1;function J(e,t,r,n){P(e,(s<<1)+(n?1:0),3),function(e,t,r,n){M(e),n&&(U(e,r),U(e,~r)),i.arraySet(e.pending_buf,e.window,t,r,e.pending),e.pending+=r}(e,t,r,!0)}r._tr_init=function(e){q||(function(){var e,t,r,n,i,s=new Array(g+1);for(n=r=0;n<a-1;n++)for(I[n]=r,e=0;e<1<<w[n];e++)A[r++]=n;for(A[r-1]=n,n=i=0;n<16;n++)for(T[n]=i,e=0;e<1<<k[n];e++)E[i++]=n;for(i>>=7;n<f;n++)for(T[n]=i<<7,e=0;e<1<<k[n]-7;e++)E[256+i++]=n;for(t=0;t<=g;t++)s[t]=0;for(e=0;e<=143;)z[2*e+1]=8,e++,s[8]++;for(;e<=255;)z[2*e+1]=9,e++,s[9]++;for(;e<=279;)z[2*e+1]=7,e++,s[7]++;for(;e<=287;)z[2*e+1]=8,e++,s[8]++;for(Z(z,l+1,s),e=0;e<f;e++)C[2*e+1]=5,C[2*e]=j(e,5);O=new D(z,w,u+1,l,g),B=new D(C,k,0,f,g),R=new D(new Array(0),x,0,c,p)}(),q=!0),e.l_desc=new F(e.dyn_ltree,O),e.d_desc=new F(e.dyn_dtree,B),e.bl_desc=new F(e.bl_tree,R),e.bi_buf=0,e.bi_valid=0,W(e)},r._tr_stored_block=J,r._tr_flush_block=function(e,t,r,n){var i,s,a=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,r=4093624447;for(t=0;t<=31;t++,r>>>=1)if(1&r&&0!==e.dyn_ltree[2*t])return o;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return h;for(t=32;t<u;t++)if(0!==e.dyn_ltree[2*t])return h;return o}(e)),Y(e,e.l_desc),Y(e,e.d_desc),a=function(e){var t;for(X(e,e.dyn_ltree,e.l_desc.max_code),X(e,e.dyn_dtree,e.d_desc.max_code),Y(e,e.bl_desc),t=c-1;3<=t&&0===e.bl_tree[2*S[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),i=e.opt_len+3+7>>>3,(s=e.static_len+3+7>>>3)<=i&&(i=s)):i=s=r+5,r+4<=i&&-1!==t?J(e,t,r,n):4===e.strategy||s===i?(P(e,2+(n?1:0),3),K(e,z,C)):(P(e,4+(n?1:0),3),function(e,t,r,n){var i;for(P(e,t-257,5),P(e,r-1,5),P(e,n-4,4),i=0;i<n;i++)P(e,e.bl_tree[2*S[i]+1],3);V(e,e.dyn_ltree,t-1),V(e,e.dyn_dtree,r-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,a+1),K(e,e.dyn_ltree,e.dyn_dtree)),W(e),n&&M(e)},r._tr_tally=function(e,t,r){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&r,e.last_lit++,0===t?e.dyn_ltree[2*r]++:(e.matches++,t--,e.dyn_ltree[2*(A[r]+u+1)]++,e.dyn_dtree[2*N(t)]++),e.last_lit===e.lit_bufsize-1},r._tr_align=function(e){P(e,2,3),L(e,m,z),function(e){16===e.bi_valid?(U(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{\"../utils/common\":41}],53:[function(e,t,r){\"use strict\";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(r,n){\"use strict\";if(!r.setImmediate){var i,s,t,a,o=1,h={},u=!1,l=r.document,e=Object.getPrototypeOf&&Object.getPrototypeOf(r);e=e&&e.setTimeout?e:r,i=\"[object process]\"==={}.toString.call(r.process)?function(e){process.nextTick(function(){c(e)})}:function(){if(r.postMessage&&!r.importScripts){var e=!0,t=r.onmessage;return r.onmessage=function(){e=!1},r.postMessage(\"\",\"*\"),r.onmessage=t,e}}()?(a=\"setImmediate$\"+Math.random()+\"$\",r.addEventListener?r.addEventListener(\"message\",d,!1):r.attachEvent(\"onmessage\",d),function(e){r.postMessage(a+e,\"*\")}):r.MessageChannel?((t=new MessageChannel).port1.onmessage=function(e){c(e.data)},function(e){t.port2.postMessage(e)}):l&&\"onreadystatechange\"in l.createElement(\"script\")?(s=l.documentElement,function(e){var t=l.createElement(\"script\");t.onreadystatechange=function(){c(e),t.onreadystatechange=null,s.removeChild(t),t=null},s.appendChild(t)}):function(e){setTimeout(c,0,e)},e.setImmediate=function(e){\"function\"!=typeof e&&(e=new Function(\"\"+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var n={callback:e,args:t};return h[o]=n,i(o),o++},e.clearImmediate=f}function f(e){delete h[e]}function c(e){if(u)setTimeout(c,0,e);else{var t=h[e];if(t){u=!0;try{!function(e){var t=e.callback,r=e.args;switch(r.length){case 0:t();break;case 1:t(r[0]);break;case 2:t(r[0],r[1]);break;case 3:t(r[0],r[1],r[2]);break;default:t.apply(n,r)}}(t)}finally{f(e),u=!1}}}}function d(e){e.source===r&&\"string\"==typeof e.data&&0===e.data.indexOf(a)&&c(+e.data.slice(a.length))}}(\"undefined\"==typeof self?void 0===e?this:e:self)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}]},{},[10])(10)});","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\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 * 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 * Converts an ASCII `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction asciiToArray(string) {\n return string.split('');\n}\n\nmodule.exports = asciiToArray;\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 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 `_.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","/**\n * The base implementation of `_.slice` without an iteratee call guard.\n *\n * @private\n * @param {Array} array The array to slice.\n * @param {number} [start=0] The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the slice of `array`.\n */\nfunction baseSlice(array, start, end) {\n var index = -1,\n length = array.length;\n\n if (start < 0) {\n start = -start > length ? 0 : (length + start);\n }\n end = end > length ? length : end;\n if (end < 0) {\n end += length;\n }\n length = start > end ? 0 : ((end - start) >>> 0);\n start >>>= 0;\n\n var result = Array(length);\n while (++index < length) {\n result[index] = array[index + start];\n }\n return result;\n}\n\nmodule.exports = baseSlice;\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 baseSlice = require('./_baseSlice');\n\n/**\n * Casts `array` to a slice if it's needed.\n *\n * @private\n * @param {Array} array The array to inspect.\n * @param {number} start The start position.\n * @param {number} [end=array.length] The end position.\n * @returns {Array} Returns the cast slice.\n */\nfunction castSlice(array, start, end) {\n var length = array.length;\n end = end === undefined ? length : end;\n return (!start && end >= length) ? array : baseSlice(array, start, end);\n}\n\nmodule.exports = castSlice;\n","var castSlice = require('./_castSlice'),\n hasUnicode = require('./_hasUnicode'),\n stringToArray = require('./_stringToArray'),\n toString = require('./toString');\n\n/**\n * Creates a function like `_.lowerFirst`.\n *\n * @private\n * @param {string} methodName The name of the `String` case method to use.\n * @returns {Function} Returns the new case function.\n */\nfunction createCaseFirst(methodName) {\n return function(string) {\n string = toString(string);\n\n var strSymbols = hasUnicode(string)\n ? stringToArray(string)\n : undefined;\n\n var chr = strSymbols\n ? strSymbols[0]\n : string.charAt(0);\n\n var trailing = strSymbols\n ? castSlice(strSymbols, 1).join('')\n : string.slice(1);\n\n return chr[methodName]() + trailing;\n };\n}\n\nmodule.exports = createCaseFirst;\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","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\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","/** 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 rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsZWJ = '\\\\u200d';\n\n/** Used to detect strings with [zero-width joiners or code points from the astral planes](http://eev.ee/blog/2015/09/12/dark-corners-of-unicode/). */\nvar reHasUnicode = RegExp('[' + rsZWJ + rsAstralRange + rsComboRange + rsVarRange + ']');\n\n/**\n * Checks if `string` contains Unicode symbols.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {boolean} Returns `true` if a symbol is found, else `false`.\n */\nfunction hasUnicode(string) {\n return reHasUnicode.test(string);\n}\n\nmodule.exports = hasUnicode;\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","/** 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","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","var asciiToArray = require('./_asciiToArray'),\n hasUnicode = require('./_hasUnicode'),\n unicodeToArray = require('./_unicodeToArray');\n\n/**\n * Converts `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction stringToArray(string) {\n return hasUnicode(string)\n ? unicodeToArray(string)\n : asciiToArray(string);\n}\n\nmodule.exports = stringToArray;\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 rsVarRange = '\\\\ufe0e\\\\ufe0f';\n\n/** Used to compose unicode capture groups. */\nvar rsAstral = '[' + rsAstralRange + ']',\n rsCombo = '[' + rsComboRange + ']',\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 rsZWJ = '\\\\u200d';\n\n/** Used to compose unicode regexes. */\nvar reOptMod = rsModifier + '?',\n rsOptVar = '[' + rsVarRange + ']?',\n rsOptJoin = '(?:' + rsZWJ + '(?:' + [rsNonAstral, rsRegional, rsSurrPair].join('|') + ')' + rsOptVar + reOptMod + ')*',\n rsSeq = rsOptVar + reOptMod + rsOptJoin,\n rsSymbol = '(?:' + [rsNonAstral + rsCombo + '?', rsCombo, rsRegional, rsSurrPair, rsAstral].join('|') + ')';\n\n/** Used to match [string symbols](https://mathiasbynens.be/notes/javascript-unicode). */\nvar reUnicode = RegExp(rsFitz + '(?=' + rsFitz + ')|' + rsSymbol + rsSeq, 'g');\n\n/**\n * Converts a Unicode `string` to an array.\n *\n * @private\n * @param {string} string The string to convert.\n * @returns {Array} Returns the converted array.\n */\nfunction unicodeToArray(string) {\n return string.match(reUnicode) || [];\n}\n\nmodule.exports = unicodeToArray;\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 capitalize = require('./capitalize'),\n createCompounder = require('./_createCompounder');\n\n/**\n * Converts `string` to [camel case](https://en.wikipedia.org/wiki/CamelCase).\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 camel cased string.\n * @example\n *\n * _.camelCase('Foo Bar');\n * // => 'fooBar'\n *\n * _.camelCase('--foo-bar--');\n * // => 'fooBar'\n *\n * _.camelCase('__FOO_BAR__');\n * // => 'fooBar'\n */\nvar camelCase = createCompounder(function(result, word, index) {\n word = word.toLowerCase();\n return result + (index ? capitalize(word) : word);\n});\n\nmodule.exports = camelCase;\n","var toString = require('./toString'),\n upperFirst = require('./upperFirst');\n\n/**\n * Converts the first character of `string` to upper case and the remaining\n * to lower case.\n *\n * @static\n * @memberOf _\n * @since 3.0.0\n * @category String\n * @param {string} [string=''] The string to capitalize.\n * @returns {string} Returns the capitalized string.\n * @example\n *\n * _.capitalize('FRED');\n * // => 'Fred'\n */\nfunction capitalize(string) {\n return upperFirst(toString(string).toLowerCase());\n}\n\nmodule.exports = capitalize;\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 * 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","/**\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 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 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 createCaseFirst = require('./_createCaseFirst');\n\n/**\n * Converts the first character of `string` to upper case.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category String\n * @param {string} [string=''] The string to convert.\n * @returns {string} Returns the converted string.\n * @example\n *\n * _.upperFirst('fred');\n * // => 'Fred'\n *\n * _.upperFirst('FRED');\n * // => 'FRED'\n */\nvar upperFirst = createCaseFirst('toUpperCase');\n\nmodule.exports = upperFirst;\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","/*! *****************************************************************************\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","/*!\n * vue-i18n v8.24.4 \n * (c) 2021 kazuya kawaguchi\n * Released under the MIT License.\n */\n/* */\n\n/**\n * constants\n */\n\nvar numberFormatKeys = [\n 'compactDisplay',\n 'currency',\n 'currencyDisplay',\n 'currencySign',\n 'localeMatcher',\n 'notation',\n 'numberingSystem',\n 'signDisplay',\n 'style',\n 'unit',\n 'unitDisplay',\n 'useGrouping',\n 'minimumIntegerDigits',\n 'minimumFractionDigits',\n 'maximumFractionDigits',\n 'minimumSignificantDigits',\n 'maximumSignificantDigits'\n];\n\n/**\n * utilities\n */\n\nfunction warn (msg, err) {\n if (typeof console !== 'undefined') {\n console.warn('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.warn(err.stack);\n }\n }\n}\n\nfunction error (msg, err) {\n if (typeof console !== 'undefined') {\n console.error('[vue-i18n] ' + msg);\n /* istanbul ignore if */\n if (err) {\n console.error(err.stack);\n }\n }\n}\n\nvar isArray = Array.isArray;\n\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\nfunction isBoolean (val) {\n return typeof val === 'boolean'\n}\n\nfunction isString (val) {\n return typeof val === 'string'\n}\n\nvar toString = Object.prototype.toString;\nvar OBJECT_STRING = '[object Object]';\nfunction isPlainObject (obj) {\n return toString.call(obj) === OBJECT_STRING\n}\n\nfunction isNull (val) {\n return val === null || val === undefined\n}\n\nfunction isFunction (val) {\n return typeof val === 'function'\n}\n\nfunction parseArgs () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var locale = null;\n var params = null;\n if (args.length === 1) {\n if (isObject(args[0]) || isArray(args[0])) {\n params = args[0];\n } else if (typeof args[0] === 'string') {\n locale = args[0];\n }\n } else if (args.length === 2) {\n if (typeof args[0] === 'string') {\n locale = args[0];\n }\n /* istanbul ignore if */\n if (isObject(args[1]) || isArray(args[1])) {\n params = args[1];\n }\n }\n\n return { locale: locale, params: params }\n}\n\nfunction looseClone (obj) {\n return JSON.parse(JSON.stringify(obj))\n}\n\nfunction remove (arr, item) {\n if (arr.delete(item)) {\n return arr\n }\n}\n\nfunction includes (arr, item) {\n return !!~arr.indexOf(item)\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\nfunction merge (target) {\n var arguments$1 = arguments;\n\n var output = Object(target);\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments$1[i];\n if (source !== undefined && source !== null) {\n var key = (void 0);\n for (key in source) {\n if (hasOwn(source, key)) {\n if (isObject(source[key])) {\n output[key] = merge(output[key], source[key]);\n } else {\n output[key] = source[key];\n }\n }\n }\n }\n }\n return output\n}\n\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = isArray(a);\n var isArrayB = isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Sanitizes html special characters from input strings. For mitigating risk of XSS attacks.\n * @param rawText The raw input from the user that should be escaped.\n */\nfunction escapeHtml(rawText) {\n return rawText\n .replace(/</g, '<')\n .replace(/>/g, '>')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n}\n\n/**\n * Escapes html tags and special symbols from all provided params which were returned from parseArgs().params.\n * This method performs an in-place operation on the params object.\n *\n * @param {any} params Parameters as provided from `parseArgs().params`.\n * May be either an array of strings or a string->any map.\n *\n * @returns The manipulated `params` object.\n */\nfunction escapeParams(params) {\n if(params != null) {\n Object.keys(params).forEach(function (key) {\n if(typeof(params[key]) == 'string') {\n params[key] = escapeHtml(params[key]);\n }\n });\n }\n return params\n}\n\n/* */\n\nfunction extend (Vue) {\n if (!Vue.prototype.hasOwnProperty('$i18n')) {\n // $FlowFixMe\n Object.defineProperty(Vue.prototype, '$i18n', {\n get: function get () { return this._i18n }\n });\n }\n\n Vue.prototype.$t = function (key) {\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n\n var i18n = this.$i18n;\n return i18n._t.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this ].concat( values ))\n };\n\n Vue.prototype.$tc = function (key, choice) {\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n\n var i18n = this.$i18n;\n return i18n._tc.apply(i18n, [ key, i18n.locale, i18n._getMessages(), this, choice ].concat( values ))\n };\n\n Vue.prototype.$te = function (key, locale) {\n var i18n = this.$i18n;\n return i18n._te(key, i18n.locale, i18n._getMessages(), locale)\n };\n\n Vue.prototype.$d = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).d.apply(ref, [ value ].concat( args ))\n };\n\n Vue.prototype.$n = function (value) {\n var ref;\n\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n return (ref = this.$i18n).n.apply(ref, [ value ].concat( args ))\n };\n}\n\n/* */\n\nvar mixin = {\n beforeCreate: function beforeCreate () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n options.__i18n.forEach(function (resource) {\n localeMessages = merge(localeMessages, JSON.parse(resource));\n });\n Object.keys(localeMessages).forEach(function (locale) {\n options.i18n.mergeLocaleMessage(locale, localeMessages[locale]);\n });\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n error(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n this._i18n = options.i18n;\n this._i18nWatcher = this._i18n.watchI18nData();\n } else if (isPlainObject(options.i18n)) {\n var rootI18n = this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n\n ? this.$root.$i18n\n : null;\n // component local i18n\n if (rootI18n) {\n options.i18n.root = this.$root;\n options.i18n.formatter = rootI18n.formatter;\n options.i18n.fallbackLocale = rootI18n.fallbackLocale;\n options.i18n.formatFallbackMessages = rootI18n.formatFallbackMessages;\n options.i18n.silentTranslationWarn = rootI18n.silentTranslationWarn;\n options.i18n.silentFallbackWarn = rootI18n.silentFallbackWarn;\n options.i18n.pluralizationRules = rootI18n.pluralizationRules;\n options.i18n.preserveDirectiveContent = rootI18n.preserveDirectiveContent;\n }\n\n // init locale messages via custom blocks\n if (options.__i18n) {\n try {\n var localeMessages$1 = options.i18n && options.i18n.messages ? options.i18n.messages : {};\n options.__i18n.forEach(function (resource) {\n localeMessages$1 = merge(localeMessages$1, JSON.parse(resource));\n });\n options.i18n.messages = localeMessages$1;\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot parse locale messages via custom blocks.\", e);\n }\n }\n }\n\n var ref = options.i18n;\n var sharedMessages = ref.sharedMessages;\n if (sharedMessages && isPlainObject(sharedMessages)) {\n options.i18n.messages = merge(options.i18n.messages, sharedMessages);\n }\n\n this._i18n = new VueI18n(options.i18n);\n this._i18nWatcher = this._i18n.watchI18nData();\n\n if (options.i18n.sync === undefined || !!options.i18n.sync) {\n this._localeWatcher = this.$i18n.watchLocale();\n }\n\n if (rootI18n) {\n rootI18n.onComponentInstanceCreated(this._i18n);\n }\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n // root i18n\n this._i18n = this.$root.$i18n;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n // parent i18n\n this._i18n = options.parent.$i18n;\n }\n },\n\n beforeMount: function beforeMount () {\n var options = this.$options;\n options.i18n = options.i18n || (options.__i18n ? {} : null);\n\n if (options.i18n) {\n if (options.i18n instanceof VueI18n) {\n // init locale messages via custom blocks\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (isPlainObject(options.i18n)) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Cannot be interpreted 'i18n' option.\");\n }\n }\n } else if (this.$root && this.$root.$i18n && this.$root.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n } else if (options.parent && options.parent.$i18n && options.parent.$i18n instanceof VueI18n) {\n this._i18n.subscribeDataChanging(this);\n this._subscribing = true;\n }\n },\n\n mounted: function mounted () {\n if (this !== this.$root && this.$options.__INTLIFY_META__ && this.$el) {\n this.$el.setAttribute('data-intlify', this.$options.__INTLIFY_META__);\n }\n },\n\n beforeDestroy: function beforeDestroy () {\n if (!this._i18n) { return }\n\n var self = this;\n this.$nextTick(function () {\n if (self._subscribing) {\n self._i18n.unsubscribeDataChanging(self);\n delete self._subscribing;\n }\n\n if (self._i18nWatcher) {\n self._i18nWatcher();\n self._i18n.destroyVM();\n delete self._i18nWatcher;\n }\n\n if (self._localeWatcher) {\n self._localeWatcher();\n delete self._localeWatcher;\n }\n });\n }\n};\n\n/* */\n\nvar interpolationComponent = {\n name: 'i18n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n path: {\n type: String,\n required: true\n },\n locale: {\n type: String\n },\n places: {\n type: [Array, Object]\n }\n },\n render: function render (h, ref) {\n var data = ref.data;\n var parent = ref.parent;\n var props = ref.props;\n var slots = ref.slots;\n\n var $i18n = parent.$i18n;\n if (!$i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return\n }\n\n var path = props.path;\n var locale = props.locale;\n var places = props.places;\n var params = slots();\n var children = $i18n.i(\n path,\n locale,\n onlyHasDefaultPlace(params) || places\n ? useLegacyPlaces(params.default, places)\n : params\n );\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag ? h(tag, data, children) : children\n }\n};\n\nfunction onlyHasDefaultPlace (params) {\n var prop;\n for (prop in params) {\n if (prop !== 'default') { return false }\n }\n return Boolean(prop)\n}\n\nfunction useLegacyPlaces (children, places) {\n var params = places ? createParamsFromPlaces(places) : {};\n\n if (!children) { return params }\n\n // Filter empty text nodes\n children = children.filter(function (child) {\n return child.tag || child.text.trim() !== ''\n });\n\n var everyPlace = children.every(vnodeHasPlaceAttribute);\n if (process.env.NODE_ENV !== 'production' && everyPlace) {\n warn('`place` attribute is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return children.reduce(\n everyPlace ? assignChildPlace : assignChildIndex,\n params\n )\n}\n\nfunction createParamsFromPlaces (places) {\n if (process.env.NODE_ENV !== 'production') {\n warn('`places` prop is deprecated in next major version. Please switch to Vue slots.');\n }\n\n return Array.isArray(places)\n ? places.reduce(assignChildIndex, {})\n : Object.assign({}, places)\n}\n\nfunction assignChildPlace (params, child) {\n if (child.data && child.data.attrs && child.data.attrs.place) {\n params[child.data.attrs.place] = child;\n }\n return params\n}\n\nfunction assignChildIndex (params, child, index) {\n params[index] = child;\n return params\n}\n\nfunction vnodeHasPlaceAttribute (vnode) {\n return Boolean(vnode.data && vnode.data.attrs && vnode.data.attrs.place)\n}\n\n/* */\n\nvar numberComponent = {\n name: 'i18n-n',\n functional: true,\n props: {\n tag: {\n type: [String, Boolean, Object],\n default: 'span'\n },\n value: {\n type: Number,\n required: true\n },\n format: {\n type: [String, Object]\n },\n locale: {\n type: String\n }\n },\n render: function render (h, ref) {\n var props = ref.props;\n var parent = ref.parent;\n var data = ref.data;\n\n var i18n = parent.$i18n;\n\n if (!i18n) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot find VueI18n instance!');\n }\n return null\n }\n\n var key = null;\n var options = null;\n\n if (isString(props.format)) {\n key = props.format;\n } else if (isObject(props.format)) {\n if (props.format.key) {\n key = props.format.key;\n }\n\n // Filter out number format options only\n options = Object.keys(props.format).reduce(function (acc, prop) {\n var obj;\n\n if (includes(numberFormatKeys, prop)) {\n return Object.assign({}, acc, ( obj = {}, obj[prop] = props.format[prop], obj ))\n }\n return acc\n }, null);\n }\n\n var locale = props.locale || i18n.locale;\n var parts = i18n._ntp(props.value, locale, key, options);\n\n var values = parts.map(function (part, index) {\n var obj;\n\n var slot = data.scopedSlots && data.scopedSlots[part.type];\n return slot ? slot(( obj = {}, obj[part.type] = part.value, obj.index = index, obj.parts = parts, obj )) : part.value\n });\n\n var tag = (!!props.tag && props.tag !== true) || props.tag === false ? props.tag : 'span';\n return tag\n ? h(tag, {\n attrs: data.attrs,\n 'class': data['class'],\n staticClass: data.staticClass\n }, values)\n : values\n }\n};\n\n/* */\n\nfunction bind (el, binding, vnode) {\n if (!assert(el, vnode)) { return }\n\n t(el, binding, vnode);\n}\n\nfunction update (el, binding, vnode, oldVNode) {\n if (!assert(el, vnode)) { return }\n\n var i18n = vnode.context.$i18n;\n if (localeEqual(el, vnode) &&\n (looseEqual(binding.value, binding.oldValue) &&\n looseEqual(el._localeMessage, i18n.getLocaleMessage(i18n.locale)))) { return }\n\n t(el, binding, vnode);\n}\n\nfunction unbind (el, binding, vnode, oldVNode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return\n }\n\n var i18n = vnode.context.$i18n || {};\n if (!binding.modifiers.preserve && !i18n.preserveDirectiveContent) {\n el.textContent = '';\n }\n el._vt = undefined;\n delete el['_vt'];\n el._locale = undefined;\n delete el['_locale'];\n el._localeMessage = undefined;\n delete el['_localeMessage'];\n}\n\nfunction assert (el, vnode) {\n var vm = vnode.context;\n if (!vm) {\n warn('Vue instance does not exists in VNode context');\n return false\n }\n\n if (!vm.$i18n) {\n warn('VueI18n instance does not exists in Vue instance');\n return false\n }\n\n return true\n}\n\nfunction localeEqual (el, vnode) {\n var vm = vnode.context;\n return el._locale === vm.$i18n.locale\n}\n\nfunction t (el, binding, vnode) {\n var ref$1, ref$2;\n\n var value = binding.value;\n\n var ref = parseValue(value);\n var path = ref.path;\n var locale = ref.locale;\n var args = ref.args;\n var choice = ref.choice;\n if (!path && !locale && !args) {\n warn('value type not supported');\n return\n }\n\n if (!path) {\n warn('`path` is required in v-t directive');\n return\n }\n\n var vm = vnode.context;\n if (choice != null) {\n el._vt = el.textContent = (ref$1 = vm.$i18n).tc.apply(ref$1, [ path, choice ].concat( makeParams(locale, args) ));\n } else {\n el._vt = el.textContent = (ref$2 = vm.$i18n).t.apply(ref$2, [ path ].concat( makeParams(locale, args) ));\n }\n el._locale = vm.$i18n.locale;\n el._localeMessage = vm.$i18n.getLocaleMessage(vm.$i18n.locale);\n}\n\nfunction parseValue (value) {\n var path;\n var locale;\n var args;\n var choice;\n\n if (isString(value)) {\n path = value;\n } else if (isPlainObject(value)) {\n path = value.path;\n locale = value.locale;\n args = value.args;\n choice = value.choice;\n }\n\n return { path: path, locale: locale, args: args, choice: choice }\n}\n\nfunction makeParams (locale, args) {\n var params = [];\n\n locale && params.push(locale);\n if (args && (Array.isArray(args) || isPlainObject(args))) {\n params.push(args);\n }\n\n return params\n}\n\nvar Vue;\n\nfunction install (_Vue) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && install.installed && _Vue === Vue) {\n warn('already installed.');\n return\n }\n install.installed = true;\n\n Vue = _Vue;\n\n var version = (Vue.version && Number(Vue.version.split('.')[0])) || -1;\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && version < 2) {\n warn((\"vue-i18n (\" + (install.version) + \") need to use Vue 2.0 or later (Vue: \" + (Vue.version) + \").\"));\n return\n }\n\n extend(Vue);\n Vue.mixin(mixin);\n Vue.directive('t', { bind: bind, update: update, unbind: unbind });\n Vue.component(interpolationComponent.name, interpolationComponent);\n Vue.component(numberComponent.name, numberComponent);\n\n // use simple mergeStrategies to prevent i18n instance lose '__proto__'\n var strats = Vue.config.optionMergeStrategies;\n strats.i18n = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n };\n}\n\n/* */\n\nvar BaseFormatter = function BaseFormatter () {\n this._caches = Object.create(null);\n};\n\nBaseFormatter.prototype.interpolate = function interpolate (message, values) {\n if (!values) {\n return [message]\n }\n var tokens = this._caches[message];\n if (!tokens) {\n tokens = parse(message);\n this._caches[message] = tokens;\n }\n return compile(tokens, values)\n};\n\n\n\nvar RE_TOKEN_LIST_VALUE = /^(?:\\d)+/;\nvar RE_TOKEN_NAMED_VALUE = /^(?:\\w)+/;\n\nfunction parse (format) {\n var tokens = [];\n var position = 0;\n\n var text = '';\n while (position < format.length) {\n var char = format[position++];\n if (char === '{') {\n if (text) {\n tokens.push({ type: 'text', value: text });\n }\n\n text = '';\n var sub = '';\n char = format[position++];\n while (char !== undefined && char !== '}') {\n sub += char;\n char = format[position++];\n }\n var isClosed = char === '}';\n\n var type = RE_TOKEN_LIST_VALUE.test(sub)\n ? 'list'\n : isClosed && RE_TOKEN_NAMED_VALUE.test(sub)\n ? 'named'\n : 'unknown';\n tokens.push({ value: sub, type: type });\n } else if (char === '%') {\n // when found rails i18n syntax, skip text capture\n if (format[(position)] !== '{') {\n text += char;\n }\n } else {\n text += char;\n }\n }\n\n text && tokens.push({ type: 'text', value: text });\n\n return tokens\n}\n\nfunction compile (tokens, values) {\n var compiled = [];\n var index = 0;\n\n var mode = Array.isArray(values)\n ? 'list'\n : isObject(values)\n ? 'named'\n : 'unknown';\n if (mode === 'unknown') { return compiled }\n\n while (index < tokens.length) {\n var token = tokens[index];\n switch (token.type) {\n case 'text':\n compiled.push(token.value);\n break\n case 'list':\n compiled.push(values[parseInt(token.value, 10)]);\n break\n case 'named':\n if (mode === 'named') {\n compiled.push((values)[token.value]);\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Type of token '\" + (token.type) + \"' and format of value '\" + mode + \"' don't match!\"));\n }\n }\n break\n case 'unknown':\n if (process.env.NODE_ENV !== 'production') {\n warn(\"Detect 'unknown' type of token!\");\n }\n break\n }\n index++;\n }\n\n return compiled\n}\n\n/* */\n\n/**\n * Path parser\n * - Inspired:\n * Vue.js Path parser\n */\n\n// actions\nvar APPEND = 0;\nvar PUSH = 1;\nvar INC_SUB_PATH_DEPTH = 2;\nvar PUSH_SUB_PATH = 3;\n\n// states\nvar BEFORE_PATH = 0;\nvar IN_PATH = 1;\nvar BEFORE_IDENT = 2;\nvar IN_IDENT = 3;\nvar IN_SUB_PATH = 4;\nvar IN_SINGLE_QUOTE = 5;\nvar IN_DOUBLE_QUOTE = 6;\nvar AFTER_PATH = 7;\nvar ERROR = 8;\n\nvar pathStateMachine = [];\n\npathStateMachine[BEFORE_PATH] = {\n 'ws': [BEFORE_PATH],\n 'ident': [IN_IDENT, APPEND],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[IN_PATH] = {\n 'ws': [IN_PATH],\n '.': [BEFORE_IDENT],\n '[': [IN_SUB_PATH],\n 'eof': [AFTER_PATH]\n};\n\npathStateMachine[BEFORE_IDENT] = {\n 'ws': [BEFORE_IDENT],\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND]\n};\n\npathStateMachine[IN_IDENT] = {\n 'ident': [IN_IDENT, APPEND],\n '0': [IN_IDENT, APPEND],\n 'number': [IN_IDENT, APPEND],\n 'ws': [IN_PATH, PUSH],\n '.': [BEFORE_IDENT, PUSH],\n '[': [IN_SUB_PATH, PUSH],\n 'eof': [AFTER_PATH, PUSH]\n};\n\npathStateMachine[IN_SUB_PATH] = {\n \"'\": [IN_SINGLE_QUOTE, APPEND],\n '\"': [IN_DOUBLE_QUOTE, APPEND],\n '[': [IN_SUB_PATH, INC_SUB_PATH_DEPTH],\n ']': [IN_PATH, PUSH_SUB_PATH],\n 'eof': ERROR,\n 'else': [IN_SUB_PATH, APPEND]\n};\n\npathStateMachine[IN_SINGLE_QUOTE] = {\n \"'\": [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_SINGLE_QUOTE, APPEND]\n};\n\npathStateMachine[IN_DOUBLE_QUOTE] = {\n '\"': [IN_SUB_PATH, APPEND],\n 'eof': ERROR,\n 'else': [IN_DOUBLE_QUOTE, APPEND]\n};\n\n/**\n * Check if an expression is a literal value.\n */\n\nvar literalValueRE = /^\\s?(?:true|false|-?[\\d.]+|'[^']*'|\"[^\"]*\")\\s?$/;\nfunction isLiteral (exp) {\n return literalValueRE.test(exp)\n}\n\n/**\n * Strip quotes from a string\n */\n\nfunction stripQuotes (str) {\n var a = str.charCodeAt(0);\n var b = str.charCodeAt(str.length - 1);\n return a === b && (a === 0x22 || a === 0x27)\n ? str.slice(1, -1)\n : str\n}\n\n/**\n * Determine the type of a character in a keypath.\n */\n\nfunction getPathCharType (ch) {\n if (ch === undefined || ch === null) { return 'eof' }\n\n var code = ch.charCodeAt(0);\n\n switch (code) {\n case 0x5B: // [\n case 0x5D: // ]\n case 0x2E: // .\n case 0x22: // \"\n case 0x27: // '\n return ch\n\n case 0x5F: // _\n case 0x24: // $\n case 0x2D: // -\n return 'ident'\n\n case 0x09: // Tab\n case 0x0A: // Newline\n case 0x0D: // Return\n case 0xA0: // No-break space\n case 0xFEFF: // Byte Order Mark\n case 0x2028: // Line Separator\n case 0x2029: // Paragraph Separator\n return 'ws'\n }\n\n return 'ident'\n}\n\n/**\n * Format a subPath, return its plain form if it is\n * a literal string or number. Otherwise prepend the\n * dynamic indicator (*).\n */\n\nfunction formatSubPath (path) {\n var trimmed = path.trim();\n // invalid leading 0\n if (path.charAt(0) === '0' && isNaN(path)) { return false }\n\n return isLiteral(trimmed) ? stripQuotes(trimmed) : '*' + trimmed\n}\n\n/**\n * Parse a string path into an array of segments\n */\n\nfunction parse$1 (path) {\n var keys = [];\n var index = -1;\n var mode = BEFORE_PATH;\n var subPathDepth = 0;\n var c;\n var key;\n var newChar;\n var type;\n var transition;\n var action;\n var typeMap;\n var actions = [];\n\n actions[PUSH] = function () {\n if (key !== undefined) {\n keys.push(key);\n key = undefined;\n }\n };\n\n actions[APPEND] = function () {\n if (key === undefined) {\n key = newChar;\n } else {\n key += newChar;\n }\n };\n\n actions[INC_SUB_PATH_DEPTH] = function () {\n actions[APPEND]();\n subPathDepth++;\n };\n\n actions[PUSH_SUB_PATH] = function () {\n if (subPathDepth > 0) {\n subPathDepth--;\n mode = IN_SUB_PATH;\n actions[APPEND]();\n } else {\n subPathDepth = 0;\n if (key === undefined) { return false }\n key = formatSubPath(key);\n if (key === false) {\n return false\n } else {\n actions[PUSH]();\n }\n }\n };\n\n function maybeUnescapeQuote () {\n var nextChar = path[index + 1];\n if ((mode === IN_SINGLE_QUOTE && nextChar === \"'\") ||\n (mode === IN_DOUBLE_QUOTE && nextChar === '\"')) {\n index++;\n newChar = '\\\\' + nextChar;\n actions[APPEND]();\n return true\n }\n }\n\n while (mode !== null) {\n index++;\n c = path[index];\n\n if (c === '\\\\' && maybeUnescapeQuote()) {\n continue\n }\n\n type = getPathCharType(c);\n typeMap = pathStateMachine[mode];\n transition = typeMap[type] || typeMap['else'] || ERROR;\n\n if (transition === ERROR) {\n return // parse error\n }\n\n mode = transition[0];\n action = actions[transition[1]];\n if (action) {\n newChar = transition[2];\n newChar = newChar === undefined\n ? c\n : newChar;\n if (action() === false) {\n return\n }\n }\n\n if (mode === AFTER_PATH) {\n return keys\n }\n }\n}\n\n\n\n\n\nvar I18nPath = function I18nPath () {\n this._cache = Object.create(null);\n};\n\n/**\n * External parse that check for a cache hit first\n */\nI18nPath.prototype.parsePath = function parsePath (path) {\n var hit = this._cache[path];\n if (!hit) {\n hit = parse$1(path);\n if (hit) {\n this._cache[path] = hit;\n }\n }\n return hit || []\n};\n\n/**\n * Get path value from path string\n */\nI18nPath.prototype.getPathValue = function getPathValue (obj, path) {\n if (!isObject(obj)) { return null }\n\n var paths = this.parsePath(path);\n if (paths.length === 0) {\n return null\n } else {\n var length = paths.length;\n var last = obj;\n var i = 0;\n while (i < length) {\n var value = last[paths[i]];\n if (value === undefined || value === null) {\n return null\n }\n last = value;\n i++;\n }\n\n return last\n }\n};\n\n/* */\n\n\n\nvar htmlTagMatcher = /<\\/?[\\w\\s=\"/.':;#-\\/]+>/;\nvar linkKeyMatcher = /(?:@(?:\\.[a-z]+)?:(?:[\\w\\-_|.]+|\\([\\w\\-_|.]+\\)))/g;\nvar linkKeyPrefixMatcher = /^@(?:\\.([a-z]+))?:/;\nvar bracketsMatcher = /[()]/g;\nvar defaultModifiers = {\n 'upper': function (str) { return str.toLocaleUpperCase(); },\n 'lower': function (str) { return str.toLocaleLowerCase(); },\n 'capitalize': function (str) { return (\"\" + (str.charAt(0).toLocaleUpperCase()) + (str.substr(1))); }\n};\n\nvar defaultFormatter = new BaseFormatter();\n\nvar VueI18n = function VueI18n (options) {\n var this$1 = this;\n if ( options === void 0 ) options = {};\n\n // Auto install if it is not done yet and `window` has `Vue`.\n // To allow users to avoid auto-installation in some cases,\n // this code should be placed here. See #290\n /* istanbul ignore if */\n if (!Vue && typeof window !== 'undefined' && window.Vue) {\n install(window.Vue);\n }\n\n var locale = options.locale || 'en-US';\n var fallbackLocale = options.fallbackLocale === false\n ? false\n : options.fallbackLocale || 'en-US';\n var messages = options.messages || {};\n var dateTimeFormats = options.dateTimeFormats || {};\n var numberFormats = options.numberFormats || {};\n\n this._vm = null;\n this._formatter = options.formatter || defaultFormatter;\n this._modifiers = options.modifiers || {};\n this._missing = options.missing || null;\n this._root = options.root || null;\n this._sync = options.sync === undefined ? true : !!options.sync;\n this._fallbackRoot = options.fallbackRoot === undefined\n ? true\n : !!options.fallbackRoot;\n this._formatFallbackMessages = options.formatFallbackMessages === undefined\n ? false\n : !!options.formatFallbackMessages;\n this._silentTranslationWarn = options.silentTranslationWarn === undefined\n ? false\n : options.silentTranslationWarn;\n this._silentFallbackWarn = options.silentFallbackWarn === undefined\n ? false\n : !!options.silentFallbackWarn;\n this._dateTimeFormatters = {};\n this._numberFormatters = {};\n this._path = new I18nPath();\n this._dataListeners = new Set();\n this._componentInstanceCreatedListener = options.componentInstanceCreatedListener || null;\n this._preserveDirectiveContent = options.preserveDirectiveContent === undefined\n ? false\n : !!options.preserveDirectiveContent;\n this.pluralizationRules = options.pluralizationRules || {};\n this._warnHtmlInMessage = options.warnHtmlInMessage || 'off';\n this._postTranslation = options.postTranslation || null;\n this._escapeParameterHtml = options.escapeParameterHtml || false;\n\n /**\n * @param choice {number} a choice index given by the input to $tc: `$tc('path.to.rule', choiceIndex)`\n * @param choicesLength {number} an overall amount of available choices\n * @returns a final choice index\n */\n this.getChoiceIndex = function (choice, choicesLength) {\n var thisPrototype = Object.getPrototypeOf(this$1);\n if (thisPrototype && thisPrototype.getChoiceIndex) {\n var prototypeGetChoiceIndex = (thisPrototype.getChoiceIndex);\n return (prototypeGetChoiceIndex).call(this$1, choice, choicesLength)\n }\n\n // Default (old) getChoiceIndex implementation - english-compatible\n var defaultImpl = function (_choice, _choicesLength) {\n _choice = Math.abs(_choice);\n\n if (_choicesLength === 2) {\n return _choice\n ? _choice > 1\n ? 1\n : 0\n : 1\n }\n\n return _choice ? Math.min(_choice, 2) : 0\n };\n\n if (this$1.locale in this$1.pluralizationRules) {\n return this$1.pluralizationRules[this$1.locale].apply(this$1, [choice, choicesLength])\n } else {\n return defaultImpl(choice, choicesLength)\n }\n };\n\n\n this._exist = function (message, key) {\n if (!message || !key) { return false }\n if (!isNull(this$1._path.getPathValue(message, key))) { return true }\n // fallback for flat key\n if (message[key]) { return true }\n return false\n };\n\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n\n this._initVM({\n locale: locale,\n fallbackLocale: fallbackLocale,\n messages: messages,\n dateTimeFormats: dateTimeFormats,\n numberFormats: numberFormats\n });\n};\n\nvar prototypeAccessors = { vm: { configurable: true },messages: { configurable: true },dateTimeFormats: { configurable: true },numberFormats: { configurable: true },availableLocales: { configurable: true },locale: { configurable: true },fallbackLocale: { configurable: true },formatFallbackMessages: { configurable: true },missing: { configurable: true },formatter: { configurable: true },silentTranslationWarn: { configurable: true },silentFallbackWarn: { configurable: true },preserveDirectiveContent: { configurable: true },warnHtmlInMessage: { configurable: true },postTranslation: { configurable: true } };\n\nVueI18n.prototype._checkLocaleMessage = function _checkLocaleMessage (locale, level, message) {\n var paths = [];\n\n var fn = function (level, locale, message, paths) {\n if (isPlainObject(message)) {\n Object.keys(message).forEach(function (key) {\n var val = message[key];\n if (isPlainObject(val)) {\n paths.push(key);\n paths.push('.');\n fn(level, locale, val, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push(key);\n fn(level, locale, val, paths);\n paths.pop();\n }\n });\n } else if (isArray(message)) {\n message.forEach(function (item, index) {\n if (isPlainObject(item)) {\n paths.push((\"[\" + index + \"]\"));\n paths.push('.');\n fn(level, locale, item, paths);\n paths.pop();\n paths.pop();\n } else {\n paths.push((\"[\" + index + \"]\"));\n fn(level, locale, item, paths);\n paths.pop();\n }\n });\n } else if (isString(message)) {\n var ret = htmlTagMatcher.test(message);\n if (ret) {\n var msg = \"Detected HTML in message '\" + message + \"' of keypath '\" + (paths.join('')) + \"' at '\" + locale + \"'. Consider component interpolation with '<i18n>' to avoid XSS. See https://bit.ly/2ZqJzkp\";\n if (level === 'warn') {\n warn(msg);\n } else if (level === 'error') {\n error(msg);\n }\n }\n }\n };\n\n fn(level, locale, message, paths);\n};\n\nVueI18n.prototype._initVM = function _initVM (data) {\n var silent = Vue.config.silent;\n Vue.config.silent = true;\n this._vm = new Vue({ data: data });\n Vue.config.silent = silent;\n};\n\nVueI18n.prototype.destroyVM = function destroyVM () {\n this._vm.$destroy();\n};\n\nVueI18n.prototype.subscribeDataChanging = function subscribeDataChanging (vm) {\n this._dataListeners.add(vm);\n};\n\nVueI18n.prototype.unsubscribeDataChanging = function unsubscribeDataChanging (vm) {\n remove(this._dataListeners, vm);\n};\n\nVueI18n.prototype.watchI18nData = function watchI18nData () {\n var self = this;\n return this._vm.$watch('$data', function () {\n self._dataListeners.forEach(function (e) {\n Vue.nextTick(function () {\n e && e.$forceUpdate();\n });\n });\n }, { deep: true })\n};\n\nVueI18n.prototype.watchLocale = function watchLocale () {\n /* istanbul ignore if */\n if (!this._sync || !this._root) { return null }\n var target = this._vm;\n return this._root.$i18n.vm.$watch('locale', function (val) {\n target.$set(target, 'locale', val);\n target.$forceUpdate();\n }, { immediate: true })\n};\n\nVueI18n.prototype.onComponentInstanceCreated = function onComponentInstanceCreated (newI18n) {\n if (this._componentInstanceCreatedListener) {\n this._componentInstanceCreatedListener(newI18n, this);\n }\n};\n\nprototypeAccessors.vm.get = function () { return this._vm };\n\nprototypeAccessors.messages.get = function () { return looseClone(this._getMessages()) };\nprototypeAccessors.dateTimeFormats.get = function () { return looseClone(this._getDateTimeFormats()) };\nprototypeAccessors.numberFormats.get = function () { return looseClone(this._getNumberFormats()) };\nprototypeAccessors.availableLocales.get = function () { return Object.keys(this.messages).sort() };\n\nprototypeAccessors.locale.get = function () { return this._vm.locale };\nprototypeAccessors.locale.set = function (locale) {\n this._vm.$set(this._vm, 'locale', locale);\n};\n\nprototypeAccessors.fallbackLocale.get = function () { return this._vm.fallbackLocale };\nprototypeAccessors.fallbackLocale.set = function (locale) {\n this._localeChainCache = {};\n this._vm.$set(this._vm, 'fallbackLocale', locale);\n};\n\nprototypeAccessors.formatFallbackMessages.get = function () { return this._formatFallbackMessages };\nprototypeAccessors.formatFallbackMessages.set = function (fallback) { this._formatFallbackMessages = fallback; };\n\nprototypeAccessors.missing.get = function () { return this._missing };\nprototypeAccessors.missing.set = function (handler) { this._missing = handler; };\n\nprototypeAccessors.formatter.get = function () { return this._formatter };\nprototypeAccessors.formatter.set = function (formatter) { this._formatter = formatter; };\n\nprototypeAccessors.silentTranslationWarn.get = function () { return this._silentTranslationWarn };\nprototypeAccessors.silentTranslationWarn.set = function (silent) { this._silentTranslationWarn = silent; };\n\nprototypeAccessors.silentFallbackWarn.get = function () { return this._silentFallbackWarn };\nprototypeAccessors.silentFallbackWarn.set = function (silent) { this._silentFallbackWarn = silent; };\n\nprototypeAccessors.preserveDirectiveContent.get = function () { return this._preserveDirectiveContent };\nprototypeAccessors.preserveDirectiveContent.set = function (preserve) { this._preserveDirectiveContent = preserve; };\n\nprototypeAccessors.warnHtmlInMessage.get = function () { return this._warnHtmlInMessage };\nprototypeAccessors.warnHtmlInMessage.set = function (level) {\n var this$1 = this;\n\n var orgLevel = this._warnHtmlInMessage;\n this._warnHtmlInMessage = level;\n if (orgLevel !== level && (level === 'warn' || level === 'error')) {\n var messages = this._getMessages();\n Object.keys(messages).forEach(function (locale) {\n this$1._checkLocaleMessage(locale, this$1._warnHtmlInMessage, messages[locale]);\n });\n }\n};\n\nprototypeAccessors.postTranslation.get = function () { return this._postTranslation };\nprototypeAccessors.postTranslation.set = function (handler) { this._postTranslation = handler; };\n\nVueI18n.prototype._getMessages = function _getMessages () { return this._vm.messages };\nVueI18n.prototype._getDateTimeFormats = function _getDateTimeFormats () { return this._vm.dateTimeFormats };\nVueI18n.prototype._getNumberFormats = function _getNumberFormats () { return this._vm.numberFormats };\n\nVueI18n.prototype._warnDefault = function _warnDefault (locale, key, result, vm, values, interpolateMode) {\n if (!isNull(result)) { return result }\n if (this._missing) {\n var missingRet = this._missing.apply(null, [locale, key, vm, values]);\n if (isString(missingRet)) {\n return missingRet\n }\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn(\n \"Cannot translate the value of keypath '\" + key + \"'. \" +\n 'Use the value of keypath as default.'\n );\n }\n }\n\n if (this._formatFallbackMessages) {\n var parsedArgs = parseArgs.apply(void 0, values);\n return this._render(key, interpolateMode, parsedArgs.params, key)\n } else {\n return key\n }\n};\n\nVueI18n.prototype._isFallbackRoot = function _isFallbackRoot (val) {\n return !val && !isNull(this._root) && this._fallbackRoot\n};\n\nVueI18n.prototype._isSilentFallbackWarn = function _isSilentFallbackWarn (key) {\n return this._silentFallbackWarn instanceof RegExp\n ? this._silentFallbackWarn.test(key)\n : this._silentFallbackWarn\n};\n\nVueI18n.prototype._isSilentFallback = function _isSilentFallback (locale, key) {\n return this._isSilentFallbackWarn(key) && (this._isFallbackRoot() || locale !== this.fallbackLocale)\n};\n\nVueI18n.prototype._isSilentTranslationWarn = function _isSilentTranslationWarn (key) {\n return this._silentTranslationWarn instanceof RegExp\n ? this._silentTranslationWarn.test(key)\n : this._silentTranslationWarn\n};\n\nVueI18n.prototype._interpolate = function _interpolate (\n locale,\n message,\n key,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n if (!message) { return null }\n\n var pathRet = this._path.getPathValue(message, key);\n if (isArray(pathRet) || isPlainObject(pathRet)) { return pathRet }\n\n var ret;\n if (isNull(pathRet)) {\n /* istanbul ignore else */\n if (isPlainObject(message)) {\n ret = message[key];\n if (!(isString(ret) || isFunction(ret))) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function !\"));\n }\n return null\n }\n } else {\n return null\n }\n } else {\n /* istanbul ignore else */\n if (isString(pathRet) || isFunction(pathRet)) {\n ret = pathRet;\n } else {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallback(locale, key)) {\n warn((\"Value of key '\" + key + \"' is not a string or function!\"));\n }\n return null\n }\n }\n\n // Check for the existence of links within the translated string\n if (isString(ret) && (ret.indexOf('@:') >= 0 || ret.indexOf('@.') >= 0)) {\n ret = this._link(locale, message, ret, host, 'raw', values, visitedLinkStack);\n }\n\n return this._render(ret, interpolateMode, values, key)\n};\n\nVueI18n.prototype._link = function _link (\n locale,\n message,\n str,\n host,\n interpolateMode,\n values,\n visitedLinkStack\n) {\n var ret = str;\n\n // Match all the links within the local\n // We are going to replace each of\n // them with its translation\n var matches = ret.match(linkKeyMatcher);\n for (var idx in matches) {\n // ie compatible: filter custom array\n // prototype method\n if (!matches.hasOwnProperty(idx)) {\n continue\n }\n var link = matches[idx];\n var linkKeyPrefixMatches = link.match(linkKeyPrefixMatcher);\n var linkPrefix = linkKeyPrefixMatches[0];\n var formatterName = linkKeyPrefixMatches[1];\n\n // Remove the leading @:, @.case: and the brackets\n var linkPlaceholder = link.replace(linkPrefix, '').replace(bracketsMatcher, '');\n\n if (includes(visitedLinkStack, linkPlaceholder)) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Circular reference found. \\\"\" + link + \"\\\" is already visited in the chain of \" + (visitedLinkStack.reverse().join(' <- '))));\n }\n return ret\n }\n visitedLinkStack.push(linkPlaceholder);\n\n // Translate the link\n var translated = this._interpolate(\n locale, message, linkPlaceholder, host,\n interpolateMode === 'raw' ? 'string' : interpolateMode,\n interpolateMode === 'raw' ? undefined : values,\n visitedLinkStack\n );\n\n if (this._isFallbackRoot(translated)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(linkPlaceholder)) {\n warn((\"Fall back to translate the link placeholder '\" + linkPlaceholder + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n var root = this._root.$i18n;\n translated = root._translate(\n root._getMessages(), root.locale, root.fallbackLocale,\n linkPlaceholder, host, interpolateMode, values\n );\n }\n translated = this._warnDefault(\n locale, linkPlaceholder, translated, host,\n isArray(values) ? values : [values],\n interpolateMode\n );\n\n if (this._modifiers.hasOwnProperty(formatterName)) {\n translated = this._modifiers[formatterName](translated);\n } else if (defaultModifiers.hasOwnProperty(formatterName)) {\n translated = defaultModifiers[formatterName](translated);\n }\n\n visitedLinkStack.pop();\n\n // Replace the link with the translated\n ret = !translated ? ret : ret.replace(link, translated);\n }\n\n return ret\n};\n\nVueI18n.prototype._createMessageContext = function _createMessageContext (values) {\n var _list = isArray(values) ? values : [];\n var _named = isObject(values) ? values : {};\n var list = function (index) { return _list[index]; };\n var named = function (key) { return _named[key]; };\n return {\n list: list,\n named: named\n }\n};\n\nVueI18n.prototype._render = function _render (message, interpolateMode, values, path) {\n if (isFunction(message)) {\n return message(this._createMessageContext(values))\n }\n\n var ret = this._formatter.interpolate(message, values, path);\n\n // If the custom formatter refuses to work - apply the default one\n if (!ret) {\n ret = defaultFormatter.interpolate(message, values, path);\n }\n\n // if interpolateMode is **not** 'string' ('row'),\n // return the compiled data (e.g. ['foo', VNode, 'bar']) with formatter\n return interpolateMode === 'string' && !isString(ret) ? ret.join('') : ret\n};\n\nVueI18n.prototype._appendItemToChain = function _appendItemToChain (chain, item, blocks) {\n var follow = false;\n if (!includes(chain, item)) {\n follow = true;\n if (item) {\n follow = item[item.length - 1] !== '!';\n item = item.replace(/!/g, '');\n chain.push(item);\n if (blocks && blocks[item]) {\n follow = blocks[item];\n }\n }\n }\n return follow\n};\n\nVueI18n.prototype._appendLocaleToChain = function _appendLocaleToChain (chain, locale, blocks) {\n var follow;\n var tokens = locale.split('-');\n do {\n var item = tokens.join('-');\n follow = this._appendItemToChain(chain, item, blocks);\n tokens.splice(-1, 1);\n } while (tokens.length && (follow === true))\n return follow\n};\n\nVueI18n.prototype._appendBlockToChain = function _appendBlockToChain (chain, block, blocks) {\n var follow = true;\n for (var i = 0; (i < block.length) && (isBoolean(follow)); i++) {\n var locale = block[i];\n if (isString(locale)) {\n follow = this._appendLocaleToChain(chain, locale, blocks);\n }\n }\n return follow\n};\n\nVueI18n.prototype._getLocaleChain = function _getLocaleChain (start, fallbackLocale) {\n if (start === '') { return [] }\n\n if (!this._localeChainCache) {\n this._localeChainCache = {};\n }\n\n var chain = this._localeChainCache[start];\n if (!chain) {\n if (!fallbackLocale) {\n fallbackLocale = this.fallbackLocale;\n }\n chain = [];\n\n // first block defined by start\n var block = [start];\n\n // while any intervening block found\n while (isArray(block)) {\n block = this._appendBlockToChain(\n chain,\n block,\n fallbackLocale\n );\n }\n\n // last block defined by default\n var defaults;\n if (isArray(fallbackLocale)) {\n defaults = fallbackLocale;\n } else if (isObject(fallbackLocale)) {\n /* $FlowFixMe */\n if (fallbackLocale['default']) {\n defaults = fallbackLocale['default'];\n } else {\n defaults = null;\n }\n } else {\n defaults = fallbackLocale;\n }\n\n // convert defaults to array\n if (isString(defaults)) {\n block = [defaults];\n } else {\n block = defaults;\n }\n if (block) {\n this._appendBlockToChain(\n chain,\n block,\n null\n );\n }\n this._localeChainCache[start] = chain;\n }\n return chain\n};\n\nVueI18n.prototype._translate = function _translate (\n messages,\n locale,\n fallback,\n key,\n host,\n interpolateMode,\n args\n) {\n var chain = this._getLocaleChain(locale, fallback);\n var res;\n for (var i = 0; i < chain.length; i++) {\n var step = chain[i];\n res =\n this._interpolate(step, messages[step], key, host, interpolateMode, args, [key]);\n if (!isNull(res)) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with '\" + step + \"' locale.\"));\n }\n return res\n }\n }\n return null\n};\n\nVueI18n.prototype._t = function _t (key, _locale, messages, host) {\n var ref;\n\n var values = [], len = arguments.length - 4;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 4 ];\n if (!key) { return '' }\n\n var parsedArgs = parseArgs.apply(void 0, values);\n if(this._escapeParameterHtml) {\n parsedArgs.params = escapeParams(parsedArgs.params);\n }\n\n var locale = parsedArgs.locale || _locale;\n\n var ret = this._translate(\n messages, locale, this.fallbackLocale, key,\n host, 'string', parsedArgs.params\n );\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to translate the keypath '\" + key + \"' with root locale.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return (ref = this._root).$t.apply(ref, [ key ].concat( values ))\n } else {\n ret = this._warnDefault(locale, key, ret, host, values, 'string');\n if (this._postTranslation && ret !== null && ret !== undefined) {\n ret = this._postTranslation(ret, key);\n }\n return ret\n }\n};\n\nVueI18n.prototype.t = function t (key) {\n var ref;\n\n var values = [], len = arguments.length - 1;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 1 ];\n return (ref = this)._t.apply(ref, [ key, this.locale, this._getMessages(), null ].concat( values ))\n};\n\nVueI18n.prototype._i = function _i (key, locale, messages, host, values) {\n var ret =\n this._translate(messages, locale, this.fallbackLocale, key, host, 'raw', values);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to interpolate the keypath '\" + key + \"' with root locale.\"));\n }\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.i(key, locale, values)\n } else {\n return this._warnDefault(locale, key, ret, host, [values], 'raw')\n }\n};\n\nVueI18n.prototype.i = function i (key, locale, values) {\n /* istanbul ignore if */\n if (!key) { return '' }\n\n if (!isString(locale)) {\n locale = this.locale;\n }\n\n return this._i(key, locale, this._getMessages(), null, values)\n};\n\nVueI18n.prototype._tc = function _tc (\n key,\n _locale,\n messages,\n host,\n choice\n) {\n var ref;\n\n var values = [], len = arguments.length - 5;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 5 ];\n if (!key) { return '' }\n if (choice === undefined) {\n choice = 1;\n }\n\n var predefined = { 'count': choice, 'n': choice };\n var parsedArgs = parseArgs.apply(void 0, values);\n parsedArgs.params = Object.assign(predefined, parsedArgs.params);\n values = parsedArgs.locale === null ? [parsedArgs.params] : [parsedArgs.locale, parsedArgs.params];\n return this.fetchChoice((ref = this)._t.apply(ref, [ key, _locale, messages, host ].concat( values )), choice)\n};\n\nVueI18n.prototype.fetchChoice = function fetchChoice (message, choice) {\n /* istanbul ignore if */\n if (!message || !isString(message)) { return null }\n var choices = message.split('|');\n\n choice = this.getChoiceIndex(choice, choices.length);\n if (!choices[choice]) { return message }\n return choices[choice].trim()\n};\n\nVueI18n.prototype.tc = function tc (key, choice) {\n var ref;\n\n var values = [], len = arguments.length - 2;\n while ( len-- > 0 ) values[ len ] = arguments[ len + 2 ];\n return (ref = this)._tc.apply(ref, [ key, this.locale, this._getMessages(), null, choice ].concat( values ))\n};\n\nVueI18n.prototype._te = function _te (key, locale, messages) {\n var args = [], len = arguments.length - 3;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 3 ];\n\n var _locale = parseArgs.apply(void 0, args).locale || locale;\n return this._exist(messages[_locale], key)\n};\n\nVueI18n.prototype.te = function te (key, locale) {\n return this._te(key, this.locale, this._getMessages(), locale)\n};\n\nVueI18n.prototype.getLocaleMessage = function getLocaleMessage (locale) {\n return looseClone(this._vm.messages[locale] || {})\n};\n\nVueI18n.prototype.setLocaleMessage = function setLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, message);\n};\n\nVueI18n.prototype.mergeLocaleMessage = function mergeLocaleMessage (locale, message) {\n if (this._warnHtmlInMessage === 'warn' || this._warnHtmlInMessage === 'error') {\n this._checkLocaleMessage(locale, this._warnHtmlInMessage, message);\n }\n this._vm.$set(this._vm.messages, locale, merge(\n typeof this._vm.messages[locale] !== 'undefined' && Object.keys(this._vm.messages[locale]).length\n ? this._vm.messages[locale]\n : {},\n message\n ));\n};\n\nVueI18n.prototype.getDateTimeFormat = function getDateTimeFormat (locale) {\n return looseClone(this._vm.dateTimeFormats[locale] || {})\n};\n\nVueI18n.prototype.setDateTimeFormat = function setDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, format);\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype.mergeDateTimeFormat = function mergeDateTimeFormat (locale, format) {\n this._vm.$set(this._vm.dateTimeFormats, locale, merge(this._vm.dateTimeFormats[locale] || {}, format));\n this._clearDateTimeFormat(locale, format);\n};\n\nVueI18n.prototype._clearDateTimeFormat = function _clearDateTimeFormat (locale, format) {\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._dateTimeFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._dateTimeFormatters[id];\n }\n};\n\nVueI18n.prototype._localizeDateTime = function _localizeDateTime (\n value,\n locale,\n fallback,\n dateTimeFormats,\n key\n) {\n var _locale = locale;\n var formats = dateTimeFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = dateTimeFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' datetime formats from '\" + current + \"' datetime formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n var id = _locale + \"__\" + key;\n var formatter = this._dateTimeFormatters[id];\n if (!formatter) {\n formatter = this._dateTimeFormatters[id] = new Intl.DateTimeFormat(_locale, format);\n }\n return formatter.format(value)\n }\n};\n\nVueI18n.prototype._d = function _d (value, locale, key) {\n /* istanbul ignore if */\n if (process.env.NODE_ENV !== 'production' && !VueI18n.availabilities.dateTimeFormat) {\n warn('Cannot format a Date value due to not supported Intl.DateTimeFormat.');\n return ''\n }\n\n if (!key) {\n return new Intl.DateTimeFormat(locale).format(value)\n }\n\n var ret =\n this._localizeDateTime(value, locale, this.fallbackLocale, this._getDateTimeFormats(), key);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to datetime localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.d(value, key, locale)\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.d = function d (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._d(value, locale, key)\n};\n\nVueI18n.prototype.getNumberFormat = function getNumberFormat (locale) {\n return looseClone(this._vm.numberFormats[locale] || {})\n};\n\nVueI18n.prototype.setNumberFormat = function setNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, format);\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype.mergeNumberFormat = function mergeNumberFormat (locale, format) {\n this._vm.$set(this._vm.numberFormats, locale, merge(this._vm.numberFormats[locale] || {}, format));\n this._clearNumberFormat(locale, format);\n};\n\nVueI18n.prototype._clearNumberFormat = function _clearNumberFormat (locale, format) {\n for (var key in format) {\n var id = locale + \"__\" + key;\n\n if (!this._numberFormatters.hasOwnProperty(id)) {\n continue\n }\n\n delete this._numberFormatters[id];\n }\n};\n\nVueI18n.prototype._getNumberFormatter = function _getNumberFormatter (\n value,\n locale,\n fallback,\n numberFormats,\n key,\n options\n) {\n var _locale = locale;\n var formats = numberFormats[_locale];\n\n var chain = this._getLocaleChain(locale, fallback);\n for (var i = 0; i < chain.length; i++) {\n var current = _locale;\n var step = chain[i];\n formats = numberFormats[step];\n _locale = step;\n // fallback locale\n if (isNull(formats) || isNull(formats[key])) {\n if (step !== locale && process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to '\" + step + \"' number formats from '\" + current + \"' number formats.\"));\n }\n } else {\n break\n }\n }\n\n if (isNull(formats) || isNull(formats[key])) {\n return null\n } else {\n var format = formats[key];\n\n var formatter;\n if (options) {\n // If options specified - create one time number formatter\n formatter = new Intl.NumberFormat(_locale, Object.assign({}, format, options));\n } else {\n var id = _locale + \"__\" + key;\n formatter = this._numberFormatters[id];\n if (!formatter) {\n formatter = this._numberFormatters[id] = new Intl.NumberFormat(_locale, format);\n }\n }\n return formatter\n }\n};\n\nVueI18n.prototype._n = function _n (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format a Number value due to not supported Intl.NumberFormat.');\n }\n return ''\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.format(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.format(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key) && !this._isSilentFallbackWarn(key)) {\n warn((\"Fall back to number localization of root: key '\" + key + \"'.\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n.n(value, Object.assign({}, { key: key, locale: locale }, options))\n } else {\n return ret || ''\n }\n};\n\nVueI18n.prototype.n = function n (value) {\n var args = [], len = arguments.length - 1;\n while ( len-- > 0 ) args[ len ] = arguments[ len + 1 ];\n\n var locale = this.locale;\n var key = null;\n var options = null;\n\n if (args.length === 1) {\n if (isString(args[0])) {\n key = args[0];\n } else if (isObject(args[0])) {\n if (args[0].locale) {\n locale = args[0].locale;\n }\n if (args[0].key) {\n key = args[0].key;\n }\n\n // Filter out number format options only\n options = Object.keys(args[0]).reduce(function (acc, key) {\n var obj;\n\n if (includes(numberFormatKeys, key)) {\n return Object.assign({}, acc, ( obj = {}, obj[key] = args[0][key], obj ))\n }\n return acc\n }, null);\n }\n } else if (args.length === 2) {\n if (isString(args[0])) {\n key = args[0];\n }\n if (isString(args[1])) {\n locale = args[1];\n }\n }\n\n return this._n(value, locale, key, options)\n};\n\nVueI18n.prototype._ntp = function _ntp (value, locale, key, options) {\n /* istanbul ignore if */\n if (!VueI18n.availabilities.numberFormat) {\n if (process.env.NODE_ENV !== 'production') {\n warn('Cannot format to parts a Number value due to not supported Intl.NumberFormat.');\n }\n return []\n }\n\n if (!key) {\n var nf = !options ? new Intl.NumberFormat(locale) : new Intl.NumberFormat(locale, options);\n return nf.formatToParts(value)\n }\n\n var formatter = this._getNumberFormatter(value, locale, this.fallbackLocale, this._getNumberFormats(), key, options);\n var ret = formatter && formatter.formatToParts(value);\n if (this._isFallbackRoot(ret)) {\n if (process.env.NODE_ENV !== 'production' && !this._isSilentTranslationWarn(key)) {\n warn((\"Fall back to format number to parts of root: key '\" + key + \"' .\"));\n }\n /* istanbul ignore if */\n if (!this._root) { throw Error('unexpected error') }\n return this._root.$i18n._ntp(value, locale, key, options)\n } else {\n return ret || []\n }\n};\n\nObject.defineProperties( VueI18n.prototype, prototypeAccessors );\n\nvar availabilities;\n// $FlowFixMe\nObject.defineProperty(VueI18n, 'availabilities', {\n get: function get () {\n if (!availabilities) {\n var intlDefined = typeof Intl !== 'undefined';\n availabilities = {\n dateTimeFormat: intlDefined && typeof Intl.DateTimeFormat !== 'undefined',\n numberFormat: intlDefined && typeof Intl.NumberFormat !== 'undefined'\n };\n }\n\n return availabilities\n }\n});\n\nVueI18n.install = install;\nVueI18n.version = '8.24.4';\n\nexport default VueI18n;\n","/*!\n * vue-router v3.5.2\n * (c) 2021 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nfunction decode (str) {\n try {\n return decodeURIComponent(str)\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"Error decoding \\\"\" + str + \"\\\". Leaving it intact.\"));\n }\n }\n return str\n}\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n var value = extraQuery[key];\n parsedQuery[key] = Array.isArray(value)\n ? value.map(castQueryParamValue)\n : castQueryParamValue(value);\n }\n return parsedQuery\n}\n\nvar castQueryParamValue = function (value) { return (value == null || typeof value === 'object' ? value : String(value)); };\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0 ? decode(parts.join('=')) : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj\n ? Object.keys(obj)\n .map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n })\n .filter(function (x) { return x.length > 0; })\n .join('&')\n : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b, onlyPath) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') && (onlyPath ||\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query))\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n (onlyPath || (\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params))\n )\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a).sort();\n var bKeys = Object.keys(b).sort();\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key, i) {\n var aVal = a[key];\n var bKey = bKeys[i];\n if (bKey !== key) { return false }\n var bVal = b[key];\n // query values can be null and undefined\n if (aVal == null || bVal == null) { return aVal === bVal }\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\nfunction handleRouteEntered (route) {\n for (var i = 0; i < route.matched.length; i++) {\n var record = route.matched[i];\n for (var name in record.instances) {\n var instance = record.instances[name];\n var cbs = record.enteredCbs[name];\n if (!instance || !cbs) { continue }\n delete record.enteredCbs[name];\n for (var i$1 = 0; i$1 < cbs.length; i$1++) {\n if (!instance._isBeingDestroyed) { cbs[i$1](instance); }\n }\n }\n }\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n\n // if the route transition has already been confirmed then we weren't\n // able to call the cbs during confirmation as the component was not\n // registered yet, so we call it here.\n handleRouteEntered(route);\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cache\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options));\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n // and fix #3106 so that you can work with location descriptor object having params.pathMatch equal to empty string\n if (typeof params.pathMatch === 'string') { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar warnedCustomSlot;\nvar warnedTagProp;\nvar warnedEventProp;\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n custom: Boolean,\n exact: Boolean,\n exactPath: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n ariaCurrentValue: {\n type: String,\n default: 'page'\n },\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget, this.exactPath);\n classes[activeClass] = this.exact || this.exactPath\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var ariaCurrentValue = classes[exactActiveClass] ? this.ariaCurrentValue : null;\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (process.env.NODE_ENV !== 'production' && !this.custom) {\n !warnedCustomSlot && warn(false, 'In Vue Router 4, the v-slot API will by default wrap its content with an <a> element. Use the custom prop to remove this warning:\\n<router-link v-slot=\"{ navigate, href }\" custom></router-link>\\n');\n warnedCustomSlot = true;\n }\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"<router-link> with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (process.env.NODE_ENV !== 'production') {\n if ('tag' in this.$options.propsData && !warnedTagProp) {\n warn(\n false,\n \"<router-link>'s tag prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedTagProp = true;\n }\n if ('event' in this.$options.propsData && !warnedEventProp) {\n warn(\n false,\n \"<router-link>'s event prop is deprecated and has been removed in Vue Router 4. Use the v-slot API to remove this warning: https://next.router.vuejs.org/guide/migration/#removal-of-event-and-tag-props-in-router-link.\"\n );\n warnedEventProp = true;\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href, 'aria-current': ariaCurrentValue };\n } else {\n // find the first <a> child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the <a> is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n aAttrs['aria-current'] = ariaCurrentValue;\n } else {\n // doesn't have <a> child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap,\n parentRoute\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route, parentRoute);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n\n warn(\n // eslint-disable-next-line no-control-regex\n !/[^\\u0000-\\u007F]+/.test(path),\n \"Route with path \\\"\" + path + \"\\\" contains unencoded characters, make sure \" +\n \"your path is correctly encoded before passing it to the router. Use \" +\n \"encodeURI to encode static segments of your path.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n alias: route.alias\n ? typeof route.alias === 'string'\n ? [route.alias]\n : route.alias\n : [],\n instances: {},\n enteredCbs: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function addRoute (parentOrRoute, route) {\n var parent = (typeof parentOrRoute !== 'object') ? nameMap[parentOrRoute] : undefined;\n // $flow-disable-line\n createRouteMap([route || parentOrRoute], pathList, pathMap, nameMap, parent);\n\n // add aliases of parent\n if (parent && parent.alias.length) {\n createRouteMap(\n // $flow-disable-line route is defined if parent is\n parent.alias.map(function (alias) { return ({ path: alias, children: [route] }); }),\n pathList,\n pathMap,\n nameMap,\n parent\n );\n }\n }\n\n function getRoutes () {\n return pathList.map(function (path) { return pathMap[path]; })\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoute: addRoute,\n getRoutes: getRoutes,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = typeof m[i] === 'string' ? decode(m[i]) : m[i];\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Prevent browser scroll behavior on History popstate\n if ('scrollRestoration' in window.history) {\n window.history.scrollRestoration = 'manual';\n }\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, window.history.state);\n stateCopy.key = getStateKey();\n window.history.replaceState(stateCopy, '', absolutePath);\n window.addEventListener('popstate', handlePopState);\n return function () {\n window.removeEventListener('popstate', handlePopState);\n }\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction handlePopState (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n // $flow-disable-line\n if ('scrollBehavior' in document.documentElement.style) {\n window.scrollTo({\n left: position.x,\n top: position.y,\n // $flow-disable-line\n behavior: shouldScroll.behavior\n });\n } else {\n window.scrollTo(position.x, position.y);\n }\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && typeof window.history.pushState === 'function'\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n// When changing thing, also edit router.d.ts\nvar NavigationFailureType = {\n redirected: 2,\n aborted: 4,\n cancelled: 8,\n duplicated: 16\n};\n\nfunction createNavigationRedirectedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.redirected,\n (\"Redirected when going from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (stringifyRoute(\n to\n )) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createNavigationDuplicatedError (from, to) {\n var error = createRouterError(\n from,\n to,\n NavigationFailureType.duplicated,\n (\"Avoided redundant navigation to current location: \\\"\" + (from.fullPath) + \"\\\".\")\n );\n // backwards compatible with the first introduction of Errors\n error.name = 'NavigationDuplicated';\n return error\n}\n\nfunction createNavigationCancelledError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.cancelled,\n (\"Navigation cancelled from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" with a new navigation.\")\n )\n}\n\nfunction createNavigationAbortedError (from, to) {\n return createRouterError(\n from,\n to,\n NavigationFailureType.aborted,\n (\"Navigation aborted from \\\"\" + (from.fullPath) + \"\\\" to \\\"\" + (to.fullPath) + \"\\\" via a navigation guard.\")\n )\n}\n\nfunction createRouterError (from, to, type, message) {\n var error = new Error(message);\n error._isRouter = true;\n error.from = from;\n error.to = to;\n error.type = type;\n\n return error\n}\n\nvar propertiesToLog = ['params', 'query', 'hash'];\n\nfunction stringifyRoute (to) {\n if (typeof to === 'string') { return to }\n if ('path' in to) { return to.path }\n var location = {};\n propertiesToLog.forEach(function (key) {\n if (key in to) { location[key] = to[key]; }\n });\n return JSON.stringify(location, null, 2)\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isNavigationFailure (err, errorType) {\n return (\n isError(err) &&\n err._isRouter &&\n (errorType == null || err.type === errorType)\n )\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n this.listeners = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route;\n // catch redirect option https://github.com/vuejs/vue-router/issues/3201\n try {\n route = this.router.match(location, this.current);\n } catch (e) {\n this.errorCbs.forEach(function (cb) {\n cb(e);\n });\n // Exception should still be thrown\n throw e\n }\n var prev = this.current;\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n // Initial redirection should not mark the history as ready yet\n // because it's triggered by the redirection instead\n // https://github.com/vuejs/vue-router/issues/3225\n // https://github.com/vuejs/vue-router/issues/3331\n if (!isNavigationFailure(err, NavigationFailureType.redirected) || prev !== START) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n this.pending = route;\n var abort = function (err) {\n // changed after adding errors with\n // https://github.com/vuejs/vue-router/pull/3047 before that change,\n // redirect and aborted navigation would produce an err == null\n if (!isNavigationFailure(err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n var lastRouteIndex = route.matched.length - 1;\n var lastCurrentIndex = current.matched.length - 1;\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n lastRouteIndex === lastCurrentIndex &&\n route.matched[lastRouteIndex] === current.matched[lastCurrentIndex]\n ) {\n this.ensureURL();\n return abort(createNavigationDuplicatedError(current, route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n try {\n hook(route, current, function (to) {\n if (to === false) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(createNavigationAbortedError(current, route));\n } else if (isError(to)) {\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort(createNavigationRedirectedError(current, route));\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort(createNavigationCancelledError(current, route))\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n handleRouteEntered(route);\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n this.current = route;\n this.cb && this.cb(route);\n};\n\nHistory.prototype.setupListeners = function setupListeners () {\n // Default implementation is empty\n};\n\nHistory.prototype.teardown = function teardown () {\n // clean up event listeners\n // https://github.com/vuejs/vue-router/issues/2341\n this.listeners.forEach(function (cleanupListener) {\n cleanupListener();\n });\n this.listeners = [];\n\n // reset current history route\n // https://github.com/vuejs/vue-router/issues/3294\n this.current = START;\n this.pending = null;\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect <base> tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n if (!match.enteredCbs[key]) {\n match.enteredCbs[key] = [];\n }\n match.enteredCbs[key].push(cb);\n }\n next(cb);\n })\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n History.call(this, router, base);\n\n this._startLocation = getLocation(this.base);\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === this$1._startLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n };\n window.addEventListener('popstate', handleRoutingEvent);\n this.listeners.push(function () {\n window.removeEventListener('popstate', handleRoutingEvent);\n });\n };\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = window.location.pathname;\n var pathLowerCase = path.toLowerCase();\n var baseLowerCase = base.toLowerCase();\n // base=\"/a\" shouldn't turn path=\"/app\" into \"/a/pp\"\n // https://github.com/vuejs/vue-router/issues/3555\n // so we ensure the trailing slash in the base\n if (base && ((pathLowerCase === baseLowerCase) ||\n (pathLowerCase.indexOf(cleanPath(baseLowerCase + '/')) === 0))) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n if (this.listeners.length > 0) {\n return\n }\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n this.listeners.push(setupScroll());\n }\n\n var handleRoutingEvent = function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n };\n var eventType = supportsPushState ? 'popstate' : 'hashchange';\n window.addEventListener(\n eventType,\n handleRoutingEvent\n );\n this.listeners.push(function () {\n window.removeEventListener(eventType, handleRoutingEvent);\n });\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n var prev = this$1.current;\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n this$1.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n },\n function (err) {\n if (isNavigationFailure(err, NavigationFailureType.duplicated)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback =\n mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (raw, current, redirectedFrom) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' &&\n assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n\n if (!this$1.app) { this$1.history.teardown(); }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History || history instanceof HashHistory) {\n var handleInitialScroll = function (routeOrError) {\n var from = history.current;\n var expectScroll = this$1.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll && 'fullPath' in routeOrError) {\n handleScroll(this$1, routeOrError, from, false);\n }\n };\n var setupListeners = function (routeOrError) {\n history.setupListeners();\n handleInitialScroll(routeOrError);\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupListeners,\n setupListeners\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply(\n [],\n route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n })\n )\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(to, current, append, this);\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.getRoutes = function getRoutes () {\n return this.matcher.getRoutes()\n};\n\nVueRouter.prototype.addRoute = function addRoute (parentOrRoute, route) {\n this.matcher.addRoute(parentOrRoute, route);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, 'router.addRoutes() is deprecated and has been removed in Vue Router 4. Use router.addRoute() instead.');\n }\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.5.2';\nVueRouter.isNavigationFailure = isNavigationFailure;\nVueRouter.NavigationFailureType = NavigationFailureType;\nVueRouter.START_LOCATION = START;\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-14.use[1]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-14.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-14.use[3]!./dx.common.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"70b1b6d6\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../../@vue/cli-service/node_modules/css-loader/dist/cjs.js??clonedRuleSet-14.use[1]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-14.use[2]!../../../postcss-loader/dist/cjs.js??clonedRuleSet-14.use[3]!./dx.light.css\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../../vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"0778f90c\", content, true, {\"sourceMap\":false,\"shadowMode\":false});","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array<StyleObjectPart>\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n// tags it will allow on a page\nvar isOldIE = typeof navigator !== 'undefined' && /msie [6-9]\\b/.test(navigator.userAgent.toLowerCase())\n\nexport default function addStylesClient (parentId, list, _isProduction, _options) {\n isProduction = _isProduction\n\n options = _options || {}\n\n var styles = listToStyles(parentId, list)\n addStylesToDom(styles)\n\n return function update (newList) {\n var mayRemove = []\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n domStyle.refs--\n mayRemove.push(domStyle)\n }\n if (newList) {\n styles = listToStyles(parentId, newList)\n addStylesToDom(styles)\n } else {\n styles = []\n }\n for (var i = 0; i < mayRemove.length; i++) {\n var domStyle = mayRemove[i]\n if (domStyle.refs === 0) {\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j]()\n }\n delete stylesInDom[domStyle.id]\n }\n }\n }\n}\n\nfunction addStylesToDom (styles /* Array<StyleObject> */) {\n for (var i = 0; i < styles.length; i++) {\n var item = styles[i]\n var domStyle = stylesInDom[item.id]\n if (domStyle) {\n domStyle.refs++\n for (var j = 0; j < domStyle.parts.length; j++) {\n domStyle.parts[j](item.parts[j])\n }\n for (; j < item.parts.length; j++) {\n domStyle.parts.push(addStyle(item.parts[j]))\n }\n if (domStyle.parts.length > item.parts.length) {\n domStyle.parts.length = item.parts.length\n }\n } else {\n var parts = []\n for (var j = 0; j < item.parts.length; j++) {\n parts.push(addStyle(item.parts[j]))\n }\n stylesInDom[item.id] = { id: item.id, refs: 1, parts: parts }\n }\n }\n}\n\nfunction createStyleElement () {\n var styleElement = document.createElement('style')\n styleElement.type = 'text/css'\n head.appendChild(styleElement)\n return styleElement\n}\n\nfunction addStyle (obj /* StyleObjectPart */) {\n var update, remove\n var styleElement = document.querySelector('style[' + ssrIdKey + '~=\"' + obj.id + '\"]')\n\n if (styleElement) {\n if (isProduction) {\n // has SSR styles and in production mode.\n // simply do nothing.\n return noop\n } else {\n // has SSR styles but in dev mode.\n // for some reason Chrome can't handle source map in server-rendered\n // style tags - source maps in <style> only works if the style tag is\n // created and inserted dynamically. So we remove the server rendered\n // styles and inject new ones.\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n if (isOldIE) {\n // use singleton mode for IE9.\n var styleIndex = singletonCounter++\n styleElement = singletonElement || (singletonElement = createStyleElement())\n update = applyToSingletonTag.bind(null, styleElement, styleIndex, false)\n remove = applyToSingletonTag.bind(null, styleElement, styleIndex, true)\n } else {\n // use multi-style-tag mode in all other cases\n styleElement = createStyleElement()\n update = applyToTag.bind(null, styleElement)\n remove = function () {\n styleElement.parentNode.removeChild(styleElement)\n }\n }\n\n update(obj)\n\n return function updateStyle (newObj /* StyleObjectPart */) {\n if (newObj) {\n if (newObj.css === obj.css &&\n newObj.media === obj.media &&\n newObj.sourceMap === obj.sourceMap) {\n return\n }\n update(obj = newObj)\n } else {\n remove()\n }\n }\n}\n\nvar replaceText = (function () {\n var textStore = []\n\n return function (index, replacement) {\n textStore[index] = replacement\n return textStore.filter(Boolean).join('\\n')\n }\n})()\n\nfunction applyToSingletonTag (styleElement, index, remove, obj) {\n var css = remove ? '' : obj.css\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = replaceText(index, css)\n } else {\n var cssNode = document.createTextNode(css)\n var childNodes = styleElement.childNodes\n if (childNodes[index]) styleElement.removeChild(childNodes[index])\n if (childNodes.length) {\n styleElement.insertBefore(cssNode, childNodes[index])\n } else {\n styleElement.appendChild(cssNode)\n }\n }\n}\n\nfunction applyToTag (styleElement, obj) {\n var css = obj.css\n var media = obj.media\n var sourceMap = obj.sourceMap\n\n if (media) {\n styleElement.setAttribute('media', media)\n }\n if (options.ssrId) {\n styleElement.setAttribute(ssrIdKey, obj.id)\n }\n\n if (sourceMap) {\n // https://developer.chrome.com/devtools/docs/javascript-debugging\n // this makes source maps inside style tags work properly in Chrome\n css += '\\n/*# sourceURL=' + sourceMap.sources[0] + ' */'\n // http://stackoverflow.com/a/26603875\n css += '\\n/*# sourceMappingURL=data:application/json;base64,' + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + ' */'\n }\n\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild)\n }\n styleElement.appendChild(document.createTextNode(css))\n }\n}\n","!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.VueWait=e():t.VueWait=e()}(\"undefined\"!=typeof self?self:this,function(){return function(t){var e={};function n(r){if(e[r])return e[r].exports;var i=e[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var i in t)n.d(r,i,function(e){return t[e]}.bind(null,i));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"\",n(n.s=10)}([function(t,e){t.exports=function(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}},function(t,e){function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function r(e){return\"function\"==typeof Symbol&&\"symbol\"===n(Symbol.iterator)?t.exports=r=function(t){return n(t)}:t.exports=r=function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":n(t)},r(e)}t.exports=r},function(t,e,n){t.exports=n(16)},function(t,e,n){var r=n(0);t.exports=function(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{},i=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(n).filter(function(t){return Object.getOwnPropertyDescriptor(n,t).enumerable}))),i.forEach(function(e){r(t,e,n[e])})}return t}},function(t,e,n){var r=n(12),i=n(13),o=n(14);t.exports=function(t){return r(t)||i(t)||o()}},function(t,e){function n(t,e,n,r,i,o,a){try{var s=t[o](a),u=s.value}catch(t){return void n(t)}s.done?e(u):Promise.resolve(u).then(r,i)}t.exports=function(t){return function(){var e=this,r=arguments;return new Promise(function(i,o){var a=t.apply(e,r);function s(t){n(a,i,o,s,u,\"next\",t)}function u(t){n(a,i,o,s,u,\"throw\",t)}s(void 0)})}}},function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}},function(t,e){function n(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,\"value\"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}t.exports=function(t,e,r){return e&&n(t.prototype,e),r&&n(t,r),t}},function(t,e,n){var r=n(11);t.exports=function(t,e){if(null==t)return{};var n,i,o=r(t,e);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);for(i=0;i<a.length;i++)n=a[i],e.indexOf(n)>=0||Object.prototype.propertyIsEnumerable.call(t,n)&&(o[n]=t[n])}return o}},function(t,e,n){var r=n(17),i=n(18),o=n(19);t.exports=function(t,e){return r(t)||i(t,e)||o()}},function(t,e,n){t.exports=n(20)},function(t,e){t.exports=function(t,e){if(null==t)return{};var n,r,i={},o=Object.keys(t);for(r=0;r<o.length;r++)n=o[r],e.indexOf(n)>=0||(i[n]=t[n]);return i}},function(t,e){t.exports=function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e<t.length;e++)n[e]=t[e];return n}}},function(t,e){t.exports=function(t){if(Symbol.iterator in Object(t)||\"[object Arguments]\"===Object.prototype.toString.call(t))return Array.from(t)}},function(t,e){t.exports=function(){throw new TypeError(\"Invalid attempt to spread non-iterable instance\")}},function(t,e,n){\"use strict\";var r=/[|\\\\{}()[\\]^$+*?.]/g;t.exports=function(t){if(\"string\"!=typeof t)throw new TypeError(\"Expected a string\");return t.replace(r,\"\\\\$&\")}},function(t,e,n){var r=function(t){\"use strict\";var e,n=Object.prototype,r=n.hasOwnProperty,i=\"function\"==typeof Symbol?Symbol:{},o=i.iterator||\"@@iterator\",a=i.asyncIterator||\"@@asyncIterator\",s=i.toStringTag||\"@@toStringTag\";function u(t,e,n,r){var i=e&&e.prototype instanceof v?e:v,o=Object.create(i.prototype),a=new L(r||[]);return o._invoke=function(t,e,n){var r=f;return function(i,o){if(r===p)throw new Error(\"Generator is already running\");if(r===h){if(\"throw\"===i)throw o;return C()}for(n.method=i,n.arg=o;;){var a=n.delegate;if(a){var s=E(a,n);if(s){if(s===d)continue;return s}}if(\"next\"===n.method)n.sent=n._sent=n.arg;else if(\"throw\"===n.method){if(r===f)throw r=h,n.arg;n.dispatchException(n.arg)}else\"return\"===n.method&&n.abrupt(\"return\",n.arg);r=p;var u=c(t,e,n);if(\"normal\"===u.type){if(r=n.done?h:l,u.arg===d)continue;return{value:u.arg,done:n.done}}\"throw\"===u.type&&(r=h,n.method=\"throw\",n.arg=u.arg)}}}(t,n,a),o}function c(t,e,n){try{return{type:\"normal\",arg:t.call(e,n)}}catch(t){return{type:\"throw\",arg:t}}}t.wrap=u;var f=\"suspendedStart\",l=\"suspendedYield\",p=\"executing\",h=\"completed\",d={};function v(){}function y(){}function g(){}var m={};m[o]=function(){return this};var w=Object.getPrototypeOf,b=w&&w(w($([])));b&&b!==n&&r.call(b,o)&&(m=b);var x=g.prototype=v.prototype=Object.create(m);function _(t){[\"next\",\"throw\",\"return\"].forEach(function(e){t[e]=function(t){return this._invoke(e,t)}})}function S(t){var e;this._invoke=function(n,i){function o(){return new Promise(function(e,o){!function e(n,i,o,a){var s=c(t[n],t,i);if(\"throw\"!==s.type){var u=s.arg,f=u.value;return f&&\"object\"==typeof f&&r.call(f,\"__await\")?Promise.resolve(f.__await).then(function(t){e(\"next\",t,o,a)},function(t){e(\"throw\",t,o,a)}):Promise.resolve(f).then(function(t){u.value=t,o(u)},function(t){return e(\"throw\",t,o,a)})}a(s.arg)}(n,i,e,o)})}return e=e?e.then(o,o):o()}}function E(t,n){var r=t.iterator[n.method];if(r===e){if(n.delegate=null,\"throw\"===n.method){if(t.iterator.return&&(n.method=\"return\",n.arg=e,E(t,n),\"throw\"===n.method))return d;n.method=\"throw\",n.arg=new TypeError(\"The iterator does not provide a 'throw' method\")}return d}var i=c(r,t.iterator,n.arg);if(\"throw\"===i.type)return n.method=\"throw\",n.arg=i.arg,n.delegate=null,d;var o=i.arg;return o?o.done?(n[t.resultName]=o.value,n.next=t.nextLoc,\"return\"!==n.method&&(n.method=\"next\",n.arg=e),n.delegate=null,d):o:(n.method=\"throw\",n.arg=new TypeError(\"iterator result is not an object\"),n.delegate=null,d)}function O(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function j(t){var e=t.completion||{};e.type=\"normal\",delete e.arg,t.completion=e}function L(t){this.tryEntries=[{tryLoc:\"root\"}],t.forEach(O,this),this.reset(!0)}function $(t){if(t){var n=t[o];if(n)return n.call(t);if(\"function\"==typeof t.next)return t;if(!isNaN(t.length)){var i=-1,a=function n(){for(;++i<t.length;)if(r.call(t,i))return n.value=t[i],n.done=!1,n;return n.value=e,n.done=!0,n};return a.next=a}}return{next:C}}function C(){return{value:e,done:!0}}return y.prototype=x.constructor=g,g.constructor=y,g[s]=y.displayName=\"GeneratorFunction\",t.isGeneratorFunction=function(t){var e=\"function\"==typeof t&&t.constructor;return!!e&&(e===y||\"GeneratorFunction\"===(e.displayName||e.name))},t.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,g):(t.__proto__=g,s in t||(t[s]=\"GeneratorFunction\")),t.prototype=Object.create(x),t},t.awrap=function(t){return{__await:t}},_(S.prototype),S.prototype[a]=function(){return this},t.AsyncIterator=S,t.async=function(e,n,r,i){var o=new S(u(e,n,r,i));return t.isGeneratorFunction(n)?o:o.next().then(function(t){return t.done?t.value:o.next()})},_(x),x[s]=\"Generator\",x[o]=function(){return this},x.toString=function(){return\"[object Generator]\"},t.keys=function(t){var e=[];for(var n in t)e.push(n);return e.reverse(),function n(){for(;e.length;){var r=e.pop();if(r in t)return n.value=r,n.done=!1,n}return n.done=!0,n}},t.values=$,L.prototype={constructor:L,reset:function(t){if(this.prev=0,this.next=0,this.sent=this._sent=e,this.done=!1,this.delegate=null,this.method=\"next\",this.arg=e,this.tryEntries.forEach(j),!t)for(var n in this)\"t\"===n.charAt(0)&&r.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=e)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if(\"throw\"===t.type)throw t.arg;return this.rval},dispatchException:function(t){if(this.done)throw t;var n=this;function i(r,i){return s.type=\"throw\",s.arg=t,n.next=r,i&&(n.method=\"next\",n.arg=e),!!i}for(var o=this.tryEntries.length-1;o>=0;--o){var a=this.tryEntries[o],s=a.completion;if(\"root\"===a.tryLoc)return i(\"end\");if(a.tryLoc<=this.prev){var u=r.call(a,\"catchLoc\"),c=r.call(a,\"finallyLoc\");if(u&&c){if(this.prev<a.catchLoc)return i(a.catchLoc,!0);if(this.prev<a.finallyLoc)return i(a.finallyLoc)}else if(u){if(this.prev<a.catchLoc)return i(a.catchLoc,!0)}else{if(!c)throw new Error(\"try statement without catch or finally\");if(this.prev<a.finallyLoc)return i(a.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var i=this.tryEntries[n];if(i.tryLoc<=this.prev&&r.call(i,\"finallyLoc\")&&this.prev<i.finallyLoc){var o=i;break}}o&&(\"break\"===t||\"continue\"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var a=o?o.completion:{};return a.type=t,a.arg=e,o?(this.method=\"next\",this.next=o.finallyLoc,d):this.complete(a)},complete:function(t,e){if(\"throw\"===t.type)throw t.arg;return\"break\"===t.type||\"continue\"===t.type?this.next=t.arg:\"return\"===t.type?(this.rval=this.arg=t.arg,this.method=\"return\",this.next=\"end\"):\"normal\"===t.type&&e&&(this.next=e),d},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),j(n),d}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var r=n.completion;if(\"throw\"===r.type){var i=r.arg;j(n)}return i}}throw new Error(\"illegal catch attempt\")},delegateYield:function(t,n,r){return this.delegate={iterator:$(t),resultName:n,nextLoc:r},\"next\"===this.method&&(this.arg=e),d}},t}(t.exports);try{regeneratorRuntime=r}catch(t){Function(\"r\",\"regeneratorRuntime = r\")(r)}},function(t,e){t.exports=function(t){if(Array.isArray(t))return t}},function(t,e){t.exports=function(t,e){var n=[],r=!0,i=!1,o=void 0;try{for(var a,s=t[Symbol.iterator]();!(r=(a=s.next()).done)&&(n.push(a.value),!e||n.length!==e);r=!0);}catch(t){i=!0,o=t}finally{try{r||null==s.return||s.return()}finally{if(i)throw o}}return n}},function(t,e){t.exports=function(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance\")}},function(t,e,n){\"use strict\";n.r(e);var r=n(3),i=n.n(r),o=n(6),a=n.n(o),s=n(7),u=n.n(s),c=n(1),f=n.n(c),l=n(8),p=n.n(l),h=n(0),d=n.n(h),v=n(4),y=n.n(v),g=n(15),m=new Map;var w=function(t,e,n){var r=function(t,e){var n=Object.assign({caseSensitive:!1},e),r=t+JSON.stringify(n);if(m.has(r))return m.get(r);var i=\"!\"===t[0];i&&(t=t.slice(1)),t=g(t).replace(/\\\\\\*/g,\".*\");var o=new RegExp(\"^\".concat(t,\"$\"),n.caseSensitive?\"\":\"i\");return o.negated=i,m.set(r,o),o}(e,n),i=r.test(t);return r.negated?!i:i};function b(t){var e=function(t,e){if(\"object\"!==f()(t)||null===t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var r=n.call(t,e||\"default\");if(\"object\"!==f()(r))return r;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===e?String:Number)(t)}(t,\"string\");return\"symbol\"===f()(e)?e:String(e)}function x(t){return t.filter(function(t,e,n){return e==n.indexOf(t)})}function _(t,e){return\"string\"==typeof e&&e.match(/[\\*\\!]/)?t.filter(function(t){return w(t,e)}).length>0:Array.isArray(e)?e.some(function(e){return _(t,e)}):t.includes(e)}function S(t){return t.length>0}function E(t,e){return x([].concat(y()(t),[e]))}function O(t,e){return x(t).filter(function(t){return t!==e})}function j(t,e,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:100;return n>r?L(t,e):i()({},t,d()({},e,{current:n,total:r,percent:100*n/r}))}function L(t,e){t[e];return p()(t,[e].map(b))}function $(t,e){var n=t[e];return n?n.percent:0}var C,k=n(2),A=n.n(k),F=n(5),P=n.n(F),N=n(9),T=n.n(N);function I(t,e){var n={};\"object\"===f()(t)&&(e=t,t=null);for(var r=Array.isArray(e),i=function(){var e=T()(a[o],2),i=e[0],s=e[1],u=void 0,c=void 0,f=void 0;s===Object(s)?(r?(u=s.action,void 0!==s.method&&(u=s.method)):u=i,c=s.action,f=s.loader):r?(u=c=s,f=s):(u=c=i,f=s),f||(f=c),c&&(n[u]=P()(A.a.mark(function e(){var n,r,i,o,a=arguments;return A.a.wrap(function(e){for(;;)switch(e.prev=e.next){case 0:for(e.prev=0,this.__$waitInstance.start(f),r=a.length,i=new Array(r),o=0;o<r;o++)i[o]=a[o];return e.next=5,(n=this.$store).dispatch.apply(n,[t?\"\".concat(t,\"/\").concat(c):c].concat(i));case 5:return e.abrupt(\"return\",e.sent);case 6:return e.prev=6,this.__$waitInstance.end(f),e.finish(6);case 9:case\"end\":return e.stop()}},e,this,[[0,,6,9]])})))},o=0,a=Object.entries(e);o<a.length;o++)i();return n}function R(t){var e={};return Object.keys(t).forEach(function(n){var r=t[n];e[n]=function(){return this.__$waitInstance.is(r)}}),e}function G(t,e){var n=arguments.length>2&&void 0!==arguments[2]&&arguments[2];return\"function\"!=typeof e?(console.warn(\"[vue-wait] waitFor second argument must be a function\"),e):!0===n?function(){try{this.__$waitInstance.start(t);for(var n=arguments.length,r=new Array(n),i=0;i<n;i++)r[i]=arguments[i];return e.apply(this,r)}finally{this.__$waitInstance.end(t)}}:P()(A.a.mark(function n(){var r,i,o,a=arguments;return A.a.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:for(n.prev=0,this.__$waitInstance.start(t),r=a.length,i=new Array(r),o=0;o<r;o++)i[o]=a[o];return n.next=5,e.apply(this,i);case 5:return n.abrupt(\"return\",n.sent);case 6:return n.prev=6,this.__$waitInstance.end(t),n.finish(6);case 9:case\"end\":return n.stop()}},n,this,[[0,,6,9]])}))}var V=\"START\",M=\"END\",H=\"PROGRESS\",W={namespaced:!0,state:{waitingFor:[],progresses:{}},getters:{is:function(t){return function(e){return _(t.waitingFor,e)}},any:function(t){return S(t.waitingFor)},percent:function(t){return function(e){return $(t.progresses,e)}}},actions:{start:function(t,e){return(0,t.commit)(V,e)},end:function(t,e){return(0,t.commit)(M,e)},progress:function(t,e){return(0,t.commit)(H,e)}},mutations:(C={},d()(C,V,function(t,e){t.waitingFor=E(t.waitingFor,e)}),d()(C,M,function(t,e){t.waitingFor=O(t.waitingFor,e),t.progresses=L(t.progresses,e)}),d()(C,H,function(t,e){var n=e.waiter,r=e.current,i=e.total;t.progresses=j(t.progresses,n,r,i)}),C)};var z=function(t,e,n,r,i,o,a,s){var u,c=\"function\"==typeof t?t.options:t;if(e&&(c.render=e,c.staticRenderFns=n,c._compiled=!0),r&&(c.functional=!0),o&&(c._scopeId=\"data-v-\"+o),a?(u=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||\"undefined\"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),i&&i.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},c._ssrRegister=u):i&&(u=s?function(){i.call(this,this.$root.$options.shadowRoot)}:i),u)if(c.functional){c._injectStyles=u;var f=c.render;c.render=function(t,e){return u.call(e),f(t,e)}}else{var l=c.beforeCreate;c.beforeCreate=l?[].concat(l,u):[u]}return{exports:t,options:c}}({props:{visible:Boolean,for:[String,Array],message:String,transition:String,duration:Number,mode:{type:String,default:\"out-in\"},enterClass:{type:String,default:\"enter\"},enterActiveClass:{type:String,default:\"enter-active\"},enterToClass:{type:String,default:\"enter-to\"},leaveClass:{type:String,default:\"leave\"},leaveActiveClass:{type:String,default:\"leave-active\"},leaveToClass:{type:String,default:\"leave-to\"}},methods:{transitionClass:function(t){return\"\".concat(this.transition,\"-\").concat(t)}},computed:{waitsFor:function(){return this.visible?this.visible:this.for?this.__$waitInstance.is(this.for):this.__$waitInstance.any}}},function(){var t=this,e=t.$createElement,n=t._self._c||e;return t.transition?n(\"transition\",{attrs:{name:t.transition,mode:t.mode,duration:t.duration,\"enter-class\":t.transitionClass(t.enterClass),\"enter-active-class\":t.transitionClass(t.enterActiveClass),\"enter-to-class\":t.transitionClass(t.enterToClass),\"leave-class\":t.transitionClass(t.leaveClass),\"leave-active-class\":t.transitionClass(t.leaveActiveClass),\"leave-to-class\":t.transitionClass(t.leaveToClass)},on:{beforeEnter:function(e){return t.$emit(\"beforeEnter\")},enter:function(e){return t.$emit(\"enter\")},afterAnter:function(e){return t.$emit(\"afterEnter\")},enterCancelled:function(e){return t.$emit(\"enterCancelled\")},beforeLeave:function(e){return t.$emit(\"beforeLeave\")},leave:function(e){return t.$emit(\"leave\")},afterLeave:function(e){return t.$emit(\"afterLeave\")},leaveCancelled:function(e){return t.$emit(\"leaveCancelled\")}}},[t.waitsFor?n(\"span\",[t._t(\"waiting\"),t._v(\" \"),t.message?n(\"span\",[t._v(t._s(t.message))]):t._e()],2):n(\"div\",[t._t(\"default\")],2)]):n(\"div\",[t.waitsFor?n(\"span\",[t._t(\"waiting\"),t._v(\" \"),t.message?n(\"span\",[t._v(t._s(t.message))]):t._e()],2):t._t(\"default\")],2)},[],!1,null,null,null).exports;function D(t,e,n,r){var i=e.arg,o=e.modifiers,a=e.value,s=n.context.__$waitInstance.is(a);(o.not||[\"hidden\",\"enabled\"].includes(i))&&(s=!s);var u=\"none\"===t.style.display?\"\":t.style.display;switch(i){case\"visible\":case\"hidden\":t.style.display=s?u:\"none\";break;case\"enabled\":case\"disabled\":s?t.setAttribute(\"disabled\",!0):t.removeAttribute(\"disabled\")}}var U={bind:function(t,e,n,r){var i=e.arg,o=e.modifiers,a=e.value,s=n.context.__$waitInstance;switch(i){case\"click\":if(o.start){t.addEventListener(\"click\",function(){return s.start(a)},!1);break}if(o.end){t.addEventListener(\"click\",function(){return s.end(a)},!1);break}if(o.progress){t.addEventListener(\"click\",function(){return s.progress.apply(s,y()(a))},!1);break}break;case\"toggle\":t.addEventListener(\"click\",function(){s.is(a)?s.end(a):s.start(a)},!1)}D(t,e,n)},update:D};n.d(e,\"default\",function(){return X}),n.d(e,\"install\",function(){return Y}),n.d(e,\"mapWaitingActions\",function(){return I}),n.d(e,\"mapWaitingGetters\",function(){return R}),n.d(e,\"waitFor\",function(){return G});var X=function(){function t(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};a()(this,t);this.options=i()({},{accessorName:\"$wait\",useVuex:!1,vuexModuleName:\"wait\",registerComponent:!0,componentName:\"v-wait\",registerDirective:!0,directiveName:\"wait\"},e),this.initialized=!1}return u()(t,[{key:\"init\",value:function(t,e){if(!this.initialized){if(this.options.registerComponent&&t.component(this.options.componentName,z),this.options.registerDirective&&t.directive(this.options.directiveName,U),this.options.useVuex){var n=this.options.vuexModuleName;if(!e)throw new Error(\"[vue-wait] Vuex not initialized.\");this.store=e,e._modules.get([n])||e.registerModule(n,W),this.stateHandler=new t({computed:{is:function(){return function(t){return e.getters[\"\".concat(n,\"/is\")](t)}},any:function(){return e.getters[\"\".concat(n,\"/any\")]},percent:function(){return function(t){return e.getters[\"\".concat(n,\"/percent\")](t)}}}})}else this.stateHandler=new t({data:function(){return{waitingFor:[],progresses:{}}},computed:{is:function(){var t=this;return function(e){return _(t.waitingFor,e)}},any:function(){return S(this.waitingFor)},percent:function(){var t=this;return function(e){return $(t.progresses,e)}}},methods:{start:function(t){this.waitingFor=E(this.waitingFor,t)},end:function(t){this.waitingFor=O(this.waitingFor,t),this.progresses=L(this.progresses,t)},progress:function(t){var e=t.waiter,n=t.current,r=t.total;this.progresses=j(this.progresses,e,n,r)}}});this.initialized=!0}}},{key:\"is\",value:function(t){return this.stateHandler.is(t)}},{key:\"waiting\",value:function(t){return this.is(t)}},{key:\"percent\",value:function(t){return this.stateHandler.percent(t)}},{key:\"dispatchWaitingAction\",value:function(t,e){var n=this.options.vuexModuleName;this.store.dispatch(\"\".concat(n,\"/\").concat(t),e,{root:!0})}},{key:\"start\",value:function(t){this.options.useVuex?this.dispatchWaitingAction(\"start\",t):this.stateHandler.start(t)}},{key:\"end\",value:function(t){this.options.useVuex?this.dispatchWaitingAction(\"end\",t):this.stateHandler.end(t)}},{key:\"progress\",value:function(t,e){var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100;this.is(t)||this.start(t),e>n?this.end(t):this.options.useVuex?this.dispatchWaitingAction(\"progress\",{waiter:t,current:e,total:n}):this.stateHandler.progress({waiter:t,current:e,total:n})}},{key:\"any\",get:function(){return this.stateHandler.any}}]),t}();function Y(t){Y.installed&&t||(t.mixin({beforeCreate:function(){var e=this.$options,n=e.wait,r=e.store,i=e.parent,o=null;n?(o=\"function\"==typeof n?new n:n).init(t,r):i&&i.__$waitInstance&&(o=i.__$waitInstance).init(t,i.$store),o&&(this.__$waitInstance=o,this[o.options.accessorName]=o)}}),Y.installed=!0)}X.install=Y}])});","/*!\n * Vue.js v2.7.0\n * (c) 2014-2022 Evan You\n * Released under the MIT License.\n */\nvar emptyObject = Object.freeze({});\r\nvar isArray = Array.isArray;\r\n// These helpers produce better VM code in JS engines due to their\r\n// explicitness and function inlining.\r\nfunction isUndef(v) {\r\n return v === undefined || v === null;\r\n}\r\nfunction isDef(v) {\r\n return v !== undefined && v !== null;\r\n}\r\nfunction isTrue(v) {\r\n return v === true;\r\n}\r\nfunction isFalse(v) {\r\n return v === false;\r\n}\r\n/**\r\n * Check if value is primitive.\r\n */\r\nfunction isPrimitive(value) {\r\n return (typeof value === 'string' ||\r\n typeof value === 'number' ||\r\n // $flow-disable-line\r\n typeof value === 'symbol' ||\r\n typeof value === 'boolean');\r\n}\r\nfunction isFunction(value) {\r\n return typeof value === 'function';\r\n}\r\n/**\r\n * Quick object check - this is primarily used to tell\r\n * objects from primitive values when we know the value\r\n * is a JSON-compliant type.\r\n */\r\nfunction isObject(obj) {\r\n return obj !== null && typeof obj === 'object';\r\n}\r\n/**\r\n * Get the raw type string of a value, e.g., [object Object].\r\n */\r\nvar _toString = Object.prototype.toString;\r\nfunction toRawType(value) {\r\n return _toString.call(value).slice(8, -1);\r\n}\r\n/**\r\n * Strict object type check. Only returns true\r\n * for plain JavaScript objects.\r\n */\r\nfunction isPlainObject(obj) {\r\n return _toString.call(obj) === '[object Object]';\r\n}\r\nfunction isRegExp(v) {\r\n return _toString.call(v) === '[object RegExp]';\r\n}\r\n/**\r\n * Check if val is a valid array index.\r\n */\r\nfunction isValidArrayIndex(val) {\r\n var n = parseFloat(String(val));\r\n return n >= 0 && Math.floor(n) === n && isFinite(val);\r\n}\r\nfunction isPromise(val) {\r\n return (isDef(val) &&\r\n typeof val.then === 'function' &&\r\n typeof val.catch === 'function');\r\n}\r\n/**\r\n * Convert a value to a string that is actually rendered.\r\n */\r\nfunction toString(val) {\r\n return val == null\r\n ? ''\r\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\r\n ? JSON.stringify(val, null, 2)\r\n : String(val);\r\n}\r\n/**\r\n * Convert an input value to a number for persistence.\r\n * If the conversion fails, return original string.\r\n */\r\nfunction toNumber(val) {\r\n var n = parseFloat(val);\r\n return isNaN(n) ? val : n;\r\n}\r\n/**\r\n * Make a map and return a function for checking if a key\r\n * is in that map.\r\n */\r\nfunction makeMap(str, expectsLowerCase) {\r\n var map = Object.create(null);\r\n var list = str.split(',');\r\n for (var i = 0; i < list.length; i++) {\r\n map[list[i]] = true;\r\n }\r\n return expectsLowerCase ? function (val) { return map[val.toLowerCase()]; } : function (val) { return map[val]; };\r\n}\r\n/**\r\n * Check if a tag is a built-in tag.\r\n */\r\nvar isBuiltInTag = makeMap('slot,component', true);\r\n/**\r\n * Check if an attribute is a reserved attribute.\r\n */\r\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\r\n/**\r\n * Remove an item from an array.\r\n */\r\nfunction remove$2(arr, item) {\r\n if (arr.length) {\r\n var index = arr.indexOf(item);\r\n if (index > -1) {\r\n return arr.splice(index, 1);\r\n }\r\n }\r\n}\r\n/**\r\n * Check whether an object has the property.\r\n */\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\nfunction hasOwn(obj, key) {\r\n return hasOwnProperty.call(obj, key);\r\n}\r\n/**\r\n * Create a cached version of a pure function.\r\n */\r\nfunction cached(fn) {\r\n var cache = Object.create(null);\r\n return function cachedFn(str) {\r\n var hit = cache[str];\r\n return hit || (cache[str] = fn(str));\r\n };\r\n}\r\n/**\r\n * Camelize a hyphen-delimited string.\r\n */\r\nvar camelizeRE = /-(\\w)/g;\r\nvar camelize = cached(function (str) {\r\n return str.replace(camelizeRE, function (_, c) { return (c ? c.toUpperCase() : ''); });\r\n});\r\n/**\r\n * Capitalize a string.\r\n */\r\nvar capitalize = cached(function (str) {\r\n return str.charAt(0).toUpperCase() + str.slice(1);\r\n});\r\n/**\r\n * Hyphenate a camelCase string.\r\n */\r\nvar hyphenateRE = /\\B([A-Z])/g;\r\nvar hyphenate = cached(function (str) {\r\n return str.replace(hyphenateRE, '-$1').toLowerCase();\r\n});\r\n/**\r\n * Simple bind polyfill for environments that do not support it,\r\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\r\n * since native bind is now performant enough in most browsers.\r\n * But removing it would mean breaking code that was able to run in\r\n * PhantomJS 1.x, so this must be kept for backward compatibility.\r\n */\r\n/* istanbul ignore next */\r\nfunction polyfillBind(fn, ctx) {\r\n function boundFn(a) {\r\n var l = arguments.length;\r\n return l\r\n ? l > 1\r\n ? fn.apply(ctx, arguments)\r\n : fn.call(ctx, a)\r\n : fn.call(ctx);\r\n }\r\n boundFn._length = fn.length;\r\n return boundFn;\r\n}\r\nfunction nativeBind(fn, ctx) {\r\n return fn.bind(ctx);\r\n}\r\n// @ts-expect-error bind cannot be `undefined`\r\nvar bind = Function.prototype.bind ? nativeBind : polyfillBind;\r\n/**\r\n * Convert an Array-like object to a real Array.\r\n */\r\nfunction toArray(list, start) {\r\n start = start || 0;\r\n var i = list.length - start;\r\n var ret = new Array(i);\r\n while (i--) {\r\n ret[i] = list[i + start];\r\n }\r\n return ret;\r\n}\r\n/**\r\n * Mix properties into target object.\r\n */\r\nfunction extend(to, _from) {\r\n for (var key in _from) {\r\n to[key] = _from[key];\r\n }\r\n return to;\r\n}\r\n/**\r\n * Merge an Array of Objects into a single Object.\r\n */\r\nfunction toObject(arr) {\r\n var res = {};\r\n for (var i = 0; i < arr.length; i++) {\r\n if (arr[i]) {\r\n extend(res, arr[i]);\r\n }\r\n }\r\n return res;\r\n}\r\n/* eslint-disable no-unused-vars */\r\n/**\r\n * Perform no operation.\r\n * Stubbing args to make Flow happy without leaving useless transpiled code\r\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\r\n */\r\nfunction noop(a, b, c) { }\r\n/**\r\n * Always return false.\r\n */\r\nvar no = function (a, b, c) { return false; };\r\n/* eslint-enable no-unused-vars */\r\n/**\r\n * Return the same value.\r\n */\r\nvar identity = function (_) { return _; };\r\n/**\r\n * Check if two values are loosely equal - that is,\r\n * if they are plain objects, do they have the same shape?\r\n */\r\nfunction looseEqual(a, b) {\r\n if (a === b)\r\n return true;\r\n var isObjectA = isObject(a);\r\n var isObjectB = isObject(b);\r\n if (isObjectA && isObjectB) {\r\n try {\r\n var isArrayA = Array.isArray(a);\r\n var isArrayB = Array.isArray(b);\r\n if (isArrayA && isArrayB) {\r\n return (a.length === b.length &&\r\n a.every(function (e, i) {\r\n return looseEqual(e, b[i]);\r\n }));\r\n }\r\n else if (a instanceof Date && b instanceof Date) {\r\n return a.getTime() === b.getTime();\r\n }\r\n else if (!isArrayA && !isArrayB) {\r\n var keysA = Object.keys(a);\r\n var keysB = Object.keys(b);\r\n return (keysA.length === keysB.length &&\r\n keysA.every(function (key) {\r\n return looseEqual(a[key], b[key]);\r\n }));\r\n }\r\n else {\r\n /* istanbul ignore next */\r\n return false;\r\n }\r\n }\r\n catch (e) {\r\n /* istanbul ignore next */\r\n return false;\r\n }\r\n }\r\n else if (!isObjectA && !isObjectB) {\r\n return String(a) === String(b);\r\n }\r\n else {\r\n return false;\r\n }\r\n}\r\n/**\r\n * Return the first index at which a loosely equal value can be\r\n * found in the array (if value is a plain object, the array must\r\n * contain an object of the same shape), or -1 if it is not present.\r\n */\r\nfunction looseIndexOf(arr, val) {\r\n for (var i = 0; i < arr.length; i++) {\r\n if (looseEqual(arr[i], val))\r\n return i;\r\n }\r\n return -1;\r\n}\r\n/**\r\n * Ensure a function is called only once.\r\n */\r\nfunction once(fn) {\r\n var called = false;\r\n return function () {\r\n if (!called) {\r\n called = true;\r\n fn.apply(this, arguments);\r\n }\r\n };\r\n}\r\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is#polyfill\r\nfunction hasChanged(x, y) {\r\n if (x === y) {\r\n return x === 0 && 1 / x !== 1 / y;\r\n }\r\n else {\r\n return x === x && y === y;\r\n }\r\n}\n\nvar SSR_ATTR = 'data-server-rendered';\r\nvar ASSET_TYPES = ['component', 'directive', 'filter'];\r\nvar LIFECYCLE_HOOKS = [\r\n 'beforeCreate',\r\n 'created',\r\n 'beforeMount',\r\n 'mounted',\r\n 'beforeUpdate',\r\n 'updated',\r\n 'beforeDestroy',\r\n 'destroyed',\r\n 'activated',\r\n 'deactivated',\r\n 'errorCaptured',\r\n 'serverPrefetch'\r\n];\n\nvar config = {\r\n /**\r\n * Option merge strategies (used in core/util/options)\r\n */\r\n // $flow-disable-line\r\n optionMergeStrategies: Object.create(null),\r\n /**\r\n * Whether to suppress warnings.\r\n */\r\n silent: false,\r\n /**\r\n * Show production mode tip message on boot?\r\n */\r\n productionTip: process.env.NODE_ENV !== 'production',\r\n /**\r\n * Whether to enable devtools\r\n */\r\n devtools: process.env.NODE_ENV !== 'production',\r\n /**\r\n * Whether to record perf\r\n */\r\n performance: false,\r\n /**\r\n * Error handler for watcher errors\r\n */\r\n errorHandler: null,\r\n /**\r\n * Warn handler for watcher warns\r\n */\r\n warnHandler: null,\r\n /**\r\n * Ignore certain custom elements\r\n */\r\n ignoredElements: [],\r\n /**\r\n * Custom user key aliases for v-on\r\n */\r\n // $flow-disable-line\r\n keyCodes: Object.create(null),\r\n /**\r\n * Check if a tag is reserved so that it cannot be registered as a\r\n * component. This is platform-dependent and may be overwritten.\r\n */\r\n isReservedTag: no,\r\n /**\r\n * Check if an attribute is reserved so that it cannot be used as a component\r\n * prop. This is platform-dependent and may be overwritten.\r\n */\r\n isReservedAttr: no,\r\n /**\r\n * Check if a tag is an unknown element.\r\n * Platform-dependent.\r\n */\r\n isUnknownElement: no,\r\n /**\r\n * Get the namespace of an element\r\n */\r\n getTagNamespace: noop,\r\n /**\r\n * Parse the real tag name for the specific platform.\r\n */\r\n parsePlatformTagName: identity,\r\n /**\r\n * Check if an attribute must be bound using property, e.g. value\r\n * Platform-dependent.\r\n */\r\n mustUseProp: no,\r\n /**\r\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\r\n * This will significantly reduce performance if set to false.\r\n */\r\n async: true,\r\n /**\r\n * Exposed for legacy reasons\r\n */\r\n _lifecycleHooks: LIFECYCLE_HOOKS\r\n};\n\n/**\r\n * unicode letters used for parsing html tags, component names and property paths.\r\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\r\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\r\n */\r\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\r\n/**\r\n * Check if a string starts with $ or _\r\n */\r\nfunction isReserved(str) {\r\n var c = (str + '').charCodeAt(0);\r\n return c === 0x24 || c === 0x5f;\r\n}\r\n/**\r\n * Define a property.\r\n */\r\nfunction def(obj, key, val, enumerable) {\r\n Object.defineProperty(obj, key, {\r\n value: val,\r\n enumerable: !!enumerable,\r\n writable: true,\r\n configurable: true\r\n });\r\n}\r\n/**\r\n * Parse simple path.\r\n */\r\nvar bailRE = new RegExp(\"[^\".concat(unicodeRegExp.source, \".$_\\\\d]\"));\r\nfunction parsePath(path) {\r\n if (bailRE.test(path)) {\r\n return;\r\n }\r\n var segments = path.split('.');\r\n return function (obj) {\r\n for (var i = 0; i < segments.length; i++) {\r\n if (!obj)\r\n return;\r\n obj = obj[segments[i]];\r\n }\r\n return obj;\r\n };\r\n}\n\n// can we use __proto__?\r\nvar hasProto = '__proto__' in {};\r\n// Browser environment sniffing\r\nvar inBrowser = typeof window !== 'undefined';\r\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\r\nvar isIE = UA && /msie|trident/.test(UA);\r\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\r\nvar isEdge = UA && UA.indexOf('edge/') > 0;\r\nUA && UA.indexOf('android') > 0;\r\nvar isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);\r\nUA && /chrome\\/\\d+/.test(UA) && !isEdge;\r\nUA && /phantomjs/.test(UA);\r\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\r\n// Firefox has a \"watch\" function on Object.prototype...\r\n// @ts-expect-error firebox support\r\nvar nativeWatch = {}.watch;\r\nvar supportsPassive = false;\r\nif (inBrowser) {\r\n try {\r\n var opts = {};\r\n Object.defineProperty(opts, 'passive', {\r\n get: function () {\r\n /* istanbul ignore next */\r\n supportsPassive = true;\r\n }\r\n }); // https://github.com/facebook/flow/issues/285\r\n window.addEventListener('test-passive', null, opts);\r\n }\r\n catch (e) { }\r\n}\r\n// this needs to be lazy-evaled because vue may be required before\r\n// vue-server-renderer can set VUE_ENV\r\nvar _isServer;\r\nvar isServerRendering = function () {\r\n if (_isServer === undefined) {\r\n /* istanbul ignore if */\r\n if (!inBrowser && typeof global !== 'undefined') {\r\n // detect presence of vue-server-renderer and avoid\r\n // Webpack shimming the process\r\n _isServer =\r\n global['process'] && global['process'].env.VUE_ENV === 'server';\r\n }\r\n else {\r\n _isServer = false;\r\n }\r\n }\r\n return _isServer;\r\n};\r\n// detect devtools\r\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\r\n/* istanbul ignore next */\r\nfunction isNative(Ctor) {\r\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString());\r\n}\r\nvar hasSymbol = typeof Symbol !== 'undefined' &&\r\n isNative(Symbol) &&\r\n typeof Reflect !== 'undefined' &&\r\n isNative(Reflect.ownKeys);\r\nvar _Set; // $flow-disable-line\r\n/* istanbul ignore if */ if (typeof Set !== 'undefined' && isNative(Set)) {\r\n // use native Set when available.\r\n _Set = Set;\r\n}\r\nelse {\r\n // a non-standard Set polyfill that only works with primitive keys.\r\n _Set = /** @class */ (function () {\r\n function Set() {\r\n this.set = Object.create(null);\r\n }\r\n Set.prototype.has = function (key) {\r\n return this.set[key] === true;\r\n };\r\n Set.prototype.add = function (key) {\r\n this.set[key] = true;\r\n };\r\n Set.prototype.clear = function () {\r\n this.set = Object.create(null);\r\n };\r\n return Set;\r\n }());\r\n}\n\nvar currentInstance = null;\r\n/**\r\n * This is exposed for compatibility with v3 (e.g. some functions in VueUse\r\n * relies on it). Do not use this internally, just use `currentInstance`.\r\n *\r\n * @internal this function needs manual type declaration because it relies\r\n * on previously manually authored types from Vue 2\r\n */\r\nfunction getCurrentInstance() {\r\n return currentInstance && { proxy: currentInstance };\r\n}\r\n/**\r\n * @internal\r\n */\r\nfunction setCurrentInstance(vm) {\r\n if (vm === void 0) { vm = null; }\r\n if (!vm)\r\n currentInstance && currentInstance._scope.off();\r\n currentInstance = vm;\r\n vm && vm._scope.on();\r\n}\n\nvar warn = noop;\r\nvar tip = noop;\r\nvar generateComponentTrace; // work around flow check\r\nvar formatComponentName;\r\nif (process.env.NODE_ENV !== 'production') {\r\n var hasConsole_1 = typeof console !== 'undefined';\r\n var classifyRE_1 = /(?:^|[-_])(\\w)/g;\r\n var classify_1 = function (str) {\r\n return str.replace(classifyRE_1, function (c) { return c.toUpperCase(); }).replace(/[-_]/g, '');\r\n };\r\n warn = function (msg, vm) {\r\n if (vm === void 0) { vm = currentInstance; }\r\n var trace = vm ? generateComponentTrace(vm) : '';\r\n if (config.warnHandler) {\r\n config.warnHandler.call(null, msg, vm, trace);\r\n }\r\n else if (hasConsole_1 && !config.silent) {\r\n console.error(\"[Vue warn]: \".concat(msg).concat(trace));\r\n }\r\n };\r\n tip = function (msg, vm) {\r\n if (hasConsole_1 && !config.silent) {\r\n console.warn(\"[Vue tip]: \".concat(msg) + (vm ? generateComponentTrace(vm) : ''));\r\n }\r\n };\r\n formatComponentName = function (vm, includeFile) {\r\n if (vm.$root === vm) {\r\n return '<Root>';\r\n }\r\n var options = isFunction(vm) && vm.cid != null\r\n ? vm.options\r\n : vm._isVue\r\n ? vm.$options || vm.constructor.options\r\n : vm;\r\n var name = options.name || options._componentTag;\r\n var file = options.__file;\r\n if (!name && file) {\r\n var match = file.match(/([^/\\\\]+)\\.vue$/);\r\n name = match && match[1];\r\n }\r\n return ((name ? \"<\".concat(classify_1(name), \">\") : \"<Anonymous>\") +\r\n (file && includeFile !== false ? \" at \".concat(file) : ''));\r\n };\r\n var repeat_1 = function (str, n) {\r\n var res = '';\r\n while (n) {\r\n if (n % 2 === 1)\r\n res += str;\r\n if (n > 1)\r\n str += str;\r\n n >>= 1;\r\n }\r\n return res;\r\n };\r\n generateComponentTrace = function (vm) {\r\n if (vm._isVue && vm.$parent) {\r\n var tree = [];\r\n var currentRecursiveSequence = 0;\r\n while (vm) {\r\n if (tree.length > 0) {\r\n var last = tree[tree.length - 1];\r\n if (last.constructor === vm.constructor) {\r\n currentRecursiveSequence++;\r\n vm = vm.$parent;\r\n continue;\r\n }\r\n else if (currentRecursiveSequence > 0) {\r\n tree[tree.length - 1] = [last, currentRecursiveSequence];\r\n currentRecursiveSequence = 0;\r\n }\r\n }\r\n tree.push(vm);\r\n vm = vm.$parent;\r\n }\r\n return ('\\n\\nfound in\\n\\n' +\r\n tree\r\n .map(function (vm, i) {\r\n return \"\".concat(i === 0 ? '---> ' : repeat_1(' ', 5 + i * 2)).concat(isArray(vm)\r\n ? \"\".concat(formatComponentName(vm[0]), \"... (\").concat(vm[1], \" recursive calls)\")\r\n : formatComponentName(vm));\r\n })\r\n .join('\\n'));\r\n }\r\n else {\r\n return \"\\n\\n(found in \".concat(formatComponentName(vm), \")\");\r\n }\r\n };\r\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\r\nvar __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};\n\nvar uid$2 = 0;\r\n/**\r\n * A dep is an observable that can have multiple\r\n * directives subscribing to it.\r\n * @internal\r\n */\r\nvar Dep = /** @class */ (function () {\r\n function Dep() {\r\n this.id = uid$2++;\r\n this.subs = [];\r\n }\r\n Dep.prototype.addSub = function (sub) {\r\n this.subs.push(sub);\r\n };\r\n Dep.prototype.removeSub = function (sub) {\r\n remove$2(this.subs, sub);\r\n };\r\n Dep.prototype.depend = function (info) {\r\n if (Dep.target) {\r\n Dep.target.addDep(this);\r\n if (process.env.NODE_ENV !== 'production' && info && Dep.target.onTrack) {\r\n Dep.target.onTrack(__assign({ effect: Dep.target }, info));\r\n }\r\n }\r\n };\r\n Dep.prototype.notify = function (info) {\r\n // stabilize the subscriber list first\r\n var subs = this.subs.slice();\r\n if (process.env.NODE_ENV !== 'production' && !config.async) {\r\n // subs aren't sorted in scheduler if not running async\r\n // we need to sort them now to make sure they fire in correct\r\n // order\r\n subs.sort(function (a, b) { return a.id - b.id; });\r\n }\r\n for (var i = 0, l = subs.length; i < l; i++) {\r\n if (process.env.NODE_ENV !== 'production' && info) {\r\n var sub = subs[i];\r\n sub.onTrigger &&\r\n sub.onTrigger(__assign({ effect: subs[i] }, info));\r\n }\r\n subs[i].update();\r\n }\r\n };\r\n return Dep;\r\n}());\r\n// The current target watcher being evaluated.\r\n// This is globally unique because only one watcher\r\n// can be evaluated at a time.\r\nDep.target = null;\r\nvar targetStack = [];\r\nfunction pushTarget(target) {\r\n targetStack.push(target);\r\n Dep.target = target;\r\n}\r\nfunction popTarget() {\r\n targetStack.pop();\r\n Dep.target = targetStack[targetStack.length - 1];\r\n}\n\n/**\r\n * @internal\r\n */\r\nvar VNode = /** @class */ (function () {\r\n function VNode(tag, data, children, text, elm, context, componentOptions, asyncFactory) {\r\n this.tag = tag;\r\n this.data = data;\r\n this.children = children;\r\n this.text = text;\r\n this.elm = elm;\r\n this.ns = undefined;\r\n this.context = context;\r\n this.fnContext = undefined;\r\n this.fnOptions = undefined;\r\n this.fnScopeId = undefined;\r\n this.key = data && data.key;\r\n this.componentOptions = componentOptions;\r\n this.componentInstance = undefined;\r\n this.parent = undefined;\r\n this.raw = false;\r\n this.isStatic = false;\r\n this.isRootInsert = true;\r\n this.isComment = false;\r\n this.isCloned = false;\r\n this.isOnce = false;\r\n this.asyncFactory = asyncFactory;\r\n this.asyncMeta = undefined;\r\n this.isAsyncPlaceholder = false;\r\n }\r\n Object.defineProperty(VNode.prototype, \"child\", {\r\n // DEPRECATED: alias for componentInstance for backwards compat.\r\n /* istanbul ignore next */\r\n get: function () {\r\n return this.componentInstance;\r\n },\r\n enumerable: false,\r\n configurable: true\r\n });\r\n return VNode;\r\n}());\r\nvar createEmptyVNode = function (text) {\r\n if (text === void 0) { text = ''; }\r\n var node = new VNode();\r\n node.text = text;\r\n node.isComment = true;\r\n return node;\r\n};\r\nfunction createTextVNode(val) {\r\n return new VNode(undefined, undefined, undefined, String(val));\r\n}\r\n// optimized shallow clone\r\n// used for static nodes and slot nodes because they may be reused across\r\n// multiple renders, cloning them avoids errors when DOM manipulations rely\r\n// on their elm reference.\r\nfunction cloneVNode(vnode) {\r\n var cloned = new VNode(vnode.tag, vnode.data, \r\n // #7975\r\n // clone children array to avoid mutating original in case of cloning\r\n // a child.\r\n vnode.children && vnode.children.slice(), vnode.text, vnode.elm, vnode.context, vnode.componentOptions, vnode.asyncFactory);\r\n cloned.ns = vnode.ns;\r\n cloned.isStatic = vnode.isStatic;\r\n cloned.key = vnode.key;\r\n cloned.isComment = vnode.isComment;\r\n cloned.fnContext = vnode.fnContext;\r\n cloned.fnOptions = vnode.fnOptions;\r\n cloned.fnScopeId = vnode.fnScopeId;\r\n cloned.asyncMeta = vnode.asyncMeta;\r\n cloned.isCloned = true;\r\n return cloned;\r\n}\n\n/*\r\n * not type checking this file because flow doesn't play well with\r\n * dynamically accessing methods on Array prototype\r\n */\r\nvar arrayProto = Array.prototype;\r\nvar arrayMethods = Object.create(arrayProto);\r\nvar methodsToPatch = [\r\n 'push',\r\n 'pop',\r\n 'shift',\r\n 'unshift',\r\n 'splice',\r\n 'sort',\r\n 'reverse'\r\n];\r\n/**\r\n * Intercept mutating methods and emit events\r\n */\r\nmethodsToPatch.forEach(function (method) {\r\n // cache original method\r\n var original = arrayProto[method];\r\n def(arrayMethods, method, function mutator() {\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 result = original.apply(this, args);\r\n var ob = this.__ob__;\r\n var inserted;\r\n switch (method) {\r\n case 'push':\r\n case 'unshift':\r\n inserted = args;\r\n break;\r\n case 'splice':\r\n inserted = args.slice(2);\r\n break;\r\n }\r\n if (inserted)\r\n ob.observeArray(inserted);\r\n // notify change\r\n if (process.env.NODE_ENV !== 'production') {\r\n ob.dep.notify({\r\n type: \"array mutation\" /* TriggerOpTypes.ARRAY_MUTATION */,\r\n target: this,\r\n key: method\r\n });\r\n }\r\n else {\r\n ob.dep.notify();\r\n }\r\n return result;\r\n });\r\n});\n\nfunction reactive(target) {\r\n makeReactive(target, false);\r\n return target;\r\n}\r\n/**\r\n * Return a shallowly-reactive copy of the original object, where only the root\r\n * level properties are reactive. It also does not auto-unwrap refs (even at the\r\n * root level).\r\n */\r\nfunction shallowReactive(target) {\r\n makeReactive(target, true);\r\n def(target, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\r\n return target;\r\n}\r\nfunction makeReactive(target, shallow) {\r\n // if trying to observe a readonly proxy, return the readonly version.\r\n if (!isReadonly(target)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (isArray(target)) {\r\n warn(\"Avoid using Array as root value for \".concat(shallow ? \"shallowReactive()\" : \"reactive()\", \" as it cannot be tracked in watch() or watchEffect(). Use \").concat(shallow ? \"shallowRef()\" : \"ref()\", \" instead. This is a Vue-2-only limitation.\"));\r\n }\r\n var existingOb = target && target.__ob__;\r\n if (existingOb && existingOb.shallow !== shallow) {\r\n warn(\"Target is already a \".concat(existingOb.shallow ? \"\" : \"non-\", \"shallow reactive object, and cannot be converted to \").concat(shallow ? \"\" : \"non-\", \"shallow.\"));\r\n }\r\n }\r\n var ob = observe(target, shallow);\r\n if (process.env.NODE_ENV !== 'production' && !ob) {\r\n if (target == null || isPrimitive(target)) {\r\n warn(\"value cannot be made reactive: \".concat(String(target)));\r\n }\r\n if (isCollectionType(target)) {\r\n warn(\"Vue 2 does not support reactive collection types such as Map or Set.\");\r\n }\r\n }\r\n }\r\n}\r\nfunction isReactive(value) {\r\n if (isReadonly(value)) {\r\n return isReactive(value[\"__v_raw\" /* ReactiveFlags.RAW */]);\r\n }\r\n return !!(value && value.__ob__);\r\n}\r\nfunction isShallow(value) {\r\n return !!(value && value.__v_isShallow);\r\n}\r\nfunction isReadonly(value) {\r\n return !!(value && value.__v_isReadonly);\r\n}\r\nfunction isProxy(value) {\r\n return isReactive(value) || isReadonly(value);\r\n}\r\nfunction toRaw(observed) {\r\n var raw = observed && observed[\"__v_raw\" /* ReactiveFlags.RAW */];\r\n return raw ? toRaw(raw) : observed;\r\n}\r\nfunction markRaw(value) {\r\n def(value, \"__v_skip\" /* ReactiveFlags.SKIP */, true);\r\n return value;\r\n}\r\n/**\r\n * @internal\r\n */\r\nfunction isCollectionType(value) {\r\n var type = toRawType(value);\r\n return (type === 'Map' || type === 'WeakMap' || type === 'Set' || type === 'WeakSet');\r\n}\n\n/**\r\n * @internal\r\n */\r\nvar RefFlag = \"__v_isRef\";\r\nfunction isRef(r) {\r\n return !!(r && r.__v_isRef === true);\r\n}\r\nfunction ref$1(value) {\r\n return createRef(value, false);\r\n}\r\nfunction shallowRef(value) {\r\n return createRef(value, true);\r\n}\r\nfunction createRef(rawValue, shallow) {\r\n if (isRef(rawValue)) {\r\n return rawValue;\r\n }\r\n var ref = {};\r\n def(ref, RefFlag, true);\r\n def(ref, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\r\n ref.dep = defineReactive(ref, 'value', rawValue, null, shallow);\r\n return ref;\r\n}\r\nfunction triggerRef(ref) {\r\n if (process.env.NODE_ENV !== 'production' && !ref.dep) {\r\n warn(\"received object is not a triggerable ref.\");\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n ref.dep &&\r\n ref.dep.notify({\r\n type: \"set\" /* TriggerOpTypes.SET */,\r\n target: ref,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n ref.dep && ref.dep.notify();\r\n }\r\n}\r\nfunction unref(ref) {\r\n return isRef(ref) ? ref.value : ref;\r\n}\r\nfunction customRef(factory) {\r\n var dep = new Dep();\r\n var _a = factory(function () {\r\n if (process.env.NODE_ENV !== 'production') {\r\n dep.depend({\r\n target: ref,\r\n type: \"get\" /* TrackOpTypes.GET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n dep.depend();\r\n }\r\n }, function () {\r\n if (process.env.NODE_ENV !== 'production') {\r\n dep.notify({\r\n target: ref,\r\n type: \"set\" /* TriggerOpTypes.SET */,\r\n key: 'value'\r\n });\r\n }\r\n else {\r\n dep.notify();\r\n }\r\n }), get = _a.get, set = _a.set;\r\n var ref = {\r\n get value() {\r\n return get();\r\n },\r\n set value(newVal) {\r\n set(newVal);\r\n }\r\n };\r\n def(ref, RefFlag, true);\r\n return ref;\r\n}\r\nfunction toRefs(object) {\r\n if (process.env.NODE_ENV !== 'production' && !isReactive(object)) {\r\n warn(\"toRefs() expects a reactive object but received a plain one.\");\r\n }\r\n var ret = isArray(object) ? new Array(object.length) : {};\r\n for (var key in object) {\r\n ret[key] = toRef(object, key);\r\n }\r\n return ret;\r\n}\r\nfunction toRef(object, key, defaultValue) {\r\n var val = object[key];\r\n if (isRef(val)) {\r\n return val;\r\n }\r\n var ref = {\r\n get value() {\r\n var val = object[key];\r\n return val === undefined ? defaultValue : val;\r\n },\r\n set value(newVal) {\r\n object[key] = newVal;\r\n }\r\n };\r\n def(ref, RefFlag, true);\r\n return ref;\r\n}\n\nvar rawToReadonlyFlag = \"__v_rawToReadonly\";\r\nvar rawToShallowReadonlyFlag = \"__v_rawToShallowReadonly\";\r\nfunction readonly(target) {\r\n return createReadonly(target, false);\r\n}\r\nfunction createReadonly(target, shallow) {\r\n if (!isPlainObject(target)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (isArray(target)) {\r\n warn(\"Vue 2 does not support readonly arrays.\");\r\n }\r\n else if (isCollectionType(target)) {\r\n warn(\"Vue 2 does not support readonly collection types such as Map or Set.\");\r\n }\r\n else {\r\n warn(\"value cannot be made readonly: \".concat(typeof target));\r\n }\r\n }\r\n return target;\r\n }\r\n // already a readonly object\r\n if (isReadonly(target)) {\r\n return target;\r\n }\r\n // already has a readonly proxy\r\n var existingFlag = shallow ? rawToShallowReadonlyFlag : rawToReadonlyFlag;\r\n var existingProxy = target[existingFlag];\r\n if (existingProxy) {\r\n return existingProxy;\r\n }\r\n var proxy = Object.create(Object.getPrototypeOf(target));\r\n def(target, existingFlag, proxy);\r\n def(proxy, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, true);\r\n def(proxy, \"__v_raw\" /* ReactiveFlags.RAW */, target);\r\n if (isRef(target)) {\r\n def(proxy, RefFlag, true);\r\n }\r\n if (shallow || isShallow(target)) {\r\n def(proxy, \"__v_isShallow\" /* ReactiveFlags.IS_SHALLOW */, true);\r\n }\r\n var keys = Object.keys(target);\r\n for (var i = 0; i < keys.length; i++) {\r\n defineReadonlyProperty(proxy, target, keys[i], shallow);\r\n }\r\n return proxy;\r\n}\r\nfunction defineReadonlyProperty(proxy, target, key, shallow) {\r\n Object.defineProperty(proxy, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function () {\r\n var val = target[key];\r\n return shallow || !isPlainObject(val) ? val : readonly(val);\r\n },\r\n set: function () {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\r\n }\r\n });\r\n}\r\n/**\r\n * Returns a reactive-copy of the original object, where only the root level\r\n * properties are readonly, and does NOT unwrap refs nor recursively convert\r\n * returned properties.\r\n * This is used for creating the props proxy object for stateful components.\r\n */\r\nfunction shallowReadonly(target) {\r\n return createReadonly(target, true);\r\n}\n\nvar seenObjects = new _Set();\r\n/**\r\n * Recursively traverse an object to evoke all converted\r\n * getters, so that every nested property inside the object\r\n * is collected as a \"deep\" dependency.\r\n */\r\nfunction traverse(val) {\r\n _traverse(val, seenObjects);\r\n seenObjects.clear();\r\n return val;\r\n}\r\nfunction _traverse(val, seen) {\r\n var i, keys;\r\n var isA = isArray(val);\r\n if ((!isA && !isObject(val)) ||\r\n Object.isFrozen(val) ||\r\n val instanceof VNode) {\r\n return;\r\n }\r\n if (val.__ob__) {\r\n var depId = val.__ob__.dep.id;\r\n if (seen.has(depId)) {\r\n return;\r\n }\r\n seen.add(depId);\r\n }\r\n if (isA) {\r\n i = val.length;\r\n while (i--)\r\n _traverse(val[i], seen);\r\n }\r\n else {\r\n keys = Object.keys(val);\r\n i = keys.length;\r\n while (i--)\r\n _traverse(val[keys[i]], seen);\r\n }\r\n}\n\nvar mark;\r\nvar measure;\r\nif (process.env.NODE_ENV !== 'production') {\r\n var perf_1 = inBrowser && window.performance;\r\n /* istanbul ignore if */\r\n if (perf_1 &&\r\n // @ts-ignore\r\n perf_1.mark &&\r\n // @ts-ignore\r\n perf_1.measure &&\r\n // @ts-ignore\r\n perf_1.clearMarks &&\r\n // @ts-ignore\r\n perf_1.clearMeasures) {\r\n mark = function (tag) { return perf_1.mark(tag); };\r\n measure = function (name, startTag, endTag) {\r\n perf_1.measure(name, startTag, endTag);\r\n perf_1.clearMarks(startTag);\r\n perf_1.clearMarks(endTag);\r\n // perf.clearMeasures(name)\r\n };\r\n }\r\n}\n\nvar normalizeEvent = cached(function (name) {\r\n var passive = name.charAt(0) === '&';\r\n name = passive ? name.slice(1) : name;\r\n var once = name.charAt(0) === '~'; // Prefixed last, checked first\r\n name = once ? name.slice(1) : name;\r\n var capture = name.charAt(0) === '!';\r\n name = capture ? name.slice(1) : name;\r\n return {\r\n name: name,\r\n once: once,\r\n capture: capture,\r\n passive: passive\r\n };\r\n});\r\nfunction createFnInvoker(fns, vm) {\r\n function invoker() {\r\n var fns = invoker.fns;\r\n if (isArray(fns)) {\r\n var cloned = fns.slice();\r\n for (var i = 0; i < cloned.length; i++) {\r\n invokeWithErrorHandling(cloned[i], null, arguments, vm, \"v-on handler\");\r\n }\r\n }\r\n else {\r\n // return handler return value for single handlers\r\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\");\r\n }\r\n }\r\n invoker.fns = fns;\r\n return invoker;\r\n}\r\nfunction updateListeners(on, oldOn, add, remove, createOnceHandler, vm) {\r\n var name, cur, old, event;\r\n for (name in on) {\r\n cur = on[name];\r\n old = oldOn[name];\r\n event = normalizeEvent(name);\r\n if (isUndef(cur)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Invalid handler for event \\\"\".concat(event.name, \"\\\": got \") + String(cur), vm);\r\n }\r\n else if (isUndef(old)) {\r\n if (isUndef(cur.fns)) {\r\n cur = on[name] = createFnInvoker(cur, vm);\r\n }\r\n if (isTrue(event.once)) {\r\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\r\n }\r\n add(event.name, cur, event.capture, event.passive, event.params);\r\n }\r\n else if (cur !== old) {\r\n old.fns = cur;\r\n on[name] = old;\r\n }\r\n }\r\n for (name in oldOn) {\r\n if (isUndef(on[name])) {\r\n event = normalizeEvent(name);\r\n remove(event.name, oldOn[name], event.capture);\r\n }\r\n }\r\n}\n\nfunction mergeVNodeHook(def, hookKey, hook) {\r\n if (def instanceof VNode) {\r\n def = def.data.hook || (def.data.hook = {});\r\n }\r\n var invoker;\r\n var oldHook = def[hookKey];\r\n function wrappedHook() {\r\n hook.apply(this, arguments);\r\n // important: remove merged hook to ensure it's called only once\r\n // and prevent memory leak\r\n remove$2(invoker.fns, wrappedHook);\r\n }\r\n if (isUndef(oldHook)) {\r\n // no existing hook\r\n invoker = createFnInvoker([wrappedHook]);\r\n }\r\n else {\r\n /* istanbul ignore if */\r\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\r\n // already a merged invoker\r\n invoker = oldHook;\r\n invoker.fns.push(wrappedHook);\r\n }\r\n else {\r\n // existing plain hook\r\n invoker = createFnInvoker([oldHook, wrappedHook]);\r\n }\r\n }\r\n invoker.merged = true;\r\n def[hookKey] = invoker;\r\n}\n\nfunction extractPropsFromVNodeData(data, Ctor, tag) {\r\n // we are only extracting raw values here.\r\n // validation and default values are handled in the child\r\n // component itself.\r\n var propOptions = Ctor.options.props;\r\n if (isUndef(propOptions)) {\r\n return;\r\n }\r\n var res = {};\r\n var attrs = data.attrs, props = data.props;\r\n if (isDef(attrs) || isDef(props)) {\r\n for (var key in propOptions) {\r\n var altKey = hyphenate(key);\r\n if (process.env.NODE_ENV !== 'production') {\r\n var keyInLowerCase = key.toLowerCase();\r\n if (key !== keyInLowerCase && attrs && hasOwn(attrs, keyInLowerCase)) {\r\n tip(\"Prop \\\"\".concat(keyInLowerCase, \"\\\" is passed to component \") +\r\n \"\".concat(formatComponentName(\r\n // @ts-expect-error tag is string\r\n tag || Ctor), \", but the declared prop name is\") +\r\n \" \\\"\".concat(key, \"\\\". \") +\r\n \"Note that HTML attributes are case-insensitive and camelCased \" +\r\n \"props need to use their kebab-case equivalents when using in-DOM \" +\r\n \"templates. You should probably use \\\"\".concat(altKey, \"\\\" instead of \\\"\").concat(key, \"\\\".\"));\r\n }\r\n }\r\n checkProp(res, props, key, altKey, true) ||\r\n checkProp(res, attrs, key, altKey, false);\r\n }\r\n }\r\n return res;\r\n}\r\nfunction checkProp(res, hash, key, altKey, preserve) {\r\n if (isDef(hash)) {\r\n if (hasOwn(hash, key)) {\r\n res[key] = hash[key];\r\n if (!preserve) {\r\n delete hash[key];\r\n }\r\n return true;\r\n }\r\n else if (hasOwn(hash, altKey)) {\r\n res[key] = hash[altKey];\r\n if (!preserve) {\r\n delete hash[altKey];\r\n }\r\n return true;\r\n }\r\n }\r\n return false;\r\n}\n\n// The template compiler attempts to minimize the need for normalization by\r\n// statically analyzing the template at compile time.\r\n//\r\n// For plain HTML markup, normalization can be completely skipped because the\r\n// generated render function is guaranteed to return Array<VNode>. There are\r\n// two cases where extra normalization is needed:\r\n// 1. When the children contains components - because a functional component\r\n// may return an Array instead of a single root. In this case, just a simple\r\n// normalization is needed - if any child is an Array, we flatten the whole\r\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\r\n// because functional components already normalize their own children.\r\nfunction simpleNormalizeChildren(children) {\r\n for (var i = 0; i < children.length; i++) {\r\n if (isArray(children[i])) {\r\n return Array.prototype.concat.apply([], children);\r\n }\r\n }\r\n return children;\r\n}\r\n// 2. When the children contains constructs that always generated nested Arrays,\r\n// e.g. <template>, <slot>, v-for, or when the children is provided by user\r\n// with hand-written render functions / JSX. In such cases a full normalization\r\n// is needed to cater to all possible types of children values.\r\nfunction normalizeChildren(children) {\r\n return isPrimitive(children)\r\n ? [createTextVNode(children)]\r\n : isArray(children)\r\n ? normalizeArrayChildren(children)\r\n : undefined;\r\n}\r\nfunction isTextNode(node) {\r\n return isDef(node) && isDef(node.text) && isFalse(node.isComment);\r\n}\r\nfunction normalizeArrayChildren(children, nestedIndex) {\r\n var res = [];\r\n var i, c, lastIndex, last;\r\n for (i = 0; i < children.length; i++) {\r\n c = children[i];\r\n if (isUndef(c) || typeof c === 'boolean')\r\n continue;\r\n lastIndex = res.length - 1;\r\n last = res[lastIndex];\r\n // nested\r\n if (isArray(c)) {\r\n if (c.length > 0) {\r\n c = normalizeArrayChildren(c, \"\".concat(nestedIndex || '', \"_\").concat(i));\r\n // merge adjacent text nodes\r\n if (isTextNode(c[0]) && isTextNode(last)) {\r\n res[lastIndex] = createTextVNode(last.text + c[0].text);\r\n c.shift();\r\n }\r\n res.push.apply(res, c);\r\n }\r\n }\r\n else if (isPrimitive(c)) {\r\n if (isTextNode(last)) {\r\n // merge adjacent text nodes\r\n // this is necessary for SSR hydration because text nodes are\r\n // essentially merged when rendered to HTML strings\r\n res[lastIndex] = createTextVNode(last.text + c);\r\n }\r\n else if (c !== '') {\r\n // convert primitive to vnode\r\n res.push(createTextVNode(c));\r\n }\r\n }\r\n else {\r\n if (isTextNode(c) && isTextNode(last)) {\r\n // merge adjacent text nodes\r\n res[lastIndex] = createTextVNode(last.text + c.text);\r\n }\r\n else {\r\n // default key for nested array children (likely generated by v-for)\r\n if (isTrue(children._isVList) &&\r\n isDef(c.tag) &&\r\n isUndef(c.key) &&\r\n isDef(nestedIndex)) {\r\n c.key = \"__vlist\".concat(nestedIndex, \"_\").concat(i, \"__\");\r\n }\r\n res.push(c);\r\n }\r\n }\r\n }\r\n return res;\r\n}\n\nfunction provide(key, value) {\r\n if (!currentInstance) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n warn(\"provide() can only be used inside setup().\");\r\n }\r\n }\r\n else {\r\n var provides = currentInstance._provided;\r\n // by default an instance inherits its parent's provides object\r\n // but when it needs to provide values of its own, it creates its\r\n // own provides object using parent provides object as prototype.\r\n // this way in `inject` we can simply look up injections from direct\r\n // parent and let the prototype chain do the work.\r\n var parentProvides = currentInstance.$parent && currentInstance.$parent._provided;\r\n if (parentProvides === provides) {\r\n provides = currentInstance._provided = Object.create(parentProvides);\r\n }\r\n // TS doesn't allow symbol as index type\r\n provides[key] = value;\r\n }\r\n}\r\nfunction inject(key, defaultValue, treatDefaultAsFactory) {\r\n if (treatDefaultAsFactory === void 0) { treatDefaultAsFactory = false; }\r\n // fallback to `currentRenderingInstance` so that this can be called in\r\n // a functional component\r\n var instance = currentInstance;\r\n if (instance) {\r\n // #2400\r\n // to support `app.use` plugins,\r\n // fallback to appContext's `provides` if the instance is at root\r\n var provides = instance.$parent && instance.$parent._provided;\r\n if (provides && key in provides) {\r\n // TS doesn't allow symbol as index type\r\n return provides[key];\r\n }\r\n else if (arguments.length > 1) {\r\n return treatDefaultAsFactory && isFunction(defaultValue)\r\n ? defaultValue.call(instance)\r\n : defaultValue;\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"injection \\\"\".concat(String(key), \"\\\" not found.\"));\r\n }\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"inject() can only be used inside setup() or functional components.\");\r\n }\r\n}\n\nfunction initProvide(vm) {\r\n var provideOption = vm.$options.provide;\r\n if (provideOption) {\r\n var provided = isFunction(provideOption)\r\n ? provideOption.call(vm)\r\n : provideOption;\r\n if (!isObject(provided)) {\r\n return;\r\n }\r\n var keys = hasSymbol ? Reflect.ownKeys(provided) : Object.keys(provided);\r\n setCurrentInstance(vm);\r\n for (var i = 0; i < keys.length; i++) {\r\n provide(keys[i], provided[keys[i]]);\r\n }\r\n setCurrentInstance();\r\n }\r\n}\r\nfunction initInjections(vm) {\r\n var result = resolveInject(vm.$options.inject, vm);\r\n if (result) {\r\n toggleObserving(false);\r\n Object.keys(result).forEach(function (key) {\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV !== 'production') {\r\n defineReactive(vm, key, result[key], function () {\r\n warn(\"Avoid mutating an injected value directly since the changes will be \" +\r\n \"overwritten whenever the provided component re-renders. \" +\r\n \"injection being mutated: \\\"\".concat(key, \"\\\"\"), vm);\r\n });\r\n }\r\n else {\r\n defineReactive(vm, key, result[key]);\r\n }\r\n });\r\n toggleObserving(true);\r\n }\r\n}\r\nfunction resolveInject(inject, vm) {\r\n if (inject) {\r\n // inject is :any because flow is not smart enough to figure out cached\r\n var result = Object.create(null);\r\n var keys = hasSymbol ? Reflect.ownKeys(inject) : Object.keys(inject);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n // #6574 in case the inject object is observed...\r\n if (key === '__ob__')\r\n continue;\r\n var provideKey = inject[key].from;\r\n if (provideKey in vm._provided) {\r\n result[key] = vm._provided[provideKey];\r\n }\r\n else if ('default' in inject[key]) {\r\n var provideDefault = inject[key].default;\r\n result[key] = isFunction(provideDefault)\r\n ? provideDefault.call(vm)\r\n : provideDefault;\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Injection \\\"\".concat(key, \"\\\" not found\"), vm);\r\n }\r\n }\r\n return result;\r\n }\r\n}\n\n/**\r\n * Runtime helper for resolving raw children VNodes into a slot object.\r\n */\r\nfunction resolveSlots(children, context) {\r\n if (!children || !children.length) {\r\n return {};\r\n }\r\n var slots = {};\r\n for (var i = 0, l = children.length; i < l; i++) {\r\n var child = children[i];\r\n var data = child.data;\r\n // remove slot attribute if the node is resolved as a Vue slot node\r\n if (data && data.attrs && data.attrs.slot) {\r\n delete data.attrs.slot;\r\n }\r\n // named slots should only be respected if the vnode was rendered in the\r\n // same context.\r\n if ((child.context === context || child.fnContext === context) &&\r\n data &&\r\n data.slot != null) {\r\n var name_1 = data.slot;\r\n var slot = slots[name_1] || (slots[name_1] = []);\r\n if (child.tag === 'template') {\r\n slot.push.apply(slot, child.children || []);\r\n }\r\n else {\r\n slot.push(child);\r\n }\r\n }\r\n else {\r\n (slots.default || (slots.default = [])).push(child);\r\n }\r\n }\r\n // ignore slots that contains only whitespace\r\n for (var name_2 in slots) {\r\n if (slots[name_2].every(isWhitespace)) {\r\n delete slots[name_2];\r\n }\r\n }\r\n return slots;\r\n}\r\nfunction isWhitespace(node) {\r\n return (node.isComment && !node.asyncFactory) || node.text === ' ';\r\n}\n\nfunction isAsyncPlaceholder(node) {\r\n // @ts-expect-error not really boolean type\r\n return node.isComment && node.asyncFactory;\r\n}\n\nfunction normalizeScopedSlots(ownerVm, scopedSlots, normalSlots, prevScopedSlots) {\r\n var res;\r\n var hasNormalSlots = Object.keys(normalSlots).length > 0;\r\n var isStable = scopedSlots ? !!scopedSlots.$stable : !hasNormalSlots;\r\n var key = scopedSlots && scopedSlots.$key;\r\n if (!scopedSlots) {\r\n res = {};\r\n }\r\n else if (scopedSlots._normalized) {\r\n // fast path 1: child component re-render only, parent did not change\r\n return scopedSlots._normalized;\r\n }\r\n else if (isStable &&\r\n prevScopedSlots &&\r\n prevScopedSlots !== emptyObject &&\r\n key === prevScopedSlots.$key &&\r\n !hasNormalSlots &&\r\n !prevScopedSlots.$hasNormal) {\r\n // fast path 2: stable scoped slots w/ no normal slots to proxy,\r\n // only need to normalize once\r\n return prevScopedSlots;\r\n }\r\n else {\r\n res = {};\r\n for (var key_1 in scopedSlots) {\r\n if (scopedSlots[key_1] && key_1[0] !== '$') {\r\n res[key_1] = normalizeScopedSlot(ownerVm, normalSlots, key_1, scopedSlots[key_1]);\r\n }\r\n }\r\n }\r\n // expose normal slots on scopedSlots\r\n for (var key_2 in normalSlots) {\r\n if (!(key_2 in res)) {\r\n res[key_2] = proxyNormalSlot(normalSlots, key_2);\r\n }\r\n }\r\n // avoriaz seems to mock a non-extensible $scopedSlots object\r\n // and when that is passed down this would cause an error\r\n if (scopedSlots && Object.isExtensible(scopedSlots)) {\r\n scopedSlots._normalized = res;\r\n }\r\n def(res, '$stable', isStable);\r\n def(res, '$key', key);\r\n def(res, '$hasNormal', hasNormalSlots);\r\n return res;\r\n}\r\nfunction normalizeScopedSlot(vm, normalSlots, key, fn) {\r\n var normalized = function () {\r\n var cur = currentInstance;\r\n setCurrentInstance(vm);\r\n var res = arguments.length ? fn.apply(null, arguments) : fn({});\r\n res =\r\n res && typeof res === 'object' && !isArray(res)\r\n ? [res] // single vnode\r\n : normalizeChildren(res);\r\n var vnode = res && res[0];\r\n setCurrentInstance(cur);\r\n return res &&\r\n (!vnode ||\r\n (res.length === 1 && vnode.isComment && !isAsyncPlaceholder(vnode))) // #9658, #10391\r\n ? undefined\r\n : res;\r\n };\r\n // this is a slot using the new v-slot syntax without scope. although it is\r\n // compiled as a scoped slot, render fn users would expect it to be present\r\n // on this.$slots because the usage is semantically a normal slot.\r\n if (fn.proxy) {\r\n Object.defineProperty(normalSlots, key, {\r\n get: normalized,\r\n enumerable: true,\r\n configurable: true\r\n });\r\n }\r\n return normalized;\r\n}\r\nfunction proxyNormalSlot(slots, key) {\r\n return function () { return slots[key]; };\r\n}\n\n/**\r\n * Runtime helper for rendering v-for lists.\r\n */\r\nfunction renderList(val, render) {\r\n var ret = null, i, l, keys, key;\r\n if (isArray(val) || typeof val === 'string') {\r\n ret = new Array(val.length);\r\n for (i = 0, l = val.length; i < l; i++) {\r\n ret[i] = render(val[i], i);\r\n }\r\n }\r\n else if (typeof val === 'number') {\r\n ret = new Array(val);\r\n for (i = 0; i < val; i++) {\r\n ret[i] = render(i + 1, i);\r\n }\r\n }\r\n else if (isObject(val)) {\r\n if (hasSymbol && val[Symbol.iterator]) {\r\n ret = [];\r\n var iterator = val[Symbol.iterator]();\r\n var result = iterator.next();\r\n while (!result.done) {\r\n ret.push(render(result.value, ret.length));\r\n result = iterator.next();\r\n }\r\n }\r\n else {\r\n keys = Object.keys(val);\r\n ret = new Array(keys.length);\r\n for (i = 0, l = keys.length; i < l; i++) {\r\n key = keys[i];\r\n ret[i] = render(val[key], key, i);\r\n }\r\n }\r\n }\r\n if (!isDef(ret)) {\r\n ret = [];\r\n }\r\n ret._isVList = true;\r\n return ret;\r\n}\n\n/**\r\n * Runtime helper for rendering <slot>\r\n */\r\nfunction renderSlot(name, fallbackRender, props, bindObject) {\r\n var scopedSlotFn = this.$scopedSlots[name];\r\n var nodes;\r\n if (scopedSlotFn) {\r\n // scoped slot\r\n props = props || {};\r\n if (bindObject) {\r\n if (process.env.NODE_ENV !== 'production' && !isObject(bindObject)) {\r\n warn('slot v-bind without argument expects an Object', this);\r\n }\r\n props = extend(extend({}, bindObject), props);\r\n }\r\n nodes =\r\n scopedSlotFn(props) ||\r\n (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);\r\n }\r\n else {\r\n nodes =\r\n this.$slots[name] ||\r\n (isFunction(fallbackRender) ? fallbackRender() : fallbackRender);\r\n }\r\n var target = props && props.slot;\r\n if (target) {\r\n return this.$createElement('template', { slot: target }, nodes);\r\n }\r\n else {\r\n return nodes;\r\n }\r\n}\n\n/**\r\n * Runtime helper for resolving filters\r\n */\r\nfunction resolveFilter(id) {\r\n return resolveAsset(this.$options, 'filters', id, true) || identity;\r\n}\n\nfunction isKeyNotMatch(expect, actual) {\r\n if (isArray(expect)) {\r\n return expect.indexOf(actual) === -1;\r\n }\r\n else {\r\n return expect !== actual;\r\n }\r\n}\r\n/**\r\n * Runtime helper for checking keyCodes from config.\r\n * exposed as Vue.prototype._k\r\n * passing in eventKeyName as last argument separately for backwards compat\r\n */\r\nfunction checkKeyCodes(eventKeyCode, key, builtInKeyCode, eventKeyName, builtInKeyName) {\r\n var mappedKeyCode = config.keyCodes[key] || builtInKeyCode;\r\n if (builtInKeyName && eventKeyName && !config.keyCodes[key]) {\r\n return isKeyNotMatch(builtInKeyName, eventKeyName);\r\n }\r\n else if (mappedKeyCode) {\r\n return isKeyNotMatch(mappedKeyCode, eventKeyCode);\r\n }\r\n else if (eventKeyName) {\r\n return hyphenate(eventKeyName) !== key;\r\n }\r\n return eventKeyCode === undefined;\r\n}\n\n/**\r\n * Runtime helper for merging v-bind=\"object\" into a VNode's data.\r\n */\r\nfunction bindObjectProps(data, tag, value, asProp, isSync) {\r\n if (value) {\r\n if (!isObject(value)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn('v-bind without argument expects an Object or Array value', this);\r\n }\r\n else {\r\n if (isArray(value)) {\r\n value = toObject(value);\r\n }\r\n var hash = void 0;\r\n var _loop_1 = function (key) {\r\n if (key === 'class' || key === 'style' || isReservedAttribute(key)) {\r\n hash = data;\r\n }\r\n else {\r\n var type = data.attrs && data.attrs.type;\r\n hash =\r\n asProp || config.mustUseProp(tag, type, key)\r\n ? data.domProps || (data.domProps = {})\r\n : data.attrs || (data.attrs = {});\r\n }\r\n var camelizedKey = camelize(key);\r\n var hyphenatedKey = hyphenate(key);\r\n if (!(camelizedKey in hash) && !(hyphenatedKey in hash)) {\r\n hash[key] = value[key];\r\n if (isSync) {\r\n var on = data.on || (data.on = {});\r\n on[\"update:\".concat(key)] = function ($event) {\r\n value[key] = $event;\r\n };\r\n }\r\n }\r\n };\r\n for (var key in value) {\r\n _loop_1(key);\r\n }\r\n }\r\n }\r\n return data;\r\n}\n\n/**\r\n * Runtime helper for rendering static trees.\r\n */\r\nfunction renderStatic(index, isInFor) {\r\n var cached = this._staticTrees || (this._staticTrees = []);\r\n var tree = cached[index];\r\n // if has already-rendered static tree and not inside v-for,\r\n // we can reuse the same tree.\r\n if (tree && !isInFor) {\r\n return tree;\r\n }\r\n // otherwise, render a fresh tree.\r\n tree = cached[index] = this.$options.staticRenderFns[index].call(this._renderProxy, null, this // for render fns generated for functional component templates\r\n );\r\n markStatic(tree, \"__static__\".concat(index), false);\r\n return tree;\r\n}\r\n/**\r\n * Runtime helper for v-once.\r\n * Effectively it means marking the node as static with a unique key.\r\n */\r\nfunction markOnce(tree, index, key) {\r\n markStatic(tree, \"__once__\".concat(index).concat(key ? \"_\".concat(key) : \"\"), true);\r\n return tree;\r\n}\r\nfunction markStatic(tree, key, isOnce) {\r\n if (isArray(tree)) {\r\n for (var i = 0; i < tree.length; i++) {\r\n if (tree[i] && typeof tree[i] !== 'string') {\r\n markStaticNode(tree[i], \"\".concat(key, \"_\").concat(i), isOnce);\r\n }\r\n }\r\n }\r\n else {\r\n markStaticNode(tree, key, isOnce);\r\n }\r\n}\r\nfunction markStaticNode(node, key, isOnce) {\r\n node.isStatic = true;\r\n node.key = key;\r\n node.isOnce = isOnce;\r\n}\n\nfunction bindObjectListeners(data, value) {\r\n if (value) {\r\n if (!isPlainObject(value)) {\r\n process.env.NODE_ENV !== 'production' && warn('v-on without argument expects an Object value', this);\r\n }\r\n else {\r\n var on = (data.on = data.on ? extend({}, data.on) : {});\r\n for (var key in value) {\r\n var existing = on[key];\r\n var ours = value[key];\r\n on[key] = existing ? [].concat(existing, ours) : ours;\r\n }\r\n }\r\n }\r\n return data;\r\n}\n\nfunction resolveScopedSlots(fns, res, \r\n// the following are added in 2.6\r\nhasDynamicKeys, contentHashKey) {\r\n res = res || { $stable: !hasDynamicKeys };\r\n for (var i = 0; i < fns.length; i++) {\r\n var slot = fns[i];\r\n if (isArray(slot)) {\r\n resolveScopedSlots(slot, res, hasDynamicKeys);\r\n }\r\n else if (slot) {\r\n // marker for reverse proxying v-slot without scope on this.$slots\r\n // @ts-expect-error\r\n if (slot.proxy) {\r\n // @ts-expect-error\r\n slot.fn.proxy = true;\r\n }\r\n res[slot.key] = slot.fn;\r\n }\r\n }\r\n if (contentHashKey) {\r\n res.$key = contentHashKey;\r\n }\r\n return res;\r\n}\n\n// helper to process dynamic keys for dynamic arguments in v-bind and v-on.\r\nfunction bindDynamicKeys(baseObj, values) {\r\n for (var i = 0; i < values.length; i += 2) {\r\n var key = values[i];\r\n if (typeof key === 'string' && key) {\r\n baseObj[values[i]] = values[i + 1];\r\n }\r\n else if (process.env.NODE_ENV !== 'production' && key !== '' && key !== null) {\r\n // null is a special value for explicitly removing a binding\r\n warn(\"Invalid value for dynamic directive argument (expected string or null): \".concat(key), this);\r\n }\r\n }\r\n return baseObj;\r\n}\r\n// helper to dynamically append modifier runtime markers to event names.\r\n// ensure only append when value is already string, otherwise it will be cast\r\n// to string and cause the type check to miss.\r\nfunction prependModifier(value, symbol) {\r\n return typeof value === 'string' ? symbol + value : value;\r\n}\n\nfunction installRenderHelpers(target) {\r\n target._o = markOnce;\r\n target._n = toNumber;\r\n target._s = toString;\r\n target._l = renderList;\r\n target._t = renderSlot;\r\n target._q = looseEqual;\r\n target._i = looseIndexOf;\r\n target._m = renderStatic;\r\n target._f = resolveFilter;\r\n target._k = checkKeyCodes;\r\n target._b = bindObjectProps;\r\n target._v = createTextVNode;\r\n target._e = createEmptyVNode;\r\n target._u = resolveScopedSlots;\r\n target._g = bindObjectListeners;\r\n target._d = bindDynamicKeys;\r\n target._p = prependModifier;\r\n}\n\nfunction FunctionalRenderContext(data, props, children, parent, Ctor) {\r\n var _this = this;\r\n var options = Ctor.options;\r\n // ensure the createElement function in functional components\r\n // gets a unique context - this is necessary for correct named slot check\r\n var contextVm;\r\n if (hasOwn(parent, '_uid')) {\r\n contextVm = Object.create(parent);\r\n contextVm._original = parent;\r\n }\r\n else {\r\n // the context vm passed in is a functional context as well.\r\n // in this case we want to make sure we are able to get a hold to the\r\n // real context instance.\r\n contextVm = parent;\r\n // @ts-ignore\r\n parent = parent._original;\r\n }\r\n var isCompiled = isTrue(options._compiled);\r\n var needNormalization = !isCompiled;\r\n this.data = data;\r\n this.props = props;\r\n this.children = children;\r\n this.parent = parent;\r\n this.listeners = data.on || emptyObject;\r\n this.injections = resolveInject(options.inject, parent);\r\n this.slots = function () {\r\n if (!_this.$slots) {\r\n normalizeScopedSlots(parent, data.scopedSlots, (_this.$slots = resolveSlots(children, parent)));\r\n }\r\n return _this.$slots;\r\n };\r\n Object.defineProperty(this, 'scopedSlots', {\r\n enumerable: true,\r\n get: function () {\r\n return normalizeScopedSlots(parent, data.scopedSlots, this.slots());\r\n }\r\n });\r\n // support for compiled functional template\r\n if (isCompiled) {\r\n // exposing $options for renderStatic()\r\n this.$options = options;\r\n // pre-resolve slots for renderSlot()\r\n this.$slots = this.slots();\r\n this.$scopedSlots = normalizeScopedSlots(parent, data.scopedSlots, this.$slots);\r\n }\r\n if (options._scopeId) {\r\n this._c = function (a, b, c, d) {\r\n var vnode = createElement$1(contextVm, a, b, c, d, needNormalization);\r\n if (vnode && !isArray(vnode)) {\r\n vnode.fnScopeId = options._scopeId;\r\n vnode.fnContext = parent;\r\n }\r\n return vnode;\r\n };\r\n }\r\n else {\r\n this._c = function (a, b, c, d) {\r\n return createElement$1(contextVm, a, b, c, d, needNormalization);\r\n };\r\n }\r\n}\r\ninstallRenderHelpers(FunctionalRenderContext.prototype);\r\nfunction createFunctionalComponent(Ctor, propsData, data, contextVm, children) {\r\n var options = Ctor.options;\r\n var props = {};\r\n var propOptions = options.props;\r\n if (isDef(propOptions)) {\r\n for (var key in propOptions) {\r\n props[key] = validateProp(key, propOptions, propsData || emptyObject);\r\n }\r\n }\r\n else {\r\n if (isDef(data.attrs))\r\n mergeProps(props, data.attrs);\r\n if (isDef(data.props))\r\n mergeProps(props, data.props);\r\n }\r\n var renderContext = new FunctionalRenderContext(data, props, children, contextVm, Ctor);\r\n var vnode = options.render.call(null, renderContext._c, renderContext);\r\n if (vnode instanceof VNode) {\r\n return cloneAndMarkFunctionalResult(vnode, data, renderContext.parent, options, renderContext);\r\n }\r\n else if (isArray(vnode)) {\r\n var vnodes = normalizeChildren(vnode) || [];\r\n var res = new Array(vnodes.length);\r\n for (var i = 0; i < vnodes.length; i++) {\r\n res[i] = cloneAndMarkFunctionalResult(vnodes[i], data, renderContext.parent, options, renderContext);\r\n }\r\n return res;\r\n }\r\n}\r\nfunction cloneAndMarkFunctionalResult(vnode, data, contextVm, options, renderContext) {\r\n // #7817 clone node before setting fnContext, otherwise if the node is reused\r\n // (e.g. it was from a cached normal slot) the fnContext causes named slots\r\n // that should not be matched to match.\r\n var clone = cloneVNode(vnode);\r\n clone.fnContext = contextVm;\r\n clone.fnOptions = options;\r\n if (process.env.NODE_ENV !== 'production') {\r\n (clone.devtoolsMeta = clone.devtoolsMeta || {}).renderContext =\r\n renderContext;\r\n }\r\n if (data.slot) {\r\n (clone.data || (clone.data = {})).slot = data.slot;\r\n }\r\n return clone;\r\n}\r\nfunction mergeProps(to, from) {\r\n for (var key in from) {\r\n to[camelize(key)] = from[key];\r\n }\r\n}\n\n// inline hooks to be invoked on component VNodes during patch\r\nvar componentVNodeHooks = {\r\n init: function (vnode, hydrating) {\r\n if (vnode.componentInstance &&\r\n !vnode.componentInstance._isDestroyed &&\r\n vnode.data.keepAlive) {\r\n // kept-alive components, treat as a patch\r\n var mountedNode = vnode; // work around flow\r\n componentVNodeHooks.prepatch(mountedNode, mountedNode);\r\n }\r\n else {\r\n var child = (vnode.componentInstance = createComponentInstanceForVnode(vnode, activeInstance));\r\n child.$mount(hydrating ? vnode.elm : undefined, hydrating);\r\n }\r\n },\r\n prepatch: function (oldVnode, vnode) {\r\n var options = vnode.componentOptions;\r\n var child = (vnode.componentInstance = oldVnode.componentInstance);\r\n updateChildComponent(child, options.propsData, // updated props\r\n options.listeners, // updated listeners\r\n vnode, // new parent vnode\r\n options.children // new children\r\n );\r\n },\r\n insert: function (vnode) {\r\n var context = vnode.context, componentInstance = vnode.componentInstance;\r\n if (!componentInstance._isMounted) {\r\n componentInstance._isMounted = true;\r\n callHook$1(componentInstance, 'mounted');\r\n }\r\n if (vnode.data.keepAlive) {\r\n if (context._isMounted) {\r\n // vue-router#1212\r\n // During updates, a kept-alive component's child components may\r\n // change, so directly walking the tree here may call activated hooks\r\n // on incorrect children. Instead we push them into a queue which will\r\n // be processed after the whole patch process ended.\r\n queueActivatedComponent(componentInstance);\r\n }\r\n else {\r\n activateChildComponent(componentInstance, true /* direct */);\r\n }\r\n }\r\n },\r\n destroy: function (vnode) {\r\n var componentInstance = vnode.componentInstance;\r\n if (!componentInstance._isDestroyed) {\r\n if (!vnode.data.keepAlive) {\r\n componentInstance.$destroy();\r\n }\r\n else {\r\n deactivateChildComponent(componentInstance, true /* direct */);\r\n }\r\n }\r\n }\r\n};\r\nvar hooksToMerge = Object.keys(componentVNodeHooks);\r\nfunction createComponent(Ctor, data, context, children, tag) {\r\n if (isUndef(Ctor)) {\r\n return;\r\n }\r\n var baseCtor = context.$options._base;\r\n // plain options object: turn it into a constructor\r\n if (isObject(Ctor)) {\r\n Ctor = baseCtor.extend(Ctor);\r\n }\r\n // if at this stage it's not a constructor or an async component factory,\r\n // reject.\r\n if (typeof Ctor !== 'function') {\r\n if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Invalid Component definition: \".concat(String(Ctor)), context);\r\n }\r\n return;\r\n }\r\n // async component\r\n var asyncFactory;\r\n // @ts-expect-error\r\n if (isUndef(Ctor.cid)) {\r\n asyncFactory = Ctor;\r\n Ctor = resolveAsyncComponent(asyncFactory, baseCtor);\r\n if (Ctor === undefined) {\r\n // return a placeholder node for async component, which is rendered\r\n // as a comment node but preserves all the raw information for the node.\r\n // the information will be used for async server-rendering and hydration.\r\n return createAsyncPlaceholder(asyncFactory, data, context, children, tag);\r\n }\r\n }\r\n data = data || {};\r\n // resolve constructor options in case global mixins are applied after\r\n // component constructor creation\r\n resolveConstructorOptions(Ctor);\r\n // transform component v-model data into props & events\r\n if (isDef(data.model)) {\r\n // @ts-expect-error\r\n transformModel(Ctor.options, data);\r\n }\r\n // extract props\r\n // @ts-expect-error\r\n var propsData = extractPropsFromVNodeData(data, Ctor, tag);\r\n // functional component\r\n // @ts-expect-error\r\n if (isTrue(Ctor.options.functional)) {\r\n return createFunctionalComponent(Ctor, propsData, data, context, children);\r\n }\r\n // extract listeners, since these needs to be treated as\r\n // child component listeners instead of DOM listeners\r\n var listeners = data.on;\r\n // replace with listeners with .native modifier\r\n // so it gets processed during parent component patch.\r\n data.on = data.nativeOn;\r\n // @ts-expect-error\r\n if (isTrue(Ctor.options.abstract)) {\r\n // abstract components do not keep anything\r\n // other than props & listeners & slot\r\n // work around flow\r\n var slot = data.slot;\r\n data = {};\r\n if (slot) {\r\n data.slot = slot;\r\n }\r\n }\r\n // install component management hooks onto the placeholder node\r\n installComponentHooks(data);\r\n // return a placeholder vnode\r\n // @ts-expect-error\r\n var name = Ctor.options.name || tag;\r\n var vnode = new VNode(\r\n // @ts-expect-error\r\n \"vue-component-\".concat(Ctor.cid).concat(name ? \"-\".concat(name) : ''), data, undefined, undefined, undefined, context, \r\n // @ts-expect-error\r\n { Ctor: Ctor, propsData: propsData, listeners: listeners, tag: tag, children: children }, asyncFactory);\r\n return vnode;\r\n}\r\nfunction createComponentInstanceForVnode(\r\n// we know it's MountedComponentVNode but flow doesn't\r\nvnode, \r\n// activeInstance in lifecycle state\r\nparent) {\r\n var options = {\r\n _isComponent: true,\r\n _parentVnode: vnode,\r\n parent: parent\r\n };\r\n // check inline-template render functions\r\n var inlineTemplate = vnode.data.inlineTemplate;\r\n if (isDef(inlineTemplate)) {\r\n options.render = inlineTemplate.render;\r\n options.staticRenderFns = inlineTemplate.staticRenderFns;\r\n }\r\n return new vnode.componentOptions.Ctor(options);\r\n}\r\nfunction installComponentHooks(data) {\r\n var hooks = data.hook || (data.hook = {});\r\n for (var i = 0; i < hooksToMerge.length; i++) {\r\n var key = hooksToMerge[i];\r\n var existing = hooks[key];\r\n var toMerge = componentVNodeHooks[key];\r\n // @ts-expect-error\r\n if (existing !== toMerge && !(existing && existing._merged)) {\r\n hooks[key] = existing ? mergeHook(toMerge, existing) : toMerge;\r\n }\r\n }\r\n}\r\nfunction mergeHook(f1, f2) {\r\n var merged = function (a, b) {\r\n // flow complains about extra args which is why we use any\r\n f1(a, b);\r\n f2(a, b);\r\n };\r\n merged._merged = true;\r\n return merged;\r\n}\r\n// transform component v-model info (value and callback) into\r\n// prop and event handler respectively.\r\nfunction transformModel(options, data) {\r\n var prop = (options.model && options.model.prop) || 'value';\r\n var event = (options.model && options.model.event) || 'input';\r\n (data.attrs || (data.attrs = {}))[prop] = data.model.value;\r\n var on = data.on || (data.on = {});\r\n var existing = on[event];\r\n var callback = data.model.callback;\r\n if (isDef(existing)) {\r\n if (isArray(existing)\r\n ? existing.indexOf(callback) === -1\r\n : existing !== callback) {\r\n on[event] = [callback].concat(existing);\r\n }\r\n }\r\n else {\r\n on[event] = callback;\r\n }\r\n}\n\nvar SIMPLE_NORMALIZE = 1;\r\nvar ALWAYS_NORMALIZE = 2;\r\n// wrapper function for providing a more flexible interface\r\n// without getting yelled at by flow\r\nfunction createElement$1(context, tag, data, children, normalizationType, alwaysNormalize) {\r\n if (isArray(data) || isPrimitive(data)) {\r\n normalizationType = children;\r\n children = data;\r\n data = undefined;\r\n }\r\n if (isTrue(alwaysNormalize)) {\r\n normalizationType = ALWAYS_NORMALIZE;\r\n }\r\n return _createElement(context, tag, data, children, normalizationType);\r\n}\r\nfunction _createElement(context, tag, data, children, normalizationType) {\r\n if (isDef(data) && isDef(data.__ob__)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Avoid using observed data object as vnode data: \".concat(JSON.stringify(data), \"\\n\") + 'Always create fresh vnode data objects in each render!', context);\r\n return createEmptyVNode();\r\n }\r\n // object syntax in v-bind\r\n if (isDef(data) && isDef(data.is)) {\r\n tag = data.is;\r\n }\r\n if (!tag) {\r\n // in case of component :is set to falsy value\r\n return createEmptyVNode();\r\n }\r\n // warn against non-primitive key\r\n if (process.env.NODE_ENV !== 'production' && isDef(data) && isDef(data.key) && !isPrimitive(data.key)) {\r\n warn('Avoid using non-primitive value as key, ' +\r\n 'use string/number value instead.', context);\r\n }\r\n // support single function children as default scoped slot\r\n if (isArray(children) && isFunction(children[0])) {\r\n data = data || {};\r\n data.scopedSlots = { default: children[0] };\r\n children.length = 0;\r\n }\r\n if (normalizationType === ALWAYS_NORMALIZE) {\r\n children = normalizeChildren(children);\r\n }\r\n else if (normalizationType === SIMPLE_NORMALIZE) {\r\n children = simpleNormalizeChildren(children);\r\n }\r\n var vnode, ns;\r\n if (typeof tag === 'string') {\r\n var Ctor = void 0;\r\n ns = (context.$vnode && context.$vnode.ns) || config.getTagNamespace(tag);\r\n if (config.isReservedTag(tag)) {\r\n // platform built-in elements\r\n if (process.env.NODE_ENV !== 'production' &&\r\n isDef(data) &&\r\n isDef(data.nativeOn) &&\r\n data.tag !== 'component') {\r\n warn(\"The .native modifier for v-on is only valid on components but it was used on <\".concat(tag, \">.\"), context);\r\n }\r\n vnode = new VNode(config.parsePlatformTagName(tag), data, children, undefined, undefined, context);\r\n }\r\n else if ((!data || !data.pre) &&\r\n isDef((Ctor = resolveAsset(context.$options, 'components', tag)))) {\r\n // component\r\n vnode = createComponent(Ctor, data, context, children, tag);\r\n }\r\n else {\r\n // unknown or unlisted namespaced elements\r\n // check at runtime because it may get assigned a namespace when its\r\n // parent normalizes children\r\n vnode = new VNode(tag, data, children, undefined, undefined, context);\r\n }\r\n }\r\n else {\r\n // direct component options / constructor\r\n vnode = createComponent(tag, data, context, children);\r\n }\r\n if (isArray(vnode)) {\r\n return vnode;\r\n }\r\n else if (isDef(vnode)) {\r\n if (isDef(ns))\r\n applyNS(vnode, ns);\r\n if (isDef(data))\r\n registerDeepBindings(data);\r\n return vnode;\r\n }\r\n else {\r\n return createEmptyVNode();\r\n }\r\n}\r\nfunction applyNS(vnode, ns, force) {\r\n vnode.ns = ns;\r\n if (vnode.tag === 'foreignObject') {\r\n // use default namespace inside foreignObject\r\n ns = undefined;\r\n force = true;\r\n }\r\n if (isDef(vnode.children)) {\r\n for (var i = 0, l = vnode.children.length; i < l; i++) {\r\n var child = vnode.children[i];\r\n if (isDef(child.tag) &&\r\n (isUndef(child.ns) || (isTrue(force) && child.tag !== 'svg'))) {\r\n applyNS(child, ns, force);\r\n }\r\n }\r\n }\r\n}\r\n// ref #5318\r\n// necessary to ensure parent re-render when deep bindings like :style and\r\n// :class are used on slot nodes\r\nfunction registerDeepBindings(data) {\r\n if (isObject(data.style)) {\r\n traverse(data.style);\r\n }\r\n if (isObject(data.class)) {\r\n traverse(data.class);\r\n }\r\n}\n\nfunction initSetup(vm) {\r\n var options = vm.$options;\r\n var setup = options.setup;\r\n if (setup) {\r\n var ctx = (vm._setupContext = createSetupContext(vm));\r\n setCurrentInstance(vm);\r\n pushTarget();\r\n var setupResult = invokeWithErrorHandling(setup, null, [vm._props || shallowReactive({}), ctx], vm, \"setup\");\r\n popTarget();\r\n setCurrentInstance();\r\n if (isFunction(setupResult)) {\r\n // render function\r\n // @ts-ignore\r\n options.render = setupResult;\r\n }\r\n else if (isObject(setupResult)) {\r\n // bindings\r\n if (process.env.NODE_ENV !== 'production' && setupResult instanceof VNode) {\r\n warn(\"setup() should not return VNodes directly - \" +\r\n \"return a render function instead.\");\r\n }\r\n vm._setupState = setupResult;\r\n // __sfc indicates compiled bindings from <script setup>\r\n if (!setupResult.__sfc) {\r\n for (var key in setupResult) {\r\n if (!isReserved(key)) {\r\n proxyWithRefUnwrap(vm, setupResult, key);\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Avoid using variables that start with _ or $ in setup().\");\r\n }\r\n }\r\n }\r\n else {\r\n // exposed for compiled render fn\r\n var proxy = (vm._setupProxy = {});\r\n for (var key in setupResult) {\r\n proxyWithRefUnwrap(proxy, setupResult, key);\r\n }\r\n }\r\n }\r\n else if (process.env.NODE_ENV !== 'production' && setupResult !== undefined) {\r\n warn(\"setup() should return an object. Received: \".concat(setupResult === null ? 'null' : typeof setupResult));\r\n }\r\n }\r\n}\r\nfunction proxyWithRefUnwrap(target, source, key) {\r\n Object.defineProperty(target, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function () {\r\n var raw = source[key];\r\n return isRef(raw) ? raw.value : raw;\r\n },\r\n set: function (newVal) {\r\n var raw = source[key];\r\n isRef(raw) ? (raw.value = newVal) : (source[key] = newVal);\r\n }\r\n });\r\n}\r\nfunction createSetupContext(vm) {\r\n var exposeCalled = false;\r\n return {\r\n get attrs() {\r\n return initAttrsProxy(vm);\r\n },\r\n get slots() {\r\n return initSlotsProxy(vm);\r\n },\r\n emit: bind(vm.$emit, vm),\r\n expose: function (exposed) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (exposeCalled) {\r\n warn(\"expose() should be called only once per setup().\", vm);\r\n }\r\n exposeCalled = true;\r\n }\r\n if (exposed) {\r\n Object.keys(exposed).forEach(function (key) {\r\n return proxyWithRefUnwrap(vm, exposed, key);\r\n });\r\n }\r\n }\r\n };\r\n}\r\nfunction initAttrsProxy(vm) {\r\n if (!vm._attrsProxy) {\r\n var proxy = (vm._attrsProxy = {});\r\n def(proxy, '_v_attr_proxy', true);\r\n syncSetupAttrs(proxy, vm.$attrs, emptyObject, vm);\r\n }\r\n return vm._attrsProxy;\r\n}\r\nfunction syncSetupAttrs(to, from, prev, instance) {\r\n var changed = false;\r\n for (var key in from) {\r\n if (!(key in to)) {\r\n changed = true;\r\n defineProxyAttr(to, key, instance);\r\n }\r\n else if (from[key] !== prev[key]) {\r\n changed = true;\r\n }\r\n }\r\n for (var key in to) {\r\n if (!(key in from)) {\r\n changed = true;\r\n delete to[key];\r\n }\r\n }\r\n return changed;\r\n}\r\nfunction defineProxyAttr(proxy, key, instance) {\r\n Object.defineProperty(proxy, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function () {\r\n return instance.$attrs[key];\r\n }\r\n });\r\n}\r\nfunction initSlotsProxy(vm) {\r\n if (!vm._slotsProxy) {\r\n syncSetupSlots((vm._slotsProxy = {}), vm.$scopedSlots);\r\n }\r\n return vm._slotsProxy;\r\n}\r\nfunction syncSetupSlots(to, from) {\r\n for (var key in from) {\r\n to[key] = from[key];\r\n }\r\n for (var key in to) {\r\n if (!(key in from)) {\r\n delete to[key];\r\n }\r\n }\r\n}\r\n/**\r\n * @internal use manual type def\r\n */\r\nfunction useSlots() {\r\n return getContext().slots;\r\n}\r\n/**\r\n * @internal use manual type def\r\n */\r\nfunction useAttrs() {\r\n return getContext().attrs;\r\n}\r\nfunction getContext() {\r\n if (process.env.NODE_ENV !== 'production' && !currentInstance) {\r\n warn(\"useContext() called without active instance.\");\r\n }\r\n var vm = currentInstance;\r\n return vm._setupContext || (vm._setupContext = createSetupContext(vm));\r\n}\r\n/**\r\n * Runtime helper for merging default declarations. Imported by compiled code\r\n * only.\r\n * @internal\r\n */\r\nfunction mergeDefaults(raw, defaults) {\r\n var props = isArray(raw)\r\n ? raw.reduce(function (normalized, p) { return ((normalized[p] = {}), normalized); }, {})\r\n : raw;\r\n for (var key in defaults) {\r\n var opt = props[key];\r\n if (opt) {\r\n if (isArray(opt) || isFunction(opt)) {\r\n props[key] = { type: opt, default: defaults[key] };\r\n }\r\n else {\r\n opt.default = defaults[key];\r\n }\r\n }\r\n else if (opt === null) {\r\n props[key] = { default: defaults[key] };\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"props default key \\\"\".concat(key, \"\\\" has no corresponding declaration.\"));\r\n }\r\n }\r\n return props;\r\n}\n\nfunction initRender(vm) {\r\n vm._vnode = null; // the root of the child tree\r\n vm._staticTrees = null; // v-once cached trees\r\n var options = vm.$options;\r\n var parentVnode = (vm.$vnode = options._parentVnode); // the placeholder node in parent tree\r\n var renderContext = parentVnode && parentVnode.context;\r\n vm.$slots = resolveSlots(options._renderChildren, renderContext);\r\n vm.$scopedSlots = emptyObject;\r\n // bind the createElement fn to this instance\r\n // so that we get proper render context inside it.\r\n // args order: tag, data, children, normalizationType, alwaysNormalize\r\n // internal version is used by render functions compiled from templates\r\n // @ts-expect-error\r\n vm._c = function (a, b, c, d) { return createElement$1(vm, a, b, c, d, false); };\r\n // normalization is always applied for the public version, used in\r\n // user-written render functions.\r\n // @ts-expect-error\r\n vm.$createElement = function (a, b, c, d) { return createElement$1(vm, a, b, c, d, true); };\r\n // $attrs & $listeners are exposed for easier HOC creation.\r\n // they need to be reactive so that HOCs using them are always updated\r\n var parentData = parentVnode && parentVnode.data;\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV !== 'production') {\r\n defineReactive(vm, '$attrs', (parentData && parentData.attrs) || emptyObject, function () {\r\n !isUpdatingChildComponent && warn(\"$attrs is readonly.\", vm);\r\n }, true);\r\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, function () {\r\n !isUpdatingChildComponent && warn(\"$listeners is readonly.\", vm);\r\n }, true);\r\n }\r\n else {\r\n defineReactive(vm, '$attrs', (parentData && parentData.attrs) || emptyObject, null, true);\r\n defineReactive(vm, '$listeners', options._parentListeners || emptyObject, null, true);\r\n }\r\n}\r\nvar currentRenderingInstance = null;\r\nfunction renderMixin(Vue) {\r\n // install runtime convenience helpers\r\n installRenderHelpers(Vue.prototype);\r\n Vue.prototype.$nextTick = function (fn) {\r\n return nextTick(fn, this);\r\n };\r\n Vue.prototype._render = function () {\r\n var vm = this;\r\n var _a = vm.$options, render = _a.render, _parentVnode = _a._parentVnode;\r\n if (_parentVnode) {\r\n vm.$scopedSlots = normalizeScopedSlots(vm.$parent, _parentVnode.data.scopedSlots, vm.$slots, vm.$scopedSlots);\r\n if (vm._slotsProxy) {\r\n syncSetupSlots(vm._slotsProxy, vm.$scopedSlots);\r\n }\r\n }\r\n // set parent vnode. this allows render functions to have access\r\n // to the data on the placeholder node.\r\n vm.$vnode = _parentVnode;\r\n // render self\r\n var vnode;\r\n try {\r\n // There's no need to maintain a stack because all render fns are called\r\n // separately from one another. Nested component's render fns are called\r\n // when parent component is patched.\r\n setCurrentInstance(vm);\r\n currentRenderingInstance = vm;\r\n vnode = render.call(vm._renderProxy, vm.$createElement);\r\n }\r\n catch (e) {\r\n handleError(e, vm, \"render\");\r\n // return error render result,\r\n // or previous vnode to prevent render error causing blank component\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV !== 'production' && vm.$options.renderError) {\r\n try {\r\n vnode = vm.$options.renderError.call(vm._renderProxy, vm.$createElement, e);\r\n }\r\n catch (e) {\r\n handleError(e, vm, \"renderError\");\r\n vnode = vm._vnode;\r\n }\r\n }\r\n else {\r\n vnode = vm._vnode;\r\n }\r\n }\r\n finally {\r\n currentRenderingInstance = null;\r\n setCurrentInstance();\r\n }\r\n // if the returned array contains only a single node, allow it\r\n if (isArray(vnode) && vnode.length === 1) {\r\n vnode = vnode[0];\r\n }\r\n // return empty vnode in case the render function errored out\r\n if (!(vnode instanceof VNode)) {\r\n if (process.env.NODE_ENV !== 'production' && isArray(vnode)) {\r\n warn('Multiple root nodes returned from render function. Render function ' +\r\n 'should return a single root node.', vm);\r\n }\r\n vnode = createEmptyVNode();\r\n }\r\n // set parent\r\n vnode.parent = _parentVnode;\r\n return vnode;\r\n };\r\n}\n\nfunction ensureCtor(comp, base) {\r\n if (comp.__esModule || (hasSymbol && comp[Symbol.toStringTag] === 'Module')) {\r\n comp = comp.default;\r\n }\r\n return isObject(comp) ? base.extend(comp) : comp;\r\n}\r\nfunction createAsyncPlaceholder(factory, data, context, children, tag) {\r\n var node = createEmptyVNode();\r\n node.asyncFactory = factory;\r\n node.asyncMeta = { data: data, context: context, children: children, tag: tag };\r\n return node;\r\n}\r\nfunction resolveAsyncComponent(factory, baseCtor) {\r\n if (isTrue(factory.error) && isDef(factory.errorComp)) {\r\n return factory.errorComp;\r\n }\r\n if (isDef(factory.resolved)) {\r\n return factory.resolved;\r\n }\r\n var owner = currentRenderingInstance;\r\n if (owner && isDef(factory.owners) && factory.owners.indexOf(owner) === -1) {\r\n // already pending\r\n factory.owners.push(owner);\r\n }\r\n if (isTrue(factory.loading) && isDef(factory.loadingComp)) {\r\n return factory.loadingComp;\r\n }\r\n if (owner && !isDef(factory.owners)) {\r\n var owners_1 = (factory.owners = [owner]);\r\n var sync_1 = true;\r\n var timerLoading_1 = null;\r\n var timerTimeout_1 = null;\r\n owner.$on('hook:destroyed', function () { return remove$2(owners_1, owner); });\r\n var forceRender_1 = function (renderCompleted) {\r\n for (var i = 0, l = owners_1.length; i < l; i++) {\r\n owners_1[i].$forceUpdate();\r\n }\r\n if (renderCompleted) {\r\n owners_1.length = 0;\r\n if (timerLoading_1 !== null) {\r\n clearTimeout(timerLoading_1);\r\n timerLoading_1 = null;\r\n }\r\n if (timerTimeout_1 !== null) {\r\n clearTimeout(timerTimeout_1);\r\n timerTimeout_1 = null;\r\n }\r\n }\r\n };\r\n var resolve = once(function (res) {\r\n // cache resolved\r\n factory.resolved = ensureCtor(res, baseCtor);\r\n // invoke callbacks only if this is not a synchronous resolve\r\n // (async resolves are shimmed as synchronous during SSR)\r\n if (!sync_1) {\r\n forceRender_1(true);\r\n }\r\n else {\r\n owners_1.length = 0;\r\n }\r\n });\r\n var reject_1 = once(function (reason) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Failed to resolve async component: \".concat(String(factory)) +\r\n (reason ? \"\\nReason: \".concat(reason) : ''));\r\n if (isDef(factory.errorComp)) {\r\n factory.error = true;\r\n forceRender_1(true);\r\n }\r\n });\r\n var res_1 = factory(resolve, reject_1);\r\n if (isObject(res_1)) {\r\n if (isPromise(res_1)) {\r\n // () => Promise\r\n if (isUndef(factory.resolved)) {\r\n res_1.then(resolve, reject_1);\r\n }\r\n }\r\n else if (isPromise(res_1.component)) {\r\n res_1.component.then(resolve, reject_1);\r\n if (isDef(res_1.error)) {\r\n factory.errorComp = ensureCtor(res_1.error, baseCtor);\r\n }\r\n if (isDef(res_1.loading)) {\r\n factory.loadingComp = ensureCtor(res_1.loading, baseCtor);\r\n if (res_1.delay === 0) {\r\n factory.loading = true;\r\n }\r\n else {\r\n // @ts-expect-error NodeJS timeout type\r\n timerLoading_1 = setTimeout(function () {\r\n timerLoading_1 = null;\r\n if (isUndef(factory.resolved) && isUndef(factory.error)) {\r\n factory.loading = true;\r\n forceRender_1(false);\r\n }\r\n }, res_1.delay || 200);\r\n }\r\n }\r\n if (isDef(res_1.timeout)) {\r\n // @ts-expect-error NodeJS timeout type\r\n timerTimeout_1 = setTimeout(function () {\r\n timerTimeout_1 = null;\r\n if (isUndef(factory.resolved)) {\r\n reject_1(process.env.NODE_ENV !== 'production' ? \"timeout (\".concat(res_1.timeout, \"ms)\") : null);\r\n }\r\n }, res_1.timeout);\r\n }\r\n }\r\n }\r\n sync_1 = false;\r\n // return in case resolved synchronously\r\n return factory.loading ? factory.loadingComp : factory.resolved;\r\n }\r\n}\n\nfunction getFirstComponentChild(children) {\r\n if (isArray(children)) {\r\n for (var i = 0; i < children.length; i++) {\r\n var c = children[i];\r\n if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {\r\n return c;\r\n }\r\n }\r\n }\r\n}\n\nfunction initEvents(vm) {\r\n vm._events = Object.create(null);\r\n vm._hasHookEvent = false;\r\n // init parent attached events\r\n var listeners = vm.$options._parentListeners;\r\n if (listeners) {\r\n updateComponentListeners(vm, listeners);\r\n }\r\n}\r\nvar target$1;\r\nfunction add$1(event, fn) {\r\n target$1.$on(event, fn);\r\n}\r\nfunction remove$1(event, fn) {\r\n target$1.$off(event, fn);\r\n}\r\nfunction createOnceHandler$1(event, fn) {\r\n var _target = target$1;\r\n return function onceHandler() {\r\n var res = fn.apply(null, arguments);\r\n if (res !== null) {\r\n _target.$off(event, onceHandler);\r\n }\r\n };\r\n}\r\nfunction updateComponentListeners(vm, listeners, oldListeners) {\r\n target$1 = vm;\r\n updateListeners(listeners, oldListeners || {}, add$1, remove$1, createOnceHandler$1, vm);\r\n target$1 = undefined;\r\n}\r\nfunction eventsMixin(Vue) {\r\n var hookRE = /^hook:/;\r\n Vue.prototype.$on = function (event, fn) {\r\n var vm = this;\r\n if (isArray(event)) {\r\n for (var i = 0, l = event.length; i < l; i++) {\r\n vm.$on(event[i], fn);\r\n }\r\n }\r\n else {\r\n (vm._events[event] || (vm._events[event] = [])).push(fn);\r\n // optimize hook:event cost by using a boolean flag marked at registration\r\n // instead of a hash lookup\r\n if (hookRE.test(event)) {\r\n vm._hasHookEvent = true;\r\n }\r\n }\r\n return vm;\r\n };\r\n Vue.prototype.$once = function (event, fn) {\r\n var vm = this;\r\n function on() {\r\n vm.$off(event, on);\r\n fn.apply(vm, arguments);\r\n }\r\n on.fn = fn;\r\n vm.$on(event, on);\r\n return vm;\r\n };\r\n Vue.prototype.$off = function (event, fn) {\r\n var vm = this;\r\n // all\r\n if (!arguments.length) {\r\n vm._events = Object.create(null);\r\n return vm;\r\n }\r\n // array of events\r\n if (isArray(event)) {\r\n for (var i_1 = 0, l = event.length; i_1 < l; i_1++) {\r\n vm.$off(event[i_1], fn);\r\n }\r\n return vm;\r\n }\r\n // specific event\r\n var cbs = vm._events[event];\r\n if (!cbs) {\r\n return vm;\r\n }\r\n if (!fn) {\r\n vm._events[event] = null;\r\n return vm;\r\n }\r\n // specific handler\r\n var cb;\r\n var i = cbs.length;\r\n while (i--) {\r\n cb = cbs[i];\r\n if (cb === fn || cb.fn === fn) {\r\n cbs.splice(i, 1);\r\n break;\r\n }\r\n }\r\n return vm;\r\n };\r\n Vue.prototype.$emit = function (event) {\r\n var vm = this;\r\n if (process.env.NODE_ENV !== 'production') {\r\n var lowerCaseEvent = event.toLowerCase();\r\n if (lowerCaseEvent !== event && vm._events[lowerCaseEvent]) {\r\n tip(\"Event \\\"\".concat(lowerCaseEvent, \"\\\" is emitted in component \") +\r\n \"\".concat(formatComponentName(vm), \" but the handler is registered for \\\"\").concat(event, \"\\\". \") +\r\n \"Note that HTML attributes are case-insensitive and you cannot use \" +\r\n \"v-on to listen to camelCase events when using in-DOM templates. \" +\r\n \"You should probably use \\\"\".concat(hyphenate(event), \"\\\" instead of \\\"\").concat(event, \"\\\".\"));\r\n }\r\n }\r\n var cbs = vm._events[event];\r\n if (cbs) {\r\n cbs = cbs.length > 1 ? toArray(cbs) : cbs;\r\n var args = toArray(arguments, 1);\r\n var info = \"event handler for \\\"\".concat(event, \"\\\"\");\r\n for (var i = 0, l = cbs.length; i < l; i++) {\r\n invokeWithErrorHandling(cbs[i], vm, args, vm, info);\r\n }\r\n }\r\n return vm;\r\n };\r\n}\n\nvar activeInstance = null;\r\nvar isUpdatingChildComponent = false;\r\nfunction setActiveInstance(vm) {\r\n var prevActiveInstance = activeInstance;\r\n activeInstance = vm;\r\n return function () {\r\n activeInstance = prevActiveInstance;\r\n };\r\n}\r\nfunction initLifecycle(vm) {\r\n var options = vm.$options;\r\n // locate first non-abstract parent\r\n var parent = options.parent;\r\n if (parent && !options.abstract) {\r\n while (parent.$options.abstract && parent.$parent) {\r\n parent = parent.$parent;\r\n }\r\n parent.$children.push(vm);\r\n }\r\n vm.$parent = parent;\r\n vm.$root = parent ? parent.$root : vm;\r\n vm.$children = [];\r\n vm.$refs = {};\r\n vm._provided = parent ? parent._provided : Object.create(null);\r\n vm._watcher = null;\r\n vm._inactive = null;\r\n vm._directInactive = false;\r\n vm._isMounted = false;\r\n vm._isDestroyed = false;\r\n vm._isBeingDestroyed = false;\r\n}\r\nfunction lifecycleMixin(Vue) {\r\n Vue.prototype._update = function (vnode, hydrating) {\r\n var vm = this;\r\n var prevEl = vm.$el;\r\n var prevVnode = vm._vnode;\r\n var restoreActiveInstance = setActiveInstance(vm);\r\n vm._vnode = vnode;\r\n // Vue.prototype.__patch__ is injected in entry points\r\n // based on the rendering backend used.\r\n if (!prevVnode) {\r\n // initial render\r\n vm.$el = vm.__patch__(vm.$el, vnode, hydrating, false /* removeOnly */);\r\n }\r\n else {\r\n // updates\r\n vm.$el = vm.__patch__(prevVnode, vnode);\r\n }\r\n restoreActiveInstance();\r\n // update __vue__ reference\r\n if (prevEl) {\r\n prevEl.__vue__ = null;\r\n }\r\n if (vm.$el) {\r\n vm.$el.__vue__ = vm;\r\n }\r\n // if parent is an HOC, update its $el as well\r\n if (vm.$vnode && vm.$parent && vm.$vnode === vm.$parent._vnode) {\r\n vm.$parent.$el = vm.$el;\r\n }\r\n // updated hook is called by the scheduler to ensure that children are\r\n // updated in a parent's updated hook.\r\n };\r\n Vue.prototype.$forceUpdate = function () {\r\n var vm = this;\r\n if (vm._watcher) {\r\n vm._watcher.update();\r\n }\r\n };\r\n Vue.prototype.$destroy = function () {\r\n var vm = this;\r\n if (vm._isBeingDestroyed) {\r\n return;\r\n }\r\n callHook$1(vm, 'beforeDestroy');\r\n vm._isBeingDestroyed = true;\r\n // remove self from parent\r\n var parent = vm.$parent;\r\n if (parent && !parent._isBeingDestroyed && !vm.$options.abstract) {\r\n remove$2(parent.$children, vm);\r\n }\r\n // teardown scope. this includes both the render watcher and other\r\n // watchers created\r\n vm._scope.stop();\r\n // remove reference from data ob\r\n // frozen object may not have observer.\r\n if (vm._data.__ob__) {\r\n vm._data.__ob__.vmCount--;\r\n }\r\n // call the last hook...\r\n vm._isDestroyed = true;\r\n // invoke destroy hooks on current rendered tree\r\n vm.__patch__(vm._vnode, null);\r\n // fire destroyed hook\r\n callHook$1(vm, 'destroyed');\r\n // turn off all instance listeners.\r\n vm.$off();\r\n // remove __vue__ reference\r\n if (vm.$el) {\r\n vm.$el.__vue__ = null;\r\n }\r\n // release circular reference (#6759)\r\n if (vm.$vnode) {\r\n vm.$vnode.parent = null;\r\n }\r\n };\r\n}\r\nfunction mountComponent(vm, el, hydrating) {\r\n vm.$el = el;\r\n if (!vm.$options.render) {\r\n // @ts-expect-error invalid type\r\n vm.$options.render = createEmptyVNode;\r\n if (process.env.NODE_ENV !== 'production') {\r\n /* istanbul ignore if */\r\n if ((vm.$options.template && vm.$options.template.charAt(0) !== '#') ||\r\n vm.$options.el ||\r\n el) {\r\n warn('You are using the runtime-only build of Vue where the template ' +\r\n 'compiler is not available. Either pre-compile the templates into ' +\r\n 'render functions, or use the compiler-included build.', vm);\r\n }\r\n else {\r\n warn('Failed to mount component: template or render function not defined.', vm);\r\n }\r\n }\r\n }\r\n callHook$1(vm, 'beforeMount');\r\n var updateComponent;\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\r\n updateComponent = function () {\r\n var name = vm._name;\r\n var id = vm._uid;\r\n var startTag = \"vue-perf-start:\".concat(id);\r\n var endTag = \"vue-perf-end:\".concat(id);\r\n mark(startTag);\r\n var vnode = vm._render();\r\n mark(endTag);\r\n measure(\"vue \".concat(name, \" render\"), startTag, endTag);\r\n mark(startTag);\r\n vm._update(vnode, hydrating);\r\n mark(endTag);\r\n measure(\"vue \".concat(name, \" patch\"), startTag, endTag);\r\n };\r\n }\r\n else {\r\n updateComponent = function () {\r\n vm._update(vm._render(), hydrating);\r\n };\r\n }\r\n var watcherOptions = {\r\n before: function () {\r\n if (vm._isMounted && !vm._isDestroyed) {\r\n callHook$1(vm, 'beforeUpdate');\r\n }\r\n }\r\n };\r\n if (process.env.NODE_ENV !== 'production') {\r\n watcherOptions.onTrack = function (e) { return callHook$1(vm, 'renderTracked', [e]); };\r\n watcherOptions.onTrigger = function (e) { return callHook$1(vm, 'renderTriggered', [e]); };\r\n }\r\n // we set this to vm._watcher inside the watcher's constructor\r\n // since the watcher's initial patch may call $forceUpdate (e.g. inside child\r\n // component's mounted hook), which relies on vm._watcher being already defined\r\n new Watcher(vm, updateComponent, noop, watcherOptions, true /* isRenderWatcher */);\r\n hydrating = false;\r\n // flush buffer for flush: \"pre\" watchers queued in setup()\r\n var preWatchers = vm._preWatchers;\r\n if (preWatchers) {\r\n for (var i = 0; i < preWatchers.length; i++) {\r\n preWatchers[i].run();\r\n }\r\n }\r\n // manually mounted instance, call mounted on self\r\n // mounted is called for render-created child components in its inserted hook\r\n if (vm.$vnode == null) {\r\n vm._isMounted = true;\r\n callHook$1(vm, 'mounted');\r\n }\r\n return vm;\r\n}\r\nfunction updateChildComponent(vm, propsData, listeners, parentVnode, renderChildren) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n isUpdatingChildComponent = true;\r\n }\r\n // determine whether component has slot children\r\n // we need to do this before overwriting $options._renderChildren.\r\n // check if there are dynamic scopedSlots (hand-written or compiled but with\r\n // dynamic slot names). Static scoped slots compiled from template has the\r\n // \"$stable\" marker.\r\n var newScopedSlots = parentVnode.data.scopedSlots;\r\n var oldScopedSlots = vm.$scopedSlots;\r\n var hasDynamicScopedSlot = !!((newScopedSlots && !newScopedSlots.$stable) ||\r\n (oldScopedSlots !== emptyObject && !oldScopedSlots.$stable) ||\r\n (newScopedSlots && vm.$scopedSlots.$key !== newScopedSlots.$key) ||\r\n (!newScopedSlots && vm.$scopedSlots.$key));\r\n // Any static slot children from the parent may have changed during parent's\r\n // update. Dynamic scoped slots may also have changed. In such cases, a forced\r\n // update is necessary to ensure correctness.\r\n var needsForceUpdate = !!(renderChildren || // has new static slots\r\n vm.$options._renderChildren || // has old static slots\r\n hasDynamicScopedSlot);\r\n var prevVNode = vm.$vnode;\r\n vm.$options._parentVnode = parentVnode;\r\n vm.$vnode = parentVnode; // update vm's placeholder node without re-render\r\n if (vm._vnode) {\r\n // update child tree's parent\r\n vm._vnode.parent = parentVnode;\r\n }\r\n vm.$options._renderChildren = renderChildren;\r\n // update $attrs and $listeners hash\r\n // these are also reactive so they may trigger child update if the child\r\n // used them during render\r\n var attrs = parentVnode.data.attrs || emptyObject;\r\n if (vm._attrsProxy) {\r\n // force update if attrs are accessed and has changed since it may be\r\n // passed to a child component.\r\n if (syncSetupAttrs(vm._attrsProxy, attrs, (prevVNode.data && prevVNode.data.attrs) || emptyObject, vm)) {\r\n needsForceUpdate = true;\r\n }\r\n }\r\n vm.$attrs = attrs;\r\n vm.$listeners = listeners || emptyObject;\r\n // update props\r\n if (propsData && vm.$options.props) {\r\n toggleObserving(false);\r\n var props = vm._props;\r\n var propKeys = vm.$options._propKeys || [];\r\n for (var i = 0; i < propKeys.length; i++) {\r\n var key = propKeys[i];\r\n var propOptions = vm.$options.props; // wtf flow?\r\n props[key] = validateProp(key, propOptions, propsData, vm);\r\n }\r\n toggleObserving(true);\r\n // keep a copy of raw propsData\r\n vm.$options.propsData = propsData;\r\n }\r\n // update listeners\r\n listeners = listeners || emptyObject;\r\n var oldListeners = vm.$options._parentListeners;\r\n vm.$options._parentListeners = listeners;\r\n updateComponentListeners(vm, listeners, oldListeners);\r\n // resolve slots + force update if has children\r\n if (needsForceUpdate) {\r\n vm.$slots = resolveSlots(renderChildren, parentVnode.context);\r\n vm.$forceUpdate();\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n isUpdatingChildComponent = false;\r\n }\r\n}\r\nfunction isInInactiveTree(vm) {\r\n while (vm && (vm = vm.$parent)) {\r\n if (vm._inactive)\r\n return true;\r\n }\r\n return false;\r\n}\r\nfunction activateChildComponent(vm, direct) {\r\n if (direct) {\r\n vm._directInactive = false;\r\n if (isInInactiveTree(vm)) {\r\n return;\r\n }\r\n }\r\n else if (vm._directInactive) {\r\n return;\r\n }\r\n if (vm._inactive || vm._inactive === null) {\r\n vm._inactive = false;\r\n for (var i = 0; i < vm.$children.length; i++) {\r\n activateChildComponent(vm.$children[i]);\r\n }\r\n callHook$1(vm, 'activated');\r\n }\r\n}\r\nfunction deactivateChildComponent(vm, direct) {\r\n if (direct) {\r\n vm._directInactive = true;\r\n if (isInInactiveTree(vm)) {\r\n return;\r\n }\r\n }\r\n if (!vm._inactive) {\r\n vm._inactive = true;\r\n for (var i = 0; i < vm.$children.length; i++) {\r\n deactivateChildComponent(vm.$children[i]);\r\n }\r\n callHook$1(vm, 'deactivated');\r\n }\r\n}\r\nfunction callHook$1(vm, hook, args) {\r\n // #7573 disable dep collection when invoking lifecycle hooks\r\n pushTarget();\r\n var prev = currentInstance;\r\n setCurrentInstance(vm);\r\n var handlers = vm.$options[hook];\r\n var info = \"\".concat(hook, \" hook\");\r\n if (handlers) {\r\n for (var i = 0, j = handlers.length; i < j; i++) {\r\n invokeWithErrorHandling(handlers[i], vm, args || null, vm, info);\r\n }\r\n }\r\n if (vm._hasHookEvent) {\r\n vm.$emit('hook:' + hook);\r\n }\r\n setCurrentInstance(prev);\r\n popTarget();\r\n}\n\nvar MAX_UPDATE_COUNT = 100;\r\nvar queue = [];\r\nvar activatedChildren = [];\r\nvar has = {};\r\nvar circular = {};\r\nvar waiting = false;\r\nvar flushing = false;\r\nvar index = 0;\r\n/**\r\n * Reset the scheduler's state.\r\n */\r\nfunction resetSchedulerState() {\r\n index = queue.length = activatedChildren.length = 0;\r\n has = {};\r\n if (process.env.NODE_ENV !== 'production') {\r\n circular = {};\r\n }\r\n waiting = flushing = false;\r\n}\r\n// Async edge case #6566 requires saving the timestamp when event listeners are\r\n// attached. However, calling performance.now() has a perf overhead especially\r\n// if the page has thousands of event listeners. Instead, we take a timestamp\r\n// every time the scheduler flushes and use that for all event listeners\r\n// attached during that flush.\r\nvar currentFlushTimestamp = 0;\r\n// Async edge case fix requires storing an event listener's attach timestamp.\r\nvar getNow = Date.now;\r\n// Determine what event timestamp the browser is using. Annoyingly, the\r\n// timestamp can either be hi-res (relative to page load) or low-res\r\n// (relative to UNIX epoch), so in order to compare time we have to use the\r\n// same timestamp type when saving the flush timestamp.\r\n// All IE versions use low-res event timestamps, and have problematic clock\r\n// implementations (#9632)\r\nif (inBrowser && !isIE) {\r\n var performance_1 = window.performance;\r\n if (performance_1 &&\r\n typeof performance_1.now === 'function' &&\r\n getNow() > document.createEvent('Event').timeStamp) {\r\n // if the event timestamp, although evaluated AFTER the Date.now(), is\r\n // smaller than it, it means the event is using a hi-res timestamp,\r\n // and we need to use the hi-res version for event listener timestamps as\r\n // well.\r\n getNow = function () { return performance_1.now(); };\r\n }\r\n}\r\n/**\r\n * Flush both queues and run the watchers.\r\n */\r\nfunction flushSchedulerQueue() {\r\n currentFlushTimestamp = getNow();\r\n flushing = true;\r\n var watcher, id;\r\n // Sort queue before flush.\r\n // This ensures that:\r\n // 1. Components are updated from parent to child. (because parent is always\r\n // created before the child)\r\n // 2. A component's user watchers are run before its render watcher (because\r\n // user watchers are created before the render watcher)\r\n // 3. If a component is destroyed during a parent component's watcher run,\r\n // its watchers can be skipped.\r\n queue.sort(function (a, b) { return a.id - b.id; });\r\n // do not cache length because more watchers might be pushed\r\n // as we run existing watchers\r\n for (index = 0; index < queue.length; index++) {\r\n watcher = queue[index];\r\n if (watcher.before) {\r\n watcher.before();\r\n }\r\n id = watcher.id;\r\n has[id] = null;\r\n watcher.run();\r\n // in dev build, check and stop circular updates.\r\n if (process.env.NODE_ENV !== 'production' && has[id] != null) {\r\n circular[id] = (circular[id] || 0) + 1;\r\n if (circular[id] > MAX_UPDATE_COUNT) {\r\n warn('You may have an infinite update loop ' +\r\n (watcher.user\r\n ? \"in watcher with expression \\\"\".concat(watcher.expression, \"\\\"\")\r\n : \"in a component render function.\"), watcher.vm);\r\n break;\r\n }\r\n }\r\n }\r\n // keep copies of post queues before resetting state\r\n var activatedQueue = activatedChildren.slice();\r\n var updatedQueue = queue.slice();\r\n resetSchedulerState();\r\n // call component updated and activated hooks\r\n callActivatedHooks(activatedQueue);\r\n callUpdatedHooks(updatedQueue);\r\n // devtool hook\r\n /* istanbul ignore if */\r\n if (devtools && config.devtools) {\r\n devtools.emit('flush');\r\n }\r\n}\r\nfunction callUpdatedHooks(queue) {\r\n var i = queue.length;\r\n while (i--) {\r\n var watcher = queue[i];\r\n var vm = watcher.vm;\r\n if (vm && vm._watcher === watcher && vm._isMounted && !vm._isDestroyed) {\r\n callHook$1(vm, 'updated');\r\n }\r\n }\r\n}\r\n/**\r\n * Queue a kept-alive component that was activated during patch.\r\n * The queue will be processed after the entire tree has been patched.\r\n */\r\nfunction queueActivatedComponent(vm) {\r\n // setting _inactive to false here so that a render function can\r\n // rely on checking whether it's in an inactive tree (e.g. router-view)\r\n vm._inactive = false;\r\n activatedChildren.push(vm);\r\n}\r\nfunction callActivatedHooks(queue) {\r\n for (var i = 0; i < queue.length; i++) {\r\n queue[i]._inactive = true;\r\n activateChildComponent(queue[i], true /* true */);\r\n }\r\n}\r\n/**\r\n * Push a watcher into the watcher queue.\r\n * Jobs with duplicate IDs will be skipped unless it's\r\n * pushed when the queue is being flushed.\r\n */\r\nfunction queueWatcher(watcher) {\r\n var id = watcher.id;\r\n if (has[id] != null) {\r\n return;\r\n }\r\n if (watcher === Dep.target && watcher.noRecurse) {\r\n return;\r\n }\r\n has[id] = true;\r\n if (!flushing) {\r\n queue.push(watcher);\r\n }\r\n else {\r\n // if already flushing, splice the watcher based on its id\r\n // if already past its id, it will be run next immediately.\r\n var i = queue.length - 1;\r\n while (i > index && queue[i].id > watcher.id) {\r\n i--;\r\n }\r\n queue.splice(i + 1, 0, watcher);\r\n }\r\n // queue the flush\r\n if (!waiting) {\r\n waiting = true;\r\n if (process.env.NODE_ENV !== 'production' && !config.async) {\r\n flushSchedulerQueue();\r\n return;\r\n }\r\n nextTick(flushSchedulerQueue);\r\n }\r\n}\n\nvar activeEffectScope;\r\nvar EffectScope = /** @class */ (function () {\r\n function EffectScope(detached) {\r\n if (detached === void 0) { detached = false; }\r\n /**\r\n * @internal\r\n */\r\n this.active = true;\r\n /**\r\n * @internal\r\n */\r\n this.effects = [];\r\n /**\r\n * @internal\r\n */\r\n this.cleanups = [];\r\n if (!detached && activeEffectScope) {\r\n this.parent = activeEffectScope;\r\n this.index =\r\n (activeEffectScope.scopes || (activeEffectScope.scopes = [])).push(this) - 1;\r\n }\r\n }\r\n EffectScope.prototype.run = function (fn) {\r\n if (this.active) {\r\n var currentEffectScope = activeEffectScope;\r\n try {\r\n activeEffectScope = this;\r\n return fn();\r\n }\r\n finally {\r\n activeEffectScope = currentEffectScope;\r\n }\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"cannot run an inactive effect scope.\");\r\n }\r\n };\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n EffectScope.prototype.on = function () {\r\n activeEffectScope = this;\r\n };\r\n /**\r\n * This should only be called on non-detached scopes\r\n * @internal\r\n */\r\n EffectScope.prototype.off = function () {\r\n activeEffectScope = this.parent;\r\n };\r\n EffectScope.prototype.stop = function (fromParent) {\r\n if (this.active) {\r\n var i = void 0, l = void 0;\r\n for (i = 0, l = this.effects.length; i < l; i++) {\r\n this.effects[i].teardown();\r\n }\r\n for (i = 0, l = this.cleanups.length; i < l; i++) {\r\n this.cleanups[i]();\r\n }\r\n if (this.scopes) {\r\n for (i = 0, l = this.scopes.length; i < l; i++) {\r\n this.scopes[i].stop(true);\r\n }\r\n }\r\n // nested scope, dereference from parent to avoid memory leaks\r\n if (this.parent && !fromParent) {\r\n // optimized O(1) removal\r\n var last = this.parent.scopes.pop();\r\n if (last && last !== this) {\r\n this.parent.scopes[this.index] = last;\r\n last.index = this.index;\r\n }\r\n }\r\n this.active = false;\r\n }\r\n };\r\n return EffectScope;\r\n}());\r\nfunction effectScope(detached) {\r\n return new EffectScope(detached);\r\n}\r\n/**\r\n * @internal\r\n */\r\nfunction recordEffectScope(effect, scope) {\r\n if (scope === void 0) { scope = activeEffectScope; }\r\n if (scope && scope.active) {\r\n scope.effects.push(effect);\r\n }\r\n}\r\nfunction getCurrentScope() {\r\n return activeEffectScope;\r\n}\r\nfunction onScopeDispose(fn) {\r\n if (activeEffectScope) {\r\n activeEffectScope.cleanups.push(fn);\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"onScopeDispose() is called when there is no active effect scope\" +\r\n \" to be associated with.\");\r\n }\r\n}\n\nvar uid$1 = 0;\r\n/**\r\n * A watcher parses an expression, collects dependencies,\r\n * and fires callback when the expression value changes.\r\n * This is used for both the $watch() api and directives.\r\n * @internal\r\n */\r\nvar Watcher = /** @class */ (function () {\r\n function Watcher(vm, expOrFn, cb, options, isRenderWatcher) {\r\n recordEffectScope(this, activeEffectScope || (vm ? vm._scope : undefined));\r\n if ((this.vm = vm)) {\r\n if (isRenderWatcher) {\r\n vm._watcher = this;\r\n }\r\n }\r\n // options\r\n if (options) {\r\n this.deep = !!options.deep;\r\n this.user = !!options.user;\r\n this.lazy = !!options.lazy;\r\n this.sync = !!options.sync;\r\n this.before = options.before;\r\n if (process.env.NODE_ENV !== 'production') {\r\n this.onTrack = options.onTrack;\r\n this.onTrigger = options.onTrigger;\r\n }\r\n }\r\n else {\r\n this.deep = this.user = this.lazy = this.sync = false;\r\n }\r\n this.cb = cb;\r\n this.id = ++uid$1; // uid for batching\r\n this.active = true;\r\n this.dirty = this.lazy; // for lazy watchers\r\n this.deps = [];\r\n this.newDeps = [];\r\n this.depIds = new _Set();\r\n this.newDepIds = new _Set();\r\n this.expression = process.env.NODE_ENV !== 'production' ? expOrFn.toString() : '';\r\n // parse expression for getter\r\n if (isFunction(expOrFn)) {\r\n this.getter = expOrFn;\r\n }\r\n else {\r\n this.getter = parsePath(expOrFn);\r\n if (!this.getter) {\r\n this.getter = noop;\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Failed watching path: \\\"\".concat(expOrFn, \"\\\" \") +\r\n 'Watcher only accepts simple dot-delimited paths. ' +\r\n 'For full control, use a function instead.', vm);\r\n }\r\n }\r\n this.value = this.lazy ? undefined : this.get();\r\n }\r\n /**\r\n * Evaluate the getter, and re-collect dependencies.\r\n */\r\n Watcher.prototype.get = function () {\r\n pushTarget(this);\r\n var value;\r\n var vm = this.vm;\r\n try {\r\n value = this.getter.call(vm, vm);\r\n }\r\n catch (e) {\r\n if (this.user) {\r\n handleError(e, vm, \"getter for watcher \\\"\".concat(this.expression, \"\\\"\"));\r\n }\r\n else {\r\n throw e;\r\n }\r\n }\r\n finally {\r\n // \"touch\" every property so they are all tracked as\r\n // dependencies for deep watching\r\n if (this.deep) {\r\n traverse(value);\r\n }\r\n popTarget();\r\n this.cleanupDeps();\r\n }\r\n return value;\r\n };\r\n /**\r\n * Add a dependency to this directive.\r\n */\r\n Watcher.prototype.addDep = function (dep) {\r\n var id = dep.id;\r\n if (!this.newDepIds.has(id)) {\r\n this.newDepIds.add(id);\r\n this.newDeps.push(dep);\r\n if (!this.depIds.has(id)) {\r\n dep.addSub(this);\r\n }\r\n }\r\n };\r\n /**\r\n * Clean up for dependency collection.\r\n */\r\n Watcher.prototype.cleanupDeps = function () {\r\n var i = this.deps.length;\r\n while (i--) {\r\n var dep = this.deps[i];\r\n if (!this.newDepIds.has(dep.id)) {\r\n dep.removeSub(this);\r\n }\r\n }\r\n var tmp = this.depIds;\r\n this.depIds = this.newDepIds;\r\n this.newDepIds = tmp;\r\n this.newDepIds.clear();\r\n tmp = this.deps;\r\n this.deps = this.newDeps;\r\n this.newDeps = tmp;\r\n this.newDeps.length = 0;\r\n };\r\n /**\r\n * Subscriber interface.\r\n * Will be called when a dependency changes.\r\n */\r\n Watcher.prototype.update = function () {\r\n /* istanbul ignore else */\r\n if (this.lazy) {\r\n this.dirty = true;\r\n }\r\n else if (this.sync) {\r\n this.run();\r\n }\r\n else {\r\n queueWatcher(this);\r\n }\r\n };\r\n /**\r\n * Scheduler job interface.\r\n * Will be called by the scheduler.\r\n */\r\n Watcher.prototype.run = function () {\r\n if (this.active) {\r\n var value = this.get();\r\n if (value !== this.value ||\r\n // Deep watchers and watchers on Object/Arrays should fire even\r\n // when the value is the same, because the value may\r\n // have mutated.\r\n isObject(value) ||\r\n this.deep) {\r\n // set new value\r\n var oldValue = this.value;\r\n this.value = value;\r\n if (this.user) {\r\n var info = \"callback for watcher \\\"\".concat(this.expression, \"\\\"\");\r\n invokeWithErrorHandling(this.cb, this.vm, [value, oldValue], this.vm, info);\r\n }\r\n else {\r\n this.cb.call(this.vm, value, oldValue);\r\n }\r\n }\r\n }\r\n };\r\n /**\r\n * Evaluate the value of the watcher.\r\n * This only gets called for lazy watchers.\r\n */\r\n Watcher.prototype.evaluate = function () {\r\n this.value = this.get();\r\n this.dirty = false;\r\n };\r\n /**\r\n * Depend on all deps collected by this watcher.\r\n */\r\n Watcher.prototype.depend = function () {\r\n var i = this.deps.length;\r\n while (i--) {\r\n this.deps[i].depend();\r\n }\r\n };\r\n /**\r\n * Remove self from all dependencies' subscriber list.\r\n */\r\n Watcher.prototype.teardown = function () {\r\n if (this.vm && !this.vm._isBeingDestroyed) {\r\n remove$2(this.vm._scope.effects, this);\r\n }\r\n if (this.active) {\r\n var i = this.deps.length;\r\n while (i--) {\r\n this.deps[i].removeSub(this);\r\n }\r\n this.active = false;\r\n if (this.onStop) {\r\n this.onStop();\r\n }\r\n }\r\n };\r\n return Watcher;\r\n}());\n\nfunction computed(getterOrOptions, debugOptions) {\r\n var getter;\r\n var setter;\r\n var onlyGetter = isFunction(getterOrOptions);\r\n if (onlyGetter) {\r\n getter = getterOrOptions;\r\n setter = process.env.NODE_ENV !== 'production'\r\n ? function () {\r\n warn('Write operation failed: computed value is readonly');\r\n }\r\n : noop;\r\n }\r\n else {\r\n getter = getterOrOptions.get;\r\n setter = getterOrOptions.set;\r\n }\r\n var watcher = isServerRendering()\r\n ? null\r\n : new Watcher(currentInstance, getter, noop, { lazy: true });\r\n if (process.env.NODE_ENV !== 'production' && watcher && debugOptions) {\r\n watcher.onTrack = debugOptions.onTrack;\r\n watcher.onTrigger = debugOptions.onTrigger;\r\n }\r\n var ref = {\r\n // some libs rely on the presence effect for checking computed refs\r\n // from normal refs, but the implementation doesn't matter\r\n effect: watcher,\r\n get value() {\r\n if (watcher) {\r\n if (watcher.dirty) {\r\n watcher.evaluate();\r\n }\r\n if (Dep.target) {\r\n if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {\r\n Dep.target.onTrack({\r\n effect: Dep.target,\r\n target: ref,\r\n type: \"get\" /* TrackOpTypes.GET */,\r\n key: 'value'\r\n });\r\n }\r\n watcher.depend();\r\n }\r\n return watcher.value;\r\n }\r\n else {\r\n return getter();\r\n }\r\n },\r\n set value(newVal) {\r\n setter(newVal);\r\n }\r\n };\r\n def(ref, RefFlag, true);\r\n def(ref, \"__v_isReadonly\" /* ReactiveFlags.IS_READONLY */, onlyGetter);\r\n return ref;\r\n}\n\nvar WATCHER = \"watcher\";\r\nvar WATCHER_CB = \"\".concat(WATCHER, \" callback\");\r\nvar WATCHER_GETTER = \"\".concat(WATCHER, \" getter\");\r\nvar WATCHER_CLEANUP = \"\".concat(WATCHER, \" cleanup\");\r\n// Simple effect.\r\nfunction watchEffect(effect, options) {\r\n return doWatch(effect, null, options);\r\n}\r\nfunction watchPostEffect(effect, options) {\r\n return doWatch(effect, null, (process.env.NODE_ENV !== 'production'\r\n ? __assign(__assign({}, options), { flush: 'post' }) : { flush: 'post' }));\r\n}\r\nfunction watchSyncEffect(effect, options) {\r\n return doWatch(effect, null, (process.env.NODE_ENV !== 'production'\r\n ? __assign(__assign({}, options), { flush: 'sync' }) : { flush: 'sync' }));\r\n}\r\n// initial value for watchers to trigger on undefined initial values\r\nvar INITIAL_WATCHER_VALUE = {};\r\n// implementation\r\nfunction watch(source, cb, options) {\r\n if (process.env.NODE_ENV !== 'production' && typeof cb !== 'function') {\r\n warn(\"`watch(fn, options?)` signature has been moved to a separate API. \" +\r\n \"Use `watchEffect(fn, options?)` instead. `watch` now only \" +\r\n \"supports `watch(source, cb, options?) signature.\");\r\n }\r\n return doWatch(source, cb, options);\r\n}\r\nfunction doWatch(source, cb, _a) {\r\n var _b = _a === void 0 ? emptyObject : _a, immediate = _b.immediate, deep = _b.deep, _c = _b.flush, flush = _c === void 0 ? 'pre' : _c, onTrack = _b.onTrack, onTrigger = _b.onTrigger;\r\n if (process.env.NODE_ENV !== 'production' && !cb) {\r\n if (immediate !== undefined) {\r\n warn(\"watch() \\\"immediate\\\" option is only respected when using the \" +\r\n \"watch(source, callback, options?) signature.\");\r\n }\r\n if (deep !== undefined) {\r\n warn(\"watch() \\\"deep\\\" option is only respected when using the \" +\r\n \"watch(source, callback, options?) signature.\");\r\n }\r\n }\r\n var warnInvalidSource = function (s) {\r\n warn(\"Invalid watch source: \".concat(s, \". A watch source can only be a getter/effect \") +\r\n \"function, a ref, a reactive object, or an array of these types.\");\r\n };\r\n var instance = currentInstance;\r\n var call = function (fn, type, args) {\r\n if (args === void 0) { args = null; }\r\n return invokeWithErrorHandling(fn, null, args, instance, type);\r\n };\r\n var getter;\r\n var forceTrigger = false;\r\n var isMultiSource = false;\r\n if (isRef(source)) {\r\n getter = function () { return source.value; };\r\n forceTrigger = isShallow(source);\r\n }\r\n else if (isReactive(source)) {\r\n getter = isArray(source)\r\n ? function () {\r\n source.__ob__.dep.depend();\r\n return source;\r\n }\r\n : function () { return source; };\r\n deep = true;\r\n }\r\n else if (isArray(source)) {\r\n isMultiSource = true;\r\n forceTrigger = source.some(function (s) { return isReactive(s) || isShallow(s); });\r\n getter = function () {\r\n return source.map(function (s) {\r\n if (isRef(s)) {\r\n return s.value;\r\n }\r\n else if (isReactive(s)) {\r\n return traverse(s);\r\n }\r\n else if (isFunction(s)) {\r\n return call(s, WATCHER_GETTER);\r\n }\r\n else {\r\n process.env.NODE_ENV !== 'production' && warnInvalidSource(s);\r\n }\r\n });\r\n };\r\n }\r\n else if (isFunction(source)) {\r\n if (cb) {\r\n // getter with cb\r\n getter = function () { return call(source, WATCHER_GETTER); };\r\n }\r\n else {\r\n // no cb -> simple effect\r\n getter = function () {\r\n if (instance && instance._isDestroyed) {\r\n return;\r\n }\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n return call(source, WATCHER, [onCleanup]);\r\n };\r\n }\r\n }\r\n else {\r\n getter = noop;\r\n process.env.NODE_ENV !== 'production' && warnInvalidSource(source);\r\n }\r\n if (cb && deep) {\r\n var baseGetter_1 = getter;\r\n getter = function () { return traverse(baseGetter_1()); };\r\n }\r\n var cleanup;\r\n var onCleanup = function (fn) {\r\n cleanup = watcher.onStop = function () {\r\n call(fn, WATCHER_CLEANUP);\r\n };\r\n };\r\n // in SSR there is no need to setup an actual effect, and it should be noop\r\n // unless it's eager\r\n if (isServerRendering()) {\r\n // we will also not call the invalidate callback (+ runner is not set up)\r\n onCleanup = noop;\r\n if (!cb) {\r\n getter();\r\n }\r\n else if (immediate) {\r\n call(cb, WATCHER_CB, [\r\n getter(),\r\n isMultiSource ? [] : undefined,\r\n onCleanup\r\n ]);\r\n }\r\n return noop;\r\n }\r\n var watcher = new Watcher(currentInstance, getter, noop, {\r\n lazy: true\r\n });\r\n watcher.noRecurse = !cb;\r\n var oldValue = isMultiSource ? [] : INITIAL_WATCHER_VALUE;\r\n // overwrite default run\r\n watcher.run = function () {\r\n if (!watcher.active &&\r\n !(flush === 'pre' && instance && instance._isBeingDestroyed)) {\r\n return;\r\n }\r\n if (cb) {\r\n // watch(source, cb)\r\n var newValue = watcher.get();\r\n if (deep ||\r\n forceTrigger ||\r\n (isMultiSource\r\n ? newValue.some(function (v, i) {\r\n return hasChanged(v, oldValue[i]);\r\n })\r\n : hasChanged(newValue, oldValue))) {\r\n // cleanup before running cb again\r\n if (cleanup) {\r\n cleanup();\r\n }\r\n call(cb, WATCHER_CB, [\r\n newValue,\r\n // pass undefined as the old value when it's changed for the first time\r\n oldValue === INITIAL_WATCHER_VALUE ? undefined : oldValue,\r\n onCleanup\r\n ]);\r\n oldValue = newValue;\r\n }\r\n }\r\n else {\r\n // watchEffect\r\n watcher.get();\r\n }\r\n };\r\n if (flush === 'sync') {\r\n watcher.update = watcher.run;\r\n }\r\n else if (flush === 'post') {\r\n watcher.id = Infinity;\r\n watcher.update = function () { return queueWatcher(watcher); };\r\n }\r\n else {\r\n // pre\r\n watcher.update = function () {\r\n if (instance && instance === currentInstance) {\r\n // pre-watcher triggered inside setup()\r\n var buffer = instance._preWatchers || (instance._preWatchers = []);\r\n if (buffer.indexOf(watcher) < 0)\r\n buffer.push(watcher);\r\n }\r\n else {\r\n queueWatcher(watcher);\r\n }\r\n };\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n watcher.onTrack = onTrack;\r\n watcher.onTrigger = onTrigger;\r\n }\r\n // initial run\r\n if (cb) {\r\n if (immediate) {\r\n watcher.run();\r\n }\r\n else {\r\n oldValue = watcher.get();\r\n }\r\n }\r\n else if (flush === 'post' && instance) {\r\n instance.$once('hook:mounted', function () { return watcher.get(); });\r\n }\r\n else {\r\n watcher.get();\r\n }\r\n return function () {\r\n watcher.teardown();\r\n };\r\n}\n\n/**\r\n * @internal this function needs manual public type declaration because it relies\r\n * on previously manually authored types from Vue 2\r\n */\r\nfunction h(type, props, children) {\r\n if (!currentInstance) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"globally imported h() can only be invoked when there is an active \" +\r\n \"component instance, e.g. synchronously in a component's render or setup function.\");\r\n }\r\n return createElement$1(currentInstance, type, props, children, 2, true);\r\n}\n\nfunction handleError(err, vm, info) {\r\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\r\n // See: https://github.com/vuejs/vuex/issues/1505\r\n pushTarget();\r\n try {\r\n if (vm) {\r\n var cur = vm;\r\n while ((cur = cur.$parent)) {\r\n var hooks = cur.$options.errorCaptured;\r\n if (hooks) {\r\n for (var i = 0; i < hooks.length; i++) {\r\n try {\r\n var capture = hooks[i].call(cur, err, vm, info) === false;\r\n if (capture)\r\n return;\r\n }\r\n catch (e) {\r\n globalHandleError(e, cur, 'errorCaptured hook');\r\n }\r\n }\r\n }\r\n }\r\n }\r\n globalHandleError(err, vm, info);\r\n }\r\n finally {\r\n popTarget();\r\n }\r\n}\r\nfunction invokeWithErrorHandling(handler, context, args, vm, info) {\r\n var res;\r\n try {\r\n res = args ? handler.apply(context, args) : handler.call(context);\r\n if (res && !res._isVue && isPromise(res) && !res._handled) {\r\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\r\n res._handled = true;\r\n }\r\n }\r\n catch (e) {\r\n handleError(e, vm, info);\r\n }\r\n return res;\r\n}\r\nfunction globalHandleError(err, vm, info) {\r\n if (config.errorHandler) {\r\n try {\r\n return config.errorHandler.call(null, err, vm, info);\r\n }\r\n catch (e) {\r\n // if the user intentionally throws the original error in the handler,\r\n // do not log it twice\r\n if (e !== err) {\r\n logError(e, null, 'config.errorHandler');\r\n }\r\n }\r\n }\r\n logError(err, vm, info);\r\n}\r\nfunction logError(err, vm, info) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Error in \".concat(info, \": \\\"\").concat(err.toString(), \"\\\"\"), vm);\r\n }\r\n /* istanbul ignore else */\r\n if (inBrowser && typeof console !== 'undefined') {\r\n console.error(err);\r\n }\r\n else {\r\n throw err;\r\n }\r\n}\n\n/* globals MutationObserver */\r\nvar isUsingMicroTask = false;\r\nvar callbacks = [];\r\nvar pending = false;\r\nfunction flushCallbacks() {\r\n pending = false;\r\n var copies = callbacks.slice(0);\r\n callbacks.length = 0;\r\n for (var i = 0; i < copies.length; i++) {\r\n copies[i]();\r\n }\r\n}\r\n// Here we have async deferring wrappers using microtasks.\r\n// In 2.5 we used (macro) tasks (in combination with microtasks).\r\n// However, it has subtle problems when state is changed right before repaint\r\n// (e.g. #6813, out-in transitions).\r\n// Also, using (macro) tasks in event handler would cause some weird behaviors\r\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\r\n// So we now use microtasks everywhere, again.\r\n// A major drawback of this tradeoff is that there are some scenarios\r\n// where microtasks have too high a priority and fire in between supposedly\r\n// sequential events (e.g. #4521, #6690, which have workarounds)\r\n// or even between bubbling of the same event (#6566).\r\nvar timerFunc;\r\n// The nextTick behavior leverages the microtask queue, which can be accessed\r\n// via either native Promise.then or MutationObserver.\r\n// MutationObserver has wider support, however it is seriously bugged in\r\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\r\n// completely stops working after triggering a few times... so, if native\r\n// Promise is available, we will use it:\r\n/* istanbul ignore next, $flow-disable-line */\r\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\r\n var p_1 = Promise.resolve();\r\n timerFunc = function () {\r\n p_1.then(flushCallbacks);\r\n // In problematic UIWebViews, Promise.then doesn't completely break, but\r\n // it can get stuck in a weird state where callbacks are pushed into the\r\n // microtask queue but the queue isn't being flushed, until the browser\r\n // needs to do some other work, e.g. handle a timer. Therefore we can\r\n // \"force\" the microtask queue to be flushed by adding an empty timer.\r\n if (isIOS)\r\n setTimeout(noop);\r\n };\r\n isUsingMicroTask = true;\r\n}\r\nelse if (!isIE &&\r\n typeof MutationObserver !== 'undefined' &&\r\n (isNative(MutationObserver) ||\r\n // PhantomJS and iOS 7.x\r\n MutationObserver.toString() === '[object MutationObserverConstructor]')) {\r\n // Use MutationObserver where native Promise is not available,\r\n // e.g. PhantomJS, iOS7, Android 4.4\r\n // (#6466 MutationObserver is unreliable in IE11)\r\n var counter_1 = 1;\r\n var observer = new MutationObserver(flushCallbacks);\r\n var textNode_1 = document.createTextNode(String(counter_1));\r\n observer.observe(textNode_1, {\r\n characterData: true\r\n });\r\n timerFunc = function () {\r\n counter_1 = (counter_1 + 1) % 2;\r\n textNode_1.data = String(counter_1);\r\n };\r\n isUsingMicroTask = true;\r\n}\r\nelse if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\r\n // Fallback to setImmediate.\r\n // Technically it leverages the (macro) task queue,\r\n // but it is still a better choice than setTimeout.\r\n timerFunc = function () {\r\n setImmediate(flushCallbacks);\r\n };\r\n}\r\nelse {\r\n // Fallback to setTimeout.\r\n timerFunc = function () {\r\n setTimeout(flushCallbacks, 0);\r\n };\r\n}\r\n/**\r\n * @internal\r\n */\r\nfunction nextTick(cb, ctx) {\r\n var _resolve;\r\n callbacks.push(function () {\r\n if (cb) {\r\n try {\r\n cb.call(ctx);\r\n }\r\n catch (e) {\r\n handleError(e, ctx, 'nextTick');\r\n }\r\n }\r\n else if (_resolve) {\r\n _resolve(ctx);\r\n }\r\n });\r\n if (!pending) {\r\n pending = true;\r\n timerFunc();\r\n }\r\n // $flow-disable-line\r\n if (!cb && typeof Promise !== 'undefined') {\r\n return new Promise(function (resolve) {\r\n _resolve = resolve;\r\n });\r\n }\r\n}\n\nfunction useCssModule(name) {\r\n if (name === void 0) { name = '$style'; }\r\n /* istanbul ignore else */\r\n {\r\n if (!currentInstance) {\r\n process.env.NODE_ENV !== 'production' && warn(\"useCssModule must be called inside setup()\");\r\n return emptyObject;\r\n }\r\n var mod = currentInstance[name];\r\n if (!mod) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Current instance does not have CSS module named \\\"\".concat(name, \"\\\".\"));\r\n return emptyObject;\r\n }\r\n return mod;\r\n }\r\n}\n\n/**\r\n * Runtime helper for SFC's CSS variable injection feature.\r\n * @private\r\n */\r\nfunction useCssVars(getter) {\r\n if (!inBrowser && !false)\r\n return;\r\n var instance = currentInstance;\r\n if (!instance) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"useCssVars is called without current active component instance.\");\r\n return;\r\n }\r\n watchPostEffect(function () {\r\n var el = instance.$el;\r\n var vars = getter(instance, instance._setupProxy);\r\n if (el && el.nodeType === 1) {\r\n var style = el.style;\r\n for (var key in vars) {\r\n style.setProperty(\"--\".concat(key), vars[key]);\r\n }\r\n }\r\n });\r\n}\n\nfunction createLifeCycle(hookName) {\r\n return function (fn, target) {\r\n if (target === void 0) { target = currentInstance; }\r\n if (!target) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"\".concat(formatName(hookName), \" is called when there is no active component instance to be \") +\r\n \"associated with. \" +\r\n \"Lifecycle injection APIs can only be used during execution of setup().\");\r\n return;\r\n }\r\n return injectHook(target, hookName, fn);\r\n };\r\n}\r\nfunction formatName(name) {\r\n if (name === 'beforeDestroy') {\r\n name = 'beforeUnmount';\r\n }\r\n else if (name === 'destroyed') {\r\n name = 'unmounted';\r\n }\r\n return \"on\".concat(name[0].toUpperCase() + name.slice(1));\r\n}\r\nfunction injectHook(instance, hookName, fn) {\r\n var options = instance.$options;\r\n options[hookName] = mergeLifecycleHook(options[hookName], fn);\r\n}\r\nvar onBeforeMount = createLifeCycle('beforeMount');\r\nvar onMounted = createLifeCycle('mounted');\r\nvar onBeforeUpdate = createLifeCycle('beforeUpdate');\r\nvar onUpdated = createLifeCycle('updated');\r\nvar onBeforeUnmount = createLifeCycle('beforeDestroy');\r\nvar onUnmounted = createLifeCycle('destroyed');\r\nvar onErrorCaptured = createLifeCycle('errorCaptured');\r\nvar onActivated = createLifeCycle('activated');\r\nvar onDeactivated = createLifeCycle('deactivated');\r\nvar onServerPrefetch = createLifeCycle('serverPrefetch');\r\nvar onRenderTracked = createLifeCycle('renderTracked');\r\nvar onRenderTriggered = createLifeCycle('renderTriggered');\n\nvar version = '2.7.0';\r\n/**\r\n * @internal type is manually declared in <root>/types/v3-define-component.d.ts\r\n */\r\nfunction defineComponent(options) {\r\n return options;\r\n}\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\r\nvar NO_INIITIAL_VALUE = {};\r\n/**\r\n * In some cases we may want to disable observation inside a component's\r\n * update computation.\r\n */\r\nvar shouldObserve = true;\r\nfunction toggleObserving(value) {\r\n shouldObserve = value;\r\n}\r\n/**\r\n * Observer class that is attached to each observed\r\n * object. Once attached, the observer converts the target\r\n * object's property keys into getter/setters that\r\n * collect dependencies and dispatch updates.\r\n */\r\nvar Observer = /** @class */ (function () {\r\n function Observer(value, shallow) {\r\n if (shallow === void 0) { shallow = false; }\r\n this.value = value;\r\n this.shallow = shallow;\r\n // this.value = value\r\n this.dep = new Dep();\r\n this.vmCount = 0;\r\n def(value, '__ob__', this);\r\n if (isArray(value)) {\r\n if (hasProto) {\r\n protoAugment(value, arrayMethods);\r\n }\r\n else {\r\n copyAugment(value, arrayMethods, arrayKeys);\r\n }\r\n if (!shallow) {\r\n this.observeArray(value);\r\n }\r\n }\r\n else {\r\n this.walk(value, shallow);\r\n }\r\n }\r\n /**\r\n * Walk through all properties and convert them into\r\n * getter/setters. This method should only be called when\r\n * value type is Object.\r\n */\r\n Observer.prototype.walk = function (obj, shallow) {\r\n var keys = Object.keys(obj);\r\n for (var i = 0; i < keys.length; i++) {\r\n var key = keys[i];\r\n defineReactive(obj, key, NO_INIITIAL_VALUE, undefined, shallow);\r\n }\r\n };\r\n /**\r\n * Observe a list of Array items.\r\n */\r\n Observer.prototype.observeArray = function (items) {\r\n for (var i = 0, l = items.length; i < l; i++) {\r\n observe(items[i]);\r\n }\r\n };\r\n return Observer;\r\n}());\r\n// helpers\r\n/**\r\n * Augment a target Object or Array by intercepting\r\n * the prototype chain using __proto__\r\n */\r\nfunction protoAugment(target, src) {\r\n /* eslint-disable no-proto */\r\n target.__proto__ = src;\r\n /* eslint-enable no-proto */\r\n}\r\n/**\r\n * Augment a target Object or Array by defining\r\n * hidden properties.\r\n */\r\n/* istanbul ignore next */\r\nfunction copyAugment(target, src, keys) {\r\n for (var i = 0, l = keys.length; i < l; i++) {\r\n var key = keys[i];\r\n def(target, key, src[key]);\r\n }\r\n}\r\n/**\r\n * Attempt to create an observer instance for a value,\r\n * returns the new observer if successfully observed,\r\n * or the existing observer if the value already has one.\r\n */\r\nfunction observe(value, shallow) {\r\n if (!isObject(value) || isRef(value) || value instanceof VNode) {\r\n return;\r\n }\r\n var ob;\r\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\r\n ob = value.__ob__;\r\n }\r\n else if (shouldObserve &&\r\n !isServerRendering() &&\r\n (isArray(value) || isPlainObject(value)) &&\r\n Object.isExtensible(value) &&\r\n !value.__v_skip) {\r\n ob = new Observer(value, shallow);\r\n }\r\n return ob;\r\n}\r\n/**\r\n * Define a reactive property on an Object.\r\n */\r\nfunction defineReactive(obj, key, val, customSetter, shallow) {\r\n var dep = new Dep();\r\n var property = Object.getOwnPropertyDescriptor(obj, key);\r\n if (property && property.configurable === false) {\r\n return;\r\n }\r\n // cater for pre-defined getter/setters\r\n var getter = property && property.get;\r\n var setter = property && property.set;\r\n if ((!getter || setter) &&\r\n (val === NO_INIITIAL_VALUE || arguments.length === 2)) {\r\n val = obj[key];\r\n }\r\n var childOb = !shallow && observe(val);\r\n Object.defineProperty(obj, key, {\r\n enumerable: true,\r\n configurable: true,\r\n get: function reactiveGetter() {\r\n var value = getter ? getter.call(obj) : val;\r\n if (Dep.target) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n dep.depend({\r\n target: obj,\r\n type: \"get\" /* TrackOpTypes.GET */,\r\n key: key\r\n });\r\n }\r\n else {\r\n dep.depend();\r\n }\r\n if (childOb) {\r\n childOb.dep.depend();\r\n if (isArray(value)) {\r\n dependArray(value);\r\n }\r\n }\r\n }\r\n return isRef(value) ? value.value : value;\r\n },\r\n set: function reactiveSetter(newVal) {\r\n var value = getter ? getter.call(obj) : val;\r\n if (!hasChanged(value, newVal)) {\r\n return;\r\n }\r\n if (process.env.NODE_ENV !== 'production' && customSetter) {\r\n customSetter();\r\n }\r\n if (setter) {\r\n setter.call(obj, newVal);\r\n }\r\n else if (getter) {\r\n // #7981: for accessor properties without setter\r\n return;\r\n }\r\n else if (isRef(value) && !isRef(newVal)) {\r\n value.value = newVal;\r\n return;\r\n }\r\n else {\r\n val = newVal;\r\n }\r\n childOb = !shallow && observe(newVal);\r\n if (process.env.NODE_ENV !== 'production') {\r\n dep.notify({\r\n type: \"set\" /* TriggerOpTypes.SET */,\r\n target: obj,\r\n key: key,\r\n newValue: newVal,\r\n oldValue: value\r\n });\r\n }\r\n else {\r\n dep.notify();\r\n }\r\n }\r\n });\r\n return dep;\r\n}\r\nfunction set(target, key, val) {\r\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\r\n warn(\"Cannot set reactive property on undefined, null, or primitive value: \".concat(target));\r\n }\r\n if (isReadonly(target)) {\r\n process.env.NODE_ENV !== 'production' && warn(\"Set operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\r\n return;\r\n }\r\n if (isArray(target) && isValidArrayIndex(key)) {\r\n target.length = Math.max(target.length, key);\r\n target.splice(key, 1, val);\r\n return val;\r\n }\r\n if (key in target && !(key in Object.prototype)) {\r\n target[key] = val;\r\n return val;\r\n }\r\n var ob = target.__ob__;\r\n if (target._isVue || (ob && ob.vmCount)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn('Avoid adding reactive properties to a Vue instance or its root $data ' +\r\n 'at runtime - declare it upfront in the data option.');\r\n return val;\r\n }\r\n if (!ob) {\r\n target[key] = val;\r\n return val;\r\n }\r\n defineReactive(ob.value, key, val);\r\n if (process.env.NODE_ENV !== 'production') {\r\n ob.dep.notify({\r\n type: \"add\" /* TriggerOpTypes.ADD */,\r\n target: target,\r\n key: key,\r\n newValue: val,\r\n oldValue: undefined\r\n });\r\n }\r\n else {\r\n ob.dep.notify();\r\n }\r\n return val;\r\n}\r\nfunction del(target, key) {\r\n if (process.env.NODE_ENV !== 'production' && (isUndef(target) || isPrimitive(target))) {\r\n warn(\"Cannot delete reactive property on undefined, null, or primitive value: \".concat(target));\r\n }\r\n if (isArray(target) && isValidArrayIndex(key)) {\r\n target.splice(key, 1);\r\n return;\r\n }\r\n var ob = target.__ob__;\r\n if (target._isVue || (ob && ob.vmCount)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn('Avoid deleting properties on a Vue instance or its root $data ' +\r\n '- just set it to null.');\r\n return;\r\n }\r\n if (isReadonly(target)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"Delete operation on key \\\"\".concat(key, \"\\\" failed: target is readonly.\"));\r\n return;\r\n }\r\n if (!hasOwn(target, key)) {\r\n return;\r\n }\r\n delete target[key];\r\n if (!ob) {\r\n return;\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n ob.dep.notify({\r\n type: \"delete\" /* TriggerOpTypes.DELETE */,\r\n target: target,\r\n key: key\r\n });\r\n }\r\n else {\r\n ob.dep.notify();\r\n }\r\n}\r\n/**\r\n * Collect dependencies on array elements when the array is touched, since\r\n * we cannot intercept array element access like property getters.\r\n */\r\nfunction dependArray(value) {\r\n for (var e = void 0, i = 0, l = value.length; i < l; i++) {\r\n e = value[i];\r\n if (e && e.__ob__) {\r\n e.__ob__.dep.depend();\r\n }\r\n if (isArray(e)) {\r\n dependArray(e);\r\n }\r\n }\r\n}\n\n/**\r\n * Option overwriting strategies are functions that handle\r\n * how to merge a parent option value and a child option\r\n * value into the final value.\r\n */\r\nvar strats = config.optionMergeStrategies;\r\n/**\r\n * Options with restrictions\r\n */\r\nif (process.env.NODE_ENV !== 'production') {\r\n strats.el = strats.propsData = function (parent, child, vm, key) {\r\n if (!vm) {\r\n warn(\"option \\\"\".concat(key, \"\\\" can only be used during instance \") +\r\n 'creation with the `new` keyword.');\r\n }\r\n return defaultStrat(parent, child);\r\n };\r\n}\r\n/**\r\n * Helper that recursively merges two data objects together.\r\n */\r\nfunction mergeData(to, from) {\r\n if (!from)\r\n return to;\r\n var key, toVal, fromVal;\r\n var keys = hasSymbol\r\n ? Reflect.ownKeys(from)\r\n : Object.keys(from);\r\n for (var i = 0; i < keys.length; i++) {\r\n key = keys[i];\r\n // in case the object is already observed...\r\n if (key === '__ob__')\r\n continue;\r\n toVal = to[key];\r\n fromVal = from[key];\r\n if (!hasOwn(to, key)) {\r\n set(to, key, fromVal);\r\n }\r\n else if (toVal !== fromVal &&\r\n isPlainObject(toVal) &&\r\n isPlainObject(fromVal)) {\r\n mergeData(toVal, fromVal);\r\n }\r\n }\r\n return to;\r\n}\r\n/**\r\n * Data\r\n */\r\nfunction mergeDataOrFn(parentVal, childVal, vm) {\r\n if (!vm) {\r\n // in a Vue.extend merge, both should be functions\r\n if (!childVal) {\r\n return parentVal;\r\n }\r\n if (!parentVal) {\r\n return childVal;\r\n }\r\n // when parentVal & childVal are both present,\r\n // we need to return a function that returns the\r\n // merged result of both functions... no need to\r\n // check if parentVal is a function here because\r\n // it has to be a function to pass previous merges.\r\n return function mergedDataFn() {\r\n return mergeData(isFunction(childVal) ? childVal.call(this, this) : childVal, isFunction(parentVal) ? parentVal.call(this, this) : parentVal);\r\n };\r\n }\r\n else {\r\n return function mergedInstanceDataFn() {\r\n // instance merge\r\n var instanceData = isFunction(childVal)\r\n ? childVal.call(vm, vm)\r\n : childVal;\r\n var defaultData = isFunction(parentVal)\r\n ? parentVal.call(vm, vm)\r\n : parentVal;\r\n if (instanceData) {\r\n return mergeData(instanceData, defaultData);\r\n }\r\n else {\r\n return defaultData;\r\n }\r\n };\r\n }\r\n}\r\nstrats.data = function (parentVal, childVal, vm) {\r\n if (!vm) {\r\n if (childVal && typeof childVal !== 'function') {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn('The \"data\" option should be a function ' +\r\n 'that returns a per-instance value in component ' +\r\n 'definitions.', vm);\r\n return parentVal;\r\n }\r\n return mergeDataOrFn(parentVal, childVal);\r\n }\r\n return mergeDataOrFn(parentVal, childVal, vm);\r\n};\r\n/**\r\n * Hooks and props are merged as arrays.\r\n */\r\nfunction mergeLifecycleHook(parentVal, childVal) {\r\n var res = childVal\r\n ? parentVal\r\n ? parentVal.concat(childVal)\r\n : isArray(childVal)\r\n ? childVal\r\n : [childVal]\r\n : parentVal;\r\n return res ? dedupeHooks(res) : res;\r\n}\r\nfunction dedupeHooks(hooks) {\r\n var res = [];\r\n for (var i = 0; i < hooks.length; i++) {\r\n if (res.indexOf(hooks[i]) === -1) {\r\n res.push(hooks[i]);\r\n }\r\n }\r\n return res;\r\n}\r\nLIFECYCLE_HOOKS.forEach(function (hook) {\r\n strats[hook] = mergeLifecycleHook;\r\n});\r\n/**\r\n * Assets\r\n *\r\n * When a vm is present (instance creation), we need to do\r\n * a three-way merge between constructor options, instance\r\n * options and parent options.\r\n */\r\nfunction mergeAssets(parentVal, childVal, vm, key) {\r\n var res = Object.create(parentVal || null);\r\n if (childVal) {\r\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\r\n return extend(res, childVal);\r\n }\r\n else {\r\n return res;\r\n }\r\n}\r\nASSET_TYPES.forEach(function (type) {\r\n strats[type + 's'] = mergeAssets;\r\n});\r\n/**\r\n * Watchers.\r\n *\r\n * Watchers hashes should not overwrite one\r\n * another, so we merge them as arrays.\r\n */\r\nstrats.watch = function (parentVal, childVal, vm, key) {\r\n // work around Firefox's Object.prototype.watch...\r\n //@ts-expect-error work around\r\n if (parentVal === nativeWatch)\r\n parentVal = undefined;\r\n //@ts-expect-error work around\r\n if (childVal === nativeWatch)\r\n childVal = undefined;\r\n /* istanbul ignore if */\r\n if (!childVal)\r\n return Object.create(parentVal || null);\r\n if (process.env.NODE_ENV !== 'production') {\r\n assertObjectType(key, childVal, vm);\r\n }\r\n if (!parentVal)\r\n return childVal;\r\n var ret = {};\r\n extend(ret, parentVal);\r\n for (var key_1 in childVal) {\r\n var parent_1 = ret[key_1];\r\n var child = childVal[key_1];\r\n if (parent_1 && !isArray(parent_1)) {\r\n parent_1 = [parent_1];\r\n }\r\n ret[key_1] = parent_1 ? parent_1.concat(child) : isArray(child) ? child : [child];\r\n }\r\n return ret;\r\n};\r\n/**\r\n * Other object hashes.\r\n */\r\nstrats.props =\r\n strats.methods =\r\n strats.inject =\r\n strats.computed =\r\n function (parentVal, childVal, vm, key) {\r\n if (childVal && process.env.NODE_ENV !== 'production') {\r\n assertObjectType(key, childVal, vm);\r\n }\r\n if (!parentVal)\r\n return childVal;\r\n var ret = Object.create(null);\r\n extend(ret, parentVal);\r\n if (childVal)\r\n extend(ret, childVal);\r\n return ret;\r\n };\r\nstrats.provide = mergeDataOrFn;\r\n/**\r\n * Default strategy.\r\n */\r\nvar defaultStrat = function (parentVal, childVal) {\r\n return childVal === undefined ? parentVal : childVal;\r\n};\r\n/**\r\n * Validate component names\r\n */\r\nfunction checkComponents(options) {\r\n for (var key in options.components) {\r\n validateComponentName(key);\r\n }\r\n}\r\nfunction validateComponentName(name) {\r\n if (!new RegExp(\"^[a-zA-Z][\\\\-\\\\.0-9_\".concat(unicodeRegExp.source, \"]*$\")).test(name)) {\r\n warn('Invalid component name: \"' +\r\n name +\r\n '\". Component names ' +\r\n 'should conform to valid custom element name in html5 specification.');\r\n }\r\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\r\n warn('Do not use built-in or reserved HTML elements as component ' +\r\n 'id: ' +\r\n name);\r\n }\r\n}\r\n/**\r\n * Ensure all props option syntax are normalized into the\r\n * Object-based format.\r\n */\r\nfunction normalizeProps(options, vm) {\r\n var props = options.props;\r\n if (!props)\r\n return;\r\n var res = {};\r\n var i, val, name;\r\n if (isArray(props)) {\r\n i = props.length;\r\n while (i--) {\r\n val = props[i];\r\n if (typeof val === 'string') {\r\n name = camelize(val);\r\n res[name] = { type: null };\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn('props must be strings when using array syntax.');\r\n }\r\n }\r\n }\r\n else if (isPlainObject(props)) {\r\n for (var key in props) {\r\n val = props[key];\r\n name = camelize(key);\r\n res[name] = isPlainObject(val) ? val : { type: val };\r\n }\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\r\n \"but got \".concat(toRawType(props), \".\"), vm);\r\n }\r\n options.props = res;\r\n}\r\n/**\r\n * Normalize all injections into Object-based format\r\n */\r\nfunction normalizeInject(options, vm) {\r\n var inject = options.inject;\r\n if (!inject)\r\n return;\r\n var normalized = (options.inject = {});\r\n if (isArray(inject)) {\r\n for (var i = 0; i < inject.length; i++) {\r\n normalized[inject[i]] = { from: inject[i] };\r\n }\r\n }\r\n else if (isPlainObject(inject)) {\r\n for (var key in inject) {\r\n var val = inject[key];\r\n normalized[key] = isPlainObject(val)\r\n ? extend({ from: key }, val)\r\n : { from: val };\r\n }\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\r\n \"but got \".concat(toRawType(inject), \".\"), vm);\r\n }\r\n}\r\n/**\r\n * Normalize raw function directives into object format.\r\n */\r\nfunction normalizeDirectives$1(options) {\r\n var dirs = options.directives;\r\n if (dirs) {\r\n for (var key in dirs) {\r\n var def = dirs[key];\r\n if (isFunction(def)) {\r\n dirs[key] = { bind: def, update: def };\r\n }\r\n }\r\n }\r\n}\r\nfunction assertObjectType(name, value, vm) {\r\n if (!isPlainObject(value)) {\r\n warn(\"Invalid value for option \\\"\".concat(name, \"\\\": expected an Object, \") +\r\n \"but got \".concat(toRawType(value), \".\"), vm);\r\n }\r\n}\r\n/**\r\n * Merge two option objects into a new one.\r\n * Core utility used in both instantiation and inheritance.\r\n */\r\nfunction mergeOptions(parent, child, vm) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n checkComponents(child);\r\n }\r\n if (isFunction(child)) {\r\n // @ts-expect-error\r\n child = child.options;\r\n }\r\n normalizeProps(child, vm);\r\n normalizeInject(child, vm);\r\n normalizeDirectives$1(child);\r\n // Apply extends and mixins on the child options,\r\n // but only if it is a raw options object that isn't\r\n // the result of another mergeOptions call.\r\n // Only merged options has the _base property.\r\n if (!child._base) {\r\n if (child.extends) {\r\n parent = mergeOptions(parent, child.extends, vm);\r\n }\r\n if (child.mixins) {\r\n for (var i = 0, l = child.mixins.length; i < l; i++) {\r\n parent = mergeOptions(parent, child.mixins[i], vm);\r\n }\r\n }\r\n }\r\n var options = {};\r\n var key;\r\n for (key in parent) {\r\n mergeField(key);\r\n }\r\n for (key in child) {\r\n if (!hasOwn(parent, key)) {\r\n mergeField(key);\r\n }\r\n }\r\n function mergeField(key) {\r\n var strat = strats[key] || defaultStrat;\r\n options[key] = strat(parent[key], child[key], vm, key);\r\n }\r\n return options;\r\n}\r\n/**\r\n * Resolve an asset.\r\n * This function is used because child instances need access\r\n * to assets defined in its ancestor chain.\r\n */\r\nfunction resolveAsset(options, type, id, warnMissing) {\r\n /* istanbul ignore if */\r\n if (typeof id !== 'string') {\r\n return;\r\n }\r\n var assets = options[type];\r\n // check local registration variations first\r\n if (hasOwn(assets, id))\r\n return assets[id];\r\n var camelizedId = camelize(id);\r\n if (hasOwn(assets, camelizedId))\r\n return assets[camelizedId];\r\n var PascalCaseId = capitalize(camelizedId);\r\n if (hasOwn(assets, PascalCaseId))\r\n return assets[PascalCaseId];\r\n // fallback to prototype chain\r\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\r\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\r\n warn('Failed to resolve ' + type.slice(0, -1) + ': ' + id);\r\n }\r\n return res;\r\n}\n\nfunction validateProp(key, propOptions, propsData, vm) {\r\n var prop = propOptions[key];\r\n var absent = !hasOwn(propsData, key);\r\n var value = propsData[key];\r\n // boolean casting\r\n var booleanIndex = getTypeIndex(Boolean, prop.type);\r\n if (booleanIndex > -1) {\r\n if (absent && !hasOwn(prop, 'default')) {\r\n value = false;\r\n }\r\n else if (value === '' || value === hyphenate(key)) {\r\n // only cast empty string / same name to boolean if\r\n // boolean has higher priority\r\n var stringIndex = getTypeIndex(String, prop.type);\r\n if (stringIndex < 0 || booleanIndex < stringIndex) {\r\n value = true;\r\n }\r\n }\r\n }\r\n // check default value\r\n if (value === undefined) {\r\n value = getPropDefaultValue(vm, prop, key);\r\n // since the default value is a fresh copy,\r\n // make sure to observe it.\r\n var prevShouldObserve = shouldObserve;\r\n toggleObserving(true);\r\n observe(value);\r\n toggleObserving(prevShouldObserve);\r\n }\r\n if (process.env.NODE_ENV !== 'production') {\r\n assertProp(prop, key, value, vm, absent);\r\n }\r\n return value;\r\n}\r\n/**\r\n * Get the default value of a prop.\r\n */\r\nfunction getPropDefaultValue(vm, prop, key) {\r\n // no default, return undefined\r\n if (!hasOwn(prop, 'default')) {\r\n return undefined;\r\n }\r\n var def = prop.default;\r\n // warn against non-factory defaults for Object & Array\r\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\r\n warn('Invalid default value for prop \"' +\r\n key +\r\n '\": ' +\r\n 'Props with type Object/Array must use a factory function ' +\r\n 'to return the default value.', vm);\r\n }\r\n // the raw prop value was also undefined from previous render,\r\n // return previous default value to avoid unnecessary watcher trigger\r\n if (vm &&\r\n vm.$options.propsData &&\r\n vm.$options.propsData[key] === undefined &&\r\n vm._props[key] !== undefined) {\r\n return vm._props[key];\r\n }\r\n // call factory function for non-Function types\r\n // a value is Function if its prototype is function even across different execution context\r\n return isFunction(def) && getType(prop.type) !== 'Function'\r\n ? def.call(vm)\r\n : def;\r\n}\r\n/**\r\n * Assert whether a prop is valid.\r\n */\r\nfunction assertProp(prop, name, value, vm, absent) {\r\n if (prop.required && absent) {\r\n warn('Missing required prop: \"' + name + '\"', vm);\r\n return;\r\n }\r\n if (value == null && !prop.required) {\r\n return;\r\n }\r\n var type = prop.type;\r\n var valid = !type || type === true;\r\n var expectedTypes = [];\r\n if (type) {\r\n if (!isArray(type)) {\r\n type = [type];\r\n }\r\n for (var i = 0; i < type.length && !valid; i++) {\r\n var assertedType = assertType(value, type[i], vm);\r\n expectedTypes.push(assertedType.expectedType || '');\r\n valid = assertedType.valid;\r\n }\r\n }\r\n var haveExpectedTypes = expectedTypes.some(function (t) { return t; });\r\n if (!valid && haveExpectedTypes) {\r\n warn(getInvalidTypeMessage(name, value, expectedTypes), vm);\r\n return;\r\n }\r\n var validator = prop.validator;\r\n if (validator) {\r\n if (!validator(value)) {\r\n warn('Invalid prop: custom validator check failed for prop \"' + name + '\".', vm);\r\n }\r\n }\r\n}\r\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol|BigInt)$/;\r\nfunction assertType(value, type, vm) {\r\n var valid;\r\n var expectedType = getType(type);\r\n if (simpleCheckRE.test(expectedType)) {\r\n var t = typeof value;\r\n valid = t === expectedType.toLowerCase();\r\n // for primitive wrapper objects\r\n if (!valid && t === 'object') {\r\n valid = value instanceof type;\r\n }\r\n }\r\n else if (expectedType === 'Object') {\r\n valid = isPlainObject(value);\r\n }\r\n else if (expectedType === 'Array') {\r\n valid = isArray(value);\r\n }\r\n else {\r\n try {\r\n valid = value instanceof type;\r\n }\r\n catch (e) {\r\n warn('Invalid prop type: \"' + String(type) + '\" is not a constructor', vm);\r\n valid = false;\r\n }\r\n }\r\n return {\r\n valid: valid,\r\n expectedType: expectedType\r\n };\r\n}\r\nvar functionTypeCheckRE = /^\\s*function (\\w+)/;\r\n/**\r\n * Use function string name to check built-in types,\r\n * because a simple equality check will fail when running\r\n * across different vms / iframes.\r\n */\r\nfunction getType(fn) {\r\n var match = fn && fn.toString().match(functionTypeCheckRE);\r\n return match ? match[1] : '';\r\n}\r\nfunction isSameType(a, b) {\r\n return getType(a) === getType(b);\r\n}\r\nfunction getTypeIndex(type, expectedTypes) {\r\n if (!isArray(expectedTypes)) {\r\n return isSameType(expectedTypes, type) ? 0 : -1;\r\n }\r\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\r\n if (isSameType(expectedTypes[i], type)) {\r\n return i;\r\n }\r\n }\r\n return -1;\r\n}\r\nfunction getInvalidTypeMessage(name, value, expectedTypes) {\r\n var message = \"Invalid prop: type check failed for prop \\\"\".concat(name, \"\\\".\") +\r\n \" Expected \".concat(expectedTypes.map(capitalize).join(', '));\r\n var expectedType = expectedTypes[0];\r\n var receivedType = toRawType(value);\r\n // check if we need to specify expected value\r\n if (expectedTypes.length === 1 &&\r\n isExplicable(expectedType) &&\r\n isExplicable(typeof value) &&\r\n !isBoolean(expectedType, receivedType)) {\r\n message += \" with value \".concat(styleValue(value, expectedType));\r\n }\r\n message += \", got \".concat(receivedType, \" \");\r\n // check if we need to specify received value\r\n if (isExplicable(receivedType)) {\r\n message += \"with value \".concat(styleValue(value, receivedType), \".\");\r\n }\r\n return message;\r\n}\r\nfunction styleValue(value, type) {\r\n if (type === 'String') {\r\n return \"\\\"\".concat(value, \"\\\"\");\r\n }\r\n else if (type === 'Number') {\r\n return \"\".concat(Number(value));\r\n }\r\n else {\r\n return \"\".concat(value);\r\n }\r\n}\r\nvar EXPLICABLE_TYPES = ['string', 'number', 'boolean'];\r\nfunction isExplicable(value) {\r\n return EXPLICABLE_TYPES.some(function (elem) { return value.toLowerCase() === elem; });\r\n}\r\nfunction isBoolean() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; });\r\n}\n\n/* not type checking this file because flow doesn't play well with Proxy */\r\nvar initProxy;\r\nif (process.env.NODE_ENV !== 'production') {\r\n var allowedGlobals_1 = makeMap('Infinity,undefined,NaN,isFinite,isNaN,' +\r\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\r\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,' +\r\n 'require' // for Webpack/Browserify\r\n );\r\n var warnNonPresent_1 = function (target, key) {\r\n warn(\"Property or method \\\"\".concat(key, \"\\\" is not defined on the instance but \") +\r\n 'referenced during render. Make sure that this property is reactive, ' +\r\n 'either in the data option, or for class-based components, by ' +\r\n 'initializing the property. ' +\r\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.', target);\r\n };\r\n var warnReservedPrefix_1 = function (target, key) {\r\n warn(\"Property \\\"\".concat(key, \"\\\" must be accessed with \\\"$data.\").concat(key, \"\\\" because \") +\r\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\r\n 'prevent conflicts with Vue internals. ' +\r\n 'See: https://vuejs.org/v2/api/#data', target);\r\n };\r\n var hasProxy_1 = typeof Proxy !== 'undefined' && isNative(Proxy);\r\n if (hasProxy_1) {\r\n var isBuiltInModifier_1 = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\r\n config.keyCodes = new Proxy(config.keyCodes, {\r\n set: function (target, key, value) {\r\n if (isBuiltInModifier_1(key)) {\r\n warn(\"Avoid overwriting built-in modifier in config.keyCodes: .\".concat(key));\r\n return false;\r\n }\r\n else {\r\n target[key] = value;\r\n return true;\r\n }\r\n }\r\n });\r\n }\r\n var hasHandler_1 = {\r\n has: function (target, key) {\r\n var has = key in target;\r\n var isAllowed = allowedGlobals_1(key) ||\r\n (typeof key === 'string' &&\r\n key.charAt(0) === '_' &&\r\n !(key in target.$data));\r\n if (!has && !isAllowed) {\r\n if (key in target.$data)\r\n warnReservedPrefix_1(target, key);\r\n else\r\n warnNonPresent_1(target, key);\r\n }\r\n return has || !isAllowed;\r\n }\r\n };\r\n var getHandler_1 = {\r\n get: function (target, key) {\r\n if (typeof key === 'string' && !(key in target)) {\r\n if (key in target.$data)\r\n warnReservedPrefix_1(target, key);\r\n else\r\n warnNonPresent_1(target, key);\r\n }\r\n return target[key];\r\n }\r\n };\r\n initProxy = function initProxy(vm) {\r\n if (hasProxy_1) {\r\n // determine which proxy handler to use\r\n var options = vm.$options;\r\n var handlers = options.render && options.render._withStripped ? getHandler_1 : hasHandler_1;\r\n vm._renderProxy = new Proxy(vm, handlers);\r\n }\r\n else {\r\n vm._renderProxy = vm;\r\n }\r\n };\r\n}\n\nvar sharedPropertyDefinition = {\r\n enumerable: true,\r\n configurable: true,\r\n get: noop,\r\n set: noop\r\n};\r\nfunction proxy(target, sourceKey, key) {\r\n sharedPropertyDefinition.get = function proxyGetter() {\r\n return this[sourceKey][key];\r\n };\r\n sharedPropertyDefinition.set = function proxySetter(val) {\r\n this[sourceKey][key] = val;\r\n };\r\n Object.defineProperty(target, key, sharedPropertyDefinition);\r\n}\r\nfunction initState(vm) {\r\n var opts = vm.$options;\r\n if (opts.props)\r\n initProps$1(vm, opts.props);\r\n // Composition API\r\n initSetup(vm);\r\n if (opts.methods)\r\n initMethods(vm, opts.methods);\r\n if (opts.data) {\r\n initData(vm);\r\n }\r\n else {\r\n var ob = observe((vm._data = {}));\r\n ob && ob.vmCount++;\r\n }\r\n if (opts.computed)\r\n initComputed$1(vm, opts.computed);\r\n if (opts.watch && opts.watch !== nativeWatch) {\r\n initWatch(vm, opts.watch);\r\n }\r\n}\r\nfunction initProps$1(vm, propsOptions) {\r\n var propsData = vm.$options.propsData || {};\r\n var props = (vm._props = shallowReactive({}));\r\n // cache prop keys so that future props updates can iterate using Array\r\n // instead of dynamic object key enumeration.\r\n var keys = (vm.$options._propKeys = []);\r\n var isRoot = !vm.$parent;\r\n // root instance props should be converted\r\n if (!isRoot) {\r\n toggleObserving(false);\r\n }\r\n var _loop_1 = function (key) {\r\n keys.push(key);\r\n var value = validateProp(key, propsOptions, propsData, vm);\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV !== 'production') {\r\n var hyphenatedKey = hyphenate(key);\r\n if (isReservedAttribute(hyphenatedKey) ||\r\n config.isReservedAttr(hyphenatedKey)) {\r\n warn(\"\\\"\".concat(hyphenatedKey, \"\\\" is a reserved attribute and cannot be used as component prop.\"), vm);\r\n }\r\n defineReactive(props, key, value, function () {\r\n if (!isRoot && !isUpdatingChildComponent) {\r\n warn(\"Avoid mutating a prop directly since the value will be \" +\r\n \"overwritten whenever the parent component re-renders. \" +\r\n \"Instead, use a data or computed property based on the prop's \" +\r\n \"value. Prop being mutated: \\\"\".concat(key, \"\\\"\"), vm);\r\n }\r\n });\r\n }\r\n else {\r\n defineReactive(props, key, value);\r\n }\r\n // static props are already proxied on the component's prototype\r\n // during Vue.extend(). We only need to proxy props defined at\r\n // instantiation here.\r\n if (!(key in vm)) {\r\n proxy(vm, \"_props\", key);\r\n }\r\n };\r\n for (var key in propsOptions) {\r\n _loop_1(key);\r\n }\r\n toggleObserving(true);\r\n}\r\nfunction initData(vm) {\r\n var data = vm.$options.data;\r\n data = vm._data = isFunction(data) ? getData(data, vm) : data || {};\r\n if (!isPlainObject(data)) {\r\n data = {};\r\n process.env.NODE_ENV !== 'production' &&\r\n warn('data functions should return an object:\\n' +\r\n 'https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function', vm);\r\n }\r\n // proxy data on instance\r\n var keys = Object.keys(data);\r\n var props = vm.$options.props;\r\n var methods = vm.$options.methods;\r\n var i = keys.length;\r\n while (i--) {\r\n var key = keys[i];\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (methods && hasOwn(methods, key)) {\r\n warn(\"Method \\\"\".concat(key, \"\\\" has already been defined as a data property.\"), vm);\r\n }\r\n }\r\n if (props && hasOwn(props, key)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"The data property \\\"\".concat(key, \"\\\" is already declared as a prop. \") +\r\n \"Use prop default value instead.\", vm);\r\n }\r\n else if (!isReserved(key)) {\r\n proxy(vm, \"_data\", key);\r\n }\r\n }\r\n // observe data\r\n var ob = observe(data);\r\n ob && ob.vmCount++;\r\n}\r\nfunction getData(data, vm) {\r\n // #7573 disable dep collection when invoking data getters\r\n pushTarget();\r\n try {\r\n return data.call(vm, vm);\r\n }\r\n catch (e) {\r\n handleError(e, vm, \"data()\");\r\n return {};\r\n }\r\n finally {\r\n popTarget();\r\n }\r\n}\r\nvar computedWatcherOptions = { lazy: true };\r\nfunction initComputed$1(vm, computed) {\r\n // $flow-disable-line\r\n var watchers = (vm._computedWatchers = Object.create(null));\r\n // computed properties are just getters during SSR\r\n var isSSR = isServerRendering();\r\n for (var key in computed) {\r\n var userDef = computed[key];\r\n var getter = isFunction(userDef) ? userDef : userDef.get;\r\n if (process.env.NODE_ENV !== 'production' && getter == null) {\r\n warn(\"Getter is missing for computed property \\\"\".concat(key, \"\\\".\"), vm);\r\n }\r\n if (!isSSR) {\r\n // create internal watcher for the computed property.\r\n watchers[key] = new Watcher(vm, getter || noop, noop, computedWatcherOptions);\r\n }\r\n // component-defined computed properties are already defined on the\r\n // component prototype. We only need to define computed properties defined\r\n // at instantiation here.\r\n if (!(key in vm)) {\r\n defineComputed(vm, key, userDef);\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n if (key in vm.$data) {\r\n warn(\"The computed property \\\"\".concat(key, \"\\\" is already defined in data.\"), vm);\r\n }\r\n else if (vm.$options.props && key in vm.$options.props) {\r\n warn(\"The computed property \\\"\".concat(key, \"\\\" is already defined as a prop.\"), vm);\r\n }\r\n else if (vm.$options.methods && key in vm.$options.methods) {\r\n warn(\"The computed property \\\"\".concat(key, \"\\\" is already defined as a method.\"), vm);\r\n }\r\n }\r\n }\r\n}\r\nfunction defineComputed(target, key, userDef) {\r\n var shouldCache = !isServerRendering();\r\n if (isFunction(userDef)) {\r\n sharedPropertyDefinition.get = shouldCache\r\n ? createComputedGetter(key)\r\n : createGetterInvoker(userDef);\r\n sharedPropertyDefinition.set = noop;\r\n }\r\n else {\r\n sharedPropertyDefinition.get = userDef.get\r\n ? shouldCache && userDef.cache !== false\r\n ? createComputedGetter(key)\r\n : createGetterInvoker(userDef.get)\r\n : noop;\r\n sharedPropertyDefinition.set = userDef.set || noop;\r\n }\r\n if (process.env.NODE_ENV !== 'production' && sharedPropertyDefinition.set === noop) {\r\n sharedPropertyDefinition.set = function () {\r\n warn(\"Computed property \\\"\".concat(key, \"\\\" was assigned to but it has no setter.\"), this);\r\n };\r\n }\r\n Object.defineProperty(target, key, sharedPropertyDefinition);\r\n}\r\nfunction createComputedGetter(key) {\r\n return function computedGetter() {\r\n var watcher = this._computedWatchers && this._computedWatchers[key];\r\n if (watcher) {\r\n if (watcher.dirty) {\r\n watcher.evaluate();\r\n }\r\n if (Dep.target) {\r\n if (process.env.NODE_ENV !== 'production' && Dep.target.onTrack) {\r\n Dep.target.onTrack({\r\n effect: Dep.target,\r\n target: this,\r\n type: \"get\" /* TrackOpTypes.GET */,\r\n key: key\r\n });\r\n }\r\n watcher.depend();\r\n }\r\n return watcher.value;\r\n }\r\n };\r\n}\r\nfunction createGetterInvoker(fn) {\r\n return function computedGetter() {\r\n return fn.call(this, this);\r\n };\r\n}\r\nfunction initMethods(vm, methods) {\r\n var props = vm.$options.props;\r\n for (var key in methods) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof methods[key] !== 'function') {\r\n warn(\"Method \\\"\".concat(key, \"\\\" has type \\\"\").concat(typeof methods[key], \"\\\" in the component definition. \") +\r\n \"Did you reference the function correctly?\", vm);\r\n }\r\n if (props && hasOwn(props, key)) {\r\n warn(\"Method \\\"\".concat(key, \"\\\" has already been defined as a prop.\"), vm);\r\n }\r\n if (key in vm && isReserved(key)) {\r\n warn(\"Method \\\"\".concat(key, \"\\\" conflicts with an existing Vue instance method. \") +\r\n \"Avoid defining component methods that start with _ or $.\");\r\n }\r\n }\r\n vm[key] = typeof methods[key] !== 'function' ? noop : bind(methods[key], vm);\r\n }\r\n}\r\nfunction initWatch(vm, watch) {\r\n for (var key in watch) {\r\n var handler = watch[key];\r\n if (isArray(handler)) {\r\n for (var i = 0; i < handler.length; i++) {\r\n createWatcher(vm, key, handler[i]);\r\n }\r\n }\r\n else {\r\n createWatcher(vm, key, handler);\r\n }\r\n }\r\n}\r\nfunction createWatcher(vm, expOrFn, handler, options) {\r\n if (isPlainObject(handler)) {\r\n options = handler;\r\n handler = handler.handler;\r\n }\r\n if (typeof handler === 'string') {\r\n handler = vm[handler];\r\n }\r\n return vm.$watch(expOrFn, handler, options);\r\n}\r\nfunction stateMixin(Vue) {\r\n // flow somehow has problems with directly declared definition object\r\n // when using Object.defineProperty, so we have to procedurally build up\r\n // the object here.\r\n var dataDef = {};\r\n dataDef.get = function () {\r\n return this._data;\r\n };\r\n var propsDef = {};\r\n propsDef.get = function () {\r\n return this._props;\r\n };\r\n if (process.env.NODE_ENV !== 'production') {\r\n dataDef.set = function () {\r\n warn('Avoid replacing instance root $data. ' +\r\n 'Use nested data properties instead.', this);\r\n };\r\n propsDef.set = function () {\r\n warn(\"$props is readonly.\", this);\r\n };\r\n }\r\n Object.defineProperty(Vue.prototype, '$data', dataDef);\r\n Object.defineProperty(Vue.prototype, '$props', propsDef);\r\n Vue.prototype.$set = set;\r\n Vue.prototype.$delete = del;\r\n Vue.prototype.$watch = function (expOrFn, cb, options) {\r\n var vm = this;\r\n if (isPlainObject(cb)) {\r\n return createWatcher(vm, expOrFn, cb, options);\r\n }\r\n options = options || {};\r\n options.user = true;\r\n var watcher = new Watcher(vm, expOrFn, cb, options);\r\n if (options.immediate) {\r\n var info = \"callback for immediate watcher \\\"\".concat(watcher.expression, \"\\\"\");\r\n pushTarget();\r\n invokeWithErrorHandling(cb, vm, [watcher.value], vm, info);\r\n popTarget();\r\n }\r\n return function unwatchFn() {\r\n watcher.teardown();\r\n };\r\n };\r\n}\n\nvar uid = 0;\r\nfunction initMixin$1(Vue) {\r\n Vue.prototype._init = function (options) {\r\n var vm = this;\r\n // a uid\r\n vm._uid = uid++;\r\n var startTag, endTag;\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\r\n startTag = \"vue-perf-start:\".concat(vm._uid);\r\n endTag = \"vue-perf-end:\".concat(vm._uid);\r\n mark(startTag);\r\n }\r\n // a flag to mark this as a Vue instance without having to do instanceof\r\n // check\r\n vm._isVue = true;\r\n // avoid instances from being observed\r\n vm.__v_skip = true;\r\n // effect scope\r\n vm._scope = new EffectScope(true /* detached */);\r\n // merge options\r\n if (options && options._isComponent) {\r\n // optimize internal component instantiation\r\n // since dynamic options merging is pretty slow, and none of the\r\n // internal component options needs special treatment.\r\n initInternalComponent(vm, options);\r\n }\r\n else {\r\n vm.$options = mergeOptions(resolveConstructorOptions(vm.constructor), options || {}, vm);\r\n }\r\n /* istanbul ignore else */\r\n if (process.env.NODE_ENV !== 'production') {\r\n initProxy(vm);\r\n }\r\n else {\r\n vm._renderProxy = vm;\r\n }\r\n // expose real self\r\n vm._self = vm;\r\n initLifecycle(vm);\r\n initEvents(vm);\r\n initRender(vm);\r\n callHook$1(vm, 'beforeCreate');\r\n initInjections(vm); // resolve injections before data/props\r\n initState(vm);\r\n initProvide(vm); // resolve provide after data/props\r\n callHook$1(vm, 'created');\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' && config.performance && mark) {\r\n vm._name = formatComponentName(vm, false);\r\n mark(endTag);\r\n measure(\"vue \".concat(vm._name, \" init\"), startTag, endTag);\r\n }\r\n if (vm.$options.el) {\r\n vm.$mount(vm.$options.el);\r\n }\r\n };\r\n}\r\nfunction initInternalComponent(vm, options) {\r\n var opts = (vm.$options = Object.create(vm.constructor.options));\r\n // doing this because it's faster than dynamic enumeration.\r\n var parentVnode = options._parentVnode;\r\n opts.parent = options.parent;\r\n opts._parentVnode = parentVnode;\r\n var vnodeComponentOptions = parentVnode.componentOptions;\r\n opts.propsData = vnodeComponentOptions.propsData;\r\n opts._parentListeners = vnodeComponentOptions.listeners;\r\n opts._renderChildren = vnodeComponentOptions.children;\r\n opts._componentTag = vnodeComponentOptions.tag;\r\n if (options.render) {\r\n opts.render = options.render;\r\n opts.staticRenderFns = options.staticRenderFns;\r\n }\r\n}\r\nfunction resolveConstructorOptions(Ctor) {\r\n var options = Ctor.options;\r\n if (Ctor.super) {\r\n var superOptions = resolveConstructorOptions(Ctor.super);\r\n var cachedSuperOptions = Ctor.superOptions;\r\n if (superOptions !== cachedSuperOptions) {\r\n // super option changed,\r\n // need to resolve new options.\r\n Ctor.superOptions = superOptions;\r\n // check if there are any late-modified/attached options (#4976)\r\n var modifiedOptions = resolveModifiedOptions(Ctor);\r\n // update base extend options\r\n if (modifiedOptions) {\r\n extend(Ctor.extendOptions, modifiedOptions);\r\n }\r\n options = Ctor.options = mergeOptions(superOptions, Ctor.extendOptions);\r\n if (options.name) {\r\n options.components[options.name] = Ctor;\r\n }\r\n }\r\n }\r\n return options;\r\n}\r\nfunction resolveModifiedOptions(Ctor) {\r\n var modified;\r\n var latest = Ctor.options;\r\n var sealed = Ctor.sealedOptions;\r\n for (var key in latest) {\r\n if (latest[key] !== sealed[key]) {\r\n if (!modified)\r\n modified = {};\r\n modified[key] = latest[key];\r\n }\r\n }\r\n return modified;\r\n}\n\nfunction Vue(options) {\r\n if (process.env.NODE_ENV !== 'production' && !(this instanceof Vue)) {\r\n warn('Vue is a constructor and should be called with the `new` keyword');\r\n }\r\n this._init(options);\r\n}\r\n//@ts-expect-error Vue has function type\r\ninitMixin$1(Vue);\r\n//@ts-expect-error Vue has function type\r\nstateMixin(Vue);\r\n//@ts-expect-error Vue has function type\r\neventsMixin(Vue);\r\n//@ts-expect-error Vue has function type\r\nlifecycleMixin(Vue);\r\n//@ts-expect-error Vue has function type\r\nrenderMixin(Vue);\n\nfunction initUse(Vue) {\r\n Vue.use = function (plugin) {\r\n var installedPlugins = this._installedPlugins || (this._installedPlugins = []);\r\n if (installedPlugins.indexOf(plugin) > -1) {\r\n return this;\r\n }\r\n // additional parameters\r\n var args = toArray(arguments, 1);\r\n args.unshift(this);\r\n if (isFunction(plugin.install)) {\r\n plugin.install.apply(plugin, args);\r\n }\r\n else if (isFunction(plugin)) {\r\n plugin.apply(null, args);\r\n }\r\n installedPlugins.push(plugin);\r\n return this;\r\n };\r\n}\n\nfunction initMixin(Vue) {\r\n Vue.mixin = function (mixin) {\r\n this.options = mergeOptions(this.options, mixin);\r\n return this;\r\n };\r\n}\n\nfunction initExtend(Vue) {\r\n /**\r\n * Each instance constructor, including Vue, has a unique\r\n * cid. This enables us to create wrapped \"child\r\n * constructors\" for prototypal inheritance and cache them.\r\n */\r\n Vue.cid = 0;\r\n var cid = 1;\r\n /**\r\n * Class inheritance\r\n */\r\n Vue.extend = function (extendOptions) {\r\n extendOptions = extendOptions || {};\r\n var Super = this;\r\n var SuperId = Super.cid;\r\n var cachedCtors = extendOptions._Ctor || (extendOptions._Ctor = {});\r\n if (cachedCtors[SuperId]) {\r\n return cachedCtors[SuperId];\r\n }\r\n var name = extendOptions.name || Super.options.name;\r\n if (process.env.NODE_ENV !== 'production' && name) {\r\n validateComponentName(name);\r\n }\r\n var Sub = function VueComponent(options) {\r\n this._init(options);\r\n };\r\n Sub.prototype = Object.create(Super.prototype);\r\n Sub.prototype.constructor = Sub;\r\n Sub.cid = cid++;\r\n Sub.options = mergeOptions(Super.options, extendOptions);\r\n Sub['super'] = Super;\r\n // For props and computed properties, we define the proxy getters on\r\n // the Vue instances at extension time, on the extended prototype. This\r\n // avoids Object.defineProperty calls for each instance created.\r\n if (Sub.options.props) {\r\n initProps(Sub);\r\n }\r\n if (Sub.options.computed) {\r\n initComputed(Sub);\r\n }\r\n // allow further extension/mixin/plugin usage\r\n Sub.extend = Super.extend;\r\n Sub.mixin = Super.mixin;\r\n Sub.use = Super.use;\r\n // create asset registers, so extended classes\r\n // can have their private assets too.\r\n ASSET_TYPES.forEach(function (type) {\r\n Sub[type] = Super[type];\r\n });\r\n // enable recursive self-lookup\r\n if (name) {\r\n Sub.options.components[name] = Sub;\r\n }\r\n // keep a reference to the super options at extension time.\r\n // later at instantiation we can check if Super's options have\r\n // been updated.\r\n Sub.superOptions = Super.options;\r\n Sub.extendOptions = extendOptions;\r\n Sub.sealedOptions = extend({}, Sub.options);\r\n // cache constructor\r\n cachedCtors[SuperId] = Sub;\r\n return Sub;\r\n };\r\n}\r\nfunction initProps(Comp) {\r\n var props = Comp.options.props;\r\n for (var key in props) {\r\n proxy(Comp.prototype, \"_props\", key);\r\n }\r\n}\r\nfunction initComputed(Comp) {\r\n var computed = Comp.options.computed;\r\n for (var key in computed) {\r\n defineComputed(Comp.prototype, key, computed[key]);\r\n }\r\n}\n\nfunction initAssetRegisters(Vue) {\r\n /**\r\n * Create asset registration methods.\r\n */\r\n ASSET_TYPES.forEach(function (type) {\r\n // @ts-expect-error function is not exact same type\r\n Vue[type] = function (id, definition) {\r\n if (!definition) {\r\n return this.options[type + 's'][id];\r\n }\r\n else {\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' && type === 'component') {\r\n validateComponentName(id);\r\n }\r\n if (type === 'component' && isPlainObject(definition)) {\r\n // @ts-expect-error\r\n definition.name = definition.name || id;\r\n definition = this.options._base.extend(definition);\r\n }\r\n if (type === 'directive' && isFunction(definition)) {\r\n definition = { bind: definition, update: definition };\r\n }\r\n this.options[type + 's'][id] = definition;\r\n return definition;\r\n }\r\n };\r\n });\r\n}\n\nfunction getComponentName(opts) {\r\n return opts && (opts.Ctor.options.name || opts.tag);\r\n}\r\nfunction matches(pattern, name) {\r\n if (isArray(pattern)) {\r\n return pattern.indexOf(name) > -1;\r\n }\r\n else if (typeof pattern === 'string') {\r\n return pattern.split(',').indexOf(name) > -1;\r\n }\r\n else if (isRegExp(pattern)) {\r\n return pattern.test(name);\r\n }\r\n /* istanbul ignore next */\r\n return false;\r\n}\r\nfunction pruneCache(keepAliveInstance, filter) {\r\n var cache = keepAliveInstance.cache, keys = keepAliveInstance.keys, _vnode = keepAliveInstance._vnode;\r\n for (var key in cache) {\r\n var entry = cache[key];\r\n if (entry) {\r\n var name_1 = entry.name;\r\n if (name_1 && !filter(name_1)) {\r\n pruneCacheEntry(cache, key, keys, _vnode);\r\n }\r\n }\r\n }\r\n}\r\nfunction pruneCacheEntry(cache, key, keys, current) {\r\n var entry = cache[key];\r\n if (entry && (!current || entry.tag !== current.tag)) {\r\n // @ts-expect-error can be undefined\r\n entry.componentInstance.$destroy();\r\n }\r\n cache[key] = null;\r\n remove$2(keys, key);\r\n}\r\nvar patternTypes = [String, RegExp, Array];\r\n// TODO defineComponent\r\nvar KeepAlive = {\r\n name: 'keep-alive',\r\n abstract: true,\r\n props: {\r\n include: patternTypes,\r\n exclude: patternTypes,\r\n max: [String, Number]\r\n },\r\n methods: {\r\n cacheVNode: function () {\r\n var _a = this, cache = _a.cache, keys = _a.keys, vnodeToCache = _a.vnodeToCache, keyToCache = _a.keyToCache;\r\n if (vnodeToCache) {\r\n var tag = vnodeToCache.tag, componentInstance = vnodeToCache.componentInstance, componentOptions = vnodeToCache.componentOptions;\r\n cache[keyToCache] = {\r\n name: getComponentName(componentOptions),\r\n tag: tag,\r\n componentInstance: componentInstance\r\n };\r\n keys.push(keyToCache);\r\n // prune oldest entry\r\n if (this.max && keys.length > parseInt(this.max)) {\r\n pruneCacheEntry(cache, keys[0], keys, this._vnode);\r\n }\r\n this.vnodeToCache = null;\r\n }\r\n }\r\n },\r\n created: function () {\r\n this.cache = Object.create(null);\r\n this.keys = [];\r\n },\r\n destroyed: function () {\r\n for (var key in this.cache) {\r\n pruneCacheEntry(this.cache, key, this.keys);\r\n }\r\n },\r\n mounted: function () {\r\n var _this = this;\r\n this.cacheVNode();\r\n this.$watch('include', function (val) {\r\n pruneCache(_this, function (name) { return matches(val, name); });\r\n });\r\n this.$watch('exclude', function (val) {\r\n pruneCache(_this, function (name) { return !matches(val, name); });\r\n });\r\n },\r\n updated: function () {\r\n this.cacheVNode();\r\n },\r\n render: function () {\r\n var slot = this.$slots.default;\r\n var vnode = getFirstComponentChild(slot);\r\n var componentOptions = vnode && vnode.componentOptions;\r\n if (componentOptions) {\r\n // check pattern\r\n var name_2 = getComponentName(componentOptions);\r\n var _a = this, include = _a.include, exclude = _a.exclude;\r\n if (\r\n // not included\r\n (include && (!name_2 || !matches(include, name_2))) ||\r\n // excluded\r\n (exclude && name_2 && matches(exclude, name_2))) {\r\n return vnode;\r\n }\r\n var _b = this, cache = _b.cache, keys = _b.keys;\r\n var key = vnode.key == null\r\n ? // same constructor may get registered as different local components\r\n // so cid alone is not enough (#3269)\r\n componentOptions.Ctor.cid +\r\n (componentOptions.tag ? \"::\".concat(componentOptions.tag) : '')\r\n : vnode.key;\r\n if (cache[key]) {\r\n vnode.componentInstance = cache[key].componentInstance;\r\n // make current key freshest\r\n remove$2(keys, key);\r\n keys.push(key);\r\n }\r\n else {\r\n // delay setting the cache until update\r\n this.vnodeToCache = vnode;\r\n this.keyToCache = key;\r\n }\r\n // @ts-expect-error can vnode.data can be undefined\r\n vnode.data.keepAlive = true;\r\n }\r\n return vnode || (slot && slot[0]);\r\n }\r\n};\n\nvar builtInComponents = {\r\n KeepAlive: KeepAlive\r\n};\n\nfunction initGlobalAPI(Vue) {\r\n // config\r\n var configDef = {};\r\n configDef.get = function () { return config; };\r\n if (process.env.NODE_ENV !== 'production') {\r\n configDef.set = function () {\r\n warn('Do not replace the Vue.config object, set individual fields instead.');\r\n };\r\n }\r\n Object.defineProperty(Vue, 'config', configDef);\r\n // exposed util methods.\r\n // NOTE: these are not considered part of the public API - avoid relying on\r\n // them unless you are aware of the risk.\r\n Vue.util = {\r\n warn: warn,\r\n extend: extend,\r\n mergeOptions: mergeOptions,\r\n defineReactive: defineReactive\r\n };\r\n Vue.set = set;\r\n Vue.delete = del;\r\n Vue.nextTick = nextTick;\r\n // 2.6 explicit observable API\r\n Vue.observable = function (obj) {\r\n observe(obj);\r\n return obj;\r\n };\r\n Vue.options = Object.create(null);\r\n ASSET_TYPES.forEach(function (type) {\r\n Vue.options[type + 's'] = Object.create(null);\r\n });\r\n // this is used to identify the \"base\" constructor to extend all plain-object\r\n // components with in Weex's multi-instance scenarios.\r\n Vue.options._base = Vue;\r\n extend(Vue.options.components, builtInComponents);\r\n initUse(Vue);\r\n initMixin(Vue);\r\n initExtend(Vue);\r\n initAssetRegisters(Vue);\r\n}\n\ninitGlobalAPI(Vue);\r\nObject.defineProperty(Vue.prototype, '$isServer', {\r\n get: isServerRendering\r\n});\r\nObject.defineProperty(Vue.prototype, '$ssrContext', {\r\n get: function () {\r\n /* istanbul ignore next */\r\n return this.$vnode && this.$vnode.ssrContext;\r\n }\r\n});\r\n// expose FunctionalRenderContext for ssr runtime helper installation\r\nObject.defineProperty(Vue, 'FunctionalRenderContext', {\r\n value: FunctionalRenderContext\r\n});\r\nVue.version = version;\n\n// these are reserved for web because they are directly compiled away\r\n// during template compilation\r\nvar isReservedAttr = makeMap('style,class');\r\n// attributes that should be using props for binding\r\nvar acceptValue = makeMap('input,textarea,option,select,progress');\r\nvar mustUseProp = function (tag, type, attr) {\r\n return ((attr === 'value' && acceptValue(tag) && type !== 'button') ||\r\n (attr === 'selected' && tag === 'option') ||\r\n (attr === 'checked' && tag === 'input') ||\r\n (attr === 'muted' && tag === 'video'));\r\n};\r\nvar isEnumeratedAttr = makeMap('contenteditable,draggable,spellcheck');\r\nvar isValidContentEditableValue = makeMap('events,caret,typing,plaintext-only');\r\nvar convertEnumeratedValue = function (key, value) {\r\n return isFalsyAttrValue(value) || value === 'false'\r\n ? 'false'\r\n : // allow arbitrary string value for contenteditable\r\n key === 'contenteditable' && isValidContentEditableValue(value)\r\n ? value\r\n : 'true';\r\n};\r\nvar isBooleanAttr = makeMap('allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,' +\r\n 'default,defaultchecked,defaultmuted,defaultselected,defer,disabled,' +\r\n 'enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,' +\r\n 'muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,' +\r\n 'required,reversed,scoped,seamless,selected,sortable,' +\r\n 'truespeed,typemustmatch,visible');\r\nvar xlinkNS = 'http://www.w3.org/1999/xlink';\r\nvar isXlink = function (name) {\r\n return name.charAt(5) === ':' && name.slice(0, 5) === 'xlink';\r\n};\r\nvar getXlinkProp = function (name) {\r\n return isXlink(name) ? name.slice(6, name.length) : '';\r\n};\r\nvar isFalsyAttrValue = function (val) {\r\n return val == null || val === false;\r\n};\n\nfunction genClassForVnode(vnode) {\r\n var data = vnode.data;\r\n var parentNode = vnode;\r\n var childNode = vnode;\r\n while (isDef(childNode.componentInstance)) {\r\n childNode = childNode.componentInstance._vnode;\r\n if (childNode && childNode.data) {\r\n data = mergeClassData(childNode.data, data);\r\n }\r\n }\r\n // @ts-expect-error parentNode.parent not VNodeWithData\r\n while (isDef((parentNode = parentNode.parent))) {\r\n if (parentNode && parentNode.data) {\r\n data = mergeClassData(data, parentNode.data);\r\n }\r\n }\r\n return renderClass(data.staticClass, data.class);\r\n}\r\nfunction mergeClassData(child, parent) {\r\n return {\r\n staticClass: concat(child.staticClass, parent.staticClass),\r\n class: isDef(child.class) ? [child.class, parent.class] : parent.class\r\n };\r\n}\r\nfunction renderClass(staticClass, dynamicClass) {\r\n if (isDef(staticClass) || isDef(dynamicClass)) {\r\n return concat(staticClass, stringifyClass(dynamicClass));\r\n }\r\n /* istanbul ignore next */\r\n return '';\r\n}\r\nfunction concat(a, b) {\r\n return a ? (b ? a + ' ' + b : a) : b || '';\r\n}\r\nfunction stringifyClass(value) {\r\n if (Array.isArray(value)) {\r\n return stringifyArray(value);\r\n }\r\n if (isObject(value)) {\r\n return stringifyObject(value);\r\n }\r\n if (typeof value === 'string') {\r\n return value;\r\n }\r\n /* istanbul ignore next */\r\n return '';\r\n}\r\nfunction stringifyArray(value) {\r\n var res = '';\r\n var stringified;\r\n for (var i = 0, l = value.length; i < l; i++) {\r\n if (isDef((stringified = stringifyClass(value[i]))) && stringified !== '') {\r\n if (res)\r\n res += ' ';\r\n res += stringified;\r\n }\r\n }\r\n return res;\r\n}\r\nfunction stringifyObject(value) {\r\n var res = '';\r\n for (var key in value) {\r\n if (value[key]) {\r\n if (res)\r\n res += ' ';\r\n res += key;\r\n }\r\n }\r\n return res;\r\n}\n\nvar namespaceMap = {\r\n svg: 'http://www.w3.org/2000/svg',\r\n math: 'http://www.w3.org/1998/Math/MathML'\r\n};\r\nvar isHTMLTag = makeMap('html,body,base,head,link,meta,style,title,' +\r\n 'address,article,aside,footer,header,h1,h2,h3,h4,h5,h6,hgroup,nav,section,' +\r\n 'div,dd,dl,dt,figcaption,figure,picture,hr,img,li,main,ol,p,pre,ul,' +\r\n 'a,b,abbr,bdi,bdo,br,cite,code,data,dfn,em,i,kbd,mark,q,rp,rt,rtc,ruby,' +\r\n 's,samp,small,span,strong,sub,sup,time,u,var,wbr,area,audio,map,track,video,' +\r\n 'embed,object,param,source,canvas,script,noscript,del,ins,' +\r\n 'caption,col,colgroup,table,thead,tbody,td,th,tr,' +\r\n 'button,datalist,fieldset,form,input,label,legend,meter,optgroup,option,' +\r\n 'output,progress,select,textarea,' +\r\n 'details,dialog,menu,menuitem,summary,' +\r\n 'content,element,shadow,template,blockquote,iframe,tfoot');\r\n// this map is intentionally selective, only covering SVG elements that may\r\n// contain child elements.\r\nvar isSVG = makeMap('svg,animate,circle,clippath,cursor,defs,desc,ellipse,filter,font-face,' +\r\n 'foreignobject,g,glyph,image,line,marker,mask,missing-glyph,path,pattern,' +\r\n 'polygon,polyline,rect,switch,symbol,text,textpath,tspan,use,view', true);\r\nvar isReservedTag = function (tag) {\r\n return isHTMLTag(tag) || isSVG(tag);\r\n};\r\nfunction getTagNamespace(tag) {\r\n if (isSVG(tag)) {\r\n return 'svg';\r\n }\r\n // basic support for MathML\r\n // note it doesn't support other MathML elements being component roots\r\n if (tag === 'math') {\r\n return 'math';\r\n }\r\n}\r\nvar unknownElementCache = Object.create(null);\r\nfunction isUnknownElement(tag) {\r\n /* istanbul ignore if */\r\n if (!inBrowser) {\r\n return true;\r\n }\r\n if (isReservedTag(tag)) {\r\n return false;\r\n }\r\n tag = tag.toLowerCase();\r\n /* istanbul ignore if */\r\n if (unknownElementCache[tag] != null) {\r\n return unknownElementCache[tag];\r\n }\r\n var el = document.createElement(tag);\r\n if (tag.indexOf('-') > -1) {\r\n // http://stackoverflow.com/a/28210364/1070244\r\n return (unknownElementCache[tag] =\r\n el.constructor === window.HTMLUnknownElement ||\r\n el.constructor === window.HTMLElement);\r\n }\r\n else {\r\n return (unknownElementCache[tag] = /HTMLUnknownElement/.test(el.toString()));\r\n }\r\n}\r\nvar isTextInputType = makeMap('text,number,password,search,email,tel,url');\n\n/**\r\n * Query an element selector if it's not an element already.\r\n */\r\nfunction query(el) {\r\n if (typeof el === 'string') {\r\n var selected = document.querySelector(el);\r\n if (!selected) {\r\n process.env.NODE_ENV !== 'production' && warn('Cannot find element: ' + el);\r\n return document.createElement('div');\r\n }\r\n return selected;\r\n }\r\n else {\r\n return el;\r\n }\r\n}\n\nfunction createElement(tagName, vnode) {\r\n var elm = document.createElement(tagName);\r\n if (tagName !== 'select') {\r\n return elm;\r\n }\r\n // false or null will remove the attribute but undefined will not\r\n if (vnode.data &&\r\n vnode.data.attrs &&\r\n vnode.data.attrs.multiple !== undefined) {\r\n elm.setAttribute('multiple', 'multiple');\r\n }\r\n return elm;\r\n}\r\nfunction createElementNS(namespace, tagName) {\r\n return document.createElementNS(namespaceMap[namespace], tagName);\r\n}\r\nfunction createTextNode(text) {\r\n return document.createTextNode(text);\r\n}\r\nfunction createComment(text) {\r\n return document.createComment(text);\r\n}\r\nfunction insertBefore(parentNode, newNode, referenceNode) {\r\n parentNode.insertBefore(newNode, referenceNode);\r\n}\r\nfunction removeChild(node, child) {\r\n node.removeChild(child);\r\n}\r\nfunction appendChild(node, child) {\r\n node.appendChild(child);\r\n}\r\nfunction parentNode(node) {\r\n return node.parentNode;\r\n}\r\nfunction nextSibling(node) {\r\n return node.nextSibling;\r\n}\r\nfunction tagName(node) {\r\n return node.tagName;\r\n}\r\nfunction setTextContent(node, text) {\r\n node.textContent = text;\r\n}\r\nfunction setStyleScope(node, scopeId) {\r\n node.setAttribute(scopeId, '');\r\n}\n\nvar nodeOps = /*#__PURE__*/Object.freeze({\n __proto__: null,\n createElement: createElement,\n createElementNS: createElementNS,\n createTextNode: createTextNode,\n createComment: createComment,\n insertBefore: insertBefore,\n removeChild: removeChild,\n appendChild: appendChild,\n parentNode: parentNode,\n nextSibling: nextSibling,\n tagName: tagName,\n setTextContent: setTextContent,\n setStyleScope: setStyleScope\n});\n\nvar ref = {\r\n create: function (_, vnode) {\r\n registerRef(vnode);\r\n },\r\n update: function (oldVnode, vnode) {\r\n if (oldVnode.data.ref !== vnode.data.ref) {\r\n registerRef(oldVnode, true);\r\n registerRef(vnode);\r\n }\r\n },\r\n destroy: function (vnode) {\r\n registerRef(vnode, true);\r\n }\r\n};\r\nfunction registerRef(vnode, isRemoval) {\r\n var ref = vnode.data.ref;\r\n if (!isDef(ref))\r\n return;\r\n var vm = vnode.context;\r\n var refValue = vnode.componentInstance || vnode.elm;\r\n var value = isRemoval ? null : refValue;\r\n var $refsValue = isRemoval ? undefined : refValue;\r\n if (isFunction(ref)) {\r\n invokeWithErrorHandling(ref, vm, [value], vm, \"template ref function\");\r\n return;\r\n }\r\n var isFor = vnode.data.refInFor;\r\n var _isString = typeof ref === 'string' || typeof ref === 'number';\r\n var _isRef = isRef(ref);\r\n var refs = vm.$refs;\r\n if (_isString || _isRef) {\r\n if (isFor) {\r\n var existing = _isString ? refs[ref] : ref.value;\r\n if (isRemoval) {\r\n isArray(existing) && remove$2(existing, refValue);\r\n }\r\n else {\r\n if (!isArray(existing)) {\r\n if (_isString) {\r\n refs[ref] = [refValue];\r\n setSetupRef(vm, ref, refs[ref]);\r\n }\r\n else {\r\n ref.value = [refValue];\r\n }\r\n }\r\n else if (!existing.includes(refValue)) {\r\n existing.push(refValue);\r\n }\r\n }\r\n }\r\n else if (_isString) {\r\n if (isRemoval && refs[ref] !== refValue) {\r\n return;\r\n }\r\n refs[ref] = $refsValue;\r\n setSetupRef(vm, ref, value);\r\n }\r\n else if (_isRef) {\r\n if (isRemoval && ref.value !== refValue) {\r\n return;\r\n }\r\n ref.value = value;\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn(\"Invalid template ref type: \".concat(typeof ref));\r\n }\r\n }\r\n}\r\nfunction setSetupRef(_a, key, val) {\r\n var _setupState = _a._setupState;\r\n if (_setupState && hasOwn(_setupState, key)) {\r\n if (isRef(_setupState[key])) {\r\n _setupState[key].value = val;\r\n }\r\n else {\r\n _setupState[key] = val;\r\n }\r\n }\r\n}\n\n/**\r\n * Virtual DOM patching algorithm based on Snabbdom by\r\n * Simon Friis Vindum (@paldepind)\r\n * Licensed under the MIT License\r\n * https://github.com/paldepind/snabbdom/blob/master/LICENSE\r\n *\r\n * modified by Evan You (@yyx990803)\r\n *\r\n * Not type-checking this because this file is perf-critical and the cost\r\n * of making flow understand it is not worth it.\r\n */\r\nvar emptyNode = new VNode('', {}, []);\r\nvar hooks = ['create', 'activate', 'update', 'remove', 'destroy'];\r\nfunction sameVnode(a, b) {\r\n return (a.key === b.key &&\r\n a.asyncFactory === b.asyncFactory &&\r\n ((a.tag === b.tag &&\r\n a.isComment === b.isComment &&\r\n isDef(a.data) === isDef(b.data) &&\r\n sameInputType(a, b)) ||\r\n (isTrue(a.isAsyncPlaceholder) && isUndef(b.asyncFactory.error))));\r\n}\r\nfunction sameInputType(a, b) {\r\n if (a.tag !== 'input')\r\n return true;\r\n var i;\r\n var typeA = isDef((i = a.data)) && isDef((i = i.attrs)) && i.type;\r\n var typeB = isDef((i = b.data)) && isDef((i = i.attrs)) && i.type;\r\n return typeA === typeB || (isTextInputType(typeA) && isTextInputType(typeB));\r\n}\r\nfunction createKeyToOldIdx(children, beginIdx, endIdx) {\r\n var i, key;\r\n var map = {};\r\n for (i = beginIdx; i <= endIdx; ++i) {\r\n key = children[i].key;\r\n if (isDef(key))\r\n map[key] = i;\r\n }\r\n return map;\r\n}\r\nfunction createPatchFunction(backend) {\r\n var i, j;\r\n var cbs = {};\r\n var modules = backend.modules, nodeOps = backend.nodeOps;\r\n for (i = 0; i < hooks.length; ++i) {\r\n cbs[hooks[i]] = [];\r\n for (j = 0; j < modules.length; ++j) {\r\n if (isDef(modules[j][hooks[i]])) {\r\n cbs[hooks[i]].push(modules[j][hooks[i]]);\r\n }\r\n }\r\n }\r\n function emptyNodeAt(elm) {\r\n return new VNode(nodeOps.tagName(elm).toLowerCase(), {}, [], undefined, elm);\r\n }\r\n function createRmCb(childElm, listeners) {\r\n function remove() {\r\n if (--remove.listeners === 0) {\r\n removeNode(childElm);\r\n }\r\n }\r\n remove.listeners = listeners;\r\n return remove;\r\n }\r\n function removeNode(el) {\r\n var parent = nodeOps.parentNode(el);\r\n // element may have already been removed due to v-html / v-text\r\n if (isDef(parent)) {\r\n nodeOps.removeChild(parent, el);\r\n }\r\n }\r\n function isUnknownElement(vnode, inVPre) {\r\n return (!inVPre &&\r\n !vnode.ns &&\r\n !(config.ignoredElements.length &&\r\n config.ignoredElements.some(function (ignore) {\r\n return isRegExp(ignore)\r\n ? ignore.test(vnode.tag)\r\n : ignore === vnode.tag;\r\n })) &&\r\n config.isUnknownElement(vnode.tag));\r\n }\r\n var creatingElmInVPre = 0;\r\n function createElm(vnode, insertedVnodeQueue, parentElm, refElm, nested, ownerArray, index) {\r\n if (isDef(vnode.elm) && isDef(ownerArray)) {\r\n // This vnode was used in a previous render!\r\n // now it's used as a new node, overwriting its elm would cause\r\n // potential patch errors down the road when it's used as an insertion\r\n // reference node. Instead, we clone the node on-demand before creating\r\n // associated DOM element for it.\r\n vnode = ownerArray[index] = cloneVNode(vnode);\r\n }\r\n vnode.isRootInsert = !nested; // for transition enter check\r\n if (createComponent(vnode, insertedVnodeQueue, parentElm, refElm)) {\r\n return;\r\n }\r\n var data = vnode.data;\r\n var children = vnode.children;\r\n var tag = vnode.tag;\r\n if (isDef(tag)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (data && data.pre) {\r\n creatingElmInVPre++;\r\n }\r\n if (isUnknownElement(vnode, creatingElmInVPre)) {\r\n warn('Unknown custom element: <' +\r\n tag +\r\n '> - did you ' +\r\n 'register the component correctly? For recursive components, ' +\r\n 'make sure to provide the \"name\" option.', vnode.context);\r\n }\r\n }\r\n vnode.elm = vnode.ns\r\n ? nodeOps.createElementNS(vnode.ns, tag)\r\n : nodeOps.createElement(tag, vnode);\r\n setScope(vnode);\r\n createChildren(vnode, children, insertedVnodeQueue);\r\n if (isDef(data)) {\r\n invokeCreateHooks(vnode, insertedVnodeQueue);\r\n }\r\n insert(parentElm, vnode.elm, refElm);\r\n if (process.env.NODE_ENV !== 'production' && data && data.pre) {\r\n creatingElmInVPre--;\r\n }\r\n }\r\n else if (isTrue(vnode.isComment)) {\r\n vnode.elm = nodeOps.createComment(vnode.text);\r\n insert(parentElm, vnode.elm, refElm);\r\n }\r\n else {\r\n vnode.elm = nodeOps.createTextNode(vnode.text);\r\n insert(parentElm, vnode.elm, refElm);\r\n }\r\n }\r\n function createComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\r\n var i = vnode.data;\r\n if (isDef(i)) {\r\n var isReactivated = isDef(vnode.componentInstance) && i.keepAlive;\r\n if (isDef((i = i.hook)) && isDef((i = i.init))) {\r\n i(vnode, false /* hydrating */);\r\n }\r\n // after calling the init hook, if the vnode is a child component\r\n // it should've created a child instance and mounted it. the child\r\n // component also has set the placeholder vnode's elm.\r\n // in that case we can just return the element and be done.\r\n if (isDef(vnode.componentInstance)) {\r\n initComponent(vnode, insertedVnodeQueue);\r\n insert(parentElm, vnode.elm, refElm);\r\n if (isTrue(isReactivated)) {\r\n reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm);\r\n }\r\n return true;\r\n }\r\n }\r\n }\r\n function initComponent(vnode, insertedVnodeQueue) {\r\n if (isDef(vnode.data.pendingInsert)) {\r\n insertedVnodeQueue.push.apply(insertedVnodeQueue, vnode.data.pendingInsert);\r\n vnode.data.pendingInsert = null;\r\n }\r\n vnode.elm = vnode.componentInstance.$el;\r\n if (isPatchable(vnode)) {\r\n invokeCreateHooks(vnode, insertedVnodeQueue);\r\n setScope(vnode);\r\n }\r\n else {\r\n // empty component root.\r\n // skip all element-related modules except for ref (#3455)\r\n registerRef(vnode);\r\n // make sure to invoke the insert hook\r\n insertedVnodeQueue.push(vnode);\r\n }\r\n }\r\n function reactivateComponent(vnode, insertedVnodeQueue, parentElm, refElm) {\r\n var i;\r\n // hack for #4339: a reactivated component with inner transition\r\n // does not trigger because the inner node's created hooks are not called\r\n // again. It's not ideal to involve module-specific logic in here but\r\n // there doesn't seem to be a better way to do it.\r\n var innerNode = vnode;\r\n while (innerNode.componentInstance) {\r\n innerNode = innerNode.componentInstance._vnode;\r\n if (isDef((i = innerNode.data)) && isDef((i = i.transition))) {\r\n for (i = 0; i < cbs.activate.length; ++i) {\r\n cbs.activate[i](emptyNode, innerNode);\r\n }\r\n insertedVnodeQueue.push(innerNode);\r\n break;\r\n }\r\n }\r\n // unlike a newly created component,\r\n // a reactivated keep-alive component doesn't insert itself\r\n insert(parentElm, vnode.elm, refElm);\r\n }\r\n function insert(parent, elm, ref) {\r\n if (isDef(parent)) {\r\n if (isDef(ref)) {\r\n if (nodeOps.parentNode(ref) === parent) {\r\n nodeOps.insertBefore(parent, elm, ref);\r\n }\r\n }\r\n else {\r\n nodeOps.appendChild(parent, elm);\r\n }\r\n }\r\n }\r\n function createChildren(vnode, children, insertedVnodeQueue) {\r\n if (isArray(children)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n checkDuplicateKeys(children);\r\n }\r\n for (var i_1 = 0; i_1 < children.length; ++i_1) {\r\n createElm(children[i_1], insertedVnodeQueue, vnode.elm, null, true, children, i_1);\r\n }\r\n }\r\n else if (isPrimitive(vnode.text)) {\r\n nodeOps.appendChild(vnode.elm, nodeOps.createTextNode(String(vnode.text)));\r\n }\r\n }\r\n function isPatchable(vnode) {\r\n while (vnode.componentInstance) {\r\n vnode = vnode.componentInstance._vnode;\r\n }\r\n return isDef(vnode.tag);\r\n }\r\n function invokeCreateHooks(vnode, insertedVnodeQueue) {\r\n for (var i_2 = 0; i_2 < cbs.create.length; ++i_2) {\r\n cbs.create[i_2](emptyNode, vnode);\r\n }\r\n i = vnode.data.hook; // Reuse variable\r\n if (isDef(i)) {\r\n if (isDef(i.create))\r\n i.create(emptyNode, vnode);\r\n if (isDef(i.insert))\r\n insertedVnodeQueue.push(vnode);\r\n }\r\n }\r\n // set scope id attribute for scoped CSS.\r\n // this is implemented as a special case to avoid the overhead\r\n // of going through the normal attribute patching process.\r\n function setScope(vnode) {\r\n var i;\r\n if (isDef((i = vnode.fnScopeId))) {\r\n nodeOps.setStyleScope(vnode.elm, i);\r\n }\r\n else {\r\n var ancestor = vnode;\r\n while (ancestor) {\r\n if (isDef((i = ancestor.context)) && isDef((i = i.$options._scopeId))) {\r\n nodeOps.setStyleScope(vnode.elm, i);\r\n }\r\n ancestor = ancestor.parent;\r\n }\r\n }\r\n // for slot content they should also get the scopeId from the host instance.\r\n if (isDef((i = activeInstance)) &&\r\n i !== vnode.context &&\r\n i !== vnode.fnContext &&\r\n isDef((i = i.$options._scopeId))) {\r\n nodeOps.setStyleScope(vnode.elm, i);\r\n }\r\n }\r\n function addVnodes(parentElm, refElm, vnodes, startIdx, endIdx, insertedVnodeQueue) {\r\n for (; startIdx <= endIdx; ++startIdx) {\r\n createElm(vnodes[startIdx], insertedVnodeQueue, parentElm, refElm, false, vnodes, startIdx);\r\n }\r\n }\r\n function invokeDestroyHook(vnode) {\r\n var i, j;\r\n var data = vnode.data;\r\n if (isDef(data)) {\r\n if (isDef((i = data.hook)) && isDef((i = i.destroy)))\r\n i(vnode);\r\n for (i = 0; i < cbs.destroy.length; ++i)\r\n cbs.destroy[i](vnode);\r\n }\r\n if (isDef((i = vnode.children))) {\r\n for (j = 0; j < vnode.children.length; ++j) {\r\n invokeDestroyHook(vnode.children[j]);\r\n }\r\n }\r\n }\r\n function removeVnodes(vnodes, startIdx, endIdx) {\r\n for (; startIdx <= endIdx; ++startIdx) {\r\n var ch = vnodes[startIdx];\r\n if (isDef(ch)) {\r\n if (isDef(ch.tag)) {\r\n removeAndInvokeRemoveHook(ch);\r\n invokeDestroyHook(ch);\r\n }\r\n else {\r\n // Text node\r\n removeNode(ch.elm);\r\n }\r\n }\r\n }\r\n }\r\n function removeAndInvokeRemoveHook(vnode, rm) {\r\n if (isDef(rm) || isDef(vnode.data)) {\r\n var i_3;\r\n var listeners = cbs.remove.length + 1;\r\n if (isDef(rm)) {\r\n // we have a recursively passed down rm callback\r\n // increase the listeners count\r\n rm.listeners += listeners;\r\n }\r\n else {\r\n // directly removing\r\n rm = createRmCb(vnode.elm, listeners);\r\n }\r\n // recursively invoke hooks on child component root node\r\n if (isDef((i_3 = vnode.componentInstance)) &&\r\n isDef((i_3 = i_3._vnode)) &&\r\n isDef(i_3.data)) {\r\n removeAndInvokeRemoveHook(i_3, rm);\r\n }\r\n for (i_3 = 0; i_3 < cbs.remove.length; ++i_3) {\r\n cbs.remove[i_3](vnode, rm);\r\n }\r\n if (isDef((i_3 = vnode.data.hook)) && isDef((i_3 = i_3.remove))) {\r\n i_3(vnode, rm);\r\n }\r\n else {\r\n rm();\r\n }\r\n }\r\n else {\r\n removeNode(vnode.elm);\r\n }\r\n }\r\n function updateChildren(parentElm, oldCh, newCh, insertedVnodeQueue, removeOnly) {\r\n var oldStartIdx = 0;\r\n var newStartIdx = 0;\r\n var oldEndIdx = oldCh.length - 1;\r\n var oldStartVnode = oldCh[0];\r\n var oldEndVnode = oldCh[oldEndIdx];\r\n var newEndIdx = newCh.length - 1;\r\n var newStartVnode = newCh[0];\r\n var newEndVnode = newCh[newEndIdx];\r\n var oldKeyToIdx, idxInOld, vnodeToMove, refElm;\r\n // removeOnly is a special flag used only by <transition-group>\r\n // to ensure removed elements stay in correct relative positions\r\n // during leaving transitions\r\n var canMove = !removeOnly;\r\n if (process.env.NODE_ENV !== 'production') {\r\n checkDuplicateKeys(newCh);\r\n }\r\n while (oldStartIdx <= oldEndIdx && newStartIdx <= newEndIdx) {\r\n if (isUndef(oldStartVnode)) {\r\n oldStartVnode = oldCh[++oldStartIdx]; // Vnode has been moved left\r\n }\r\n else if (isUndef(oldEndVnode)) {\r\n oldEndVnode = oldCh[--oldEndIdx];\r\n }\r\n else if (sameVnode(oldStartVnode, newStartVnode)) {\r\n patchVnode(oldStartVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n oldStartVnode = oldCh[++oldStartIdx];\r\n newStartVnode = newCh[++newStartIdx];\r\n }\r\n else if (sameVnode(oldEndVnode, newEndVnode)) {\r\n patchVnode(oldEndVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\r\n oldEndVnode = oldCh[--oldEndIdx];\r\n newEndVnode = newCh[--newEndIdx];\r\n }\r\n else if (sameVnode(oldStartVnode, newEndVnode)) {\r\n // Vnode moved right\r\n patchVnode(oldStartVnode, newEndVnode, insertedVnodeQueue, newCh, newEndIdx);\r\n canMove &&\r\n nodeOps.insertBefore(parentElm, oldStartVnode.elm, nodeOps.nextSibling(oldEndVnode.elm));\r\n oldStartVnode = oldCh[++oldStartIdx];\r\n newEndVnode = newCh[--newEndIdx];\r\n }\r\n else if (sameVnode(oldEndVnode, newStartVnode)) {\r\n // Vnode moved left\r\n patchVnode(oldEndVnode, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n canMove &&\r\n nodeOps.insertBefore(parentElm, oldEndVnode.elm, oldStartVnode.elm);\r\n oldEndVnode = oldCh[--oldEndIdx];\r\n newStartVnode = newCh[++newStartIdx];\r\n }\r\n else {\r\n if (isUndef(oldKeyToIdx))\r\n oldKeyToIdx = createKeyToOldIdx(oldCh, oldStartIdx, oldEndIdx);\r\n idxInOld = isDef(newStartVnode.key)\r\n ? oldKeyToIdx[newStartVnode.key]\r\n : findIdxInOld(newStartVnode, oldCh, oldStartIdx, oldEndIdx);\r\n if (isUndef(idxInOld)) {\r\n // New element\r\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\r\n }\r\n else {\r\n vnodeToMove = oldCh[idxInOld];\r\n if (sameVnode(vnodeToMove, newStartVnode)) {\r\n patchVnode(vnodeToMove, newStartVnode, insertedVnodeQueue, newCh, newStartIdx);\r\n oldCh[idxInOld] = undefined;\r\n canMove &&\r\n nodeOps.insertBefore(parentElm, vnodeToMove.elm, oldStartVnode.elm);\r\n }\r\n else {\r\n // same key but different element. treat as new element\r\n createElm(newStartVnode, insertedVnodeQueue, parentElm, oldStartVnode.elm, false, newCh, newStartIdx);\r\n }\r\n }\r\n newStartVnode = newCh[++newStartIdx];\r\n }\r\n }\r\n if (oldStartIdx > oldEndIdx) {\r\n refElm = isUndef(newCh[newEndIdx + 1]) ? null : newCh[newEndIdx + 1].elm;\r\n addVnodes(parentElm, refElm, newCh, newStartIdx, newEndIdx, insertedVnodeQueue);\r\n }\r\n else if (newStartIdx > newEndIdx) {\r\n removeVnodes(oldCh, oldStartIdx, oldEndIdx);\r\n }\r\n }\r\n function checkDuplicateKeys(children) {\r\n var seenKeys = {};\r\n for (var i_4 = 0; i_4 < children.length; i_4++) {\r\n var vnode = children[i_4];\r\n var key = vnode.key;\r\n if (isDef(key)) {\r\n if (seenKeys[key]) {\r\n warn(\"Duplicate keys detected: '\".concat(key, \"'. This may cause an update error.\"), vnode.context);\r\n }\r\n else {\r\n seenKeys[key] = true;\r\n }\r\n }\r\n }\r\n }\r\n function findIdxInOld(node, oldCh, start, end) {\r\n for (var i_5 = start; i_5 < end; i_5++) {\r\n var c = oldCh[i_5];\r\n if (isDef(c) && sameVnode(node, c))\r\n return i_5;\r\n }\r\n }\r\n function patchVnode(oldVnode, vnode, insertedVnodeQueue, ownerArray, index, removeOnly) {\r\n if (oldVnode === vnode) {\r\n return;\r\n }\r\n if (isDef(vnode.elm) && isDef(ownerArray)) {\r\n // clone reused vnode\r\n vnode = ownerArray[index] = cloneVNode(vnode);\r\n }\r\n var elm = (vnode.elm = oldVnode.elm);\r\n if (isTrue(oldVnode.isAsyncPlaceholder)) {\r\n if (isDef(vnode.asyncFactory.resolved)) {\r\n hydrate(oldVnode.elm, vnode, insertedVnodeQueue);\r\n }\r\n else {\r\n vnode.isAsyncPlaceholder = true;\r\n }\r\n return;\r\n }\r\n // reuse element for static trees.\r\n // note we only do this if the vnode is cloned -\r\n // if the new node is not cloned it means the render functions have been\r\n // reset by the hot-reload-api and we need to do a proper re-render.\r\n if (isTrue(vnode.isStatic) &&\r\n isTrue(oldVnode.isStatic) &&\r\n vnode.key === oldVnode.key &&\r\n (isTrue(vnode.isCloned) || isTrue(vnode.isOnce))) {\r\n vnode.componentInstance = oldVnode.componentInstance;\r\n return;\r\n }\r\n var i;\r\n var data = vnode.data;\r\n if (isDef(data) && isDef((i = data.hook)) && isDef((i = i.prepatch))) {\r\n i(oldVnode, vnode);\r\n }\r\n var oldCh = oldVnode.children;\r\n var ch = vnode.children;\r\n if (isDef(data) && isPatchable(vnode)) {\r\n for (i = 0; i < cbs.update.length; ++i)\r\n cbs.update[i](oldVnode, vnode);\r\n if (isDef((i = data.hook)) && isDef((i = i.update)))\r\n i(oldVnode, vnode);\r\n }\r\n if (isUndef(vnode.text)) {\r\n if (isDef(oldCh) && isDef(ch)) {\r\n if (oldCh !== ch)\r\n updateChildren(elm, oldCh, ch, insertedVnodeQueue, removeOnly);\r\n }\r\n else if (isDef(ch)) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n checkDuplicateKeys(ch);\r\n }\r\n if (isDef(oldVnode.text))\r\n nodeOps.setTextContent(elm, '');\r\n addVnodes(elm, null, ch, 0, ch.length - 1, insertedVnodeQueue);\r\n }\r\n else if (isDef(oldCh)) {\r\n removeVnodes(oldCh, 0, oldCh.length - 1);\r\n }\r\n else if (isDef(oldVnode.text)) {\r\n nodeOps.setTextContent(elm, '');\r\n }\r\n }\r\n else if (oldVnode.text !== vnode.text) {\r\n nodeOps.setTextContent(elm, vnode.text);\r\n }\r\n if (isDef(data)) {\r\n if (isDef((i = data.hook)) && isDef((i = i.postpatch)))\r\n i(oldVnode, vnode);\r\n }\r\n }\r\n function invokeInsertHook(vnode, queue, initial) {\r\n // delay insert hooks for component root nodes, invoke them after the\r\n // element is really inserted\r\n if (isTrue(initial) && isDef(vnode.parent)) {\r\n vnode.parent.data.pendingInsert = queue;\r\n }\r\n else {\r\n for (var i_6 = 0; i_6 < queue.length; ++i_6) {\r\n queue[i_6].data.hook.insert(queue[i_6]);\r\n }\r\n }\r\n }\r\n var hydrationBailed = false;\r\n // list of modules that can skip create hook during hydration because they\r\n // are already rendered on the client or has no need for initialization\r\n // Note: style is excluded because it relies on initial clone for future\r\n // deep updates (#7063).\r\n var isRenderedModule = makeMap('attrs,class,staticClass,staticStyle,key');\r\n // Note: this is a browser-only function so we can assume elms are DOM nodes.\r\n function hydrate(elm, vnode, insertedVnodeQueue, inVPre) {\r\n var i;\r\n var tag = vnode.tag, data = vnode.data, children = vnode.children;\r\n inVPre = inVPre || (data && data.pre);\r\n vnode.elm = elm;\r\n if (isTrue(vnode.isComment) && isDef(vnode.asyncFactory)) {\r\n vnode.isAsyncPlaceholder = true;\r\n return true;\r\n }\r\n // assert node match\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!assertNodeMatch(elm, vnode, inVPre)) {\r\n return false;\r\n }\r\n }\r\n if (isDef(data)) {\r\n if (isDef((i = data.hook)) && isDef((i = i.init)))\r\n i(vnode, true /* hydrating */);\r\n if (isDef((i = vnode.componentInstance))) {\r\n // child component. it should have hydrated its own tree.\r\n initComponent(vnode, insertedVnodeQueue);\r\n return true;\r\n }\r\n }\r\n if (isDef(tag)) {\r\n if (isDef(children)) {\r\n // empty element, allow client to pick up and populate children\r\n if (!elm.hasChildNodes()) {\r\n createChildren(vnode, children, insertedVnodeQueue);\r\n }\r\n else {\r\n // v-html and domProps: innerHTML\r\n if (isDef((i = data)) &&\r\n isDef((i = i.domProps)) &&\r\n isDef((i = i.innerHTML))) {\r\n if (i !== elm.innerHTML) {\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' &&\r\n typeof console !== 'undefined' &&\r\n !hydrationBailed) {\r\n hydrationBailed = true;\r\n console.warn('Parent: ', elm);\r\n console.warn('server innerHTML: ', i);\r\n console.warn('client innerHTML: ', elm.innerHTML);\r\n }\r\n return false;\r\n }\r\n }\r\n else {\r\n // iterate and compare children lists\r\n var childrenMatch = true;\r\n var childNode = elm.firstChild;\r\n for (var i_7 = 0; i_7 < children.length; i_7++) {\r\n if (!childNode ||\r\n !hydrate(childNode, children[i_7], insertedVnodeQueue, inVPre)) {\r\n childrenMatch = false;\r\n break;\r\n }\r\n childNode = childNode.nextSibling;\r\n }\r\n // if childNode is not null, it means the actual childNodes list is\r\n // longer than the virtual children list.\r\n if (!childrenMatch || childNode) {\r\n /* istanbul ignore if */\r\n if (process.env.NODE_ENV !== 'production' &&\r\n typeof console !== 'undefined' &&\r\n !hydrationBailed) {\r\n hydrationBailed = true;\r\n console.warn('Parent: ', elm);\r\n console.warn('Mismatching childNodes vs. VNodes: ', elm.childNodes, children);\r\n }\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n if (isDef(data)) {\r\n var fullInvoke = false;\r\n for (var key in data) {\r\n if (!isRenderedModule(key)) {\r\n fullInvoke = true;\r\n invokeCreateHooks(vnode, insertedVnodeQueue);\r\n break;\r\n }\r\n }\r\n if (!fullInvoke && data['class']) {\r\n // ensure collecting deps for deep class bindings for future updates\r\n traverse(data['class']);\r\n }\r\n }\r\n }\r\n else if (elm.data !== vnode.text) {\r\n elm.data = vnode.text;\r\n }\r\n return true;\r\n }\r\n function assertNodeMatch(node, vnode, inVPre) {\r\n if (isDef(vnode.tag)) {\r\n return (vnode.tag.indexOf('vue-component') === 0 ||\r\n (!isUnknownElement(vnode, inVPre) &&\r\n vnode.tag.toLowerCase() ===\r\n (node.tagName && node.tagName.toLowerCase())));\r\n }\r\n else {\r\n return node.nodeType === (vnode.isComment ? 8 : 3);\r\n }\r\n }\r\n return function patch(oldVnode, vnode, hydrating, removeOnly) {\r\n if (isUndef(vnode)) {\r\n if (isDef(oldVnode))\r\n invokeDestroyHook(oldVnode);\r\n return;\r\n }\r\n var isInitialPatch = false;\r\n var insertedVnodeQueue = [];\r\n if (isUndef(oldVnode)) {\r\n // empty mount (likely as component), create new root element\r\n isInitialPatch = true;\r\n createElm(vnode, insertedVnodeQueue);\r\n }\r\n else {\r\n var isRealElement = isDef(oldVnode.nodeType);\r\n if (!isRealElement && sameVnode(oldVnode, vnode)) {\r\n // patch existing root node\r\n patchVnode(oldVnode, vnode, insertedVnodeQueue, null, null, removeOnly);\r\n }\r\n else {\r\n if (isRealElement) {\r\n // mounting to a real element\r\n // check if this is server-rendered content and if we can perform\r\n // a successful hydration.\r\n if (oldVnode.nodeType === 1 && oldVnode.hasAttribute(SSR_ATTR)) {\r\n oldVnode.removeAttribute(SSR_ATTR);\r\n hydrating = true;\r\n }\r\n if (isTrue(hydrating)) {\r\n if (hydrate(oldVnode, vnode, insertedVnodeQueue)) {\r\n invokeInsertHook(vnode, insertedVnodeQueue, true);\r\n return oldVnode;\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n warn('The client-side rendered virtual DOM tree is not matching ' +\r\n 'server-rendered content. This is likely caused by incorrect ' +\r\n 'HTML markup, for example nesting block-level elements inside ' +\r\n '<p>, or missing <tbody>. Bailing hydration and performing ' +\r\n 'full client-side render.');\r\n }\r\n }\r\n // either not server-rendered, or hydration failed.\r\n // create an empty node and replace it\r\n oldVnode = emptyNodeAt(oldVnode);\r\n }\r\n // replacing existing element\r\n var oldElm = oldVnode.elm;\r\n var parentElm = nodeOps.parentNode(oldElm);\r\n // create new node\r\n createElm(vnode, insertedVnodeQueue, \r\n // extremely rare edge case: do not insert if old element is in a\r\n // leaving transition. Only happens when combining transition +\r\n // keep-alive + HOCs. (#4590)\r\n oldElm._leaveCb ? null : parentElm, nodeOps.nextSibling(oldElm));\r\n // update parent placeholder node element, recursively\r\n if (isDef(vnode.parent)) {\r\n var ancestor = vnode.parent;\r\n var patchable = isPatchable(vnode);\r\n while (ancestor) {\r\n for (var i_8 = 0; i_8 < cbs.destroy.length; ++i_8) {\r\n cbs.destroy[i_8](ancestor);\r\n }\r\n ancestor.elm = vnode.elm;\r\n if (patchable) {\r\n for (var i_9 = 0; i_9 < cbs.create.length; ++i_9) {\r\n cbs.create[i_9](emptyNode, ancestor);\r\n }\r\n // #6513\r\n // invoke insert hooks that may have been merged by create hooks.\r\n // e.g. for directives that uses the \"inserted\" hook.\r\n var insert_1 = ancestor.data.hook.insert;\r\n if (insert_1.merged) {\r\n // start at index 1 to avoid re-invoking component mounted hook\r\n for (var i_10 = 1; i_10 < insert_1.fns.length; i_10++) {\r\n insert_1.fns[i_10]();\r\n }\r\n }\r\n }\r\n else {\r\n registerRef(ancestor);\r\n }\r\n ancestor = ancestor.parent;\r\n }\r\n }\r\n // destroy old node\r\n if (isDef(parentElm)) {\r\n removeVnodes([oldVnode], 0, 0);\r\n }\r\n else if (isDef(oldVnode.tag)) {\r\n invokeDestroyHook(oldVnode);\r\n }\r\n }\r\n }\r\n invokeInsertHook(vnode, insertedVnodeQueue, isInitialPatch);\r\n return vnode.elm;\r\n };\r\n}\n\nvar directives = {\r\n create: updateDirectives,\r\n update: updateDirectives,\r\n destroy: function unbindDirectives(vnode) {\r\n // @ts-expect-error emptyNode is not VNodeWithData\r\n updateDirectives(vnode, emptyNode);\r\n }\r\n};\r\nfunction updateDirectives(oldVnode, vnode) {\r\n if (oldVnode.data.directives || vnode.data.directives) {\r\n _update(oldVnode, vnode);\r\n }\r\n}\r\nfunction _update(oldVnode, vnode) {\r\n var isCreate = oldVnode === emptyNode;\r\n var isDestroy = vnode === emptyNode;\r\n var oldDirs = normalizeDirectives(oldVnode.data.directives, oldVnode.context);\r\n var newDirs = normalizeDirectives(vnode.data.directives, vnode.context);\r\n var dirsWithInsert = [];\r\n var dirsWithPostpatch = [];\r\n var key, oldDir, dir;\r\n for (key in newDirs) {\r\n oldDir = oldDirs[key];\r\n dir = newDirs[key];\r\n if (!oldDir) {\r\n // new directive, bind\r\n callHook(dir, 'bind', vnode, oldVnode);\r\n if (dir.def && dir.def.inserted) {\r\n dirsWithInsert.push(dir);\r\n }\r\n }\r\n else {\r\n // existing directive, update\r\n dir.oldValue = oldDir.value;\r\n dir.oldArg = oldDir.arg;\r\n callHook(dir, 'update', vnode, oldVnode);\r\n if (dir.def && dir.def.componentUpdated) {\r\n dirsWithPostpatch.push(dir);\r\n }\r\n }\r\n }\r\n if (dirsWithInsert.length) {\r\n var callInsert = function () {\r\n for (var i = 0; i < dirsWithInsert.length; i++) {\r\n callHook(dirsWithInsert[i], 'inserted', vnode, oldVnode);\r\n }\r\n };\r\n if (isCreate) {\r\n mergeVNodeHook(vnode, 'insert', callInsert);\r\n }\r\n else {\r\n callInsert();\r\n }\r\n }\r\n if (dirsWithPostpatch.length) {\r\n mergeVNodeHook(vnode, 'postpatch', function () {\r\n for (var i = 0; i < dirsWithPostpatch.length; i++) {\r\n callHook(dirsWithPostpatch[i], 'componentUpdated', vnode, oldVnode);\r\n }\r\n });\r\n }\r\n if (!isCreate) {\r\n for (key in oldDirs) {\r\n if (!newDirs[key]) {\r\n // no longer present, unbind\r\n callHook(oldDirs[key], 'unbind', oldVnode, oldVnode, isDestroy);\r\n }\r\n }\r\n }\r\n}\r\nvar emptyModifiers = Object.create(null);\r\nfunction normalizeDirectives(dirs, vm) {\r\n var res = Object.create(null);\r\n if (!dirs) {\r\n // $flow-disable-line\r\n return res;\r\n }\r\n var i, dir;\r\n for (i = 0; i < dirs.length; i++) {\r\n dir = dirs[i];\r\n if (!dir.modifiers) {\r\n // $flow-disable-line\r\n dir.modifiers = emptyModifiers;\r\n }\r\n res[getRawDirName(dir)] = dir;\r\n if (vm._setupState && vm._setupState.__sfc) {\r\n dir.def = resolveAsset(vm, '_setupState', 'v-' + dir.name);\r\n }\r\n dir.def = dir.def || resolveAsset(vm.$options, 'directives', dir.name, true);\r\n }\r\n // $flow-disable-line\r\n return res;\r\n}\r\nfunction getRawDirName(dir) {\r\n return (dir.rawName || \"\".concat(dir.name, \".\").concat(Object.keys(dir.modifiers || {}).join('.')));\r\n}\r\nfunction callHook(dir, hook, vnode, oldVnode, isDestroy) {\r\n var fn = dir.def && dir.def[hook];\r\n if (fn) {\r\n try {\r\n fn(vnode.elm, dir, vnode, oldVnode, isDestroy);\r\n }\r\n catch (e) {\r\n handleError(e, vnode.context, \"directive \".concat(dir.name, \" \").concat(hook, \" hook\"));\r\n }\r\n }\r\n}\n\nvar baseModules = [ref, directives];\n\nfunction updateAttrs(oldVnode, vnode) {\r\n var opts = vnode.componentOptions;\r\n if (isDef(opts) && opts.Ctor.options.inheritAttrs === false) {\r\n return;\r\n }\r\n if (isUndef(oldVnode.data.attrs) && isUndef(vnode.data.attrs)) {\r\n return;\r\n }\r\n var key, cur, old;\r\n var elm = vnode.elm;\r\n var oldAttrs = oldVnode.data.attrs || {};\r\n var attrs = vnode.data.attrs || {};\r\n // clone observed objects, as the user probably wants to mutate it\r\n if (isDef(attrs.__ob__) || isTrue(attrs._v_attr_proxy)) {\r\n attrs = vnode.data.attrs = extend({}, attrs);\r\n }\r\n for (key in attrs) {\r\n cur = attrs[key];\r\n old = oldAttrs[key];\r\n if (old !== cur) {\r\n setAttr(elm, key, cur, vnode.data.pre);\r\n }\r\n }\r\n // #4391: in IE9, setting type can reset value for input[type=radio]\r\n // #6666: IE/Edge forces progress value down to 1 before setting a max\r\n /* istanbul ignore if */\r\n if ((isIE || isEdge) && attrs.value !== oldAttrs.value) {\r\n setAttr(elm, 'value', attrs.value);\r\n }\r\n for (key in oldAttrs) {\r\n if (isUndef(attrs[key])) {\r\n if (isXlink(key)) {\r\n elm.removeAttributeNS(xlinkNS, getXlinkProp(key));\r\n }\r\n else if (!isEnumeratedAttr(key)) {\r\n elm.removeAttribute(key);\r\n }\r\n }\r\n }\r\n}\r\nfunction setAttr(el, key, value, isInPre) {\r\n if (isInPre || el.tagName.indexOf('-') > -1) {\r\n baseSetAttr(el, key, value);\r\n }\r\n else if (isBooleanAttr(key)) {\r\n // set attribute for blank value\r\n // e.g. <option disabled>Select one</option>\r\n if (isFalsyAttrValue(value)) {\r\n el.removeAttribute(key);\r\n }\r\n else {\r\n // technically allowfullscreen is a boolean attribute for <iframe>,\r\n // but Flash expects a value of \"true\" when used on <embed> tag\r\n value = key === 'allowfullscreen' && el.tagName === 'EMBED' ? 'true' : key;\r\n el.setAttribute(key, value);\r\n }\r\n }\r\n else if (isEnumeratedAttr(key)) {\r\n el.setAttribute(key, convertEnumeratedValue(key, value));\r\n }\r\n else if (isXlink(key)) {\r\n if (isFalsyAttrValue(value)) {\r\n el.removeAttributeNS(xlinkNS, getXlinkProp(key));\r\n }\r\n else {\r\n el.setAttributeNS(xlinkNS, key, value);\r\n }\r\n }\r\n else {\r\n baseSetAttr(el, key, value);\r\n }\r\n}\r\nfunction baseSetAttr(el, key, value) {\r\n if (isFalsyAttrValue(value)) {\r\n el.removeAttribute(key);\r\n }\r\n else {\r\n // #7138: IE10 & 11 fires input event when setting placeholder on\r\n // <textarea>... block the first input event and remove the blocker\r\n // immediately.\r\n /* istanbul ignore if */\r\n if (isIE &&\r\n !isIE9 &&\r\n el.tagName === 'TEXTAREA' &&\r\n key === 'placeholder' &&\r\n value !== '' &&\r\n !el.__ieph) {\r\n var blocker_1 = function (e) {\r\n e.stopImmediatePropagation();\r\n el.removeEventListener('input', blocker_1);\r\n };\r\n el.addEventListener('input', blocker_1);\r\n // $flow-disable-line\r\n el.__ieph = true; /* IE placeholder patched */\r\n }\r\n el.setAttribute(key, value);\r\n }\r\n}\r\nvar attrs = {\r\n create: updateAttrs,\r\n update: updateAttrs\r\n};\n\nfunction updateClass(oldVnode, vnode) {\r\n var el = vnode.elm;\r\n var data = vnode.data;\r\n var oldData = oldVnode.data;\r\n if (isUndef(data.staticClass) &&\r\n isUndef(data.class) &&\r\n (isUndef(oldData) ||\r\n (isUndef(oldData.staticClass) && isUndef(oldData.class)))) {\r\n return;\r\n }\r\n var cls = genClassForVnode(vnode);\r\n // handle transition classes\r\n var transitionClass = el._transitionClasses;\r\n if (isDef(transitionClass)) {\r\n cls = concat(cls, stringifyClass(transitionClass));\r\n }\r\n // set the class\r\n if (cls !== el._prevClass) {\r\n el.setAttribute('class', cls);\r\n el._prevClass = cls;\r\n }\r\n}\r\nvar klass = {\r\n create: updateClass,\r\n update: updateClass\r\n};\n\n// in some cases, the event used has to be determined at runtime\r\n// so we used some reserved tokens during compile.\r\nvar RANGE_TOKEN = '__r';\r\nvar CHECKBOX_RADIO_TOKEN = '__c';\n\n// normalize v-model event tokens that can only be determined at runtime.\r\n// it's important to place the event as the first in the array because\r\n// the whole point is ensuring the v-model callback gets called before\r\n// user-attached handlers.\r\nfunction normalizeEvents(on) {\r\n /* istanbul ignore if */\r\n if (isDef(on[RANGE_TOKEN])) {\r\n // IE input[type=range] only supports `change` event\r\n var event_1 = isIE ? 'change' : 'input';\r\n on[event_1] = [].concat(on[RANGE_TOKEN], on[event_1] || []);\r\n delete on[RANGE_TOKEN];\r\n }\r\n // This was originally intended to fix #4521 but no longer necessary\r\n // after 2.5. Keeping it for backwards compat with generated code from < 2.4\r\n /* istanbul ignore if */\r\n if (isDef(on[CHECKBOX_RADIO_TOKEN])) {\r\n on.change = [].concat(on[CHECKBOX_RADIO_TOKEN], on.change || []);\r\n delete on[CHECKBOX_RADIO_TOKEN];\r\n }\r\n}\r\nvar target;\r\nfunction createOnceHandler(event, handler, capture) {\r\n var _target = target; // save current target element in closure\r\n return function onceHandler() {\r\n var res = handler.apply(null, arguments);\r\n if (res !== null) {\r\n remove(event, onceHandler, capture, _target);\r\n }\r\n };\r\n}\r\n// #9446: Firefox <= 53 (in particular, ESR 52) has incorrect Event.timeStamp\r\n// implementation and does not fire microtasks in between event propagation, so\r\n// safe to exclude.\r\nvar useMicrotaskFix = isUsingMicroTask && !(isFF && Number(isFF[1]) <= 53);\r\nfunction add(name, handler, capture, passive) {\r\n // async edge case #6566: inner click event triggers patch, event handler\r\n // attached to outer element during patch, and triggered again. This\r\n // happens because browsers fire microtask ticks between event propagation.\r\n // the solution is simple: we save the timestamp when a handler is attached,\r\n // and the handler would only fire if the event passed to it was fired\r\n // AFTER it was attached.\r\n if (useMicrotaskFix) {\r\n var attachedTimestamp_1 = currentFlushTimestamp;\r\n var original_1 = handler;\r\n //@ts-expect-error\r\n handler = original_1._wrapper = function (e) {\r\n if (\r\n // no bubbling, should always fire.\r\n // this is just a safety net in case event.timeStamp is unreliable in\r\n // certain weird environments...\r\n e.target === e.currentTarget ||\r\n // event is fired after handler attachment\r\n e.timeStamp >= attachedTimestamp_1 ||\r\n // bail for environments that have buggy event.timeStamp implementations\r\n // #9462 iOS 9 bug: event.timeStamp is 0 after history.pushState\r\n // #9681 QtWebEngine event.timeStamp is negative value\r\n e.timeStamp <= 0 ||\r\n // #9448 bail if event is fired in another document in a multi-page\r\n // electron/nw.js app, since event.timeStamp will be using a different\r\n // starting reference\r\n e.target.ownerDocument !== document) {\r\n return original_1.apply(this, arguments);\r\n }\r\n };\r\n }\r\n target.addEventListener(name, handler, supportsPassive ? { capture: capture, passive: passive } : capture);\r\n}\r\nfunction remove(name, handler, capture, _target) {\r\n (_target || target).removeEventListener(name, \r\n //@ts-expect-error\r\n handler._wrapper || handler, capture);\r\n}\r\nfunction updateDOMListeners(oldVnode, vnode) {\r\n if (isUndef(oldVnode.data.on) && isUndef(vnode.data.on)) {\r\n return;\r\n }\r\n var on = vnode.data.on || {};\r\n var oldOn = oldVnode.data.on || {};\r\n // vnode is empty when removing all listeners,\r\n // and use old vnode dom element\r\n target = vnode.elm || oldVnode.elm;\r\n normalizeEvents(on);\r\n updateListeners(on, oldOn, add, remove, createOnceHandler, vnode.context);\r\n target = undefined;\r\n}\r\nvar events = {\r\n create: updateDOMListeners,\r\n update: updateDOMListeners,\r\n // @ts-expect-error emptyNode has actually data\r\n destroy: function (vnode) { return updateDOMListeners(vnode, emptyNode); }\r\n};\n\nvar svgContainer;\r\nfunction updateDOMProps(oldVnode, vnode) {\r\n if (isUndef(oldVnode.data.domProps) && isUndef(vnode.data.domProps)) {\r\n return;\r\n }\r\n var key, cur;\r\n var elm = vnode.elm;\r\n var oldProps = oldVnode.data.domProps || {};\r\n var props = vnode.data.domProps || {};\r\n // clone observed objects, as the user probably wants to mutate it\r\n if (isDef(props.__ob__) || isTrue(props._v_attr_proxy)) {\r\n props = vnode.data.domProps = extend({}, props);\r\n }\r\n for (key in oldProps) {\r\n if (!(key in props)) {\r\n elm[key] = '';\r\n }\r\n }\r\n for (key in props) {\r\n cur = props[key];\r\n // ignore children if the node has textContent or innerHTML,\r\n // as these will throw away existing DOM nodes and cause removal errors\r\n // on subsequent patches (#3360)\r\n if (key === 'textContent' || key === 'innerHTML') {\r\n if (vnode.children)\r\n vnode.children.length = 0;\r\n if (cur === oldProps[key])\r\n continue;\r\n // #6601 work around Chrome version <= 55 bug where single textNode\r\n // replaced by innerHTML/textContent retains its parentNode property\r\n if (elm.childNodes.length === 1) {\r\n elm.removeChild(elm.childNodes[0]);\r\n }\r\n }\r\n if (key === 'value' && elm.tagName !== 'PROGRESS') {\r\n // store value as _value as well since\r\n // non-string values will be stringified\r\n elm._value = cur;\r\n // avoid resetting cursor position when value is the same\r\n var strCur = isUndef(cur) ? '' : String(cur);\r\n if (shouldUpdateValue(elm, strCur)) {\r\n elm.value = strCur;\r\n }\r\n }\r\n else if (key === 'innerHTML' &&\r\n isSVG(elm.tagName) &&\r\n isUndef(elm.innerHTML)) {\r\n // IE doesn't support innerHTML for SVG elements\r\n svgContainer = svgContainer || document.createElement('div');\r\n svgContainer.innerHTML = \"<svg>\".concat(cur, \"</svg>\");\r\n var svg = svgContainer.firstChild;\r\n while (elm.firstChild) {\r\n elm.removeChild(elm.firstChild);\r\n }\r\n while (svg.firstChild) {\r\n elm.appendChild(svg.firstChild);\r\n }\r\n }\r\n else if (\r\n // skip the update if old and new VDOM state is the same.\r\n // `value` is handled separately because the DOM value may be temporarily\r\n // out of sync with VDOM state due to focus, composition and modifiers.\r\n // This #4521 by skipping the unnecessary `checked` update.\r\n cur !== oldProps[key]) {\r\n // some property updates can throw\r\n // e.g. `value` on <progress> w/ non-finite value\r\n try {\r\n elm[key] = cur;\r\n }\r\n catch (e) { }\r\n }\r\n }\r\n}\r\nfunction shouldUpdateValue(elm, checkVal) {\r\n return (\r\n //@ts-expect-error\r\n !elm.composing &&\r\n (elm.tagName === 'OPTION' ||\r\n isNotInFocusAndDirty(elm, checkVal) ||\r\n isDirtyWithModifiers(elm, checkVal)));\r\n}\r\nfunction isNotInFocusAndDirty(elm, checkVal) {\r\n // return true when textbox (.number and .trim) loses focus and its value is\r\n // not equal to the updated value\r\n var notInFocus = true;\r\n // #6157\r\n // work around IE bug when accessing document.activeElement in an iframe\r\n try {\r\n notInFocus = document.activeElement !== elm;\r\n }\r\n catch (e) { }\r\n return notInFocus && elm.value !== checkVal;\r\n}\r\nfunction isDirtyWithModifiers(elm, newVal) {\r\n var value = elm.value;\r\n var modifiers = elm._vModifiers; // injected by v-model runtime\r\n if (isDef(modifiers)) {\r\n if (modifiers.number) {\r\n return toNumber(value) !== toNumber(newVal);\r\n }\r\n if (modifiers.trim) {\r\n return value.trim() !== newVal.trim();\r\n }\r\n }\r\n return value !== newVal;\r\n}\r\nvar domProps = {\r\n create: updateDOMProps,\r\n update: updateDOMProps\r\n};\n\nvar parseStyleText = cached(function (cssText) {\r\n var res = {};\r\n var listDelimiter = /;(?![^(]*\\))/g;\r\n var propertyDelimiter = /:(.+)/;\r\n cssText.split(listDelimiter).forEach(function (item) {\r\n if (item) {\r\n var tmp = item.split(propertyDelimiter);\r\n tmp.length > 1 && (res[tmp[0].trim()] = tmp[1].trim());\r\n }\r\n });\r\n return res;\r\n});\r\n// merge static and dynamic style data on the same vnode\r\nfunction normalizeStyleData(data) {\r\n var style = normalizeStyleBinding(data.style);\r\n // static style is pre-processed into an object during compilation\r\n // and is always a fresh object, so it's safe to merge into it\r\n return data.staticStyle ? extend(data.staticStyle, style) : style;\r\n}\r\n// normalize possible array / string values into Object\r\nfunction normalizeStyleBinding(bindingStyle) {\r\n if (Array.isArray(bindingStyle)) {\r\n return toObject(bindingStyle);\r\n }\r\n if (typeof bindingStyle === 'string') {\r\n return parseStyleText(bindingStyle);\r\n }\r\n return bindingStyle;\r\n}\r\n/**\r\n * parent component style should be after child's\r\n * so that parent component's style could override it\r\n */\r\nfunction getStyle(vnode, checkChild) {\r\n var res = {};\r\n var styleData;\r\n if (checkChild) {\r\n var childNode = vnode;\r\n while (childNode.componentInstance) {\r\n childNode = childNode.componentInstance._vnode;\r\n if (childNode &&\r\n childNode.data &&\r\n (styleData = normalizeStyleData(childNode.data))) {\r\n extend(res, styleData);\r\n }\r\n }\r\n }\r\n if ((styleData = normalizeStyleData(vnode.data))) {\r\n extend(res, styleData);\r\n }\r\n var parentNode = vnode;\r\n // @ts-expect-error parentNode.parent not VNodeWithData\r\n while ((parentNode = parentNode.parent)) {\r\n if (parentNode.data && (styleData = normalizeStyleData(parentNode.data))) {\r\n extend(res, styleData);\r\n }\r\n }\r\n return res;\r\n}\n\nvar cssVarRE = /^--/;\r\nvar importantRE = /\\s*!important$/;\r\nvar setProp = function (el, name, val) {\r\n /* istanbul ignore if */\r\n if (cssVarRE.test(name)) {\r\n el.style.setProperty(name, val);\r\n }\r\n else if (importantRE.test(val)) {\r\n el.style.setProperty(hyphenate(name), val.replace(importantRE, ''), 'important');\r\n }\r\n else {\r\n var normalizedName = normalize(name);\r\n if (Array.isArray(val)) {\r\n // Support values array created by autoprefixer, e.g.\r\n // {display: [\"-webkit-box\", \"-ms-flexbox\", \"flex\"]}\r\n // Set them one by one, and the browser will only set those it can recognize\r\n for (var i = 0, len = val.length; i < len; i++) {\r\n el.style[normalizedName] = val[i];\r\n }\r\n }\r\n else {\r\n el.style[normalizedName] = val;\r\n }\r\n }\r\n};\r\nvar vendorNames = ['Webkit', 'Moz', 'ms'];\r\nvar emptyStyle;\r\nvar normalize = cached(function (prop) {\r\n emptyStyle = emptyStyle || document.createElement('div').style;\r\n prop = camelize(prop);\r\n if (prop !== 'filter' && prop in emptyStyle) {\r\n return prop;\r\n }\r\n var capName = prop.charAt(0).toUpperCase() + prop.slice(1);\r\n for (var i = 0; i < vendorNames.length; i++) {\r\n var name_1 = vendorNames[i] + capName;\r\n if (name_1 in emptyStyle) {\r\n return name_1;\r\n }\r\n }\r\n});\r\nfunction updateStyle(oldVnode, vnode) {\r\n var data = vnode.data;\r\n var oldData = oldVnode.data;\r\n if (isUndef(data.staticStyle) &&\r\n isUndef(data.style) &&\r\n isUndef(oldData.staticStyle) &&\r\n isUndef(oldData.style)) {\r\n return;\r\n }\r\n var cur, name;\r\n var el = vnode.elm;\r\n var oldStaticStyle = oldData.staticStyle;\r\n var oldStyleBinding = oldData.normalizedStyle || oldData.style || {};\r\n // if static style exists, stylebinding already merged into it when doing normalizeStyleData\r\n var oldStyle = oldStaticStyle || oldStyleBinding;\r\n var style = normalizeStyleBinding(vnode.data.style) || {};\r\n // store normalized style under a different key for next diff\r\n // make sure to clone it if it's reactive, since the user likely wants\r\n // to mutate it.\r\n vnode.data.normalizedStyle = isDef(style.__ob__) ? extend({}, style) : style;\r\n var newStyle = getStyle(vnode, true);\r\n for (name in oldStyle) {\r\n if (isUndef(newStyle[name])) {\r\n setProp(el, name, '');\r\n }\r\n }\r\n for (name in newStyle) {\r\n cur = newStyle[name];\r\n if (cur !== oldStyle[name]) {\r\n // ie9 setting to null has no effect, must use empty string\r\n setProp(el, name, cur == null ? '' : cur);\r\n }\r\n }\r\n}\r\nvar style = {\r\n create: updateStyle,\r\n update: updateStyle\r\n};\n\nvar whitespaceRE = /\\s+/;\r\n/**\r\n * Add class with compatibility for SVG since classList is not supported on\r\n * SVG elements in IE\r\n */\r\nfunction addClass(el, cls) {\r\n /* istanbul ignore if */\r\n if (!cls || !(cls = cls.trim())) {\r\n return;\r\n }\r\n /* istanbul ignore else */\r\n if (el.classList) {\r\n if (cls.indexOf(' ') > -1) {\r\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.add(c); });\r\n }\r\n else {\r\n el.classList.add(cls);\r\n }\r\n }\r\n else {\r\n var cur = \" \".concat(el.getAttribute('class') || '', \" \");\r\n if (cur.indexOf(' ' + cls + ' ') < 0) {\r\n el.setAttribute('class', (cur + cls).trim());\r\n }\r\n }\r\n}\r\n/**\r\n * Remove class with compatibility for SVG since classList is not supported on\r\n * SVG elements in IE\r\n */\r\nfunction removeClass(el, cls) {\r\n /* istanbul ignore if */\r\n if (!cls || !(cls = cls.trim())) {\r\n return;\r\n }\r\n /* istanbul ignore else */\r\n if (el.classList) {\r\n if (cls.indexOf(' ') > -1) {\r\n cls.split(whitespaceRE).forEach(function (c) { return el.classList.remove(c); });\r\n }\r\n else {\r\n el.classList.remove(cls);\r\n }\r\n if (!el.classList.length) {\r\n el.removeAttribute('class');\r\n }\r\n }\r\n else {\r\n var cur = \" \".concat(el.getAttribute('class') || '', \" \");\r\n var tar = ' ' + cls + ' ';\r\n while (cur.indexOf(tar) >= 0) {\r\n cur = cur.replace(tar, ' ');\r\n }\r\n cur = cur.trim();\r\n if (cur) {\r\n el.setAttribute('class', cur);\r\n }\r\n else {\r\n el.removeAttribute('class');\r\n }\r\n }\r\n}\n\nfunction resolveTransition(def) {\r\n if (!def) {\r\n return;\r\n }\r\n /* istanbul ignore else */\r\n if (typeof def === 'object') {\r\n var res = {};\r\n if (def.css !== false) {\r\n extend(res, autoCssTransition(def.name || 'v'));\r\n }\r\n extend(res, def);\r\n return res;\r\n }\r\n else if (typeof def === 'string') {\r\n return autoCssTransition(def);\r\n }\r\n}\r\nvar autoCssTransition = cached(function (name) {\r\n return {\r\n enterClass: \"\".concat(name, \"-enter\"),\r\n enterToClass: \"\".concat(name, \"-enter-to\"),\r\n enterActiveClass: \"\".concat(name, \"-enter-active\"),\r\n leaveClass: \"\".concat(name, \"-leave\"),\r\n leaveToClass: \"\".concat(name, \"-leave-to\"),\r\n leaveActiveClass: \"\".concat(name, \"-leave-active\")\r\n };\r\n});\r\nvar hasTransition = inBrowser && !isIE9;\r\nvar TRANSITION = 'transition';\r\nvar ANIMATION = 'animation';\r\n// Transition property/event sniffing\r\nvar transitionProp = 'transition';\r\nvar transitionEndEvent = 'transitionend';\r\nvar animationProp = 'animation';\r\nvar animationEndEvent = 'animationend';\r\nif (hasTransition) {\r\n /* istanbul ignore if */\r\n if (window.ontransitionend === undefined &&\r\n window.onwebkittransitionend !== undefined) {\r\n transitionProp = 'WebkitTransition';\r\n transitionEndEvent = 'webkitTransitionEnd';\r\n }\r\n if (window.onanimationend === undefined &&\r\n window.onwebkitanimationend !== undefined) {\r\n animationProp = 'WebkitAnimation';\r\n animationEndEvent = 'webkitAnimationEnd';\r\n }\r\n}\r\n// binding to window is necessary to make hot reload work in IE in strict mode\r\nvar raf = inBrowser\r\n ? window.requestAnimationFrame\r\n ? window.requestAnimationFrame.bind(window)\r\n : setTimeout\r\n : /* istanbul ignore next */ function (/* istanbul ignore next */ fn) { return fn(); };\r\nfunction nextFrame(fn) {\r\n raf(function () {\r\n // @ts-expect-error\r\n raf(fn);\r\n });\r\n}\r\nfunction addTransitionClass(el, cls) {\r\n var transitionClasses = el._transitionClasses || (el._transitionClasses = []);\r\n if (transitionClasses.indexOf(cls) < 0) {\r\n transitionClasses.push(cls);\r\n addClass(el, cls);\r\n }\r\n}\r\nfunction removeTransitionClass(el, cls) {\r\n if (el._transitionClasses) {\r\n remove$2(el._transitionClasses, cls);\r\n }\r\n removeClass(el, cls);\r\n}\r\nfunction whenTransitionEnds(el, expectedType, cb) {\r\n var _a = getTransitionInfo(el, expectedType), type = _a.type, timeout = _a.timeout, propCount = _a.propCount;\r\n if (!type)\r\n return cb();\r\n var event = type === TRANSITION ? transitionEndEvent : animationEndEvent;\r\n var ended = 0;\r\n var end = function () {\r\n el.removeEventListener(event, onEnd);\r\n cb();\r\n };\r\n var onEnd = function (e) {\r\n if (e.target === el) {\r\n if (++ended >= propCount) {\r\n end();\r\n }\r\n }\r\n };\r\n setTimeout(function () {\r\n if (ended < propCount) {\r\n end();\r\n }\r\n }, timeout + 1);\r\n el.addEventListener(event, onEnd);\r\n}\r\nvar transformRE = /\\b(transform|all)(,|$)/;\r\nfunction getTransitionInfo(el, expectedType) {\r\n var styles = window.getComputedStyle(el);\r\n // JSDOM may return undefined for transition properties\r\n var transitionDelays = (styles[transitionProp + 'Delay'] || '').split(', ');\r\n var transitionDurations = (styles[transitionProp + 'Duration'] || '').split(', ');\r\n var transitionTimeout = getTimeout(transitionDelays, transitionDurations);\r\n var animationDelays = (styles[animationProp + 'Delay'] || '').split(', ');\r\n var animationDurations = (styles[animationProp + 'Duration'] || '').split(', ');\r\n var animationTimeout = getTimeout(animationDelays, animationDurations);\r\n var type;\r\n var timeout = 0;\r\n var propCount = 0;\r\n /* istanbul ignore if */\r\n if (expectedType === TRANSITION) {\r\n if (transitionTimeout > 0) {\r\n type = TRANSITION;\r\n timeout = transitionTimeout;\r\n propCount = transitionDurations.length;\r\n }\r\n }\r\n else if (expectedType === ANIMATION) {\r\n if (animationTimeout > 0) {\r\n type = ANIMATION;\r\n timeout = animationTimeout;\r\n propCount = animationDurations.length;\r\n }\r\n }\r\n else {\r\n timeout = Math.max(transitionTimeout, animationTimeout);\r\n type =\r\n timeout > 0\r\n ? transitionTimeout > animationTimeout\r\n ? TRANSITION\r\n : ANIMATION\r\n : null;\r\n propCount = type\r\n ? type === TRANSITION\r\n ? transitionDurations.length\r\n : animationDurations.length\r\n : 0;\r\n }\r\n var hasTransform = type === TRANSITION && transformRE.test(styles[transitionProp + 'Property']);\r\n return {\r\n type: type,\r\n timeout: timeout,\r\n propCount: propCount,\r\n hasTransform: hasTransform\r\n };\r\n}\r\nfunction getTimeout(delays, durations) {\r\n /* istanbul ignore next */\r\n while (delays.length < durations.length) {\r\n delays = delays.concat(delays);\r\n }\r\n return Math.max.apply(null, durations.map(function (d, i) {\r\n return toMs(d) + toMs(delays[i]);\r\n }));\r\n}\r\n// Old versions of Chromium (below 61.0.3163.100) formats floating pointer numbers\r\n// in a locale-dependent way, using a comma instead of a dot.\r\n// If comma is not replaced with a dot, the input will be rounded down (i.e. acting\r\n// as a floor function) causing unexpected behaviors\r\nfunction toMs(s) {\r\n return Number(s.slice(0, -1).replace(',', '.')) * 1000;\r\n}\n\nfunction enter(vnode, toggleDisplay) {\r\n var el = vnode.elm;\r\n // call leave callback now\r\n if (isDef(el._leaveCb)) {\r\n el._leaveCb.cancelled = true;\r\n el._leaveCb();\r\n }\r\n var data = resolveTransition(vnode.data.transition);\r\n if (isUndef(data)) {\r\n return;\r\n }\r\n /* istanbul ignore if */\r\n if (isDef(el._enterCb) || el.nodeType !== 1) {\r\n return;\r\n }\r\n var css = data.css, type = data.type, enterClass = data.enterClass, enterToClass = data.enterToClass, enterActiveClass = data.enterActiveClass, appearClass = data.appearClass, appearToClass = data.appearToClass, appearActiveClass = data.appearActiveClass, beforeEnter = data.beforeEnter, enter = data.enter, afterEnter = data.afterEnter, enterCancelled = data.enterCancelled, beforeAppear = data.beforeAppear, appear = data.appear, afterAppear = data.afterAppear, appearCancelled = data.appearCancelled, duration = data.duration;\r\n // activeInstance will always be the <transition> component managing this\r\n // transition. One edge case to check is when the <transition> is placed\r\n // as the root node of a child component. In that case we need to check\r\n // <transition>'s parent for appear check.\r\n var context = activeInstance;\r\n var transitionNode = activeInstance.$vnode;\r\n while (transitionNode && transitionNode.parent) {\r\n context = transitionNode.context;\r\n transitionNode = transitionNode.parent;\r\n }\r\n var isAppear = !context._isMounted || !vnode.isRootInsert;\r\n if (isAppear && !appear && appear !== '') {\r\n return;\r\n }\r\n var startClass = isAppear && appearClass ? appearClass : enterClass;\r\n var activeClass = isAppear && appearActiveClass ? appearActiveClass : enterActiveClass;\r\n var toClass = isAppear && appearToClass ? appearToClass : enterToClass;\r\n var beforeEnterHook = isAppear ? beforeAppear || beforeEnter : beforeEnter;\r\n var enterHook = isAppear ? (isFunction(appear) ? appear : enter) : enter;\r\n var afterEnterHook = isAppear ? afterAppear || afterEnter : afterEnter;\r\n var enterCancelledHook = isAppear\r\n ? appearCancelled || enterCancelled\r\n : enterCancelled;\r\n var explicitEnterDuration = toNumber(isObject(duration) ? duration.enter : duration);\r\n if (process.env.NODE_ENV !== 'production' && explicitEnterDuration != null) {\r\n checkDuration(explicitEnterDuration, 'enter', vnode);\r\n }\r\n var expectsCSS = css !== false && !isIE9;\r\n var userWantsControl = getHookArgumentsLength(enterHook);\r\n var cb = (el._enterCb = once(function () {\r\n if (expectsCSS) {\r\n removeTransitionClass(el, toClass);\r\n removeTransitionClass(el, activeClass);\r\n }\r\n // @ts-expect-error\r\n if (cb.cancelled) {\r\n if (expectsCSS) {\r\n removeTransitionClass(el, startClass);\r\n }\r\n enterCancelledHook && enterCancelledHook(el);\r\n }\r\n else {\r\n afterEnterHook && afterEnterHook(el);\r\n }\r\n el._enterCb = null;\r\n }));\r\n if (!vnode.data.show) {\r\n // remove pending leave element on enter by injecting an insert hook\r\n mergeVNodeHook(vnode, 'insert', function () {\r\n var parent = el.parentNode;\r\n var pendingNode = parent && parent._pending && parent._pending[vnode.key];\r\n if (pendingNode &&\r\n pendingNode.tag === vnode.tag &&\r\n pendingNode.elm._leaveCb) {\r\n pendingNode.elm._leaveCb();\r\n }\r\n enterHook && enterHook(el, cb);\r\n });\r\n }\r\n // start enter transition\r\n beforeEnterHook && beforeEnterHook(el);\r\n if (expectsCSS) {\r\n addTransitionClass(el, startClass);\r\n addTransitionClass(el, activeClass);\r\n nextFrame(function () {\r\n removeTransitionClass(el, startClass);\r\n // @ts-expect-error\r\n if (!cb.cancelled) {\r\n addTransitionClass(el, toClass);\r\n if (!userWantsControl) {\r\n if (isValidDuration(explicitEnterDuration)) {\r\n setTimeout(cb, explicitEnterDuration);\r\n }\r\n else {\r\n whenTransitionEnds(el, type, cb);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n if (vnode.data.show) {\r\n toggleDisplay && toggleDisplay();\r\n enterHook && enterHook(el, cb);\r\n }\r\n if (!expectsCSS && !userWantsControl) {\r\n cb();\r\n }\r\n}\r\nfunction leave(vnode, rm) {\r\n var el = vnode.elm;\r\n // call enter callback now\r\n if (isDef(el._enterCb)) {\r\n el._enterCb.cancelled = true;\r\n el._enterCb();\r\n }\r\n var data = resolveTransition(vnode.data.transition);\r\n if (isUndef(data) || el.nodeType !== 1) {\r\n return rm();\r\n }\r\n /* istanbul ignore if */\r\n if (isDef(el._leaveCb)) {\r\n return;\r\n }\r\n var css = data.css, type = data.type, leaveClass = data.leaveClass, leaveToClass = data.leaveToClass, leaveActiveClass = data.leaveActiveClass, beforeLeave = data.beforeLeave, leave = data.leave, afterLeave = data.afterLeave, leaveCancelled = data.leaveCancelled, delayLeave = data.delayLeave, duration = data.duration;\r\n var expectsCSS = css !== false && !isIE9;\r\n var userWantsControl = getHookArgumentsLength(leave);\r\n var explicitLeaveDuration = toNumber(isObject(duration) ? duration.leave : duration);\r\n if (process.env.NODE_ENV !== 'production' && isDef(explicitLeaveDuration)) {\r\n checkDuration(explicitLeaveDuration, 'leave', vnode);\r\n }\r\n var cb = (el._leaveCb = once(function () {\r\n if (el.parentNode && el.parentNode._pending) {\r\n el.parentNode._pending[vnode.key] = null;\r\n }\r\n if (expectsCSS) {\r\n removeTransitionClass(el, leaveToClass);\r\n removeTransitionClass(el, leaveActiveClass);\r\n }\r\n // @ts-expect-error\r\n if (cb.cancelled) {\r\n if (expectsCSS) {\r\n removeTransitionClass(el, leaveClass);\r\n }\r\n leaveCancelled && leaveCancelled(el);\r\n }\r\n else {\r\n rm();\r\n afterLeave && afterLeave(el);\r\n }\r\n el._leaveCb = null;\r\n }));\r\n if (delayLeave) {\r\n delayLeave(performLeave);\r\n }\r\n else {\r\n performLeave();\r\n }\r\n function performLeave() {\r\n // the delayed leave may have already been cancelled\r\n // @ts-expect-error\r\n if (cb.cancelled) {\r\n return;\r\n }\r\n // record leaving element\r\n if (!vnode.data.show && el.parentNode) {\r\n (el.parentNode._pending || (el.parentNode._pending = {}))[vnode.key] =\r\n vnode;\r\n }\r\n beforeLeave && beforeLeave(el);\r\n if (expectsCSS) {\r\n addTransitionClass(el, leaveClass);\r\n addTransitionClass(el, leaveActiveClass);\r\n nextFrame(function () {\r\n removeTransitionClass(el, leaveClass);\r\n // @ts-expect-error\r\n if (!cb.cancelled) {\r\n addTransitionClass(el, leaveToClass);\r\n if (!userWantsControl) {\r\n if (isValidDuration(explicitLeaveDuration)) {\r\n setTimeout(cb, explicitLeaveDuration);\r\n }\r\n else {\r\n whenTransitionEnds(el, type, cb);\r\n }\r\n }\r\n }\r\n });\r\n }\r\n leave && leave(el, cb);\r\n if (!expectsCSS && !userWantsControl) {\r\n cb();\r\n }\r\n }\r\n}\r\n// only used in dev mode\r\nfunction checkDuration(val, name, vnode) {\r\n if (typeof val !== 'number') {\r\n warn(\"<transition> explicit \".concat(name, \" duration is not a valid number - \") +\r\n \"got \".concat(JSON.stringify(val), \".\"), vnode.context);\r\n }\r\n else if (isNaN(val)) {\r\n warn(\"<transition> explicit \".concat(name, \" duration is NaN - \") +\r\n 'the duration expression might be incorrect.', vnode.context);\r\n }\r\n}\r\nfunction isValidDuration(val) {\r\n return typeof val === 'number' && !isNaN(val);\r\n}\r\n/**\r\n * Normalize a transition hook's argument length. The hook may be:\r\n * - a merged hook (invoker) with the original in .fns\r\n * - a wrapped component method (check ._length)\r\n * - a plain function (.length)\r\n */\r\nfunction getHookArgumentsLength(fn) {\r\n if (isUndef(fn)) {\r\n return false;\r\n }\r\n // @ts-expect-error\r\n var invokerFns = fn.fns;\r\n if (isDef(invokerFns)) {\r\n // invoker\r\n return getHookArgumentsLength(Array.isArray(invokerFns) ? invokerFns[0] : invokerFns);\r\n }\r\n else {\r\n // @ts-expect-error\r\n return (fn._length || fn.length) > 1;\r\n }\r\n}\r\nfunction _enter(_, vnode) {\r\n if (vnode.data.show !== true) {\r\n enter(vnode);\r\n }\r\n}\r\nvar transition = inBrowser\r\n ? {\r\n create: _enter,\r\n activate: _enter,\r\n remove: function (vnode, rm) {\r\n /* istanbul ignore else */\r\n if (vnode.data.show !== true) {\r\n // @ts-expect-error\r\n leave(vnode, rm);\r\n }\r\n else {\r\n rm();\r\n }\r\n }\r\n }\r\n : {};\n\nvar platformModules = [attrs, klass, events, domProps, style, transition];\n\n// the directive module should be applied last, after all\r\n// built-in modules have been applied.\r\nvar modules = platformModules.concat(baseModules);\r\nvar patch = createPatchFunction({ nodeOps: nodeOps, modules: modules });\n\n/**\r\n * Not type checking this file because flow doesn't like attaching\r\n * properties to Elements.\r\n */\r\n/* istanbul ignore if */\r\nif (isIE9) {\r\n // http://www.matts411.com/post/internet-explorer-9-oninput/\r\n document.addEventListener('selectionchange', function () {\r\n var el = document.activeElement;\r\n // @ts-expect-error\r\n if (el && el.vmodel) {\r\n trigger(el, 'input');\r\n }\r\n });\r\n}\r\nvar directive = {\r\n inserted: function (el, binding, vnode, oldVnode) {\r\n if (vnode.tag === 'select') {\r\n // #6903\r\n if (oldVnode.elm && !oldVnode.elm._vOptions) {\r\n mergeVNodeHook(vnode, 'postpatch', function () {\r\n directive.componentUpdated(el, binding, vnode);\r\n });\r\n }\r\n else {\r\n setSelected(el, binding, vnode.context);\r\n }\r\n el._vOptions = [].map.call(el.options, getValue);\r\n }\r\n else if (vnode.tag === 'textarea' || isTextInputType(el.type)) {\r\n el._vModifiers = binding.modifiers;\r\n if (!binding.modifiers.lazy) {\r\n el.addEventListener('compositionstart', onCompositionStart);\r\n el.addEventListener('compositionend', onCompositionEnd);\r\n // Safari < 10.2 & UIWebView doesn't fire compositionend when\r\n // switching focus before confirming composition choice\r\n // this also fixes the issue where some browsers e.g. iOS Chrome\r\n // fires \"change\" instead of \"input\" on autocomplete.\r\n el.addEventListener('change', onCompositionEnd);\r\n /* istanbul ignore if */\r\n if (isIE9) {\r\n el.vmodel = true;\r\n }\r\n }\r\n }\r\n },\r\n componentUpdated: function (el, binding, vnode) {\r\n if (vnode.tag === 'select') {\r\n setSelected(el, binding, vnode.context);\r\n // in case the options rendered by v-for have changed,\r\n // it's possible that the value is out-of-sync with the rendered options.\r\n // detect such cases and filter out values that no longer has a matching\r\n // option in the DOM.\r\n var prevOptions_1 = el._vOptions;\r\n var curOptions_1 = (el._vOptions = [].map.call(el.options, getValue));\r\n if (curOptions_1.some(function (o, i) { return !looseEqual(o, prevOptions_1[i]); })) {\r\n // trigger change event if\r\n // no matching option found for at least one value\r\n var needReset = el.multiple\r\n ? binding.value.some(function (v) { return hasNoMatchingOption(v, curOptions_1); })\r\n : binding.value !== binding.oldValue &&\r\n hasNoMatchingOption(binding.value, curOptions_1);\r\n if (needReset) {\r\n trigger(el, 'change');\r\n }\r\n }\r\n }\r\n }\r\n};\r\nfunction setSelected(el, binding, vm) {\r\n actuallySetSelected(el, binding, vm);\r\n /* istanbul ignore if */\r\n if (isIE || isEdge) {\r\n setTimeout(function () {\r\n actuallySetSelected(el, binding, vm);\r\n }, 0);\r\n }\r\n}\r\nfunction actuallySetSelected(el, binding, vm) {\r\n var value = binding.value;\r\n var isMultiple = el.multiple;\r\n if (isMultiple && !Array.isArray(value)) {\r\n process.env.NODE_ENV !== 'production' &&\r\n warn(\"<select multiple v-model=\\\"\".concat(binding.expression, \"\\\"> \") +\r\n \"expects an Array value for its binding, but got \".concat(Object.prototype.toString\r\n .call(value)\r\n .slice(8, -1)), vm);\r\n return;\r\n }\r\n var selected, option;\r\n for (var i = 0, l = el.options.length; i < l; i++) {\r\n option = el.options[i];\r\n if (isMultiple) {\r\n selected = looseIndexOf(value, getValue(option)) > -1;\r\n if (option.selected !== selected) {\r\n option.selected = selected;\r\n }\r\n }\r\n else {\r\n if (looseEqual(getValue(option), value)) {\r\n if (el.selectedIndex !== i) {\r\n el.selectedIndex = i;\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n if (!isMultiple) {\r\n el.selectedIndex = -1;\r\n }\r\n}\r\nfunction hasNoMatchingOption(value, options) {\r\n return options.every(function (o) { return !looseEqual(o, value); });\r\n}\r\nfunction getValue(option) {\r\n return '_value' in option ? option._value : option.value;\r\n}\r\nfunction onCompositionStart(e) {\r\n e.target.composing = true;\r\n}\r\nfunction onCompositionEnd(e) {\r\n // prevent triggering an input event for no reason\r\n if (!e.target.composing)\r\n return;\r\n e.target.composing = false;\r\n trigger(e.target, 'input');\r\n}\r\nfunction trigger(el, type) {\r\n var e = document.createEvent('HTMLEvents');\r\n e.initEvent(type, true, true);\r\n el.dispatchEvent(e);\r\n}\n\n// recursively search for possible transition defined inside the component root\r\nfunction locateNode(vnode) {\r\n // @ts-expect-error\r\n return vnode.componentInstance && (!vnode.data || !vnode.data.transition)\r\n ? locateNode(vnode.componentInstance._vnode)\r\n : vnode;\r\n}\r\nvar show = {\r\n bind: function (el, _a, vnode) {\r\n var value = _a.value;\r\n vnode = locateNode(vnode);\r\n var transition = vnode.data && vnode.data.transition;\r\n var originalDisplay = (el.__vOriginalDisplay =\r\n el.style.display === 'none' ? '' : el.style.display);\r\n if (value && transition) {\r\n vnode.data.show = true;\r\n enter(vnode, function () {\r\n el.style.display = originalDisplay;\r\n });\r\n }\r\n else {\r\n el.style.display = value ? originalDisplay : 'none';\r\n }\r\n },\r\n update: function (el, _a, vnode) {\r\n var value = _a.value, oldValue = _a.oldValue;\r\n /* istanbul ignore if */\r\n if (!value === !oldValue)\r\n return;\r\n vnode = locateNode(vnode);\r\n var transition = vnode.data && vnode.data.transition;\r\n if (transition) {\r\n vnode.data.show = true;\r\n if (value) {\r\n enter(vnode, function () {\r\n el.style.display = el.__vOriginalDisplay;\r\n });\r\n }\r\n else {\r\n leave(vnode, function () {\r\n el.style.display = 'none';\r\n });\r\n }\r\n }\r\n else {\r\n el.style.display = value ? el.__vOriginalDisplay : 'none';\r\n }\r\n },\r\n unbind: function (el, binding, vnode, oldVnode, isDestroy) {\r\n if (!isDestroy) {\r\n el.style.display = el.__vOriginalDisplay;\r\n }\r\n }\r\n};\n\nvar platformDirectives = {\r\n model: directive,\r\n show: show\r\n};\n\n// Provides transition support for a single element/component.\r\nvar transitionProps = {\r\n name: String,\r\n appear: Boolean,\r\n css: Boolean,\r\n mode: String,\r\n type: String,\r\n enterClass: String,\r\n leaveClass: String,\r\n enterToClass: String,\r\n leaveToClass: String,\r\n enterActiveClass: String,\r\n leaveActiveClass: String,\r\n appearClass: String,\r\n appearActiveClass: String,\r\n appearToClass: String,\r\n duration: [Number, String, Object]\r\n};\r\n// in case the child is also an abstract component, e.g. <keep-alive>\r\n// we want to recursively retrieve the real component to be rendered\r\nfunction getRealChild(vnode) {\r\n var compOptions = vnode && vnode.componentOptions;\r\n if (compOptions && compOptions.Ctor.options.abstract) {\r\n return getRealChild(getFirstComponentChild(compOptions.children));\r\n }\r\n else {\r\n return vnode;\r\n }\r\n}\r\nfunction extractTransitionData(comp) {\r\n var data = {};\r\n var options = comp.$options;\r\n // props\r\n for (var key in options.propsData) {\r\n data[key] = comp[key];\r\n }\r\n // events.\r\n // extract listeners and pass them directly to the transition methods\r\n var listeners = options._parentListeners;\r\n for (var key in listeners) {\r\n data[camelize(key)] = listeners[key];\r\n }\r\n return data;\r\n}\r\nfunction placeholder(h, rawChild) {\r\n // @ts-expect-error\r\n if (/\\d-keep-alive$/.test(rawChild.tag)) {\r\n return h('keep-alive', {\r\n props: rawChild.componentOptions.propsData\r\n });\r\n }\r\n}\r\nfunction hasParentTransition(vnode) {\r\n while ((vnode = vnode.parent)) {\r\n if (vnode.data.transition) {\r\n return true;\r\n }\r\n }\r\n}\r\nfunction isSameChild(child, oldChild) {\r\n return oldChild.key === child.key && oldChild.tag === child.tag;\r\n}\r\nvar isNotTextNode = function (c) { return c.tag || isAsyncPlaceholder(c); };\r\nvar isVShowDirective = function (d) { return d.name === 'show'; };\r\nvar Transition = {\r\n name: 'transition',\r\n props: transitionProps,\r\n abstract: true,\r\n render: function (h) {\r\n var _this = this;\r\n var children = this.$slots.default;\r\n if (!children) {\r\n return;\r\n }\r\n // filter out text nodes (possible whitespaces)\r\n children = children.filter(isNotTextNode);\r\n /* istanbul ignore if */\r\n if (!children.length) {\r\n return;\r\n }\r\n // warn multiple elements\r\n if (process.env.NODE_ENV !== 'production' && children.length > 1) {\r\n warn('<transition> can only be used on a single element. Use ' +\r\n '<transition-group> for lists.', this.$parent);\r\n }\r\n var mode = this.mode;\r\n // warn invalid mode\r\n if (process.env.NODE_ENV !== 'production' && mode && mode !== 'in-out' && mode !== 'out-in') {\r\n warn('invalid <transition> mode: ' + mode, this.$parent);\r\n }\r\n var rawChild = children[0];\r\n // if this is a component root node and the component's\r\n // parent container node also has transition, skip.\r\n if (hasParentTransition(this.$vnode)) {\r\n return rawChild;\r\n }\r\n // apply transition data to child\r\n // use getRealChild() to ignore abstract components e.g. keep-alive\r\n var child = getRealChild(rawChild);\r\n /* istanbul ignore if */\r\n if (!child) {\r\n return rawChild;\r\n }\r\n if (this._leaving) {\r\n return placeholder(h, rawChild);\r\n }\r\n // ensure a key that is unique to the vnode type and to this transition\r\n // component instance. This key will be used to remove pending leaving nodes\r\n // during entering.\r\n var id = \"__transition-\".concat(this._uid, \"-\");\r\n child.key =\r\n child.key == null\r\n ? child.isComment\r\n ? id + 'comment'\r\n : id + child.tag\r\n : isPrimitive(child.key)\r\n ? String(child.key).indexOf(id) === 0\r\n ? child.key\r\n : id + child.key\r\n : child.key;\r\n var data = ((child.data || (child.data = {})).transition =\r\n extractTransitionData(this));\r\n var oldRawChild = this._vnode;\r\n var oldChild = getRealChild(oldRawChild);\r\n // mark v-show\r\n // so that the transition module can hand over the control to the directive\r\n if (child.data.directives && child.data.directives.some(isVShowDirective)) {\r\n child.data.show = true;\r\n }\r\n if (oldChild &&\r\n oldChild.data &&\r\n !isSameChild(child, oldChild) &&\r\n !isAsyncPlaceholder(oldChild) &&\r\n // #6687 component root is a comment node\r\n !(oldChild.componentInstance &&\r\n oldChild.componentInstance._vnode.isComment)) {\r\n // replace old child transition data with fresh one\r\n // important for dynamic transitions!\r\n var oldData = (oldChild.data.transition = extend({}, data));\r\n // handle transition mode\r\n if (mode === 'out-in') {\r\n // return placeholder node and queue update when leave finishes\r\n this._leaving = true;\r\n mergeVNodeHook(oldData, 'afterLeave', function () {\r\n _this._leaving = false;\r\n _this.$forceUpdate();\r\n });\r\n return placeholder(h, rawChild);\r\n }\r\n else if (mode === 'in-out') {\r\n if (isAsyncPlaceholder(child)) {\r\n return oldRawChild;\r\n }\r\n var delayedLeave_1;\r\n var performLeave = function () {\r\n delayedLeave_1();\r\n };\r\n mergeVNodeHook(data, 'afterEnter', performLeave);\r\n mergeVNodeHook(data, 'enterCancelled', performLeave);\r\n mergeVNodeHook(oldData, 'delayLeave', function (leave) {\r\n delayedLeave_1 = leave;\r\n });\r\n }\r\n }\r\n return rawChild;\r\n }\r\n};\n\n// Provides transition support for list items.\r\nvar props = extend({\r\n tag: String,\r\n moveClass: String\r\n}, transitionProps);\r\ndelete props.mode;\r\nvar TransitionGroup = {\r\n props: props,\r\n beforeMount: function () {\r\n var _this = this;\r\n var update = this._update;\r\n this._update = function (vnode, hydrating) {\r\n var restoreActiveInstance = setActiveInstance(_this);\r\n // force removing pass\r\n _this.__patch__(_this._vnode, _this.kept, false, // hydrating\r\n true // removeOnly (!important, avoids unnecessary moves)\r\n );\r\n _this._vnode = _this.kept;\r\n restoreActiveInstance();\r\n update.call(_this, vnode, hydrating);\r\n };\r\n },\r\n render: function (h) {\r\n var tag = this.tag || this.$vnode.data.tag || 'span';\r\n var map = Object.create(null);\r\n var prevChildren = (this.prevChildren = this.children);\r\n var rawChildren = this.$slots.default || [];\r\n var children = (this.children = []);\r\n var transitionData = extractTransitionData(this);\r\n for (var i = 0; i < rawChildren.length; i++) {\r\n var c = rawChildren[i];\r\n if (c.tag) {\r\n if (c.key != null && String(c.key).indexOf('__vlist') !== 0) {\r\n children.push(c);\r\n map[c.key] = c;\r\n (c.data || (c.data = {})).transition = transitionData;\r\n }\r\n else if (process.env.NODE_ENV !== 'production') {\r\n var opts = c.componentOptions;\r\n var name_1 = opts\r\n ? opts.Ctor.options.name || opts.tag || ''\r\n : c.tag;\r\n warn(\"<transition-group> children must be keyed: <\".concat(name_1, \">\"));\r\n }\r\n }\r\n }\r\n if (prevChildren) {\r\n var kept = [];\r\n var removed = [];\r\n for (var i = 0; i < prevChildren.length; i++) {\r\n var c = prevChildren[i];\r\n c.data.transition = transitionData;\r\n // @ts-expect-error .getBoundingClientRect is not typed in Node\r\n c.data.pos = c.elm.getBoundingClientRect();\r\n if (map[c.key]) {\r\n kept.push(c);\r\n }\r\n else {\r\n removed.push(c);\r\n }\r\n }\r\n this.kept = h(tag, null, kept);\r\n this.removed = removed;\r\n }\r\n return h(tag, null, children);\r\n },\r\n updated: function () {\r\n var children = this.prevChildren;\r\n var moveClass = this.moveClass || (this.name || 'v') + '-move';\r\n if (!children.length || !this.hasMove(children[0].elm, moveClass)) {\r\n return;\r\n }\r\n // we divide the work into three loops to avoid mixing DOM reads and writes\r\n // in each iteration - which helps prevent layout thrashing.\r\n children.forEach(callPendingCbs);\r\n children.forEach(recordPosition);\r\n children.forEach(applyTranslation);\r\n // force reflow to put everything in position\r\n // assign to this to avoid being removed in tree-shaking\r\n // $flow-disable-line\r\n this._reflow = document.body.offsetHeight;\r\n children.forEach(function (c) {\r\n if (c.data.moved) {\r\n var el_1 = c.elm;\r\n var s = el_1.style;\r\n addTransitionClass(el_1, moveClass);\r\n s.transform = s.WebkitTransform = s.transitionDuration = '';\r\n el_1.addEventListener(transitionEndEvent, (el_1._moveCb = function cb(e) {\r\n if (e && e.target !== el_1) {\r\n return;\r\n }\r\n if (!e || /transform$/.test(e.propertyName)) {\r\n el_1.removeEventListener(transitionEndEvent, cb);\r\n el_1._moveCb = null;\r\n removeTransitionClass(el_1, moveClass);\r\n }\r\n }));\r\n }\r\n });\r\n },\r\n methods: {\r\n hasMove: function (el, moveClass) {\r\n /* istanbul ignore if */\r\n if (!hasTransition) {\r\n return false;\r\n }\r\n /* istanbul ignore if */\r\n if (this._hasMove) {\r\n return this._hasMove;\r\n }\r\n // Detect whether an element with the move class applied has\r\n // CSS transitions. Since the element may be inside an entering\r\n // transition at this very moment, we make a clone of it and remove\r\n // all other transition classes applied to ensure only the move class\r\n // is applied.\r\n var clone = el.cloneNode();\r\n if (el._transitionClasses) {\r\n el._transitionClasses.forEach(function (cls) {\r\n removeClass(clone, cls);\r\n });\r\n }\r\n addClass(clone, moveClass);\r\n clone.style.display = 'none';\r\n this.$el.appendChild(clone);\r\n var info = getTransitionInfo(clone);\r\n this.$el.removeChild(clone);\r\n return (this._hasMove = info.hasTransform);\r\n }\r\n }\r\n};\r\nfunction callPendingCbs(c) {\r\n /* istanbul ignore if */\r\n if (c.elm._moveCb) {\r\n c.elm._moveCb();\r\n }\r\n /* istanbul ignore if */\r\n if (c.elm._enterCb) {\r\n c.elm._enterCb();\r\n }\r\n}\r\nfunction recordPosition(c) {\r\n c.data.newPos = c.elm.getBoundingClientRect();\r\n}\r\nfunction applyTranslation(c) {\r\n var oldPos = c.data.pos;\r\n var newPos = c.data.newPos;\r\n var dx = oldPos.left - newPos.left;\r\n var dy = oldPos.top - newPos.top;\r\n if (dx || dy) {\r\n c.data.moved = true;\r\n var s = c.elm.style;\r\n s.transform = s.WebkitTransform = \"translate(\".concat(dx, \"px,\").concat(dy, \"px)\");\r\n s.transitionDuration = '0s';\r\n }\r\n}\n\nvar platformComponents = {\r\n Transition: Transition,\r\n TransitionGroup: TransitionGroup\r\n};\n\n// install platform specific utils\r\nVue.config.mustUseProp = mustUseProp;\r\nVue.config.isReservedTag = isReservedTag;\r\nVue.config.isReservedAttr = isReservedAttr;\r\nVue.config.getTagNamespace = getTagNamespace;\r\nVue.config.isUnknownElement = isUnknownElement;\r\n// install platform runtime directives & components\r\nextend(Vue.options.directives, platformDirectives);\r\nextend(Vue.options.components, platformComponents);\r\n// install platform patch function\r\nVue.prototype.__patch__ = inBrowser ? patch : noop;\r\n// public mount method\r\nVue.prototype.$mount = function (el, hydrating) {\r\n el = el && inBrowser ? query(el) : undefined;\r\n return mountComponent(this, el, hydrating);\r\n};\r\n// devtools global hook\r\n/* istanbul ignore next */\r\nif (inBrowser) {\r\n setTimeout(function () {\r\n if (config.devtools) {\r\n if (devtools) {\r\n devtools.emit('init', Vue);\r\n }\r\n else if (process.env.NODE_ENV !== 'production' && process.env.NODE_ENV !== 'test') {\r\n // @ts-expect-error\r\n console[console.info ? 'info' : 'log']('Download the Vue Devtools extension for a better development experience:\\n' +\r\n 'https://github.com/vuejs/vue-devtools');\r\n }\r\n }\r\n if (process.env.NODE_ENV !== 'production' &&\r\n process.env.NODE_ENV !== 'test' &&\r\n config.productionTip !== false &&\r\n typeof console !== 'undefined') {\r\n // @ts-expect-error\r\n console[console.info ? 'info' : 'log'](\"You are running Vue in development mode.\\n\" +\r\n \"Make sure to turn on production mode when deploying for production.\\n\" +\r\n \"See more tips at https://vuejs.org/guide/deployment.html\");\r\n }\r\n }, 0);\r\n}\n\nexport { EffectScope, computed, customRef, Vue as default, defineComponent, del, effectScope, getCurrentInstance, getCurrentScope, h, inject, isProxy, isReactive, isReadonly, isRef, isShallow, markRaw, mergeDefaults, nextTick, onActivated, onBeforeMount, onBeforeUnmount, onBeforeUpdate, onDeactivated, onErrorCaptured, onMounted, onRenderTracked, onRenderTriggered, onScopeDispose, onServerPrefetch, onUnmounted, onUpdated, provide, reactive, readonly, ref$1 as ref, set, shallowReactive, shallowReadonly, shallowRef, toRaw, toRef, toRefs, triggerRef, unref, useAttrs, useCssModule, useCssVars, useSlots, version, watch, watchEffect, watchPostEffect, watchSyncEffect };\n","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","import defineProperty from \"./defineProperty.js\";\nfunction ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n}\nexport default function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}"],"names":["InfernoEffectHost","lockCount","lock","this","callbacks","callEffects","Error","effects","forEach","callback","areObjectsEqual","firstObject","secondObject","bothAreObjects","Object","firstObjectKeys","keys","secondObjectKeys","length","hasDifferentElement","some","key","BaseInfernoComponent","constructor","super","arguments","_pendingContext","context","componentWillReceiveProps","_","shouldComponentUpdate","nextProps","nextState","props","state","InfernoComponent","_effects","createEffects","updateEffects","componentWillMount","componentWillUpdate","_nextProps","_nextState","_context","componentDidMount","push","componentDidUpdate","destroyEffects","e","dispose","componentWillUnmount","InfernoWrapperComponent","vDomElement","vDomUpdateClasses","el","currentClasses","className","split","addedClasses","filter","dxClasses","previous","indexOf","removedClasses","value","indexInRemoved","removed","splice","added","indexInAdded","$LI","classList","add","remove","shouldUpdate","contextId","createContext","defaultValue","id","Provider","getChildContext","assign","render","children","InfernoEffect","effect","dependency","destroy","update","currentDependency","d","i","createReRenderEffect","ERROR_MSG","isNullOrUndef","o","isInvalid","isFunction","isNull","throwError","message","isSameInnerHTML","dom","innerHTML","tempdom","document","createElement","findLastDOMFromVNode","vNode","flags","childFlags","isSamePropsInnerHTML","Boolean","dangerouslySetInnerHTML","__html","hydrateComponent","parentDOM","isSVG","isClass","lifecycle","type","ref","currentNode","instance","input","hydrateVNode","$CX","hydrateChildren","parentVNode","parentNode","_M","nextSibling","appendChild","createTextNode","childNodes","nodeType","textContent","nodeValue","prevVNodeIsTextNode","len","child","removeChild","firstChild","hydrateElement","replaceChild","removeAttribute","setAttribute","hydrateText","text","hydrateFragment","currentDom","hydrate","listener","undefined","shift","$V","getContainer","_a","_b","container","get","item","renderTemplate","template","_component","setTimeout","hasTemplate","name","properties","NUMBER_STYLES","Set","isNumeric","Number","isNaN","getNumberStyleValue","style","has","uppercasePattern","kebabCase","str","replace","toLowerCase","normalizeStyles","styles","entries","reduce","acc","Session","errors","sid","duration","status","Ok","init","ignoreDuration","startingTime","time","timestamp","started","prototype","user","ipAddress","ip_address","did","email","username","release","environment","userAgent","close","Exited","toJSON","Date","toISOString","attrs","user_agent","API_VERSION","DEFAULT_BREADCRUMBS","Hub","client","scope","_version","_stack","getStackTop","bindClient","isOlderThan","version","top","setupIntegrations","pushScope","clone","getScope","getStack","getClient","popScope","pop","withScope","captureException","exception","hint","eventId","_lastEventId","finalHint","syntheticException","originalException","_invokeClient","event_id","captureMessage","level","captureEvent","event","lastEventId","addBreadcrumb","breadcrumb","getOptions","_c","beforeBreadcrumb","_d","maxBreadcrumbs","mergedBreadcrumb","finalBreadcrumb","setUser","setTags","tags","setExtras","extras","setTag","setExtra","extra","setContext","configureScope","run","oldHub","makeMain","getIntegration","integration","_oO","warn","startSpan","_callExtensionMethod","startTransaction","customSamplingContext","traceHeaders","captureSession","endSession","_sendSessionUpdate","_e","getSession","setSession","startSession","global","navigator","session","getUser","currentSession","method","args","_i","apply","carrier","getMainCarrier","sentry","__SENTRY__","extensions","hub","registry","getHubFromCarrier","setHubOnCarrier","getCurrentHub","hasHubOnCarrier","getHubFromActiveDomain","activeDomain","domain","active","registryHubTopStack","_Oo","MAX_BREADCRUMBS","Scope","_notifyingListeners","_scopeListeners","_eventProcessors","_breadcrumbs","_user","_tags","_extra","_contexts","newScope","_level","_span","_session","_transactionName","_fingerprint","_requestSession","addScopeListener","addEventProcessor","_notifyScopeListeners","getRequestSession","setRequestSession","requestSession","setFingerprint","fingerprint","setLevel","setTransactionName","setTransaction","setSpan","span","getSpan","getTransaction","transaction","spanRecorder","spans","captureContext","updatedScope","contexts","clear","maxCrumbs","Math","min","slice","clearBreadcrumbs","applyToEvent","trace","getTraceContext","transactionName","_applyFingerprint","breadcrumbs","_notifyEventProcessors","getGlobalEventProcessors","processors","index","_this","resolve","reject","processor","result","then","final","Array","isArray","concat","globalEventProcessors","addGlobalEventProcessor","callOnHub","FINISH_REASON_TAG","IDLE_TRANSACTION_FINISH_REASONS","TransactionSamplingMethod","registerErrorInstrumentation","errorCallback","activeTransaction","logger","log","InternalError","setStatus","toTraceparent","sample","options","samplingContext","sampled","setMetadata","transactionSampling","Explicit","tracesSampler","sampleRate","Sampler","rate","parentSampled","Inheritance","tracesSampleRate","Rate","isValidSampleRate","random","op","JSON","stringify","_startTransaction","transactionContext","initSpanRecorder","_experiments","maxSpans","startIdleTransaction","idleTimeout","onScope","_addTracingExtensions","_autoloadDatabaseIntegrations","packageToIntegrationMapping","mongodb","module","Mongo","mongoose","mysql","Mysql","pg","Postgres","mappedPackages","moduleName","map","pkg","p","integrations","addExtensionMethods","DEFAULT_IDLE_TIMEOUT","HEARTBEAT_INTERVAL","IdleTransactionSpanRecorder","_super","_pushActivity","_popActivity","transactionSpanId","maxlen","call","spanId","finish","endTimestamp","IdleTransaction","_idleHub","_idleTimeout","_onScope","activities","_heartbeatCounter","_finished","_beforeFinishCallbacks","clearActiveTransaction","_initTimeout","e_1","next","done","e_1_1","error","return","Cancelled","keepSpan","startTimestamp","registerBeforeFinishCallback","pushActivity","popActivity","_pingHeartbeat","clearTimeout","timeout","end_1","_beat","heartbeatString","join","_prevHeartbeatString","DeadlineExceeded","registerBackgroundTabDetection","addEventListener","hidden","bindReporter","metric","reportAllChanges","prevValue","forceReport","delta","generateUniqueID","now","floor","initMetric","observe","PerformanceObserver","supportedEntryTypes","includes","self","po","l","getEntries","buffered","onHidden","cb","once","onHiddenOrPageHide","visibilityState","removeEventListener","getCLS","onReport","report","sessionValue","sessionEntries","entryHandler","entry","hadRecentInput","firstSessionEntry","lastSessionEntry","startTime","takeRecords","firstHiddenTime","initHiddenTime","Infinity","trackChanges","timeStamp","getVisibilityWatcher","getFID","visibilityWatcher","processingStart","disconnect","reportedMetricIDs","getLCP","stopListening_1","capture","MetricsInstrumentation","_reportAllChanges","_measurements","_performanceCursor","performance","mark","_trackCLS","_trackLCP","_trackFID","addPerformanceEntries","entryScriptSrc","entryScriptStartTimestamp","tracingInitMarkStartTime","responseStartTimestamp","requestStartTimestamp","timeOrigin","scripts","dataset","src","entryType","addNavigationSpans","responseStart","requestStart","addMeasureSpans","firstHidden","shouldRecord","resourceName","location","origin","addResourceSpans","_startChild","description","max","_trackNavigator","timeOrigin_1","oldValue","measurementTimestamp","normalizedValue","abs","cls","setMeasurements","_tagMetricInfo","_lcpEntry","element","url","trim","size","_clsEntry","sources","source","node","connection","effectiveType","isMeasurementValue","rtt","downlink","deviceMemory","String","hardwareConcurrency","addPerformanceNavigationTiming","eventEnd","addRequest","measureStartTimestamp","measureEndTimestamp","initiatorType","data","transferSize","encodedBodySize","decodedBodySize","end","start","responseEnd","ctx","startChild","isFinite","DEFAULT_TRACING_ORIGINS","defaultRequestInstrumentationOptions","traceFetch","traceXHR","tracingOrigins","instrumentOutgoingRequests","_options","shouldCreateSpanForRequest","urlMap","defaultShouldCreateSpan","origins","shouldCreateSpan","handlerData","fetchCallback","xhrCallback","fetchData","__span","response","setHttpStatus","request","headers","is","Request","append","xhr","__sentry_own_request__","__sentry_xhr__","__sentry_xhr_span_id__","status_code","setRequestHeader","instrumentRoutingWithDefaults","customStartTransaction","startTransactionOnPageLoad","startTransactionOnLocationChange","startingUrl","href","pathname","to","from","DEFAULT_MAX_TRANSACTION_DURATION_SECONDS","DEFAULT_BROWSER_TRACING_OPTIONS","markBackgroundTransactions","maxTransactionDuration","routingInstrumentation","BrowserTracing","_emitOptionsWarning","_configuredIdleTimeout","_metricOptions","_metrics","setupOnce","_getCurrentHub","instrumentRouting","_createRouteTransaction","beforeNavigate","parentContextFromHeader","getHeaderContext","expandedContext","trimEnd","modifiedContext","finalContext","idleTransaction","adjustTransactionDuration","header","getMetaContent","metaName","querySelector","getAttribute","maxDuration","diff","isOutdatedTransaction","SpanRecorder","_maxlen","Span","spanContext","traceId","substring","parentSpanId","childSpan","setData","httpStatus","spanStatus","fromHttpCode","UnknownError","isSuccess","sampledString","toContext","updateWithContext","parent_span_id","span_id","trace_id","start_timestamp","SpanStatus","Unauthenticated","PermissionDenied","NotFound","AlreadyExists","FailedPrecondition","ResourceExhausted","InvalidArgument","Unimplemented","Unavailable","Transaction","_hub","metadata","_trimEnd","setName","measurements","newMetadata","getTransport","recordLostEvent","SampleRate","finishedSpans","s","prev","current","debug_meta","hasMeasurements","TRACEPARENT_REGEXP","RegExp","hasTracingEnabled","extractTraceparentData","traceparent","matches","match","getActiveTransaction","msToSec","secToMs","SessionStatus","RequestSessionStatus","Outcome","htmlTreeAsString","elem","keyAttrs","currentElem","MAX_TRAVERSE_HEIGHT","MAX_OUTPUT_LEN","out","height","separator","sepLength","nextStr","_htmlElementAsString","reverse","classes","attr","tagName","keyAttrPairs","keyAttr","keyAttrPair","allowedAttrs","getLocationHref","oO","fallbackGlobalObject","getGlobalObject","g","window","lastHref","handlers","instrumented","instrument","instrumentConsole","instrumentDOM","instrumentXHR","instrumentFetch","instrumentHistory","instrumentError","instrumentUnhandledRejection","addInstrumentationHandler","handler","triggerHandlers","console","originalConsoleLevel","Function","originalFetch","getFetchMethod","getFetchUrl","fetchArgs","toUpperCase","requestKeys","requestValues","xhrproto","XMLHttpRequest","originalOpen","onreadystatechangeHandler","readyState","requestPos","args_1","body","onreadystatechange","original","readyStateArgs","originalSend","oldOnPopState","onpopstate","history","historyReplacementFunction","originalHistoryFunction","debounceTimerID","lastCapturedEvent","debounceDuration","shouldShortcircuitPreviousDebounce","target","shouldSkipDOMEvent","isContentEditable","makeDOMEventHandler","globalListener","triggerDOMHandler","bind","globalDOMEventHandler","proto","hasOwnProperty","originalAddEventListener","handlers_1","__sentry_instrumentation_handlers__","handlerForType","refCount","originalRemoveEventListener","handlers_2","_oldOnErrorHandler","onerror","msg","line","column","_oldOnUnhandledRejectionHandler","onunhandledrejection","isError","wat","toString","isInstanceOf","isErrorEvent","isDOMError","isDOMException","isString","isPrimitive","isPlainObject","isEvent","Event","isElement","Element","isRegExp","isThenable","isSyntheticEvent","base","PREFIX","consoleSandbox","levels","originalConsole","wrappedLevels","__sentry_original__","Logger","_enabled","disable","enable","uuid4","crypto","msCrypto","getRandomValues","arr","Uint16Array","pad","num","v","c","r","parseUrl","query","fragment","host","path","protocol","relative","getEventDescription","values","addExceptionTypeValue","addExceptionMechanism","newMechanism","exceptionValue0","defaultMechanism","handled","currentMechanism","mechanism","mergedData","defaultRetryAfter","parseRetryAfterHeader","headerDelay","parseInt","headerDate","parse","checkOrSetAlreadyCaught","__sentry_captured__","defineProperty","err","isNodeEnv","process","dynamicRequire","mod","require","loadModule","cwd","Memo","_hasWeakSet","WeakSet","_inner","memoize","obj","unmemoize","delete","fill","replacementFactory","wrapped","defineProperties","enumerable","urlEncode","object","encodeURIComponent","getWalkSource","stack","event_1","currentTarget","CustomEvent","detail","utf8Length","encodeURI","jsonSize","normalizeToSize","depth","maxSize","serialized","normalize","serializeValue","normalized","normalizeValue","_events","walk","memo","innerKey","extractExceptionKeysForMessage","maxLength","sort","includedKeys","dropUndefinedKeys","val","rv","defaultFunctionName","getFunctionName","fn","truncate","substr","safeJoin","delimiter","output","isMatchingPattern","pattern","test","supportsFetch","Headers","Response","isNativeFetch","func","supportsNativeFetch","fetch","doc","sandbox","head","contentWindow","supportsReferrerPolicy","referrerPolicy","supportsHistory","chrome","isChromePackagedApp","app","runtime","hasHistoryApi","pushState","replaceState","SyncPromise","executor","_state","_handlers","_resolve","_setResult","_reject","reason","_value","_executeHandlers","_attachHandler","cachedHandlers","onfulfilled","onrejected","all","collection","counter","resolvedCollection","TypeError","catch","finally","onfinally","isRejected","dateTimestampSource","nowSeconds","getBrowserPerformance","getNodePerformance","perfHooks","platformPerformance","timestampSource","dateTimestampInSeconds","timestampInSeconds","timestampWithMs","browserPerformanceTimeOrigin","threshold","performanceNow","dateNow","timeOriginDelta","timeOriginIsReliable","navigationStart","timing","hasNavigationStart","navigationStartDelta","navigationStartIsReliable","vueRouterInstrumentation","router","onError","beforeEach","isPageLoadNavigation","matched","params","originalFunctionToString","SDK_VERSION","DEFAULT_IGNORE_ERRORS","InboundFilters","clientOptions","_mergeOptions","_shouldDropEvent","_isSentryError","_isIgnoredError","_isDeniedUrl","_getEventFilterUrl","_isAllowedUrl","ignoreInternal","ignoreErrors","_getPossibleEventMessages","denyUrls","allowUrls","whitelistUrls","blacklistUrls","_getLastValidUrl","frames","frame","filename","stacktrace","frames_1","frames_2","FunctionToString","initAndBind","clientClass","debug","initialScope","setPrototypeOf","__proto__","setProtoOf","mixinProperties","prop","SentryError","_newTarget","DSN_REGEX","ERROR_MESSAGE","Dsn","_fromString","_fromComponents","_validate","withPassword","pass","port","projectId","publicKey","exec","lastPath","projectMatch","components","component","installedIntegrations","filterDuplicates","every","accIntegration","getIntegrationsToSetup","defaultIntegrations","userIntegrations","userIntegration","integrationsNames","alwaysLastToRun","setupIntegration","Status","ALREADY_SEEN_ERROR","BaseClient","backendClass","_integrations","_numProcessing","_backend","dsn","_dsn","_process","_getBackend","eventFromException","_captureEvent","promisedEvent","eventFromMessage","_isEnabled","_sendSession","getDsn","flush","_isClientDoneProcessing","clientFinished","transportFlushed","enabled","initialized","_updateSessionFromEvent","crashed","errored","exceptions","exceptions_1","exceptions_1_1","ex","sessionNonTerminal","shouldUpdateAndSend","Crashed","sendSession","ticked","tick","interval","setInterval","clearInterval","_prepareEvent","normalizeDepth","prepared","_applyClientOptions","_applyIntegrationsMetadata","finalScope","evt","_normalizeEvent","b","ensureNoCircularStructures","dist","maxValueLength","integrationsArray","sdk","_sendEvent","sendEvent","_processEvent","finalEvent","beforeSend","transport","isTransaction","EventProcessor","isInternalException","__sentry__","beforeSendResult","_ensureBeforeSendRv","processedEvent","BeforeSend","promise","nullErr","code","Success","RateLimit","Invalid","Failed","Unknown","Severity","NoopTransport","Skipped","BaseBackend","_transport","_setupTransport","_exception","_hint","_message","fromString","Debug","Info","Warning","Fatal","Critical","Log","UNKNOWN_FUNCTION","gecko","winjs","geckoEval","chromeEval","reactMinifiedRegexp","computeStackTrace","popSize","framesToPop","computeStackTraceFromStacktraceProp","popFrames","computeStackTraceFromStackProp","extractMessage","failed","isEval","submatch","parts","lines","isNative","extractSafariExtensionDetails","columnNumber","opera10Regex","opera11Regex","isSafariExtension","isSafariWebExtension","STACKTRACE_LIMIT","exceptionFromStacktrace","prepareFramesForEvent","eventFromPlainObject","rejection","__serialized__","eventFromStacktrace","localStack","firstFrameFunction","lastFrameFunction","colno","function","in_app","lineno","eventFromUnknownInput","attachStacktrace","eventFromString","errorEvent","domException","name_1","objectException","synthetic","getSdkMetadataForEnvelopeHeader","api","enhanceEventWithSdkInfo","sdkInfo","packages","sessionToSentryRequest","envelopeHeaders","sent_at","forceEnvelope","itemHeaders","getEnvelopeEndpointWithUrlEncodedAuth","eventToSentryRequest","eventType","useEnvelope","samplingMethod","req","getStoreEndpointWithUrlEncodedAuth","sample_rates","envelope","SENTRY_API_VERSION","API","tunnel","_dsnObject","_tunnel","getBaseApiEndpoint","getStoreEndpoint","_getIngestEndpoint","_encodedAuth","_getEnvelopeEndpoint","getStoreEndpointPath","getRequestHeaders","clientName","clientVersion","getReportDialogEndpoint","dialogOptions","endpoint","encodedOptions","auth","sentry_key","sentry_version","PromiseBuffer","_limit","_buffer","isReady","taskProducer","task","removedTask","drain","capturedSetTimeout","forget","cachedFetchImpl","getNativeFetchImplementation","fetchImpl","sendReport","isRealNavigator","hasSendBeacon","sendBeacon","supports","fetch_1","credentials","keepalive","CATEGORY_MAPPING","attachment","BaseTransport","_rateLimits","_outcomes","_api","_metadata","sendClientReports","_flushOutcomes","category","outcomes","envelopeHeader","discarded_events","quantity","_handleResponse","requestType","limited","_handleRateLimit","_disabledUntil","_isRateLimited","e_2","rlHeader","raHeader","limit","parameters","delay","_f","e_2_1","FetchTransport","_fetch","_sendRequest","sentryRequest","originalPayload","RateLimitBackoff","Promise","fetchParameters","QueueOverflow","NetworkError","XHRTransport","getResponseHeader","open","send","BrowserBackend","transportOptions","ignoreOnError","shouldIgnoreOnError","ignoreNextOnError","wrap","before","__sentry_wrapped__","sentryWrapped","wrappedArguments","arg","handleEvent","property","descriptor","getOwnPropertyDescriptor","configurable","injectReportDialog","script","async","onLoad","onload","injectionPoint","Breadcrumbs","addSentryBreadcrumb","_consoleBreadcrumb","_domBreadcrumb","_xhrBreadcrumb","_fetchBreadcrumb","_historyBreadcrumb","serializeAttribute","parsedLoc","parsedFrom","parsedTo","BrowserClient","showReportDialog","platform","DEFAULT_EVENT_TARGET","TryCatch","eventTarget","requestAnimationFrame","_wrapTimeFunction","_wrapRAF","_wrapXHR","_wrapEventTarget","originalCallback","eventName","wrappedEventHandler","originalEventHandler","xmlHttpRequestProps","wrapOptions","GlobalHandlers","_onErrorHandlerInstalled","_onUnhandledRejectionHandlerInstalled","stackTraceLimit","_installGlobalOnErrorHandler","_installGlobalOnUnhandledRejectionHandler","currentHub","hasIntegration","isFailedOwnDelivery","_eventFromIncompleteOnError","_enhanceEventWithInitialFrame","_eventFromRejectionWithPrimitive","ERROR_TYPES_RE","groups","DEFAULT_KEY","DEFAULT_LIMIT","LinkedErrors","_key","_handler","linkedErrors","_walkErrorTree","Dedupe","currentEvent","_previousEvent","previousEvent","_isSameMessageEvent","_isSameExceptionEvent","currentMessage","previousMessage","_isSameFingerprint","_isSameStacktrace","_getFramesFromEvent","currentFrames","previousFrames","frameA","frameB","_getExceptionFromEvent","previousException","currentException","currentFingerprint","previousFingerprint","UserAgent","referrer","Referer","window_1","SENTRY_RELEASE","autoSessionTracking","startSessionTracking","DEFAULT_HOOKS","classifyRE","classify","ROOT_COMPONENT_NAME","ANONYMOUS_COMPONENT_NAME","repeat","n","res","formatComponentName","vm","includeFile","$root","$options","_componentTag","file","__file","generateComponentTrace","_isVue","$parent","tree","currentRecursiveSequence","last","formattedTree","attachErrorHandler","config","errorHandler","warnHandler","silent","lifecycleHook","componentName","attachProps","propsData","$props","logErrors","hasConsole","VUE_OP","HOOKS","activate","create","mount","finishRootSpan","$_sentryRootSpanTimer","$_sentryRootSpan","createTracingMixins","hooks","mixins","_loop_1","operation","internalHooks","internalHooks_1","internalHooks_1_1","internalHook","isRoot","shouldTrack","trackComponents","$_sentrySpans","hooks_1","hooks_1_1","DEFAULT_CONFIG","Vue","vueInit","apps","mixin","tracingOptions","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_IMPORT_8___","___CSS_LOADER_URL_IMPORT_9___","___CSS_LOADER_URL_IMPORT_10___","___CSS_LOADER_URL_IMPORT_11___","___CSS_LOADER_URL_IMPORT_12___","___CSS_LOADER_URL_IMPORT_13___","___CSS_LOADER_URL_IMPORT_14___","___CSS_LOADER_URL_IMPORT_15___","___CSS_LOADER_URL_IMPORT_16___","___CSS_LOADER_URL_IMPORT_17___","___CSS_LOADER_URL_IMPORT_18___","___CSS_LOADER_URL_IMPORT_19___","___CSS_LOADER_URL_IMPORT_20___","___CSS_LOADER_URL_IMPORT_21___","___CSS_LOADER_URL_IMPORT_22___","___CSS_LOADER_URL_IMPORT_23___","___CSS_LOADER_URL_IMPORT_24___","___CSS_LOADER_URL_IMPORT_25___","___CSS_LOADER_URL_IMPORT_26___","___CSS_LOADER_URL_IMPORT_27___","___CSS_LOADER_URL_IMPORT_28___","___CSS_LOADER_URL_IMPORT_29___","___CSS_LOADER_URL_IMPORT_30___","___CSS_LOADER_URL_IMPORT_31___","___CSS_LOADER_URL_IMPORT_32___","___CSS_LOADER_URL_IMPORT_33___","___CSS_LOADER_URL_IMPORT_34___","___CSS_LOADER_URL_IMPORT_35___","___CSS_LOADER_URL_IMPORT_36___","___CSS_LOADER_URL_IMPORT_37___","___CSS_LOADER_URL_IMPORT_38___","___CSS_LOADER_URL_IMPORT_39___","___CSS_LOADER_URL_IMPORT_40___","___CSS_LOADER_URL_IMPORT_41___","___CSS_LOADER_URL_IMPORT_42___","___CSS_LOADER_URL_IMPORT_43___","___CSS_LOADER_URL_IMPORT_44___","___CSS_LOADER_URL_IMPORT_45___","___CSS_LOADER_URL_IMPORT_46___","___CSS_LOADER_URL_IMPORT_47___","___CSS_LOADER_URL_IMPORT_48___","___CSS_LOADER_URL_IMPORT_49___","___CSS_LOADER_URL_IMPORT_50___","___CSS_LOADER_URL_IMPORT_51___","___CSS_LOADER_URL_IMPORT_52___","___CSS_LOADER_URL_IMPORT_53___","___CSS_LOADER_URL_IMPORT_54___","___CSS_LOADER_URL_IMPORT_55___","___CSS_LOADER_URL_IMPORT_56___","___CSS_LOADER_URL_IMPORT_57___","___CSS_LOADER_URL_IMPORT_58___","___CSS_LOADER_URL_IMPORT_59___","___CSS_LOADER_URL_IMPORT_60___","___CSS_LOADER_URL_IMPORT_61___","___CSS_LOADER_URL_IMPORT_62___","___CSS_LOADER_URL_IMPORT_63___","___CSS_LOADER_URL_IMPORT_64___","___CSS_LOADER_URL_IMPORT_65___","___CSS_LOADER_URL_IMPORT_66___","___CSS_LOADER_URL_IMPORT_67___","___CSS_LOADER_URL_IMPORT_68___","___CSS_LOADER_URL_IMPORT_69___","___CSS_LOADER_URL_IMPORT_70___","___CSS_LOADER_URL_IMPORT_71___","___CSS_LOADER_URL_IMPORT_72___","___CSS_LOADER_URL_IMPORT_73___","___CSS_LOADER_URL_IMPORT_74___","___CSS_LOADER_URL_IMPORT_75___","___CSS_LOADER_URL_IMPORT_76___","___CSS_LOADER_URL_IMPORT_77___","___CSS_LOADER_URL_IMPORT_78___","___CSS_LOADER_URL_IMPORT_79___","___CSS_LOADER_URL_IMPORT_80___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","___CSS_LOADER_URL_REPLACEMENT_8___","___CSS_LOADER_URL_REPLACEMENT_9___","___CSS_LOADER_URL_REPLACEMENT_10___","___CSS_LOADER_URL_REPLACEMENT_11___","___CSS_LOADER_URL_REPLACEMENT_12___","___CSS_LOADER_URL_REPLACEMENT_13___","___CSS_LOADER_URL_REPLACEMENT_14___","___CSS_LOADER_URL_REPLACEMENT_15___","___CSS_LOADER_URL_REPLACEMENT_16___","___CSS_LOADER_URL_REPLACEMENT_17___","___CSS_LOADER_URL_REPLACEMENT_18___","___CSS_LOADER_URL_REPLACEMENT_19___","___CSS_LOADER_URL_REPLACEMENT_20___","___CSS_LOADER_URL_REPLACEMENT_21___","___CSS_LOADER_URL_REPLACEMENT_22___","___CSS_LOADER_URL_REPLACEMENT_23___","___CSS_LOADER_URL_REPLACEMENT_24___","___CSS_LOADER_URL_REPLACEMENT_25___","___CSS_LOADER_URL_REPLACEMENT_26___","___CSS_LOADER_URL_REPLACEMENT_27___","___CSS_LOADER_URL_REPLACEMENT_28___","___CSS_LOADER_URL_REPLACEMENT_29___","___CSS_LOADER_URL_REPLACEMENT_30___","___CSS_LOADER_URL_REPLACEMENT_31___","___CSS_LOADER_URL_REPLACEMENT_32___","___CSS_LOADER_URL_REPLACEMENT_33___","___CSS_LOADER_URL_REPLACEMENT_34___","___CSS_LOADER_URL_REPLACEMENT_35___","___CSS_LOADER_URL_REPLACEMENT_36___","___CSS_LOADER_URL_REPLACEMENT_37___","___CSS_LOADER_URL_REPLACEMENT_38___","___CSS_LOADER_URL_REPLACEMENT_39___","___CSS_LOADER_URL_REPLACEMENT_40___","___CSS_LOADER_URL_REPLACEMENT_41___","___CSS_LOADER_URL_REPLACEMENT_42___","___CSS_LOADER_URL_REPLACEMENT_43___","___CSS_LOADER_URL_REPLACEMENT_44___","___CSS_LOADER_URL_REPLACEMENT_45___","___CSS_LOADER_URL_REPLACEMENT_46___","___CSS_LOADER_URL_REPLACEMENT_47___","___CSS_LOADER_URL_REPLACEMENT_48___","___CSS_LOADER_URL_REPLACEMENT_49___","___CSS_LOADER_URL_REPLACEMENT_50___","___CSS_LOADER_URL_REPLACEMENT_51___","___CSS_LOADER_URL_REPLACEMENT_52___","___CSS_LOADER_URL_REPLACEMENT_53___","___CSS_LOADER_URL_REPLACEMENT_54___","___CSS_LOADER_URL_REPLACEMENT_55___","___CSS_LOADER_URL_REPLACEMENT_56___","___CSS_LOADER_URL_REPLACEMENT_57___","___CSS_LOADER_URL_REPLACEMENT_58___","___CSS_LOADER_URL_REPLACEMENT_59___","___CSS_LOADER_URL_REPLACEMENT_60___","___CSS_LOADER_URL_REPLACEMENT_61___","___CSS_LOADER_URL_REPLACEMENT_62___","___CSS_LOADER_URL_REPLACEMENT_63___","___CSS_LOADER_URL_REPLACEMENT_64___","___CSS_LOADER_URL_REPLACEMENT_65___","___CSS_LOADER_URL_REPLACEMENT_66___","___CSS_LOADER_URL_REPLACEMENT_67___","___CSS_LOADER_URL_REPLACEMENT_68___","___CSS_LOADER_URL_REPLACEMENT_69___","___CSS_LOADER_URL_REPLACEMENT_70___","___CSS_LOADER_URL_REPLACEMENT_71___","___CSS_LOADER_URL_REPLACEMENT_72___","___CSS_LOADER_URL_REPLACEMENT_73___","___CSS_LOADER_URL_REPLACEMENT_74___","___CSS_LOADER_URL_REPLACEMENT_75___","___CSS_LOADER_URL_REPLACEMENT_76___","___CSS_LOADER_URL_REPLACEMENT_77___","___CSS_LOADER_URL_REPLACEMENT_78___","___CSS_LOADER_URL_REPLACEMENT_79___","___CSS_LOADER_URL_REPLACEMENT_80___","exports","cssWithMappingToString","list","content","needLayer","modules","media","dedupe","layer","alreadyImportedModules","k","_k","__esModule","default","hash","needQuotes","utils","settle","cookies","buildURL","buildFullPath","parseHeaders","isURLSameOrigin","createError","requestData","requestHeaders","isFormData","password","unescape","Authorization","btoa","fullPath","baseURL","paramsSerializer","responseURL","responseHeaders","getAllResponseHeaders","responseData","responseType","responseText","statusText","onabort","ontimeout","timeoutErrorMessage","isStandardBrowserEnv","xsrfValue","withCredentials","xsrfCookieName","read","xsrfHeaderName","isUndefined","onDownloadProgress","onUploadProgress","upload","cancelToken","cancel","abort","Axios","mergeConfig","defaults","createInstance","defaultConfig","extend","axios","instanceConfig","Cancel","CancelToken","isCancel","promises","spread","isAxiosError","__CANCEL__","resolvePromise","token","throwIfRequested","InterceptorManager","dispatchRequest","interceptors","chain","interceptor","unshift","fulfilled","rejected","getUri","use","eject","h","isAbsoluteURL","combineURLs","requestedURL","enhanceError","transformData","throwIfCancellationRequested","transformRequest","merge","common","adapter","transformResponse","number","fileName","lineNumber","config1","config2","valueFromConfig2Keys","mergeDeepPropertiesKeys","defaultToConfig2Keys","directMergeKeys","getMergedValue","mergeDeepProperties","axiosKeys","otherKeys","validateStatus","fns","normalizeHeaderName","DEFAULT_CONTENT_TYPE","setContentTypeIfUnset","getDefaultAdapter","isArrayBuffer","isBuffer","isStream","isFile","isBlob","isArrayBufferView","buffer","isURLSearchParams","isObject","maxContentLength","maxBodyLength","thisArg","encode","serializedParams","isDate","hashmarkIndex","relativeURL","write","expires","secure","cookie","isNumber","toGMTString","decodeURIComponent","payload","originURL","msie","urlParsingNode","resolveURL","search","hostname","charAt","requestURL","parsed","normalizedName","ignoreDuplicateOf","FormData","ArrayBuffer","isView","getPrototypeOf","pipe","URLSearchParams","product","assignValue","a","stripBOM","charCodeAt","it","wellKnownSymbol","definePropertyModule","UNSCOPABLES","ArrayPrototype","f","S","unicode","Constructor","toObject","callWithSafeIterationClosing","isArrayIteratorMethod","toLength","createProperty","getIteratorMethod","arrayLike","step","iterator","O","C","argumentsLength","mapfn","mapping","iteratorMethod","toIndexedObject","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","fails","METHOD_NAME","argument","aFunction","IndexedObject","IS_RIGHT","that","callbackfn","left","right","anObject","iteratorClose","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","SKIP_CLOSING","ITERATION_SUPPORT","TO_STRING_TAG_SUPPORT","classofRaw","TO_STRING_TAG","CORRECT_ARGUMENTS","tryGet","tag","callee","ownKeys","getOwnPropertyDescriptorModule","MATCH","regexp","error1","error2","F","IteratorPrototype","createPropertyDescriptor","setToStringTag","Iterators","returnThis","IteratorConstructor","NAME","DESCRIPTORS","bitmap","writable","toPrimitive","propertyKey","$","createIteratorConstructor","createNonEnumerableProperty","redefine","IS_PURE","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","FORCED","CurrentIteratorPrototype","methods","KEY","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","forced","EXISTS","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classof","getBuiltIn","versions","v8","setGlobal","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","noTargetGet","sham","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","re","REPLACE_KEEPS_$0","REPLACE","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","string","variable","namespace","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","position","captures","namedCaptures","replacement","tailPos","m","symbols","ch","check","globalThis","propertyIsEnumerable","dummy","Wrapper","NewTarget","NewTargetPrototype","store","functionToString","inspectSource","set","NATIVE_WEAK_MAP","objectHas","shared","sharedKey","hiddenKeys","OBJECT_ALREADY_INITIALIZED","WeakMap","enforce","getterFor","TYPE","wmget","wmhas","wmset","facade","STATE","feature","detection","POLYFILL","NATIVE","Result","stopped","iterable","unboundFunction","iterFn","AS_ENTRIES","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","returnMethod","PrototypeOfArrayIteratorPrototype","arrayIterator","NEW_ITERATOR_PROTOTYPE","notify","toggle","macrotask","IS_IOS","IS_WEBOS_WEBKIT","IS_NODE","MutationObserver","WebKitMutationObserver","queueMicrotaskDescriptor","queueMicrotask","parent","exit","enter","nextTick","characterData","V8_VERSION","getOwnPropertySymbols","Symbol","searchParams","PromiseCapability","$$resolve","$$reject","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","A","B","symbol","alphabet","chr","T","j","activeXDocument","enumBugKeys","html","documentCreateElement","GT","LT","PROTOTYPE","SCRIPT","IE_PROTO","EmptyConstructor","scriptTag","NullProtoObjectViaActiveX","temp","parentWindow","NullProtoObjectViaIFrame","iframeDocument","iframe","JS","display","NullProtoObject","ActiveXObject","Properties","IE8_DOM_DEFINE","$defineProperty","P","Attributes","$getOwnPropertyDescriptor","internalObjectKeys","getOwnPropertyNames","CORRECT_PROTOTYPE_GETTER","ObjectPrototype","names","$propertyIsEnumerable","NASHORN_BUG","V","aPossiblePrototype","setter","CORRECT_SETTER","getOwnPropertyNamesModule","newPromiseCapability","x","promiseCapability","InternalStateModule","getInternalState","enforceInternalState","TEMPLATE","unsafe","simple","regexpExec","R","regexpFlags","stickyHelpers","nativeExec","nativeReplace","patchedExec","UPDATES_LAST_INDEX_WRONG","re1","re2","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","PATCH","reCopy","sticky","charsAdded","strCopy","multiline","ignoreCase","dotAll","RE","y","CONSTRUCTOR_NAME","TAG","uid","SHARED","mode","copyright","defaultConstructor","toInteger","requireObjectCoercible","CONVERT_TO_STRING","pos","first","second","codeAt","maxInt","tMin","tMax","skew","damp","initialBias","initialN","regexNonASCII","regexSeparators","OVERFLOW_ERROR","baseMinusTMin","stringFromCharCode","fromCharCode","ucs2decode","digitToBasic","digit","adapt","numPoints","firstTime","currentValue","inputLength","bias","basicLength","handledCPCount","handledCPCountPlusOne","RangeError","q","t","qMinusT","baseMinusT","label","encoded","labels","defer","channel","setImmediate","clearImmediate","MessageChannel","Dispatch","queue","ONREADYSTATECHANGE","runner","post","postMessage","port2","port1","onmessage","importScripts","integer","ceil","PREFERRED_STRING","valueOf","postfix","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","$includes","addToUnscopables","defineIterator","ARRAY_ITERATOR","setInternalState","iterated","kind","Arguments","$reduce","arrayMethodIsStrict","CHROME_VERSION","STRICT_METHOD","CHROME_BUG","$stringify","low","hi","fix","offset","replacer","space","Internal","OwnPromiseCapability","PromiseWrapper","nativeThen","NativePromise","redefineAll","setSpecies","anInstance","iterate","checkCorrectnessOfIteration","speciesConstructor","microtask","promiseResolve","hostReportErrors","newPromiseCapabilityModule","perform","PROMISE","getInternalPromiseState","NativePromisePrototype","PromiseConstructor","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","NATIVE_REJECTION_EVENT","PromiseRejectionEvent","UNHANDLED_REJECTION","REJECTION_HANDLED","PENDING","FULFILLED","REJECTED","HANDLED","UNHANDLED","GLOBAL_CORE_JS_PROMISE","FakePromise","INCORRECT_ITERATION","isReject","notified","reactions","ok","exited","reaction","fail","onHandleUnhandled","onUnhandled","initEvent","IS_UNHANDLED","isUnhandled","emit","unwrap","internalReject","internalResolve","wrapper","onFulfilled","onRejected","capability","$promiseResolve","remaining","alreadyCalled","race","inheritIfRequired","getFlags","NativeRegExp","RegExpPrototype","CORRECT_NEW","RegExpWrapper","thisIsRegExp","patternIsRegExp","flagsAreUndefined","proxy","nativeTest","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","rf","notARegExp","correctIsRegExpLogic","searchString","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","regExpExec","nativeMatch","maybeCallNative","matcher","rx","fullUnicode","matchStr","getRegExpFlags","getSubstitution","stringIndexOf","searchValue","replaceAll","replaceValue","IS_REG_EXP","functionalReplace","searchLength","advanceBy","endOfLastMatch","maybeToString","UNSAFE_SUBSTITUTE","results","accumulatedResult","nextSourcePosition","replacerArgs","sameValue","SEARCH","nativeSearch","searcher","previousLastIndex","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","symbolPrototype","symbolToString","native","desc","DOMIterables","ArrayIteratorMethods","ArrayValues","COLLECTION_NAME","Collection","CollectionPrototype","USE_NATIVE_URL","hasOwn","getIterator","$fetch","URL_SEARCH_PARAMS","URL_SEARCH_PARAMS_ITERATOR","getInternalParamsState","getInternalIteratorState","plus","sequences","percentSequence","bytes","percentDecode","sequence","deserialize","find","serialize","parseSearchParams","attribute","attributes","updateSearchParams","validateArgumentsLength","passed","required","URLSearchParamsIterator","URLSearchParamsConstructor","entryIterator","entryNext","updateURL","URLSearchParamsPrototype","getAll","found","entriesIndex","sliceIndex","boundFunction","getState","EOF","arrayFrom","toASCII","URLSearchParamsModule","NativeURL","getInternalSearchParamsState","getInternalURLState","pow","INVALID_AUTHORITY","INVALID_SCHEME","INVALID_HOST","INVALID_PORT","ALPHA","ALPHANUMERIC","DIGIT","HEX_START","OCT","DEC","HEX","FORBIDDEN_HOST_CODE_POINT","FORBIDDEN_HOST_CODE_POINT_EXCLUDING_PERCENT","LEADING_AND_TRAILING_C0_CONTROL_OR_SPACE","TAB_AND_NEW_LINE","parseHost","codePoints","parseIPv6","isSpecial","parseIPv4","percentEncode","C0ControlPercentEncodeSet","partsLength","numbers","part","radix","ipv4","numbersSeen","ipv4Piece","swaps","swap","address","pieceIndex","compress","pointer","char","findLongestZeroSequence","ipv6","maxIndex","currStart","currLength","serializeHost","ignore0","fragmentPercentEncodeSet","pathPercentEncodeSet","userinfoPercentEncodeSet","specialSchemes","ftp","http","https","ws","wss","scheme","includesCredentials","cannotHaveUsernamePasswordPort","cannotBeABaseURL","isWindowsDriveLetter","startsWithWindowsDriveLetter","third","shortenURLsPath","pathSize","isSingleDot","segment","isDoubleDot","SCHEME_START","SCHEME","NO_SCHEME","SPECIAL_RELATIVE_OR_AUTHORITY","PATH_OR_AUTHORITY","RELATIVE","RELATIVE_SLASH","SPECIAL_AUTHORITY_SLASHES","SPECIAL_AUTHORITY_IGNORE_SLASHES","AUTHORITY","HOST","HOSTNAME","PORT","FILE","FILE_SLASH","FILE_HOST","PATH_START","PATH","CANNOT_BE_A_BASE_URL_PATH","QUERY","FRAGMENT","parseURL","stateOverride","bufferCodePoints","failure","seenAt","seenBracket","seenPasswordToken","codePoint","encodedCodePoints","URLConstructor","baseState","urlString","searchParamsState","serializeURL","getOrigin","getProtocol","getUsername","getPassword","getHost","getHostname","getPort","getPathname","getSearch","getSearchParams","getHash","URLPrototype","accessorDescriptor","getter","nativeCreateObjectURL","createObjectURL","nativeRevokeObjectURL","revokeObjectURL","blob","FRAME_ANIMATION_STEP_TIME","requestID","setAnimationFrameMethods","nativeRequest","webkitRequestAnimationFrame","mozRequestAnimationFrame","oRequestAnimationFrame","msRequestAnimationFrame","nativeCancel","cancelAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","oCancelAnimationFrame","msCancelAnimationFrame","CSS_TRANSITION_EASING_REGEX","TransitionTimingFuncMap","linear","swing","ease","polynomBezier","x1","y1","x2","y2","Cx","Bx","Ax","Cy","By","Ay","bezierX","derivativeX","z","easing","convertTransitionTimingFuncToEasing","cssTransitionEasing","forceName","coeffs","parseFloat","easingName","getEasing","removeEventName","RELATIVE_VALUE_REGEX","ANIM_DATA_KEY","ANIM_QUEUE_KEY","TRANSFORM_PROP","TransitionAnimationStrategy","initAnimation","$element","css","transitionProperty","addClass","setProps","deferred","cleanupWhen","transitionAnimation","_finishTransition","always","_cleanup","resolveWith","_completeAnimationCallback","rejectWith","animate","_startAnimation","simulatedEndEventTimer","transitionEndFired","simulatedTransitionEndFired","transitionEndEventFullName","transitionEndEventName","cleanup","waitForJSCompleteTimer","off","one","on","fx","_simulatedTransitionEndDelay","transitionDelay","transitionDuration","transitionTimingFunction","removeClass","jumpToEnd","FrameAnimationStrategy","_normalizeValue","_parseTransform","frameAnimation","draw","animationFrameId","delayTimeout","_animationStep","transformString","translateData","scaleData","rotateData","translate","scale","_calcStepValue","currentDuration","calcValueRecursively","propName","endPropValue","numericValue","FallbackToNoAnimationStrategy","isSynchronous","getAnimationStrategy","animationStrategies","transition","noAnimation","strategy","baseConfigValidator","animationType","validate","typeMessage","isObjectConfigValidator","isStringConfigValidator","CustomAnimationConfigurator","setup","CssAnimationConfigurator","validateConfig","positionAliases","my","at","bottom","SlideAnimationConfigurator","positioningConfig","of","direction","setupPosition","_setUpConfig","_initNewPosition","relativeValue","_getRelativeValue","FadeAnimationConfigurator","_from$opacity","_to$opacity","defaultFromOpacity","defaultToOpacity","fromOpacity","opacity","toOpacity","skipElementInitialStyles","visibility","PopAnimationConfigurator","fromScale","toScale","_getCssTransform","animationConfigurators","custom","slide","slideIn","slideOut","fade","fadeIn","fadeOut","getAnimationConfigurator","defaultJSConfig","complete","defaultCssConfig","setupAnimationOnElement","configurator","onElementAnimationComplete","animation","removeData","startAnimationOnElement","isStarted","stopAnimationOnElement","startTimeout","scopedRemoveEvent","subscribeToRemoveEvent","createAnimation","initialConfig","pushInAnimationQueue","queueData","getAnimQueueData","writeAnimQueueData","isAnimating","shiftFromAnimationQueue","destroyAnimQueueData","executeAnimation","win","calculate","currentPosition","scrollTop","scrollLeft","animationTypes","scrollbarWidth","horzRe","vertRe","collisionRe","scaleRe","IS_SAFARI","safari","normalizeAlign","raw","pair","w","normalizeOffset","normalizeCollision","getAlignFactor","align","inverseAlign","calculateOversize","bounds","oversize","myLocation","collisionSide","initMyLocation","atLocation","atAlign","atSize","myAlign","mySize","collisionResolvers","fit","flip","inverseData","flipfit","none","calculateScrollbarWidth","$scrollDiv","width","overflow","appendTo","offsetWidth","clientWidth","defaultPositionResult","calculatePosition","what","$what","currentOffset","collision","boundary","boundaryOffset","preventDefault","pageX","pageY","real","deviceType","visualViewport","offsetLeft","offsetTop","innerWidth","outerWidth","innerHeight","outerHeight","ofRect","getOffsetWithoutScale","windowWidth","windowHeight","documentElement","getDocumentElement","hZoomLevel","touch","vZoomLevel","clientHeight","boundaryWidth","boundaryHeight","$boundary","boundaryPosition","preciser","precise","round","setScaleProperty","transformProp","styleAttr","isEmpty","stylePropIsValid","isNode","transform","$startElement","_currentElement$getAt","_currentElement$style","_style$match","$currentElement","currentElement","targetPosition","TRANSLATOR_DATA_KEY","TRANSFORM_MATRIX_REGEX","TRANSLATE_REGEX","locate","getTranslate","isPercentValue","cacheTranslate","clearCache","getTranslateCss","xValueString","yValueString","transformValue","matrix","is3D","move","resetPosition","finishTransition","originalTransition","stylesConfig","offsetHeight","parseTranslate","translateString","Action","action","_action","_beforeExecute","beforeExecute","_afterExecute","afterExecute","_validatingTargetName","validatingTargetName","excludeValidators","_excludeValidators","execute","argsBag","_validateAction","_executeAction","executors","_executor$validate","_executor$execute","registerExecutor","unregisterExecutor","_len","createValidatorByTargetElement","disabled","$target","readOnly","wrapOverridden","baseProto","methodName","prevCallBase","callBase","clonePrototype","members","overridden","memberName","member","include","classObj","hasClassObjOwnProperty","isES6Class","_includedCtors","_includedPostCtors","ctor","postCtor","subclassOf","parentClass","hasParentProperty","baseClass","abstract","copyStatic","destination","classImpl","inherit","inheritor","includedCtors","includedPostCtors","hasNegation","newValue","equals","oldValueIsNaN","newValueIsNaN","isElementNode","cachedGetters","cachedSetters","OptionManager","optionsByReference","_optionsByReference","_changingCallback","_changedCallback","_namePreparedCallbacks","_setByReference","rulesOptions","fieldName","_setPreparedValue","previousValue","functionsAsIs","unwrapObservables","_prepareRelevantNames","valueName","_name","onRelevantNamesPrepared","callBack","onChanging","onChanged","Options","defaultOptions","deprecatedOptions","_deprecatedCallback","_startChangeCallback","_endChangeCallback","_default","_deprecated","_deprecatedNames","_initDeprecatedNames","_optionManager","_setRelevantNames","_cachedOptions","_rules","_initial","_initialOptions","_getByRules","optionName","rules","_notifyDeprecated","option","info","_normalizeName","_setField","_clearField","fullName","fieldObject","previousFieldName","deprecate","alias","addRules","applyRules","onDeprecated","onStartChange","onEndChange","isInitial","initialValue","initial","areFunctions","isGetter","reset","field","getAliasesByName","aliasName","isDeprecated","cache","PostponedOperations","_postponedOperations","postponedPromise","completePromise","callPostponedOperations","getEventName","actionName","isInnerOption","Component","_setDeprecatedOptions","_deprecatedOptions","_getDeprecatedOptions","_getDefaultOptions","onInitialized","onOptionChanged","onDisposing","defaultOptionsRules","_defaultOptionsRules","_setOptionsByDevice","_convertRulesToOptions","_isInitialOptionValue","_setOptionsByReference","_getOptionsByReference","_optionChangedCallbacks","_disposingCallbacks","_eventsStrategy","eventsStrategy","_updateLockCount","postponedOperations","_createOptions","beginUpdate","_initialized","_optionChanging","_logDeprecatedOptionWarning","_notifyOptionChanged","endUpdate","onInitializing","_initOptions","_init","_createOptionChangedAction","fireWith","since","_logDeprecatedComponentWarning","_optionChangedAction","_createActionByOption","_createDisposingAction","_disposingAction","_optionChanged","_dispose","empty","_disposed","_lockUpdate","_unlockUpdate","_isUpdateAllowed","_isInitializingRequired","_initializing","isInitialized","_commitUpdate","_initializeComponent","optionNames","_defaultActionArgs","_cancelOptionChange","initialOption","_defaultActionConfig","_createAction","actionSource","actionValue","actionFunc","hasEvent","_len2","_key2","fireEvent","wrapActionsBeforeExecute","beforeActionExecute","wrappedAction","onActionCreated","eventHandler","hasActionSubscription","isOptionDeprecated","_setOptionWithoutOptionChange","_getOptionValue","resetOption","registerComponent","componentClass","fire","registerRendererComponent","isMemberInvoke","memberArgs","each","getInstance","memberValue","rtlEnabled","defaultCurrency","defaultUseCurrencyAccountingStyle","oDataFilterToLower","serverDecimalSeparator","decimalSeparator","thousandsSeparator","forceIsoDateParsing","useLegacyStoreResult","useJQuery","editorStylingMode","useLegacyVisibleIndex","floatingActionButtonConfig","icon","closeIcon","maxSpeedDialActionCount","shading","optionsParser","optionsString","deprecatedFields","configMethod","newConfig","deprecatedField","DevExpress","KNOWN_UA_TABLE","iPhone","iPhone5","iPhone6","iPhone6plus","iPad","iPadMini","androidPhone","androidTablet","msSurface","desktop","DEFAULT_DEVICE","phone","tablet","android","ios","generic","grade","mac","uaParsers","isPhone","isTablet","isDesktop","isMac","isIPhone4","screen","worseThan4_4","Devices","_window","_realDevice","_getDevice","_currentDevice","_currentOrientation","changed","_recalculateOrientation","deviceOrName","_forced","_getDeviceOrNameFromWindowScope","_getDeviceNameFromSessionStorage","forceDevice","orientation","isRippleEmulator","tinyHippos","_getCssClasses","device","realDevice","isSimulator","attachCssClasses","_deviceClasses","detachCssClasses","_isSimulator","forceSimulator","deviceName","_fromConfig","ua","_fromUA","sessionStorage","getItem","shortcuts","parser","_changeOrientation","$window","_currentWidth","devices","viewPortElement","viewPort","prevViewport","ELEMENT_NODE","TEXT_NODE","DOCUMENT_NODE","DOCUMENT_FRAGMENT_NODE","nativeDOMAdapterStrategy","querySelectorAll","selector","elementMatches","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","items","_document","createElementNS","ns","isTextNode","isDocument","isDocumentFragment","removeElement","insertElement","parentElement","newElement","nextSiblingElement","insertBefore","setProperty","setText","setClass","isAdd","setStyle","getDocument","getActiveElement","activeElementHolder","getRootNode","activeElement","_element$getRootNode","_element$getRootNode2","getBody","createDocumentFragment","getLocation","getSelection","selection","getReadyState","getHead","hasDocumentProperty","listen","elementsFromPoint","ANONYMOUS_TEMPLATE_NAME","TEMPLATE_OPTIONS_NAME","TEMPLATE_WRAPPER_CLASS","DX_POLYMORPH_WIDGET_TEMPLATE","_ref","model","widgetName","widget","widgetElement","widgetOptions","_createComponent","TemplateManager","anonymousTemplateName","_tempTemplates","_defaultTemplates","_anonymousTemplateName","_createElement","_createTemplateIfNeeded","createDefaultOptions","integrationOptions","watchMethod","skipImmediate","templates","useDeferUpdateForTemplates","addDefaultTemplates","tempTemplate","extractTemplates","$el","_extractTemplates","anonymousTemplateMeta","_extractAnonymousTemplate","suitableTemplates","_ref2","detach","_createTemplate","$anonymousTemplate","contents","$notJunkTemplateContent","isEmptyText","templateSource","cachedTemplate","getTemplate","_ref3","isAsyncTemplate","skipTemplates","templateSourceResult","DOMComponent","elementAttr","_useTemplates","_customClass","_$element","_getSynchronizableOptionsForCreateComponent","_checkFunctionValueDeprecation","_visibilityChanged","_dimensionChanged","_attachWindowResizeCallback","_initTemplateManager","instanceCustomRules","_classCustomRules","isCustomOption","_isDimensionChangeSupported","windowResizeCallBack","_windowResizeCallBack","_renderComponent","_initMarkup","_render","_renderElementAttributes","_toggleRTLDirection","_renderVisibilityChange","_renderDimensions","_attachVisibilityChangeHandlers","classNames","class","_attachDimensionChangeHandlers","_isVisibilityChangeSupported","_isCssUpdateRequired","_isHidden","_isVisible","_checkVisibilityChanged","isVisible","_clean","_modelByElement","modelByElement","_invalidate","_requireRefresh","_refresh","_templateManager","_detachWindowResizeCallback","rtl","toggleClass","synchronizableOptions","nestedComponentOptions","nestedComponentConfig","_extendConfig","optionChangedHandler","extendConfig","_removeAttributes","_removeClasses","cssClass","lastIndexOf","_updateDOMComponent","renderRequired","_getAnonymousTemplateName","createTemplate","_initTemplates","anonymousTemplate","_getTemplateByOption","_getTemplate","_saveTemplate","rule","getPublicElement","dataMap","strategyChanging","beforeCleanDataFunc","afterCleanDataFunc","setDataStrategy","cleanData","nodes","beforeCleanData","cleanDataRecursive","cleanSelf","childElements","getElementsByTagName","elementData","elements","E0001","E0002","E0003","E0004","E0005","E0006","E0007","E0008","E0009","E0010","E0011","E0012","E0013","E0014","E0015","E0017","E0018","E0020","E0021","E0022","E0023","E0024","E0025","E0100","E0101","E0102","E0103","E0110","E0120","E0121","W0000","W0001","W0002","W0003","W0004","W0005","W0006","W0007","W0008","W0009","W0010","W0011","W0012","W0013","W0014","W0015","W0016","W0017","W0018","EventsStrategy","owner","_owner","eventArgs","syncStrategy","addFn","originalAdd","Guid","_normalize","_generate","MemorizedCallbacks","memory","convertRulesToOptions","currentDevice","ruleOptions","deviceFilter","deviceMatch","normalizeOptions","getFieldName","getParentName","getNestedOptionValue","optionsObject","createDefaultOptionRules","renderer","initRender","toArray","dxRenderer","repeatMethod","setAttributeValue","attrName","show","hide","removeAttr","hasClass","contains","_className","appendElements","wrapTR","tBodies","setCss","getComputedStyle","prepend","prependTo","insertAfter","after","wrapInner","replaceWith","cloneNode","elementId","queryId","_element$host","getClientRects","not","siblings","parentChildNodes","eq","parents","closest","previousSibling","targets","emptyArray","offsetParent","marginTop","marginLeft","getBoundingClientRect","parentOffset","nodeName","offsetProp","scrollWindow","scrollTo","pageYOffset","pageXOffset","directionStrategy","rendererWrapper","ResizeObserverMock","unobserve","ResizeObserverSingleton","ResizeObserver","_callbacksMap","Map","_observer","_this$_callbacksMap$g","resizeObserverSingleton","watchChanges","rawData","fields","fieldsMap","fieldsDispose","globalDispose","dataWithRawFields","resolvedData","missedFields","watchHandlers","fieldGetter","BindableTemplate","_fields","_fieldsMap","_watchMethod","_renderCore","$container","ChildDefaultTemplate","EmptyTemplate","FunctionTemplate","renderedCallbacks","TemplateBase","$result","onRendered","renovated","transclude","_element","_ensureResultInContainer","resultInContainer","resultInBody","nativeXMLHttpRequest","getXhr","SUCCESS","ERROR","TIMEOUT","NO_CONTENT","PARSER_ERROR","isStatusSuccess","hasContent","paramsConvert","createScript","removeScript","scriptNode","appendToHead","evalScript","evalCrossDomainScript","events","load","loadHandler","getAcceptHeader","dataType","scriptAccept","accepts","xml","json","jsonp","getContentTypeHeader","defaultContentType","getMethod","contentType","getDataFromResponse","postProcess","isCrossDomain","crossDomain","originAnchor","urlAnchor","setHttpTimeout","customStatus","getJsonpOptions","callbackName","jsonpCallback","callbackParameter","getRequestOptions","paramsAlreadyString","Accept","sendRequest","timeoutId","needScriptEvaluation","requestOptions","onprogress","onloadstart","xhrFields","createOccurrenceMap","array","_map$value","wrapToArray","getUniqueValues","getIntersection","firstArray","secondArray","secondArrayMap","removeDuplicates","toRemove","toRemoveMap","normalizeIndexes","indexPropName","currentItem","needIndexCallback","indexedItems","currentIndex","shouldUpdateIndex","groupBy","getGroupName","groupedResult","_groupedResult$groupN","groupName","getKeyWrapper","getKey","getSameNewByOld","oldItem","newItems","newIndexByKey","isKeysEqual","oldKeys","newKeys","findChanges","oldItems","isItemEquals","oldIndexByKey","addedCount","removeCount","itemCount","newItem","oldNextIndex","nextOldItem","isRemoved","oldIndex","webkitRegExp","mozillaRegExp","browserFromUA","browserName","browserVersion","webkit","callOnce","_wrappedHandler","Callback","_list","_queue","_firing","_fired","_firingIndexes","_fireCore","firingIndexes","stopOnFalse","unique","fired","Callbacks","executingName","ensureDefined","executeAsync","normalizedContext","timerId","delayedFuncs","delayedNames","delayedDeferreds","deferExecute","oldExecutingName","currentDelayedCount","deferRender","deferUpdate","deferRenderer","deferUpdater","findBestMatches","targetFilter","mapFn","bestMatches","maxMatchCount","itemSrc","matchCount","paramName","targetValue","mismatch","valueItem","splitPair","_raw$x","_raw$y","pairToObject","preventRound","getKeyHash","keyHash","escapeRegExp","applyServerDecimalSeparator","noop","asyncNoop","grep","checkFunction","invert","expectedCheck","arraysEqualByValue","array1","array2","equalByValue","objectsEqualByValue","object1","object2","strict","propertyName","_propertyName","maxEqualityDepth","comparisonResult","getConsoleMethod","assert","unwrapVariable","isWrapped","bracketsToDots","expr","getPathParts","readPropValue","assignPropValue","propValue","prepareOptions","compileGetter","functionAsIs","hasDefaultValue","pathPart","combineGetters","getters","compiledGetters","pathItem","ensurePropValueDefined","compileSetter","lastLevelIndex","levelIndex","propertyValue","isPropertyFunc","toComparable","caseSensitive","getTime","timeIntervals","millisecond","minute","hour","day","week","month","quarter","year","toMilliseconds","DAYS_IN_WEEK","THURSDAY_WEEK_NUMBER","SUNDAY_WEEK_NUMBER","USUAL_WEEK_COUNT_IN_YEAR","dateUnitIntervals","getDatesInterval","startDate","endDate","intervalUnit","millisecondCount","getNextDateUnit","unit","withWeeks","getDateUnitInterval","convertMillisecondsToDateUnits","dateUnitCount","dateUnitInterval","convertDateUnitToMilliseconds","dateToMilliseconds","tickInterval","milliseconds","dateUnit","count","maxInterval","tickIntervalToFormatMap","getDateFormatByTickInterval","getQuarter","getFirstQuarterMonth","correctDateWithUnitBeginning","date","dateInterval","withCorrection","firstDayOfWeek","firstQuarterMonth","oldDate","setMonth","setDate","setHours","getFirstWeekDate","getMonth","fixTimezoneGap","trimTime","setToDayEnd","getDate","getDatesDifferences","date1","date2","differences","getFullYear","getHours","getMinutes","getSeconds","getMilliseconds","getTimezonesDifference","addDateInterval","dir","intervalObject","getDateIntervalByString","years","setFullYear","quarters","months","weeks","days","hours","setTime","minutes","seconds","addInterval","isNegative","getSequenceByInterval","cur","intervals","getViewFirstCellDate","viewType","createDateWithFullYear","getFirstYearInDecade","getFirstDecadeInCentury","getViewLastCellDate","getLastMonthDay","getViewMinBoundaryDate","resultDate","getViewMaxBoundaryDate","getViewUp","typeView","getViewDown","getDifferenceInMonth","difference","getDifferenceInMonthForCells","intervalString","sameDate","sameMonthAndYear","sameYear","sameHoursAndMinutes","sameDecade","startDecadeDate1","startDecadeDate2","sameCentury","startCenturyDate1","startCenturyDate2","getShortDateFormat","getFirstMonthDate","getLastMonthDate","getDay","getUTCTime","UTC","getDayNumber","ms","getFirstDateInYear","getLastDateInYear","getDayWeekNumber","getWeekNumber","firstWeekDayInYear","lastWeekDayInYear","daysInFirstWeek","weekNumber","lastDateInPreviousYear","isSunday","isThursday","_lastDateInPreviousYear","normalizeDateByWeek","currentDate","differenceInDays","dateUtils","dateInRange","format","normalizeDate","intervalsOverlap","firstMin","firstMax","secondMin","secondMax","dateTimeFromDecimal","roundDateByStartDayHour","startDayHour","normalizedDate","newDate","sign","trial","roundToHour","setMinutes","getTimezoneOffset","makeDate","getDatesOfInterval","sameMonth","view","NUMBER_SERIALIZATION_FORMAT","DATE_SERIALIZATION_FORMAT","DATETIME_SERIALIZATION_FORMAT","ISO8601_PATTERN","ISO8601_TIME_PATTERN","ISO8601_PATTERN_PARTS","DATE_SERIALIZATION_PATTERN","MILLISECOND_LENGHT","dateParser","skipISO8601Parsing","parseISO8601String","parseDate","getTimePart","isDefaultSerializationFormat","getDateSerializationFormat","parsedValue","timeZoneHour","timeZoneMinute","correctYear","getIso8601Format","useUtc","deserializeDate","serializeDate","serializationFormat","deferredConfig","_DeferredObj","_promise","callbackResult","fromPromise","whenFunc","resolvedCount","updateState","Deferred","when","BaseClass","InjectedClass","initialFields","injectFields","injectionObject","inject","resetInjection","resetActiveElement","_activeElement$blur","blur","clearSelection","removeAllRanges","closestCommonParent","startTarget","endTarget","$startTarget","$endTarget","$startParents","$endParents","startingParent","extractTemplateMarkup","templateTag","$node","normalizeTemplateElement","clipboardText","clipboard","originalEvent","clipboardData","getData","compareDocumentPosition","DOCUMENT_POSITION_CONTAINS","createTextElementHiddenCopy","elementStyles","includePaddings","fontStyle","fontVariant","fontWeight","fontSize","fontFamily","letterSpacing","border","paddingTop","paddingRight","paddingBottom","paddingLeft","whiteSpace","float","isElementInDom","shadowHost","ERROR_URL","baseErrors","ERROR_MESSAGES","makeError","combineMessage","formatMessage","formatDetails","details","getErrorUrl","__id","__details","extendFromObject","overrideExistingValues","deep","sourceValue","sourceValueIsArray","isTagName","tagWrappers","tagsCount","startTags","endTags","thead","td","col","tr","tbody","colgroup","caption","tfoot","th","parseHTML","firstRootTag","tagWrapper","lastChild","isTablePart","ICON_CLASS","SVG_ICON_CLASS","getImageSourceType","getImageContainer","_upperCaseFirst","_chop","dasherize","camelize","upperFirst","humanize","titleize","DIGIT_CHARS","captionize","captionList","isPrevCharNewWord","isNewWord","fitIntoRange","minValue","maxValue","isMinValueUndefined","isMaxValueUndefined","inRange","getExponent","toExponential","getExponentialNotation","mantissa","exponent","multiplyInExponentialForm","exponentShift","exponentialNotation","_isEdgeBug","toPrecision","adjust","separatedAdjustedValue","precision","getPrecision","separatedValue","absValue","isExponentValue","integerPart","positionOfDelimiter","orderEach","Clone","isNumberX","isNumberY","assignValueToProperty","assignByReference","deepExtendArraySafe","changes","extendComplexObject","goDeeper","getDefaultAlignment","isRtlEnabled","getBoundingRect","COMPONENT_NAMES_DATA_KEY","ANONYMOUS_COMPONENT_DATA_KEY","componentNames","nextAnonymousComponent","getName","newName","generatedName","attachInstanceToElement","componentInstance","disposeFn","getInstanceByElement","subscribeReady","removeListener","readyCallbacks","windowExists","resizeCallbacks","prevSize","originalCallbacksAdd","originalCallbacksRemove","formatSize","handleResize","changedDimension","setPrevSize","SelectionFilterCreator","selectedItemKeys","isSelectAll","selectedItemKeyHashesMap","getLocalFilter","keyGetter","equalKeys","equalByReference","keyExpr","functionFilter","getExpr","filterExpr","filterExprPart","getFilterForPlainKey","itemKeyValue","currentKeyExpr","currentKeyValue","getCombinedFilter","dataSourceFilter","combinedFilter","normalizeKeys","keyOf","selectedKeyHashesMap","normalizedKeys","keyValue","DX_RULE_PREFIX","ownerDocumentStyleSheet","createConstructedStyleSheet","rootNode","CSSStyleSheet","styleElement","sheet","processRules","targetStyleSheet","styleSheets","needApplyAllStyles","cssRules","insertRule","_rule$selectorText","_rule$cssRules","_rule$cssRules$","_rule$cssRules$$selec","_rule$name","_rule$style","isDxRule","selectorText","startsWith","cssText","addShadowDomStyles","_el$getRootNode","root","currentShadowDomStyleSheet","adoptedStyleSheets","isPositionInElementRectangle","rect","createQueue","shiftIndex","getShadowElementsFromPoint","elementQueue","childNode","Node","pointerEvents","SPECIAL_HEIGHT_VALUES","getSizeByStyles","getElementBoxParams","beforeName","afterName","padding","margin","getElementComputedStyle","_element$ownerDocumen","defaultView","getCSSProperty","_element$style","boxIndices","dimensionComponents","getComponentThickness","dimension","suffix","getSize","box","offsetFieldName","currentBox","targetBox","targetBoxIndex","currentBoxIndex","coeff","scrollThickness","boxPart","paddingAndBorder","getContainerHeight","parseHeight","getHeightWithOffset","operationString","addOffsetToMaxHeight","maxHeight","addOffsetToMinHeight","minHeight","getVerticalOffsets","withMargins","boxParams","getVisibleHeight","boundingClientRect","implementationsMap","getWidth","elementSizeHelper","setWidth","getHeight","_len3","_key3","setHeight","_len4","_key4","getOuterWidth","_len5","_key5","setOuterWidth","_len6","_key6","getOuterHeight","_len7","_key7","setOuterHeight","_len8","_key8","getInnerWidth","_len9","_key9","setInnerWidth","_len10","_key10","getInnerHeight","_len11","_key11","setInnerHeight","_len12","_key12","sizeProperty","elementSize","includeMargin","partialName","isOuter","isInner","sizeAdjustment","isBorderBox","boxSizing","getWindowByElement","getOffset","docElem","clientTop","clientLeft","getSessionStorage","encodeHtml","encodeRegExp","splitQuad","quadToObject","quad","placeholderReg","SPACE_REGEXP","jsPrefixes","cssPrefixes","Webkit","Moz","getStyles","forEachPrefixes","cssPrefixesCount","jsPrefix","prefixedProp","lowerPrefixedProp","styleProp","originalName","stylePropPrefix","specific","pxExceptions","normalizeStyleProp","setDimensionProperty","maxTouchPoints","transitionEndEventNames","webkitTransition","MozTransition","OTransition","supportProp","isNativeScrollingSupported","isNativeScrollDevice","inputType","detectTouchEvents","hasWindowProperty","detectPointerEvent","touchEvents","touchPointersPresent","nativeScrolling","currentTemplateEngine","templateEngines","registerTemplateEngine","templateEngine","setTemplateEngine","getCurrentTemplateEngine","compile","jQuery","tmpl","jsrender","Mustache","Hogan","Handlebars","doT","Template","_compiledTemplate","findTemplates","suitableTemplatesByName","rawTemplates","templatesMap","_findBestMatches$","suitableTemplate","addOneRenderedCall","templateResult","getNormalizedTemplateArgs","validateTemplateSource","templateKey","defaultCreateElement","acquireIntegrationTemplate","integrationTemplate","acquireTemplate","defaultTemplates","types","typeOfObject","isBoolean","isExponential","isDefined","isEmptyObject","isWindow","isRenderer","jquery","isPromise","isDeferred","isWritableWrapped","compare","maxLevel","normalizeArg","xItem","yItem","ready","changeCallback","$originalViewPort","$current","isNewViewportFound","prevViewPort","originalViewPort","hasWindowValue","hasWindow","windowObject","getWindow","hasProperty","defaultScreenFactorFunc","getCurrentScreenFactor","screenFactorCallback","screenFactorFunc","getNavigator","queryByOptions","storeImpl","Store","_errorHandler","_useDefaultSearch","_clearCache","_customLoadOptions","_keyGetter","_requireKey","_withLock","_loadImpl","createQuery","enumerate","totalCount","_totalCountImpl","byKey","extraOptions","_addFailHandlers","_byKeyImpl","insert","_insertImpl","callbackValues","callbackKey","_updateImpl","beforePushArgs","waitFor","_pushImpl","_removeImpl","registerClass","Iterator","countable","ArrayIterator","WrappedIterator","iter","MapIterator","mapper","hasNext","defaultCompare","xValue","yValue","SortIterator","_wrap","thenBy","sortedIter","_ensureSorted","_compare","_unwrap","record","wrappedItem","xIndex","yIndex","rulesCount","compareResult","compileCriteria","compileEquals","negate","crit","ops","isConjunctiveOperator","isConjunctiveNextOperator","criteria","operatorFn","getterValue","FilterIterator","GroupIterator","_ensureGrouped","groupedIter","SelectIterator","SliceIterator","skip","take","arrayQueryImpl","queryOptions","handleError","aggregateCore","aggregator","seed","finalize","NaN","accumulator","standardAggregate","select","chainQuery","selectProp","sortBy","MAX_VALUE","aggregate","sum","avg","ArrayStore","initialArray","_array","keyInfo","hasKey","keyOrKeys","findItems","groupCount","childItems","collapsedItems","indexByKey","getItems","generateDataByKeyMap","_dataByKeyMap","_dataByKeyMapLength","dataByKeyMap","arrayLength","getCacheValue","getHasKeyCacheValue","setDataByKeyMapValue","cloneInstanceWithChangedPaths","clonedInstances","instanceWithoutPrototype","change","createObjectWithChanges","applyBatch","useInsertIndex","immutable","disableCache","logError","skipCopying","resultItems","getErrorResult","isBatch","errorCode","newTarget","TOTAL_COUNT","LOAD","BY_KEY","INSERT","UPDATE","REMOVE","trivialPromise","ensureRequiredFuncOption","throwInvalidUserFuncResult","createUserFuncFailureHandler","pendingDeferred","errorMessageFromXhr","promiseArguments","textStatus","invokeUserLoad","userResult","userFunc","_loadFunc","invokeUserTotalCountFunc","_totalCountFunc","invokeUserByKeyFunc","_byKeyFunc","runRawLoad","userFuncOptions","continuation","__rawData","loadPromise","__rawDataPromise","_cacheRawData","runRawLoadWithQuery","countOnly","userData","itemsQuery","totalCountQuery","rawDataQuery","waitList","asyncResult","requireTotalCount","runRawLoadWithKey","CustomStore","useDefaultSearch","loadMode","_loadMode","cacheRawData","_insertFunc","_updateFunc","_removeFunc","clearRawDataCache","_byKeyViaLoad","serverResponse","discardPendingTasks","_tasks","_busy","removeTaskCallback","busy","OperationManager","_counter","_deferreds","operationId","cancelAll","DataSource","_options$reshapeOnPus","_store","_changedTime","needThrottling","pushAggregationTimeout","pushDeferred","lastPushWaiters","throttlingTimeout","throttlingPushHandler","storePushPending","_onPush","_onPushHandler","_aggregationTimeoutId","_storeLoadOptions","_extractLoadOptions","_mapFunc","_postProcessFunc","_pageIndex","pageIndex","_pageSize","pageSize","_loadingCount","_loadQueue","_createLoadQueue","_searchValue","_searchOperation","searchOperation","_searchExpr","searchExpr","_paginate","paginate","_reshapeOnPush","reshapeOnPush","_operationManager","_items","_userData","_totalCount","_isLoaded","group","_isLastPage","_this$_delayedLoadTas","_delayedLoadTask","customNames","loadOptions","newIndex","isLastPage","generateStoreLoadOptionAccessor","normalizedArgs","newFilter","argc","_this$_store","isLoaded","isLoading","beginLoading","_changeLoadingCount","endLoading","increment","oldLoading","newLoading","_scheduleLoadCallbacks","_scheduleFailCallbacks","_fireChanged","_scheduleChangedCallbacks","loadSingle","_createStoreLoadOptions","refresh","isEmptyArray","_applyMapFunction","loadTask","_loadFromStore","loadOperation","_createLoadOperation","changingArgs","groupLevel","dataSourceChanges","postProcessChanges","storeLoadOptions","reload","_addSearchOptions","_addSearchFilter","searchFilter","handleSuccess","loadResult","_processStoreLoadResult","resolvePendingDeferred","_applyPostProcessFunction","_excluded","CANCELED_TOKEN","isPending","normalizeStoreLoadOptionAccessorArguments","originalArguments","mapGroup","restItem","mapRecursive","mapDataRespectingGrouping","groupInfo","normalizeLoadResult","_data","createCustomStoreFromLoadFunc","storeConfig","createStoreFromConfig","createCustomStoreFromUrl","normalizationOptions","fromUrlLoadMode","normalizeDataSourceOptions","E4000","E4001","E4002","E4003","E4004","E4005","E4006","E4007","E4008","E4009","E4010","E4011","E4012","E4013","E4014","E4015","E4016","E4017","E4018","E4019","E4020","E4021","E4022","E4023","E4024","W4000","W4001","W4002","remoteQueryImpl","tasks","createTask","executorTask","_adapterFactory","_adapter","_taskQueue","_currentTask","_mergedSortArgs","rejectWithNotify","mergeSortTask","optimize","unmergedTasks","clientChain","queryImpl","remote","impl","multiLevelGroup","arrangeSortingInfo","sortInfo","filteredGroup","isCountQuery","keepInitialKeyOrder","XHR_ERROR_UNLOAD","normalizeBinaryCriterion","normalizeSortingInfo","unloading","textStatusMessages","parsererror","aggregators","processRequestResultLock","lockDeferred","obtain","keysEqual","key1","key2","isUnaryOperation","isGroupOperator","isGroupCriterion","rejectedPromise","throttle","throttleChanges","throttled","DataControllerMock","loadFromStore","loadNextPage","addSearchFilter","resetDataSourcePageIndex","applyMapFunction","getDataSource","DataController","dataSource","_dataSource","DATA_SOURCE_OPTIONS_METHOD","DATA_SOURCE_CHANGED_METHOD","DATA_SOURCE_LOAD_ERROR_METHOD","DATA_SOURCE_LOADING_CHANGED_METHOD","DATA_SOURCE_FROM_URL_LOAD_MODE_METHOD","SPECIFIC_DATA_SOURCE_OPTION","NORMALIZE_DATA_SOURCE","DataHelperMixin","_disposeDataSource","_refreshDataSource","_initDataSource","_loadDataSource","widgetDataSourceOptions","dataSourceType","dataSourceOptions","_isSharedDataSource","_dataSourceType","_addDataSourceHandlers","_initDataController","_this$option","dataController","_dataController","_addDataSourceChangeHandler","_addDataSourceLoadErrorHandler","_addDataSourceLoadingChangedHandler","_addReadyWatcher","_ready","_proxiedDataSourceChangedHandler","_proxiedDataSourceLoadErrorHandler","_proxiedDataSourceLoadingChangedHandler","_loadSingle","_isDataSourceLoading","nodesByEvent","delegateTarget","relatedTarget","subscribeNodesDisposing","unsubscribeNodesDisposing","CLICK_EVENT_NAME","prevented","lastFiredEvent","onNodeRemove","clickHandler","eventAlreadyFired","DXCLICK_FIRED","leftButton","which","ClickEmitter","getElement","desktopDevice","blurPrevented","subscribeGlobal","down","isDefaultPrevented","emitter","bubble","CONTEXTMENU_NAMESPACE","CONTEXTMENU_NAMESPACED_EVENT_NAME","HOLD_NAMESPACED_EVENT_NAME","CONTEXTMENU_EVENT_NAME","ContextMenu","_contextMenuHandler","_holdHandler","_fireContextMenu","teardown","activeFeedback","ACTIVE_EVENT_NAME","INACTIVE_EVENT_NAME","ACTIVE_TIMEOUT","INACTIVE_TIMEOUT","FeedbackEvent","_timeout","_fire","_schedule","force","_timer","FeedbackEmitter","_active","_inactive","configure","activeTimeout","inactiveTimeout","activeChildExists","childJustActivated","_cancel","_initEvents","_getEmitterTarget","mouseEvent","deferFeedback","_fireEvent","skipTimers","up","lockInactive","Emitter","_cancelCallback","_acceptCallback","validatePointers","allowInterruptionByMouseWheel","addCancelCallback","removeCancelCallback","addAcceptCallback","removeAcceptCallback","_accept","_requestAccept","_acceptRequestEvent","_forgetAccept","eventData","delegateSelector","MANAGER_EVENT","EMITTER_DATA","EventManager","_attachHandlers","_proxiedCancelHandler","_cancelHandler","_proxiedAcceptHandler","_acceptHandler","_pointerDownHandler","_pointerMoveHandler","_pointerUpHandler","_mouseWheelHandler","_eachEmitter","activeEmitters","_activeEmitters","_applyToEmitters","resetEmitter","_updateEmitters","_isSetChanged","_cleanEmitters","_fetchEmitters","currentSet","_closestEmitter","previousSet","_emittersSet","setChanged","handleEmitter","emitters","acceptedEmitter","_cancelEmitter","canceledEmitter","emitterIndex","_allowInterruptionByMouseWheel","pointers","_adjustWheelEvent","allowInterruption","closestGestureEmitter","gesture","getDirection","shiftKey","verticalGestureDirection","isActive","eventManager","EMITTER_SUBSCRIPTION_DATA","registerEmitter","emitterConfig","emitterClass","emitterName","emitterEvents","noBubble","subscriptions","handleObj","disposeEmitter","registerEvent","eventObject","bindType","delegateType","touchPropsToHook","touchPropHook","touches","changedTouches","EMPTY_EVENT_NAME","NATIVE_EVENTS_TO_SUBSCRIBE","mouseenter","mouseleave","pointerenter","pointerleave","NATIVE_EVENTS_TO_TRIGGER","focusin","focusout","NO_BUBBLE_EVENTS","forcePassiveFalseEventNames","EVENT_PROPERTIES","matchesSafe","skipEvent","elementDataMap","guid","special","specialData","getField","callMethod","eventsEngine","getHandler","normalizeOnArguments","handlersController","getHandlersController","addHandler","oneTimeHandler","normalizeOffArguments","removeHandler","trigger","normalizeTriggerArguments","extraParameters","callHandlers","isPropagationStopped","getParents","_element$parentNode","parentDataByEvent","callNativeMethod","triggerHandler","applyForEach","itemArgs","itemElement","detectPassiveEventHandlersSupport","isSupported","passiveEventHandlersSupported","eventNameParts","namespaces","eventNameIsDefined","handleObjects","nativeHandler","callHandler","secondaryTargetIsInside","handlerArgs","stopPropagation","handleObject","wrappedHandler","nativeListenerOptions","firstHandlerForTheType","shouldAddNativeListener","getNativeHandler","passive","removeByEventName","removedHandler","isSubset","lastHandlerForTheType","shouldRemoveNativeListener","elementDataIsEmpty","forceStop","handleCallback","isImmediatePropagationStopped","subscribeName","checked","normalizeEventArguments","_propagationStopped","_immediatePropagationStopped","_defaultPrevented","propagationStopped","stopImmediatePropagation","defaultPrevented","iterateEventNames","nativeMethodName","localName","calculateWhich","charCode","keyCode","button","EventClass","addProperty","hook","eventInstance","_src$view","srcIsEvent","isTrusted","beforeSetStrategy","afterSetStrategy","engine","offArgs","COMPOSITION_START_EVENT","COMPOSITION_END_EVENT","KEYDOWN_EVENT","NAMESPACE","createKeyDownOptions","keyName","ctrl","ctrlKey","metaKey","alt","altKey","KeyboardProcessor","_keydown","_compositionStart","_compositionEnd","focusTarget","_focusTarget","_processFunction","focusTargets","isNotFocusTarget","shouldSkipProcessing","_isComposingJustFinished","_isComposing","_toggleProcessingWithContext","toggleProcessing","EVENT_NAME","EVENT_NAMESPACE","NATIVE_EVENT_NAME","PIXEL_MODE","DELTA_MUTLIPLIER","wheel","_wheelHandler","deltaMode","deltaY","deltaX","deltaZ","_normalizeDelta","pointerType","DBLCLICK_EVENT_NAME","DBLCLICK_NAMESPACE","NAMESPACED_CLICK_EVENT","DBLCLICK_TIMEOUT","DblClick","_handlerCount","_forgetLastClick","_firstClickTarget","_lastClickTimeStamp","_clickHandler","timeBetweenClicks","isSimulated","isDouble","DRAG_START_EVENT","DRAG_EVENT","DRAG_END_EVENT","DRAG_ENTER_EVENT","DRAG_LEAVE_EVENT","DROP_EVENT","DX_DRAG_EVENTS_COUNT_KEY","knownDropTargets","knownDropTargetSelectors","knownDropTargetConfigs","dropTargetRegistration","knownDropTarget","updateEventsCounter","eventsCount","handlersCount","getItemDelegatedTargets","dropTargetIndex","dropTargetSelectors","$delegatedTargets","getItemConfig","getItemPosition","dropTargetConfig","itemPositionFunc","getItemSize","itemSizeFunc","DragEmitter","_initEvent","_start","_maxLeftOffset","maxLeftOffset","_maxRightOffset","maxRightOffset","_maxTopOffset","maxTopOffset","_maxBottomOffset","maxBottomOffset","targetElements","dropTargets","_dropTargets","_move","dragOffset","_calculateOffset","_processDropTargets","_cancelPreventDefault","_calculateXOffset","_calculateYOffset","_startEventData","_fitOffset","minOffset","maxOffset","_findDropTarget","sameTarget","_currentDropTarget","_fireDropTargetEvent","draggingElement","_checkDropTargetActive","delegatedTarget","$delegatedTarget","_checkDropTarget","activeTarget","$prevTarget","isDraggingElement","targetSize","checkDropTarget","_end","SLEEP","INITED","STARTED","TOUCH_BOUNDARY","IMMEDIATE_TOUCH_BOUNDARY","IMMEDIATE_TIMEOUT","supportPointerEvents","setGestureCover","$cover","cursor","gestureCover","gestureCoverStrategy","GestureEmitter","immediate","_stage","_toggleGestureCover","_needSkipEvent","_startEvent","_setupImmediateTimer","_immediateTimer","_immediateAccepted","_directionConfirmed","_resetActiveElement","_clearSelection","_adjustStartEvent","touchBoundary","_getTouchBoundary","horizontalMove","_validateMove","verticalMove","bothAccepted","horizontalAccepted","verticalAccepted","mainAxis","crossAxis","_toggleGestureCoverImpl","_stop","initialTouchBoundary","newBoundary","SCROLL_EVENT","SCROLL_INIT_EVENT","SCROLL_START_EVENT","SCROLL_MOVE_EVENT","SCROLL_END_EVENT","SCROLL_STOP_EVENT","SCROLL_CANCEL_EVENT","Locker","NAMESPACED_SCROLL_EVENT","_locked","_proxiedScroll","_scroll","TimeoutLocker","_prepare","_forget","_clearTimer","WheelLocker","_lastWheelDirection","_checkDirectionChanged","directionChange","PointerLocker","isIos","isAndroid","_scrollFrame","_checkFrame","ScrollEmitter","FRAME_DURATION","_pointerLocker","_wheelLocker","scrollTarget","skipCheck","_prevEventData","isScrollingEvent","_savedEventData","currentEventData","endEventDelta","velocity","velocityMultiplier","scroll","DX_SWIPEABLE","SWIPEABLE_CLASS","ACTION_TO_EVENT_MAP","onStart","onUpdated","onEnd","onCancel","Swipeable","elastic","_attachEventHandlers","_detachEventHandlers","_createEventData","_eventData","HOLD_EVENT_NAME","HOLD_TIMEOUT","HoldEmitter","_startTimer","holdTimeout","_holdTimer","_touchWasMoved","_stopTimer","HOVERSTART_NAMESPACE","HOVERSTART","POINTERENTER_NAMESPACED_EVENT_NAME","HOVEREND_NAMESPACE","HOVEREND","POINTERLEAVE_NAMESPACED_EVENT_NAME","leave","Hover","_handlerArrayKeyPath","_eventNamespace","_originalEventName","_eventName","HoverStart","HoverEnd","POINTER_EVENTS_NAMESPACE","BaseStrategy","originalEvents","_originalEvents","_isNoBubble","_originalEvent$target","_getDelegateTarget","browser","mozilla","shadowRoot","_originalEvent$path","_originalEvent$compos","composedPath","_setSelector","_selector","_getSelector","eventMap","dxpointerdown","dxpointermove","dxpointerup","dxpointercancel","dxpointerover","dxpointerout","dxpointerenter","dxpointerleave","normalizeTouchEvent","pointerId","identifier","skipTouchWithSameIdentifier","pointerEvent","TouchStrategy","_pointerId","addEventsListener","Observer","pointerEquals","onPointerAdding","getPointerIndex","removePointer","normalizeMouseEvent","activated","activateStrategy","MouseStrategy","resetObserver","MouseAndTouchStrategy","EVENT_LOCK_TIMEOUT","isMouse","_skipNextEvents","_mouseLocked","_unlockMouseTimer","normalizer","getStrategy","support","EventStrategy","over","removeEvent","eventPropName","addNamespace","executeAction","inactive","opts","showTimeout","hideTimeout","resize","hover","shown","hiding","_ref4","_ref5","focus","focusIn","focusOut","_ref6","_ref7","dxClick","click","keyboardProcessors","generateListenerId","keyboard","listenerId","_getProcessor","SWIPE_START_EVENT","SWIPE_EVENT","SWIPE_END_EVENT","HorizontalStrategy","defaultItemSizeFunc","getBounds","calcOffsetRatio","endEventData","_itemSizeFunc","isFastSwipe","FAST_SWIPE_SPEED_LIMIT","_tickData","VerticalStrategy","STRATEGIES","horizontal","vertical","SwipeEmitter","TICK_INTERVAL","_getStrategy","_defaultItemSizeFunc","moveEventData","offsetRatio","isFast","startOffset","targetOffset","_calcTargetOffset","eventNames","KEY_MAP","backspace","tab","escape","pageup","pagedown","home","arrowleft","arrowup","arrowright","arrowdown","control","LEGACY_KEY_CODES","EVENT_SOURCES_REGEX","dx","mouse","fixMethod","copyEvent","isDxEvent","eventSource","isNativeMouseEvent","isNativeTouchEvent","isPointerEvent","isMouseEvent","isDxMouseWheelEvent","isTouchEvent","eventDelta","hasTouches","skipEvents","needSkipEvent","hasAttribute","touchInEditable","isTextArea","isInputFocused","normalizeKeyName","normalizedKey","normalizedKeyFromWhich","getChar","isCommandKeyPressed","triggerVisibilityChangeEvent","changeHandlers","triggerShownEvent","triggerHidingEvent","triggerResizeEvent","_format","formatIsValid","valueIsValid","getTimeFormat","showSecond","_normalizeFormat","formatPart","getDateFormatByDifferences","dateDifferences","intervalFormat","resultFormat","needSpecialSecondFormatter","getMonthNames","getDateFormatByTicks","ticks","maxDiff","currentDiff","startValue","endValue","correctDateDifferences","minDate","maxDate","locale","loadMessages","nb","nn","PARENT_LOCALE_SEPARATOR","parentLocales","parentLocale","DEFAULT_LOCALE","currentLocale","getValueByClosestLocale","isRootLocale","_formatNumberCore","formatConfig","currencyPart","getCurrencySymbol","getOpenXmlCurrencyFormat","agq","ak","ar","asa","ast","az","bas","be","bem","bez","bg","bm","br","bs","ca","ce","cgg","ckb","cs","cy","da","de","dje","dsb","dua","dyo","ee","eo","es","et","eu","ewo","fa","ff","fi","fo","fr","fur","fy","ga","gd","gl","gsw","gv","ha","hr","hsb","hu","hy","ia","ig","jgo","jmc","ka","kab","kde","kea","khq","kk","kkj","kl","ksb","ksf","ksh","ku","kw","ky","lag","lb","lg","ln","lrc","lt","lu","lv","mfe","mg","mgo","mi","mk","mn","mua","mzn","naq","nds","nl","nmg","nnh","no","nus","nyn","os","pcm","pl","ps","rm","rn","ro","rof","ru","rw","rwk","sah","sbp","sc","se","ses","sg","shi","si","sk","sl","smn","so","sq","sr","sv","sw","teo","tg","tk","tt","twq","tzm","uk","uz","vai","vi","vun","wae","wo","xog","yav","yi","yo","zgh","SYMBOLS_TO_REMOVE_REGEX","getIntlFormatter","timeZoneName","recognizableAsTwentyCentury","temporaryYearValue","utcDate","utcFormat","timeZone","formatDateTime","formattersCache","getFormatter","Intl","DateTimeFormat","formatNumber","NumberFormat","getAlternativeNumeralsMap","numeralsMapCache","normalizeNumerals","dateString","alternativeNumeralsMap","removeLeadingZeroes","dateStringEquals","actual","expected","normalizeMonth","intlFormats","dayofweek","weekday","longdate","longdatelongtime","longtime","monthandday","monthandyear","shortdate","shorttime","shortyear","resolvedOptions","getIntlFormat","monthNameStrategies","standalone","monthIndex","monthFormat","wide","abbreviated","narrow","getDayNames","dayIndex","short","getPeriodNames","hour12Formatter","hour12","hourNumberText","timeParts","biggerPart","formatter","intlFormat","formatType","_parseDateBySimpleFormat","formatParts","getFormatParts","dateParts","dateArgs","_generateDateArgs","constructValidDate","ampmShift","parsedDate","hoursShift","datePart","formatUsesMonthName","formatUsesDayName","getTimeSeparator","formattedDate","DEFAULT_DAY_OF_WEEK_INDEX","hasIntl","FORMATS_TO_PATTERN_MAP","quarterandyear","shortdateshorttime","possiblePartPatterns","dateLocalization","_getPatternByFormat","_expandPattern","partName","possiblePatterns","getQuarterNames","is24HourFormat","amTime","pmTime","amTimeFormatted","pmTimeFormatted","convertDigits","ldmlFormat","firstDayOfWeekIndex","MONTHS","DAYS","PERIODS","QUARTERS","cutCaptions","captions","lengthByFormat","ARABIC_COMMA","FORMAT_SEPARATORS","AM_PM_PATTERN","checkDigit","zeroCode","checkPatternContinue","patterns","isDigit","nextChar","isDigitChanged","getPatternStartIndex","defaultPattern","getDifference","processedIndexes","patternsFilter","replaceCharsCore","indexes","patternPositions","baseCharIndex","patternIndex","replaceChars","letterCount","formatValue","ESCAPE_CHARS_REGEXP","escapeChars","escapeIndexes","isCurrentCharEscaped","isPrevCharEscaped","isNextCharEscaped","getFormat","replacedPatterns","datePatterns","leftPad","FORMAT_TYPES","LDML_FORMATTERS","M","L","Q","E","period","H","timezoneOffset","signPart","timezoneOffsetAbs","hoursPart","minutesPart","X","Z","charIndex","isCurrentCharEqualsNext","charCount","isEscaping","monthRegExpGenerator","PATTERN_REGEXPS","countSuffix","timeSeparator","parseNumber","caseInsensitiveIndexOf","monthPatternParser","monthNames","PATTERN_PARSERS","dayNames","periodNames","ORDERED_PATTERNS","PATTERN_SETTERS","datePartValues","hourPartValue","getSameCharCount","createPattern","getRegExpInfo","regexpText","stubText","addPreviousStub","isEscapeChar","regexpPart","isPossibleForParsingFormat","digitFieldSymbols","isDigitPattern","possibleForParsing","ambiguousDigitPatternsCount","getPatternSetters","setPatternPart","patternChar","partSetter","partParser","setPatternPartFromNow","setterName","getterName","getShortPatterns","fullPatterns","getMaxOrderedPatternIndex","getOrderedFormatPatterns","formatPatterns","otherPatterns","getParser","regExpInfo","regExpResult","maxPatternIndex","orderedFormatPatterns","regExpPattern","regExpText","ESCAPING_CHAR","MAXIMUM_NUMBER_LENGTH","PERCENT_EXPONENT_SHIFT","getGroupSizes","formatString","singleQuotesLeft","isInStub","getSignParts","signParts","reverseString","isPercentFormat","removeStubs","getNonRequiredDigitCount","floatFormat","getRequiredDigitCount","normalizeValueString","valuePart","minDigitCount","maxDigitCount","applyGroups","valueString","groupSizes","groupSize","formatNumberPart","escapeIndex","isEscape","getFloatPointIndex","signFormatParts","isPositiveZero","isPositive","numberFormat","floatPointIndex","floatFormatParts","minFloatPrecision","maxFloatPrecision","minIntegerPrecision","maxIntegerPrecision","unlimitedIntegerDigits","integerLength","floatPrecision","valueParts","valueIntegerPart","valueFloatPart","integerString","floatString","parseValue","isPercent","prepareValueText","valueText","isIntegerPart","nextText","nextValueText","hasGroups","getFormatByValueText","valueTextParts","valueTextWithModifiedFloat","valueWithModifiedFloat","decimalSeparatorIndex","positiveFormat","negativeFormat","defaultMessages","en","Yes","No","Close","Clear","Done","Loading","Select","Search","Back","OK","baseDictionary","getDataByLocale","localeData","newMessages","messageLocalization","_dictionary","messages","_localizablePrefix","localizablePrefix","localizeString","regex","escapeString","prefix","localizationKey","defaultResult","getMessagesByLocales","getDictionary","onlyNew","core","_getFormatterBase","currencySymbol","accountingFormat","encodedCurrencySymbol","encodeSymbols","af","am","as","bn","bo","brx","ccp","ceb","dav","doi","dz","ebu","fil","gu","guz","haw","he","ii","ja","jv","kam","kgp","ki","kln","km","kn","ko","kok","ks","lkt","lo","luo","luy","mai","mas","mer","mgh","ml","mni","mr","mt","nd","ne","om","or","pa","pt","qu","sa","saq","sat","sd","seh","sn","su","ta","te","ti","ug","und","ur","xh","yrl","yue","zh","zu","CURRENCY_STYLES","MAX_FRACTION_DIGITS","detectCurrencySymbolRegex","getCurrencyFormatter","currency","_normalizeFormatConfig","fractionDigits","minimumIntegerDigits","useGrouping","maximumFractionDigits","_getPrecisionConfig","_formatConfig$useCurr","useAccountingStyle","useCurrencyAccountingStyle","currencySign","minimumFractionDigits","_getCurrencySymbolInfo","_extractCurrencySymbolInfo","currencyValueString","symbolInfo","targetCurrency","closestAccountingFormat","MAX_LARGE_NUMBER_POWER","DECIMAL_BASE","NUMERIC_FORMATS","LargeNumberFormatPostfixes","LargeNumberFormatPowers","largenumber","thousands","millions","billions","trillions","numberLocalization","numericFormats","defaultLargeNumberFormatPostfixes","_parseNumberFormatString","formatObject","formatList","power","_calculateNumberPower","minPower","maxPower","_getNumberByPower","_formatNumber","powerPostfix","_formatNumberExponential","toFixed","powString","_addZeroes","multiplier","_addGroupSeparators","_getSeparators","getDecimalSeparator","getThousandsSeparator","toStandard","digits","fromFirstDigit","toFirstDigit","fromLastDigit","regExp","getNegativeEtalonRegExp","separators","digitalRegExp","negativeEtalon","getSign","numberConfig","formatterConfig","cleanedText","_calcSignificantDigits","fractional","calcDigitsAfterLeadingZeros","roundByAbs","valueSign","adjustValue","precisionMultiplier","intermediateValue","valuePrecision","adjustedValue","ConfigContext","onAfterRender","onPreRender","nextNode","mountNode","vNodeAlreadyExists","shallowEquals","removeDifferentElements","$children","$newChildren","__","hasComponent","oldElement","TemplateWrapper","_this$props$model","nextModel","nextTemplate","sameTemplate","nextData","nextIndex","sameModel","cloneObjectValue","cloneObjectProp","fullNameParts","updatePropsImmutable","currentPropsValue","prevPropsValue","setDefaultOptionValue","defaultValueGetter","ComponentWrapper","_shouldRaiseContentReady","validateKeyDownHandler","_propsInfo","allowNull","twoWay","supportedKeyNames","getSupportedKeyNames","hasComponentDefaultKeyHandlers","hasComponentKeyDownMethod","_viewComponent","keyDown","viewRef","_this$_viewRef","_viewRef","_checkContentReadyOption","contentReadyOptions","_getContentReadyOptions","_fireContentReady","_actionsMap","onContentReady","defaultProps","defaultName","_getUnwrappedOption","unwrappedProps","_this$_templateManage","getDefaultTemplates","optionProxy","_props","_optionsWithDefaultTemplates","_componentTemplates","_createTemplateComponent","_getActionConfigsFull","_addAction","defaultKeyHandlers","_createDefaultKeyHandlers","getProps","_renderWrapper","containerNode","_isNodeReplaced","_silent","_removeWidget","_elementAttr","_attributes$attr$name","specified","updatedAttributes","isDomAttr","_storedClasses","elemStyle","getPropertyValue","_getAdditionalActionConfigs","_getAdditionalProps","_patchOptionValues","defaultWidgetPropsKeys","onKeyboardHandled","onKeyDown","event_options","widgetProps","_patchElementParam","prepareStyleProp","_this$elementAttr$cla","_elementAttr$class","_extractDefaultSlot","aria","_aria","_getActionConfigs","_templatesInfo","templateOptions","_options$templateName","templateName","templateValue","customKeyHandlers","actionToAdd","actionByOption","actArgs","templateOption","_wrapKeyDownHandler","initialHandler","_toPublicElement","repaint","_supportedKeys","registerKeyHandler","setAria","IS_RENOVATED_WIDGET","BaseWidgetProps","activeStateEnabled","focusStateEnabled","hoverStateEnabled","tabIndex","visible","defaultNotDeepCopyArrays","propsToIgnore","getDiffItem","resultPaths","item1","item2","fullPropName","notDeepCopyArrays","type1","type2","diffPaths","objectDiffs","notDeepCopy","_diffPaths","objectDiffsFiltered","propsEnumerator","oldProps","processItem","reactProps","objectDiffsWithoutReactProps","getUpdatedOptions","_excluded2","normalizeProps","viewFunction","componentProps","restAttributes","widgetRef","DomComponentWrapperProps","DomComponentWrapper","setupWidget","updateWidget","templateNames","_this$_effects$","componentType","updatedOptions","prevProps","_this$config","normalizedProps","valueChange","restProps","isRenovated","onValueChanged","_this$props","viewModel","ConfigProviderProps","ConfigProvider","__getterCache","resolveRtlEnabled","rtlProp","resolveRtlEnabledDefinition","isPropDefined","onlyGlobalDefined","DEFAULT_FEEDBACK_HIDE_TIMEOUT","DEFAULT_FEEDBACK_SHOW_TIMEOUT","getAria","cssClasses","title","widgetElementRef","shouldRenderConfigProvider","WidgetProps","getOwnPropertyDescriptors","_feedbackHideTimeout","_feedbackShowTimeout","freeze","addWidgetClass","Widget","focused","hovered","setRootElementRef","activeEffect","inactiveEffect","clickEffect","deactivate","focusInEffect","focusOutEffect","hoverStartEffect","hoverEndEffect","keyboardEffect","resizeEffect","windowResizeEffect","visibilityEffect","checkDeprecation","applyCssTextEffect","activeStateUnit","onActive","onInactive","onClick","onFocusIn","onFocusOut","onHoverStart","onHoverEnd","onDimensionChanged","onVisibilityChange","_this$_effects$2","_this$_effects$3","_this$_effects$4","_this$_effects$5","_this$_effects$6","_this$_effects$7","_this$_effects$8","_this$_effects$9","_this$_effects$10","_this$_effects$11","_this$_effects$12","_this$_effects$13","onRootElementRendered","rootElementRef","setState","__state_argument","accessKey","computedWidth","computedHeight","isFocusable","isHoverable","canBeActive","classesMap","ValidationMessageProps","positionSide","isReactComponentWrapper","ValidationMessage","getCssClasses","isValid","isValidationMessageVisible","validationMessageMode","validationMessagePosition","validationErrors","validationMessageGuid","validationMessageTarget","visualContainer","contentId","EditorProps","validationError","validationStatus","EditorPropsType","Editor","updateValidationMessageVisibility","shouldShowValidationMessage","_this$validationError","isEditorValid","readonly","invalid","describedBy","allValidationErrors","_this$rootElementRef","_this$props$value","DIRECTION_VERTICAL","DIRECTION_HORIZONTAL","DIRECTION_BOTH","SCROLLABLE_CONTENT_CLASS","getRelativeOffset","targetElementClass","sourceElement","elementRect","parentElementRect","ScrollDirection","isHorizontal","isVertical","isBoth","combineClasses","_window$getComputedSt","subscribeToEvent","subscribeToClickEvent","subscribeToDxActiveEvent","subscribeToDxInactiveEvent","subscribeToDxHoverStartEvent","subscribeToDxHoverEndEvent","subscribeToDxFocusInEvent","subscribeToDxFocusOutEvent","toNumber","BOX_CLASS","BOX_FLEX_CLASS","BOX_ITEM_CLASS","BOX_ITEM_DATA_KEY","SHRINK","MINSIZE_MAP","row","MAXSIZE_MAP","FLEX_JUSTIFY_CONTENT_MAP","center","FLEX_ALIGN_ITEMS_MAP","stretch","FLEX_DIRECTION_MAP","setFlexProp","cssName","styleExpr","BoxItem","_renderVisible","fireItemStateChangedAction","oldState","LayoutStrategy","_option","renderBox","renderAlign","justifyContent","_normalizedAlign","renderCrossAlign","alignItems","_normalizedCrossAlign","crossAlign","renderItems","$items","flexPropPrefix","$item","minSize","baseSize","ratio","shrink","itemContent","flexBasis","flexDirection","Box","onItemStateChanged","_itemClass","_itemDataKey","_itemElements","_itemContainer","_itemSelector","_initLayout","_initBoxQueue","_layout","_queueIsNotEmpty","_pushItemToQueue","_shiftItemFromQueue","_renderAlign","_renderActions","_onItemStateChanged","_renderItems","itemTemplate","itemHoldTimeout","onItemHold","onItemClick","onItemContextMenu","onItemRendered","_renderItemContent","$itemNode","itemData","_renderItemContentByNode","_postprocessRenderItem","boxConfig","_createItemByTemplate","_itemOptionChanged","_itemOptions","ItemClass","ButtonWrapper","_validationGroupConfig","getGroupConfig","_findGroup","getDefaultTemplateNames","_clickAction","validationGroup","iconType","iconTemplate","_toggleActiveState","_getSubmitAction","needValidate","submitInput","validationResult","_createClickAction","$content","$template","$input","templateData","_templateData","findGroup","iconClassName","IconTemplate","sourceType","IconProps","TemplateProp","Icon","generalClasses","InkRippleProps","InkRipple","hideWave","showWave","getConfig","stylingModes","iconPosition","stylingMode","isValidStylingMode","ButtonTemplate","renderText","isIconLeft","iconComponent","iconSource","onWidgetClick","buttonTemplateData","useSubmitBehavior","submitInputRef","useInkRipple","inkRippleConfig","inkRippleRef","contentRef","ButtonProps","defaultOptionRules","submitEffect","onSubmit","role","isCentered","useHoldAnimation","waveSizeCoefficient","__defaultOptionRules","Button","_this$viewRef","_this$viewRef2","_this$viewRef3","querySelectorInSameDocument","_el$getRootNode2","INVALID_MESSAGE_AUTO","VALIDATION_TARGET","isValidationMessageShownOnFocus","$validationMessageWrapper","showValidationMessageTimeout","saveValueChangeEvent","_valueChangeEventInstance","validationRequest","_valueChangeAction","initValidationOptions","validationMessageOffset","validationTooltipOptions","_bindInnerWidgetOptions","innerWidget","optionsContainer","innerWidgetOptions","syncOptions","_raiseValidation","areValuesEmpty","editor","_raiseValueChangeAction","_this$_valueChangeAct","synchronizeValidationOptions","prevIsEditor","isEditor","newIsEditor","_isFocused","defaultIconSizes","defaultFontSizes","getThemeType","theme","isMaterialTheme","isCompactTheme","getDefaultIconSize","getDefaultFontSize","isChecked","getFontSizeByIconSize","iconSize","defaultFontSize","defaultIconSize","fontToIconSizeRatio","cssStyles","elementRef","CheckBoxIconProps","CheckBoxIcon","updateFontSize","setIconFontSize","getIconSize","getComputedIconSize","newIconSize","newFontSize","endsWith","iconComputedStyle","computedIconSize","indeterminate","editorRef","CheckBoxProps","enableThreeStateBehavior","CheckBoxPropsType","__newValue","_newValue","__processTwoWayProps","twoWayProps","defaultPropName","CheckBox","INVISIBLE_STATE_CLASS","DISABLED_STATE_CLASS","ITEM_CONTENT_PLACEHOLDER_CLASS","forcibleWatcher","filteredCallback","CollectionItem","_rawData","$placeholder","_watchers","_renderWatchers","_startWatcher","_renderDisabled","exprGetter","watcher","_dirty","setDataField","_updateOwnerFocus","isDisabled","ownerComponent","_resetItemFocus","COLLECTION_CLASS","ITEM_CLASS","CONTENT_CLASS_POSTFIX","ITEM_DATA_KEY","ITEM_INDEX_KEY","ITEM_TEMPLATE_ID_PREFIX","ITEMS_OPTIONS_NAME","SELECTED_ITEM_CLASS","ITEM_RESPONSE_WAIT_CLASS","EMPTY_COLLECTION","ITEM_PATH_REGEX","FOCUS_UP","FOCUS_DOWN","FOCUS_LEFT","FOCUS_RIGHT","FOCUS_PAGE_UP","FOCUS_PAGE_DOWN","FOCUS_LAST","FOCUS_FIRST","CollectionWidget","_activeStateUnit","$itemElement","_itemClickHandler","_moveFocus","leftArrow","rightArrow","upArrow","downArrow","pageUp","pageDown","selectOnFocus","loopItemFocus","onFocusedItemChanged","noDataText","encodeNoDataText","_itemAttributes","itemTemplateProperty","focusOnSelectedItem","focusedElement","displayExpr","disabledExpr","visibleExpr","_compileDisplayGetter","_cleanRenderedItems","_displayGetter","_initItemsFromMarkup","_initDefaultItemTemplate","_getFieldsMap","_prepareDefaultItemTemplate","_getBindableFields","rawItems","isTemplateRequired","_prepareItemTemplate","templateId","_dataSourceOptions","_renderedItemsCount","_focusInHandler","_isFocusTarget","$focusedElement","_setFocusedItem","$activeItem","_getActiveItem","_focusOutHandler","_updateFocusedItemState","activeElements","_getActiveElement","$newTarget","_getAvailableItems","_prevItem","_nextItem","_getVisibleItems","$itemElements","targetIndex","$last","loop","$first","_selectFocusedItem","selectItem","isFocused","needCleanItemId","_refreshActiveDescendant","_refreshItemId","_toggleFocusClass","_updateParentActiveDescendant","getFocusedItemId","_findItemElementByItem","itemElements","_getIndexByItem","_refreshItem","isDisabling","_getItemData","_itemIndexKey","_renderItem","itemPath","_renderEmptyMessage","_createItemRenderAction","_attachHoldEvent","_attachContextMenuEvent","_loadNextPage","_expectNextPageLoading","_startIndexForAppendedItems","_expectLastItemLoading","_forgetNextPageLoading","_dataSourceChangedHandler","_shouldAppendItems","_refreshContent","_prepareContent","_renderContent","_dataSourceLoadErrorHandler","_allowDynamicItemsAppend","_cleanFocusState","_cleanItemContainer","_inkRipple","_resetActiveState","_itemFocusTimeout","_itemContentClass","_selectedItemClass","_itemResponseWaitClass","_renderContentImpl","_fireContentReadyAction","_attachClickEvent","itemSelector","clickEventNamespace","pointerDownEventNamespace","pointerDownAction","_itemPointerDownHandler","_itemDXEventHandler","_itemFocusHandler","$closestItem","$closestFocusable","_closestFocusable","_forcePointerDownFocus","_updateFocusState","$itemContainer","hold","_getHoldTimeout","_itemHoldHandler","_shouldFireHoldEvent","_itemContextMenuHandler","_shouldFireContextMenuEvent","$itemToReplace","_index$item","itemIndex","$itemFrame","_renderItemFrame","_setElementData","_attachItemClickEvent","$itemContent","_getItemContent","renderContentPromise","contentClass","defaultTemplateName","_executeItemRenderAction","_itemEventHandlerByHandler","itemTemplateName","_getItemTemplateName","_addItemContentClasses","$templateResult","_appendItemToContainer","displayValue","_getItemRenderAction","_itemRenderAction","templateProperty","renderArgs","_emptyMessageContainer","hideNoData","_$noData","dxEvent","handlerOptionName","actionArgs","actionConfig","_itemEventHandler","initiator","_itemEventHandlerImpl","_closestItemElement","_extendActionArgs","_getSummaryItemsWidth","_focusedItemId","itemsContainer","ITEM_DELETING_DATA_KEY","NOT_EXISTING_INDEX","indexExists","selectedItem","selectionMode","selectionRequired","selectionByClick","selectedItems","maxFilterLengthInRequest","selectedIndex","onSelectionChanged","onItemReordered","onItemDeleting","onItemDeleted","_userOptions","_initEditStrategy","_initKeyGetter","_initSelectionModule","_getKeysByItems","_editStrategy","getKeysByItems","_getItemsByKeys","getItemsByKeys","_getKeyByIndex","getKeyByIndex","_getIndexByKey","getIndexByKey","_getIndexByItemData","getIndexByItemData","_isKeySpecified","_getCombinedFilter","_nullValueSelectionSupported","itemsGetter","_selection","allowNullValue","addedItemKeys","removedItemKeys","_updateSelectedItems","_getItemsCount","_dataController$loadO","customQueryParams","plainItems","dataFields","itemsCount","Strategy","_getSelectedItemIndices","indices","getSelectedItemKeys","beginCache","endCache","_rendering","_syncSelectionOptions","_normalizeSelectedItems","_rendered","byOption","_chooseSelectOption","getItemDataByIndex","selectedItemIndex","setSelection","isOptionDefined","optionValue","_compareKeys","newSelection","currentSelection","getSelectedItems","normalizedSelection","itemSelectPromise","_this$_itemSelectHand","_itemSelectHandler","_itemSelectPromise","isItemSelected","unselectItem","_selectedItemElement","normalizedItemIndex","getNormalizedIndex","_isItemSelected","_processSelectableItem","isSelected","_setAriaSelected","selectionChangePromise","_selectionChangePromise","normalizedIndex","addedSelection","removedSelection","_addSelection","_removeSelection","_updateSelection","_fireSelectionChangeEvent","addedItems","removedItems","getItemElement","checkPending","_clearSelectedItems","_waitDeletingPrepare","deletingActionArgs","deletePromise","deletePromiseExists","deletePromiseResolved","argumentsSpecified","shouldDelete","_deleteItemFromDS","disabledState","dataStore","_tryRefreshLastPage","_refreshLastPage","_updateSelectionAfterDelete","deselect","_updateIndicesAfterIndex","_simulateOptionChange","_deleteItemElementByIndex","deleteItemAtIndex","_afterItemElementDeleted","deletedActionArgs","changingOption","deleteItem","itemResponseWaitClass","reorderItem","toItemElement","$movingItem","$destinationItem","movingIndex","destinationIndex","canMoveItems","itemPlacementFunc","moveItemAtIndexToIndex","getIndex","toIndex","EditStrategy","collectionWidget","_collectionWidget","resultIndex","_denormalizeItemIndex","_equalKeys","_cache","_isNormalizedItemIndex","_isItemIndex","_normalizeItemIndex","_isNode","_getNormalizedItemIndex","_getItemByNormalizedIndex","_itemsFromSameParent","PlainEditStrategy","_getPlainItems","movedItemData","PRIVATE_KEY_FIELD","repaintChangesOnly","_this$_dataController","_customizeStoreLoadOptions","_correctionIndex","_refreshItemsCache","_findItemElementByKey","_isItemEquals","_modifyByChanges","_isItemStrictEquals","_shouldAddNewGroup","_partialRefresh","_itemsCache","itemCache","_updateByChange","isPartialRefresh","changedItem","_insertByChange","_change$index","_beforeItemElementInserted","_getItemContainer","_afterItemElementInserted","changeData","_updateSelectionAfterRemoveByChange","removeIndex","_removeByChange","removedItem","$removedItemElement","isItemsUpdated","DX_MENU_CLASS","DX_MENU_ITEM_CLASS","DX_MENU_ITEM_EXPANDED_CLASS","DX_MENU_PHONE_CLASS","DX_MENU_ITEMS_CONTAINER_CLASS","DX_MENU_ITEM_WRAPPER_CLASS","DX_SUBMENU_CLASS","DX_CONTEXT_MENU_CLASS","DX_HAS_CONTEXT_MENU_CLASS","DX_STATE_DISABLED_CLASS","DX_STATE_FOCUSED_CLASS","DX_STATE_HOVER_CLASS","OVERLAY_CONTENT_CLASS","ACTIONS","LOCAL_SUBMENU_DIRECTIONS","DEFAULT_SHOW_EVENT","getShowEvent","showEventOption","getShowDelay","showEvent","hideOnOutsideClick","onShowing","onShown","onSubmenuCreated","onHiding","onPositioning","submenuDirection","onLeftFirstItem","onLeftLastItem","onCloseRootSubmenu","onExpandLastSubmenu","closeOnOutsideClick","_initActions","_actions","_overlay","_eventBindingTarget","_isSelectionEnabled","$availableItems","$focusedItem","$hoveredItem","$hoveredItemContainer","_getItemsByLocation","$oldTarget","$activeItemHighlighted","_setFocusedElement","_hideSubmenuHandler","_expandSubmenuHandler","_getAriaTarget","$curItem","$parentItem","_hideSubmenusOnSameLevel","_hideSubmenu","_dataAdapter","getNodeByItem","isItemHasSubmenu","_hasSubmenu","$submenu","_showSubmenu","_detachShowContextMenuEvents","_getTarget","_renderVisibility","_addWidgetClass","_attachShowContextMenuEvents","_attachKeyboardEvents","_keyboardListenerId","_renderContextMenuOverlay","overlayOptions","_getOverlayOptions","$overlayContent","_addCustomCssClass","_addPlatformDependentClass","preventShowingDefaultContextMenuAboveOverlay","_showContextMenuEventHandler","contextMenuAction","_show","_hoverEndHandler","_renderContainer","$wrapper","submenuContainer","$holder","$itemsContainer","_renderSubmenuItems","_getChildNodes","internalFields","submenuElement","innerOverlay","_hideOnOutsideClickHandler","propagateOutsideClick","hideOnParentScroll","deferRendering","showTitle","_overlayShownActionHandler","_overlayHidingActionHandler","_overlayHiddenActionHandler","_hideAllShownSubmenus","_shouldHideOnOutsideClick","$activeItemContainer","_getActiveItemsContainer","$itemContainers","_getItemsContainers","$clickedItem","_searchActiveItem","$rootItem","isRootItemClicked","isInnerOverlayClicked","_isIncludeOverlay","_getShowSubmenuMode","_hideAllShownChildSubmenus","$activeOverlay","$allOverlays","isSame","$overlay","$submenuElements","shownSubmenus","_shownSubmenus","$context","isSubmenuRendered","_isSubmenuVisible","_drawSubmenu","$expandedItems","_hideSubmenuGroup","_hideSubmenuCore","submenuPosition","_getSubmenuPosition","_animate","$rootItemWrapper","_updateSubmenuVisibilityOnClick","shouldRenderSubmenu","_updateSelectedItemOnClick","notCloseMenuOnItemClick","closeMenuOnClick","$prevSubmenu","canceled","$curSubmenu","_stopAnimate","showing","_hide","_toggleVisibility","jQEvent","_event$originalEvent","_positionContextMenu","_widgetClass","_renderFocusState","_attachHoverEvents","getRootNodes","_setAriaAttributes","_overlayContentId","_cleanAriaAttributes","_getContextMenuPosition","isInitialPosition","positioningAction","lastPosition","MenuBaseEditStrategy","getMenuItems","_stringifyItem","_getTemplateString","DX_MENU_NO_ICONS_CLASS","DX_MENU_BASE_CLASS","DX_ITEM_CONTENT_CLASS","DX_MENU_SELECTED_ITEM_CLASS","DX_MENU_SEPARATOR_CLASS","DX_MENU_ITEM_LAST_GROUP_ITEM","DX_ITEM_HAS_TEXT","DX_ITEM_HAS_ICON","DX_ITEM_HAS_SUBMENU","DX_MENU_ITEM_POPOUT_CLASS","DX_MENU_ITEM_POPOUT_CONTAINER_CLASS","DX_MENU_ITEM_CAPTION_CLASS","SINGLE_SELECTION_MODE","DEFAULT_DELAY","MenuBase","showSubmenuMode","selectByClick","_renderSelectedItem","_getTextContainer","itemText","_getPopoutContainer","$popOutContainer","$popOutImage","_getDataAdapterOptions","rootValue","multipleSelection","recursiveSelection","recursiveExpansion","_selectByItem","nodeToSelect","toggleSelection","selectedKeys","getSelectedNodesKeys","selectedKey","getNodeByKey","selectable","_renderInkRipple","_isDesktopDevice","_initSelectedItems","_itemWrapperSelector","_hoverStartHandler","_getItemElementByEventArgs","_isItemDisabled","_showSubmenusTimeout","_getSubmenuDelay","_disabledGetter","_addExpandedClass","childrenKeys","hasIcons","$nodeContainer","firstVisibleIndex","nextGroupFirstIndex","isVisibleNode","isBeginGroup","beginGroup","_renderSeparator","_createDOMElement","$nodeElement","_addContentClasses","hasText","hasIcon","hasSubmenu","_selectedGetter","_isItemSelectable","_skipHandling","itemClickActionHandler","_isItemSelectionAllowed","selectedItemKey","selectedNode","_toggleItemSelection","isSelectionByClickEnabled","_isContainerEmpty","_itemsGetter","_getElementByItem","oldSelection","selected","views","columnHeadersView","registerModule","commonColumnSettings","allowExporting","controllers","dataSourceAdapterType","extender","_getDataSourceAdapter","_getSpecificDataSourceOption","rowsView","headerPanel","DATAGRID_ROW_SELECTOR","DATAGRID_DEPRECATED_TEMPLATE_WARNING","registerModulesOrder","DataGrid","useKeyboard","rowTemplate","showRowLines","showColumnLines","headerFilter","editing","useIcons","showCheckBoxesMode","loadingTimeout","loadPanel","_device","grouping","expandMode","processModules","callModuleItemsMethod","updateDimensions","getView","getController","_controllers","_views","columnChooser","columnChooserView","createOffsetFilter","lastLevelOnly","filterElement","currentFilter","combineFilters","GroupingHelper","findGroupInfoByKey","groupsInfo","getGroupInfoIndexByOffset","leftIndex","rightIndex","middleIndex","dataSourceAdapter","_groupsInfo","_totalCountCorrection","totalCountCorrection","updateTotalItemsCount","isGroupItemCountable","_isVirtualPaging","isContinuation","scrollingMode","calculateItemsCount","groupsCount","foreachGroups","childrenAtFirst","foreachCollapsedGroups","updateOffsets","updateParentOffsets","foreachGroupsCore","callbackResults","executeCallback","isExpanded","currentParents","_updateGroupInfoOffsets","parentIndex","findGroupInfo","pathIndex","addGroupInfo","groupInfoData","allowCollapseAll","oldGroups","_group","groupIndex","cleanGroupsInfo","handleDataLoading","handleDataLoaded","handleDataLoadedCore","createGroupFilter","loadTotalCount","correctSkipLoadOption","skipCorrection","resultSkip","pathEquals","path1","path2","updateGroupOffsets","additionalGroupInfo","getGroupCount","collapsedGroups","collapsedItemsCount","skipFirstItem","sorts","isCustomLoading","appendCollapsedPath","collapsedGroup","pathValue","_totalCountWasIncreasedByCollapsedItems","groupedData","processGroupItems","removeLastItemsCount","needRemoveFirstItem","offsetInfo","isContinuationOnNextPage","itemsCountCorrection","changeRowExpand","groupCountQuery","beginPageIndex","dataSourceItems","operationTypes","groupOffsetQuery","getContinuationGroupCount","groupOffset","pageOffset","foreachExpandedGroups","updateGroups","expandedInfo","isLastGroupExpanded","paths","lastCount","updateGroupInfoItem","isLastGroupLevel","_isGroupExpanded","updateGroupInfos","loadedGroupCount","remotePaging","remoteOperations","paging","skips","isGroupExpanded","getTotalOffset","groupInfos","totalOffset","childrenTotalCount","applyContinuationToGroupItem","expandedItemIndex","takes","isLastExpandedItem","isFirstExpandedItem","lastExpandedItemSkip","isItemsTruncatedByTake","isDataDeferred","makeDataDeferred","loadGroupItems","currentGroupCount","currentGroupIndex","currentGroup","deferreds","requireGroupCount","groupSummary","expandedFilters","expandedPath","isLoadingAll","isPagingLocal","isLastLevelGroupItemsPagingLocal","sortLastLevelGroupItems","expandedItems","loadGroupTotalCount","isGrouping","totalItemsCount","isVirtualPaging","_updatePagingOptions","skipChildrenTotalCount","takeCorrection","parentTakeCorrection","continuationGroupCount","skipContinuationGroupCount","groupInfoCount","childrenGroupInfoCount","remoteGroupPaging","groupPaging","lastLoadOptions","isLastGroup","_processPaging","_processSkips","firstItem","_processTakes","lastItem","maxTakeCount","handleGroup","DATAGRID_GROUP_PANEL_CLASS","DATAGRID_GROUP_PANEL_MESSAGE_CLASS","DATAGRID_GROUP_PANEL_ITEM_CLASS","DATAGRID_GROUP_PANEL_LABEL_CLASS","DATAGRID_GROUP_PANEL_CONTAINER_CLASS","DATAGRID_EXPAND_CLASS","DATAGRID_GROUP_ROW_CLASS","HEADER_FILTER_CLASS_SELECTOR","GroupingDataSourceAdapterExtender","_initGroupingHelper","_grouping","isAutoExpandAll","isFocusedRowEnabled","isODataRemoteOperations","filtering","sorting","isRowExpanded","collapseAll","_collapseExpandAll","expandAll","isExpand","resetPagesCache","_lastLoadOptions","groupExpand","_changeRowExpandCore","_hasGroupLevelsExpandState","_customizeRemoteOperations","resetCache","_handleDataLoading","_handleDataLoaded","_handleDataLoadedCore","GroupingDataControllerExtender","createAction","_beforeProcessItems","groupColumns","_columnsController","getGroupColumns","_processGroupItems","_processItem","rowType","_processGroupItem","dataIndex","groupedColumns","collectContinuationItems","deserializeValue","calculateDisplayValue","publicMethods","expanded","expandRow","collapseRow","optionChanged","onGroupingMenuItemClick","columnsController","columnOption","dataField","clearGrouping","GroupingHeaderPanelExtender","_getToolbarItems","_appendGroupingItem","_isGroupPanelVisible","isRendered","toolbarItem","$groupPanel","_updateGroupPanelContent","_handleActionKeyDown","renderCompleted","locateInMenu","sortIndex","groupColumnIndex","columnIndex","showHeaderFilterMenu","_processGroupItemAction","groupPanelOptions","_renderGroupPanelItems","groupColumn","_createGroupPanelItem","$rootElement","$groupPanelItem","_columnOptionChanged","_requireReady","checkChanges","$toolbarElement","allowColumnDragging","emptyPanelText","updateToolbarDimensions","allowDragging","allowGrouping","getColumnElements","getColumns","getContextMenuItems","contextMenuEnabled","$groupedColumnElement","targetElement","isGroupingAllowed","isColumnGrouped","groupingTexts","ungroup","ungroupAll","GroupingRowsViewExtender","_rowClick","isGroupRowStateChanged","isExpandButtonClicked","_changeGroupRowState","rowIndex","allowCollapsing","columnHeadersViewExtender","command","groupByThisColumn","showWhenGrouped","autoExpandAll","texts","groupContinuesMessage","groupContinuedMessage","groupPanel","extenders","columns","_getExpandColumnOptions","cellTemplate","getExpandCellTemplate","_isProcessedItem","editingController","_editingController","draggingHeaderView","draggingHeader","columnsSeparatorView","tablePosition","columnsResizer","trackerView","depthFirstSearch","isCount","normalizeAggregate","skipEmptyValues","_groupLevel","_totalAggregates","totalAggregates","_groupAggregates","groupAggregates","_totals","_calculateTotals","_calculateGroups","_aggregate","aggregates","_accumulate","_seed","_finalize","currentLevel","seedFn","stepFn","finalizeFn","innerNode","aggregateIndex","fin","DATAGRID_TOTAL_FOOTER_CLASS","DATAGRID_SUMMARY_ITEM_CLASS","DATAGRID_TEXT_CONTENT_CLASS","DATAGRID_GROUP_FOOTER_CLASS","DATAGRID_GROUP_TEXT_CONTENT_CLASS","DATAGRID_NOWRAP_CLASS","DATAGRID_FOOTER_ROW_CLASS","DATAGRID_GROUP_FOOTER_ROW_TYPE","DATAGRID_TOTAL_FOOTER_ROW_TYPE","renderSummaryCell","cell","$cell","summaryItems","$summaryItems","summaryItem","alignment","getSummaryText","summaryTexts","getSummaryCellOptions","totalItem","summaryCells","getGroupAggregates","summary","recalculateWhileEditing","FooterView","_getRows","footerItems","_getCellOptions","_renderCellContent","needUpdateScrollLeft","columnIndices","_updateContent","_renderTable","_updateScrollLeftPosition","$newTable","changeType","_waitAsyncTemplates","$row","getTableElement","$newRow","_updateCells","changeTypes","visibleWidth","_handleDataChanged","totalColumnIndices","_createRow","getElementHeight","SummaryDataSourceAdapterExtender","_summaryGetter","summaryGetter","_summary","sortByGroupsInfo","sortByGroups","groupedItems","forEachGroup","itemsPath","SummaryDataSourceAdapterClientExtender","calculateAggregates","calculator","insertedData","getInsertedData","applyAddedData","removedData","getRemovedData","applyRemovedData","updatedData","updatedItems","sortGroupsBySummary","sortGroupsBySummaryCore","sortedItems","totalSummary","cachedExtra","cachedData","_options$cachedData","_options$cachedData$e","hasOperations","groupItems","totalItems","calculateCustomSummary","sumOtherColumn","minOtherColumn","maxOtherColumn","avgOtherColumn","sortByGroupSummaryInfo","footerView","_isDataColumn","_isGroupFooterVisible","groupItem","showInColumn","showInGroupFooter","isGroupFooterVisible","summaryGroupItems","afterGroupColumnIndex","visibleColumns","visibleIndex","prevColumn","_calculateSummaryCells","alignByColumn","calculateTargetColumnIndex","isGroupRow","summaryCellsByColumns","summaryIndex","valueFormat","summaryType","getFormatByDataType","columnCaption","_getSummaryCells","summaryTotalItems","getVisibleColumns","_updateItemsCore","_footerItems","oldSummaryCells","summaryCell","_prepareUnsavedDataSelector","getUpdatedData","_prepareAggregateSelector","_getAggregates","commonSkipEmptyValues","calculateCellValue","summaryProcess","totalValue","_addSortInfo","sortOrder","_findSummaryItem","summaryItemIndex","_getSummarySortByGroups","groupSummaryItems","_createDataSourceAdapterCore","currentRemoteOperations","_getSummaryOptions","totalSummaryItems","getTotalSummaryValue","summaryItemName","_refreshSummary","isSaving","changesOnly","_addChange","_removeChange","cancelEditData","_renderCells","_renderGroupSummaryCells","_hasAlignByColumnSummaryItems","_getAlignByColumnCellCount","groupCellColSpan","alignByColumnCellCount","$groupCell","_renderGroupSummaryCellsCore","_renderCell","_getSummaryCellIndex","_getCellTemplate","prepareItems","emptyCell","defaultSetter","cols","colspan","cellIndex","rowspan","addItem","FILE_EXTESIONS","EXCEL","CSS","PNG","JPEG","GIF","SVG","PDF","MIME_TYPES","fileSaver","_revokeObjectURLTimeout","_getDataUri","mimeType","_getMimeType","_linkDownloader","exportLinkElement","download","_winJSBlobSave","savePicker","Windows","Storage","Pickers","FileSavePicker","suggestedStartLocation","PickerLocationId","documentsLibrary","fileExtension","fileTypeChoices","suggestedFileName","pickSaveFileAsync","openAsync","FileAccessMode","readWrite","outputStream","inputStream","msDetachStream","Streams","RandomAccessStream","copyAsync","flushAsync","_click","link","MouseEvent","cancelable","initMouseEvent","_saveBlobAs","_blobSaved","msSaveOrOpenBlob","WinJS","webkitURL","mozURL","msURL","oURL","objectURL","downloadLink","_objectUrlRevoked","saveAs","Blob","LANGUAGE_CODES","tn","syr","iu","dv","quz","nso","ba","arn","moh","oc","co","qut","prs","sms","sma","smj","getLanguageId","ARABIC_ZERO_CODE","DEFINED_NUMBER_FORMTATS","percent","decimal","fixedpoint","exponential","PERIOD_REGEXP","DAY_REGEXP","DO_REGEXP","STANDALONE_MONTH_REGEXP","HOUR_REGEXP","ANY_REGEXP","excelFormatConverter","_applyPrecision","_hasArabicDigits","_convertDateFormatToOpenXml","_convertDateFormat","formattedValue","_getLanguageInfo","languageID","languageIDStr","languageInfo","_convertNumberFormat","excelFormat","convertFormat","tagHelper","toXml","attributeName","attributeValue","cellAlignmentHelper","tryCreateTag","sourceObj","wrapText","copy","areEqual","leftTag","rightTag","colorHelper","_tryConvertColor","colorCode","rgb","patternFillHelper","patternType","backgroundColor","foregroundColor","fillHelper","patternFill","tryCreateFillFromSimpleFormat","fillPatternType","fillPatternColor","copySimpleFormat","fontHelper","family","bold","italic","underline","color","cellFormatHelper","sharedItemsContainer","numberFormatId","registerNumberFormat","fontId","registerFont","font","fillId","registerFill","applyNumberFormat","isAlignmentEmpty","xfId","applyAlignment","numFmtId","numberFormatHelper","ID_PROPERTY_NAME","formatCode","ExcelFile","_cellFormatTags","_fillTags","_fontTags","_numberFormatTags","registerCellFormat","cellFormat","cellFormatTag","copyCellFormat","generateCellFormatsXml","cellFormatTagsAsXmlStringsArray","fillTag","generateFillsXml","tagsAsXmlStringsArray","fontTag","generateFontsXml","xmlStringsArray","_convertNumberFormatIndexToId","generateNumberFormatsXml","XML_TAG","GROUP_SHEET_PR_XML","SINGLE_SHEET_PR_XML","BASE_STYLE_XML2","OPEN_XML_FORMAT_URL","RELATIONSHIP_PART_NAME","XL_FOLDER_NAME","WORKBOOK_FILE_NAME","CONTENTTYPES_FILE_NAME","SHAREDSTRING_FILE_NAME","STYLE_FILE_NAME","WORKSHEETS_FOLDER","WORKSHEET_FILE_NAME","WORKSHEET_HEADER_XML","VALID_TYPES","boolean","EXCEL_START_TIME","DAYS_COUNT_BEFORE_29_FEB_1900","MAX_DIGIT_WIDTH_IN_PIXELS","UNSUPPORTED_FORMAT_MAPPING","quarterAndYear","ExcelCreator","_getXMLTag","_convertToExcelCellRef","zeroBasedRowIndex","zeroBasedCellIndex","isCellIndexFound","columnName","_convertToExcelCellRefAndTrackMaxIndex","_maxRowIndex","_maxColumnIndex","_getDataType","_tryGetExcelCellDataType","_formatObjectConverter","_tryConvertToExcelNumberFormat","newFormat","_appendString","_stringHash","_stringArray","_tryGetExcelDateValue","totalTime","_prepareValue","dataProvider","_dataProvider","cellSourceData","getCellData","getCellType","_callCustomizeExcelCell","sourceData","styleCopy","clearStyle","horizontalAlignment","verticalAlignment","wrapTextEnabled","customizeExcelCell","newStyle","_getDataArray","cellsArray","cellData","cellsLength","rowsLength","getRowsCount","styleArrayIndex","getStyleId","cellStyleId","_styleArrayIndexToCellStyleIdMap","hasCustomizeExcelCell","modifiedExcelCell","_styleArray","cellDataType","excelDateValue","_excelFile","_needSheetPr","getGroupLevel","_calculateWidth","pixelsWidth","_prepareStyleData","_colsArray","fonts","_prepareCellData","_cellsArray","_createXMLRelationships","xmlRelationships","_createXMLRelationship","_getWorkbookContent","_getContentTypesContent","_generateStylesXML","folder","_zip","XML","_generateStringsXML","stringIndex","stringsLength","sharedStringXml","_getPaneXML","frozenArea","getFrozenArea","_getAutoFilterXML","maxCellIndex","autoFilterEnabled","getHeaderRowCount","_generateWorksheetXML","colIndex","xmlCells","xmlRows","colsLength","rSpans","headerRowCount","xmlResult","_rtlEnabled","rightBottomCellRef","_generateMergingXML","mergeIndex","columnsLength","usedArea","mergeArray","mergeXML","cellMerge","getCellMerging","mergeArrayLength","_generateCommonXML","relsFileContent","relsXML","_generateContent","_generateWorkXML","JSZip","_checkZipState","compression","generateAsync","generate","excelCreator","standardColorNames","aliceblue","antiquewhite","aqua","aquamarine","azure","beige","bisque","black","blanchedalmond","blue","blueviolet","brown","burlywood","cadetblue","chartreuse","chocolate","coral","cornflowerblue","cornsilk","crimson","cyan","darkblue","darkcyan","darkgoldenrod","darkgray","darkgreen","darkgrey","darkkhaki","darkmagenta","darkolivegreen","darkorange","darkorchid","darkred","darksalmon","darkseagreen","darkslateblue","darkslategray","darkslategrey","darkturquoise","darkviolet","deeppink","deepskyblue","dimgray","dimgrey","dodgerblue","feldspar","firebrick","floralwhite","forestgreen","fuchsia","gainsboro","ghostwhite","gold","goldenrod","gray","green","greenyellow","grey","honeydew","hotpink","indianred","indigo","ivory","khaki","lavender","lavenderblush","lawngreen","lemonchiffon","lightblue","lightcoral","lightcyan","lightgoldenrodyellow","lightgray","lightgreen","lightgrey","lightpink","lightsalmon","lightseagreen","lightskyblue","lightslateblue","lightslategray","lightslategrey","lightsteelblue","lightyellow","lime","limegreen","linen","magenta","maroon","mediumaquamarine","mediumblue","mediumorchid","mediumpurple","mediumseagreen","mediumslateblue","mediumspringgreen","mediumturquoise","mediumvioletred","midnightblue","mintcream","mistyrose","moccasin","navajowhite","navy","oldlace","olive","olivedrab","orange","orangered","orchid","palegoldenrod","palegreen","paleturquoise","palevioletred","papayawhip","peachpuff","peru","pink","plum","powderblue","purple","rebeccapurple","red","rosybrown","royalblue","saddlebrown","salmon","sandybrown","seagreen","seashell","sienna","silver","skyblue","slateblue","slategray","slategrey","snow","springgreen","steelblue","tan","teal","thistle","tomato","turquoise","violet","violetred","wheat","white","whitesmoke","yellow","yellowgreen","standardColorTypes","colorString","hsvToRgb","hslToRgb","_round","Color","baseColor","parseColor","colorIsInvalid","hsv","toHsvFromRgb","hsl","toHslFromRgb","colorComponent","def","toHexFromRgb","vMin","vInc","vDec","calculateHue","convertTo01Bounds","maxMinSum","makeColorTint","colorPart","colorTint","modifyColorTint","hueToRgb","isIntegerBetweenMinAndMax","highlight","alter","toHex","darken","blend","blendColor","other","getPureColor","isValidHex","hex","isValidRGB","isValidAlpha","fromHSL","_math","_number","PI","sqrt","atan2","cos","sin","_export","exportingAction","exportedAction","fileSavingAction","selectedRowsOnly","excel","creator","formatConverter","BUTTON_GROUP_CLASS","BUTTON_GROUP_WRAPPER_CLASS","BUTTON_GROUP_ITEM_CLASS","BUTTON_GROUP_FIRST_ITEM_CLASS","BUTTON_GROUP_LAST_ITEM_CLASS","BUTTON_GROUP_ITEM_HAS_WIDTH","SHAPE_STANDARD_CLASS","ButtonCollection","_prepareItemStyles","_getBasicButtonOptions","_hasCustomTemplate","_keyboardEventBindingTarget","ButtonGroup","buttonTemplate","_createItemClickAction","_itemClickAction","_renderButtons","$buttons","scrollingEnabled","_buttonsCollection","DROP_DOWN_BUTTON_CLASS","DROP_DOWN_BUTTON_CONTENT","DROP_DOWN_BUTTON_ACTION_CLASS","DROP_DOWN_BUTTON_TOGGLE_CLASS","DROP_DOWN_BUTTON_HAS_ARROW_CLASS","DROP_DOWN_BUTTON_POPUP_WRAPPER_CLASS","DROP_DOWN_EDITOR_OVERLAY_CLASS","DX_BUTTON_TEXT_CLASS","DX_ICON_RIGHT_CLASS","DropDownButton","useSelectMode","splitButton","showArrowIcon","onButtonClick","opened","dropDownOptions","dropDownContentTemplate","wrapItemText","useItemTextAsTitle","grouped","groupTemplate","buttonGroupOptions","_createActionClickAction","_createSelectionChangedAction","_compileKeyGetter","_itemsToDataSource","$popupContent","$listContainer","_listOptions","_escHandler","_getKey","_this$_dataSource","storeKey","_renderButtonGroup","_updateArrowClass","_loadSelectedItem","_updateActionButton","_renderFocusTarget","_renderPopup","_popup","_renderPopupContent","_this$_loadSingleDefe","_loadSingleDeferred","_lastSelectedItemData","cachedResult","_actionClickAction","_selectionChangedAction","_fireSelectionChangedAction","previousItem","_fireItemClickAction","_actionItem","_actionButtonConfig","_getButtonGroupItems","_buttonGroupItemClick","isActionButton","isToggleButton","_buttonGroupOptions","buttonContent","$firstIcon","$textContainer","$secondIcon","_keyboardHandler","_popupContentId","_popupOptions","dragEnabled","$buttonClicked","_ignoreFunctionValueDeprecation","_wrapperClassExternal","actionResult","_buttonGroup","_upDownKeyHandler","_tabHandler","$popup","_popupHidingHandler","_popupShowingHandler","_setAriaExpanded","_popupOptionChanged","getOptionsFromContainer","_setPopupOption","optionsKeys","popupWidth","_setWidgetOption","_ariaExpandedElements","ariaElement","owns","$buttonGroup","buttonElements","hasArrow","_setListOption","_getDisplayValue","isPrimitiveItem","_selectedItemKeyChanged","_actionButtonOptionChanged","_selectModeChanged","_updateItemCollection","_updateDataSource","_updateKeyExpr","_this$_popup","_innerWidgetOptionChanged","DATAGRID_EXPORT_MENU_CLASS","DATAGRID_EXPORT_BUTTON_CLASS","DATAGRID_EXPORT_TOOLBAR_BUTTON_NAME","DATAGRID_EXPORT_ICON","DATAGRID_EXPORT_EXCEL_ICON","DATAGRID_EXPORT_SELECTED_ICON","DATAGRID_PDF_EXPORT_ICON","DataProvider","exportController","initialColumnWidthsByColumnIndex","_exportController","_initialColumnWidthsByColumnIndex","_selectedRowsOnly","_getGroupValue","getDisplayValue","getGroupRowSummaryText","_correctCellIndex","excelWrapTextEnabled","_getColumns","_selectionOnly","_getSelectedItems","_getAllItems","getVisibleIndex","isHeadersVisible","customizeExportData","gridCell","getHeaderStyles","getGroupRowStyle","getColumnStyles","columnStyles","_getTotalCellStyleId","_this$getColumns$cell","isTotalCell","getColumnsByAllRows","getColumnsWidths","customizeText","lookup","_convertFromGridGroupSummaryItems","gridGroupSummaryItems","isExcelJS","correctedCellIndex","columnsRow","gridColumn","itemValues","totalSummaryItemName","getCustomizeTextByDataType","correctCellIndex","isSummaryAlignByColumn","exportColspan","ExportController","ViewController","_getEmptyCell","_updateColumnWidth","rowCount","getRowCount","currentHeaderRow","columnWidthsByColumnIndex","columnWidths","_getColumnWidths","_headersView","_rowsView","_needColumnExporting","currentColspan","_calculateExportColspan","isBand","childColumns","getChildrenByBandColumn","childColumn","_getFooterSummaryItems","isTotal","estimatedItemsCount","itemsLength","_hasSummaryGroupFooters","_getItemsWithSummaryGroupFooters","sourceItems","beforeGroupFooterItems","groupFooterItems","_updateGroupValuesWithSummaryByColumn","summaryValues","groupColumnCount","_processUnExportedItems","isDetailExpandColumn","loadAll","selectionController","selectedRowData","getSelectedRowsData","headersView","getColumnWidths","callbackNames","getDataProvider","columnsLastRowVisibleColumns","exportToExcel","getAction","exportTo","onExporting","selectionOnly","_isSelectedRows","selectionOnlyChanged","export","excelFilterEnabled","formats","allowExportSelectedData","exportAll","exportSelectedRows","callbackList","_updateEditButtons","editingChanged","hasChanges","exportButton","_getExportToolbarButton","_correctItemsPosition","_getExportToolbarItems","toolbarButtonOptions","showText","_widgetOptions","menuItemTemplate","_index","exportOptions","exportMethod","formatName","exportAllIcon","exportSelectedIcon","itemA","itemB","_isExportButtonVisible","setToolbarItemDisabled","MAX_SAFE_INTEGER","isRowClick","keyboardNavigation","isKeyboardEnabled","_isFocusedRowInsideGroup","focusedRowKey","getRowIndexByKey","focusedRow","getVisibleRows","getGroupDataSourceParameters","_getGroupPath","groupPath","_expandGroupByPath","_calculateGlobalRowIndexByGroupedData","_generateFilterByKey","isGroupKey","_concatWithCombinedFilter","_calculateExpandedRowGlobalIndex","_calculateGlobalRowIndexByFlatData","groupFilter","isVirtualScrolling","dataOffset","groupContinuationCount","currentPageOffset","monthGetter","monthSetter","monthLimits","getLimits","newDay","PATTERN_GETTERS","lastDayInMonth","isPM","currentYear","valueLength","maxLimitLength","getPatternGetter","renderDateParts","sections","_loop","isStub","caret","limits","forcedPattern","dM","getAmPm","getDatePartIndexByPosition","caretInGroup","DATE_COMPONENTS","TIME_COMPONENTS","ONE_MINUTE","ONE_DAY","ONE_YEAR","getStringFormat","SUPPORTED_FORMATS","MIN_DATEVIEW_DEFAULT_DATE","MAX_DATEVIEW_DEFAULT_DATE","FORMATS_INFO","getStandardPattern","datetime","standardPattern","FORMATS_MAP","SUBMIT_FORMATS_MAP","toStandardDateFormat","fromStandardDateFormat","getMaxMonthDay","mergeDates","formatInfo","componentInfo","DATE_COMPONENTS_INFO","getLongestCaptionIndex","captionArray","longestIndex","longestCaptionLength","getLongestDate","stringFormat","longestDate","normalizeTime","setSeconds","setMilliseconds","formatDate","CALENDAR_NAVIGATOR_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_MONTH_CLASS","CALENDAR_NAVIGATOR_NEXT_MONTH_CLASS","CALENDAR_NAVIGATOR_PREVIOUS_VIEW_CLASS","CALENDAR_NAVIGATOR_NEXT_VIEW_CLASS","CALENDAR_NAVIGATOR_DISABLED_LINK_CLASS","CALENDAR_NAVIGATOR_CAPTION_BUTTON_CLASS","Navigator","onCaptionClick","_captionClickAction","_renderCaption","_prevButton","$prevButton","_nextButton","$nextButton","_caption","$caption","toggleButton","buttonPrefix","buttonName","CALENDAR_OTHER_VIEW_CLASS","CALENDAR_CELL_CLASS","CALENDAR_WEEK_NUMBER_CELL_CLASS","CALENDAR_EMPTY_CELL_CLASS","CALENDAR_TODAY_CLASS","CALENDAR_SELECTED_DATE_CLASS","CALENDAR_CONTOURED_DATE_CLASS","CALENDAR_DXCLICK_EVENT_NAME","CALENDAR_DATE_VALUE_KEY","BaseView","_getViewName","disabledDates","onCellClick","colCount","allowValueSelection","_todayDate","_renderImpl","_createTable","_createDisabledDatesHandler","_renderBody","_renderContouredDate","_renderValue","_renderEvents","_$table","$body","rowData","cellDate","_getFirstCellData","prevCellDate","_renderWeekNumberCell","_appendCell","_appendMethodName","_cacheAppendMethodName","_createCell","_getClassNameByDate","getCellAriaLabel","_prepareCellTemplateData","_getCellText","_getNextCellData","_isTodayCell","_isDateOutOfRange","isDateDisabled","_isOtherView","isDateCell","_createCellClickAction","_cellClickAction","_disabledDatesHandler","_getDefaultDisabledDatesHandler","contouredDate","$oldContouredCell","_getContouredCell","$newContouredCell","_getCellByDate","_changeValue","selectedCell","_selectedCell","_getFirstAvailableDate","getFirstDateView","isBoundary","CALENDAR_OTHER_MONTH_CLASS","Views","_renderHeader","$headerRow","$header","_renderHeaderCell","_renderWeekHeaderCell","full","fullCaption","abbrCaption","_getDayCaption","abbr","$weekNumberHeaderCell","showWeekNumbers","_getWeekNumber","weekNumberRule","getNavigatorCaption","today","daysInWeek","firstDay","firstMonthDayOffset","isDisabledDate","foundDate","decade","firstYearInDecade","_isValueOnCurrentView","century","minDecade","maxDecade","firstDecadeInCentury","CALENDAR_CLASS","CALENDAR_BODY_CLASS","CALENDAR_FOOTER_CLASS","CALENDAR_TODAY_BUTTON_CLASS","CALENDAR_HAS_FOOTER_CLASS","CALENDAR_VIEWS_WRAPPER_CLASS","CALENDAR_VIEW_CLASS","FOCUSED_STATE_CLASS","ANIMATION_DURATION_SHOW_VIEW","POP_ANIMATION_FROM","POP_ANIMATION_TO","CALENDAR_INPUT_STANDARD_PATTERN","LEVEL_COMPARE_MAP","ZOOM_LEVEL","MONTH","YEAR","DECADE","CENTURY","elementHasFocus","Calendar","dateSerializationFormat","zoomLevel","maxZoomLevel","minZoomLevel","showTodayButton","onContouredChanged","skipFocusCheck","_waitRenderView","_moveCurrentDateByOffset","_getRtlCorrection","_navigateUp","_view","_navigateDown","_dateOption","sameView","_moveToClosestAvailableDate","_isMaxZoomLevel","_updateTimeComponent","_dateValue","_getSerializationFormat","_convertToDate","cellElement","_saveValueChangeEvent","_shiftDate","baseDate","_getMaxDate","_getMinDate","isDateForwardInNeighborView","_areDatesInNeighborView","isDateForwardInRange","dateForward","_areDatesInSameView","getYear","isDateForwardInStartView","isDateBackwardInStartView","isCurrentDateAvailable","_isDateNotAvailable","isDateForwardAvailable","isDateBackwardAvailable","dateBackward","_correctZoomLevel","_initCurrentDate","_getNormalizedDate","_getDate","_onContouredChanged","_updateCurrentDate","_$viewsWrapper","_getViewsOffset","_isOtherViewCellClicked","_suppressNavigation","_navigate","_renderNavigator","_setViewContoured","_updateAriaId","zoomCorrection","_getMonthsOffset","yearOffset","monthOffset","_alreadyViewRender","_getDateByOffset","_waitRenderViewTimeout","_date","currentDay","lastDay","_renderSubmitElement","_renderViews","_navigator","_renderSwipeable","_renderFooter","_updateAriaSelected","_getKeyboardListeners","_renderSpecificView","beforeDate","_beforeView","_isViewAvailable","afterDate","_afterView","_translateViews","specificView","$view","_viewConfig","_injectComponent","_cellClickHandler","_getViewPosition","coefficient","rtlCorrection","nextView","isMaxZoomLevel","newCurrentDate","_animateShowView","_navigatorConfig","_updateButtonsVisibility","_navigatorClickHandler","_isMinZoomLevel","_getRequiredView","_swipeable","_swipeStartHandler","_swipeUpdateHandler","_swipeEndHandler","_viewWidth","isRtl","_updateNavigatorCaption","moveOffset","_isDateInInvalidRange","_animateWrapper","_viewWidthValue","$todayButton","_toTodayView","_$footer","_$submitElement","_setSubmitValue","dateValue","_getSubmitElement","_popAnimationView","newView","offsetSign","endPosition","viewsWrapperPosition","_preventViewChangeAnimation","_wrapperAnimationEndHandler","_rearrangeViews","_resetLocation","viewOffset","viewToCreateKey","viewToRemoveKey","destinationDate","dateByOffset","_clearViewWidthCache","_disposeViews","_refreshViews","_updateViewsValue","$prevSelectedCell","$selectedCell","_value2","ariaId","$newCell","_suppressingNavigation","getContouredDate","DateBoxStrategy","dateBox","widgetOption","_widget","_renderWidget","_createWidget","_getWidgetContainer","_getWidgetName","_getWidgetOptions","getDefaultOptions","getDisplayFormat","supportedKeys","getKeyboardListener","customizeButtons","getParsedText","renderInputMinMax","renderOpenedState","_updateValue","popupConfig","_this$_getPopup","_getPopup","renderPopupContent","popup","_preventFocusOnPopup","getFirstPopupElement","getLastPopupElement","popupShowingHandler","popupHiddenHandler","dateBoxValue","useCurrentDateByDefault","getDefaultDate","textChangedHandler","renderValue","getValue","isAdaptivityChanged","dateOption","CalendarStrategy","todayButtonText","homeEndHandler","viewValue","_getContouredValue","lastActionElement","_lastActionElement","shouldCloseDropDown","_closeDropDownByEnter","_valueChangeEventHandler","displayFormat","_valueChangedHandler","_getTodayButtonConfig","buttonsLocation","isButtonsLocationDefault","toolbar","_escapeHandler","_isCalendarVisible","calendarOptions","_getPopupToolbarItems","toolbarItems","useButtons","shouldRenderTodayButton","todayButton","_popupConfig","convertToLocation","DATEVIEW_ROLLER_CLASS","DATEVIEW_ROLLER_ACTIVE_CLASS","DATEVIEW_ROLLER_CURRENT_CLASS","DATEVIEW_ROLLER_ITEM_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_FRAME_CLASS","DATEVIEW_ROLLER_ITEM_SELECTED_BORDER_CLASS","DateViewRoller","showScrollbar","useNative","bounceEnabled","showOnClick","onSelectedIndexChanged","scrollByContent","_visibilityChangedHandler","_endActionHandler","_renderSelectedItemFrame","_renderContainerClick","_renderSelectedValue","_renderItemsClick","_renderWheelEvent","_renderSelectedIndexChanged","_selectedIndexChanged","_isWheelScrolled","clickAction","_$items","_fitIndex","_moveTo","_getItemPosition","_renderActiveStateItem","_itemHeight","_getItemSelector","_itemElementIndex","_shouldScrollToNeighborItem","targetLocation","scrollOffset","_prepareDirections","_animation","handleMove","_moveIsAllowed","_fitSelectedIndexInRange","_isInNullNeighborhood","_getSelectedIndexAfterScroll","currentSelectedIndex","locationTop","currentSelectedIndexPosition","dy","newSelectedIndex","_getNewSelectedIndex","_toggleActive","_fireSelectedIndexChanged","_visibilityTimer","toggleActiveState","_refreshSelectedIndex","fitIndex","DATEVIEW_CLASS","DATEVIEW_COMPACT_CLASS","DATEVIEW_WRAPPER_CLASS","DATEVIEW_ROLLER_CONTAINER_CLASS","ROLLER_TYPE","DateView","_valueOption","_getDefaultDate","applyCompactClass","_toggleFormatClasses","_toggleCompactClass","currentFormat","previousFormat","_wrapper","_$wrapper","_renderRollers","_$rollersContainer","_createRollerConfigs","_rollers","_rollerConfigs","$roller","displayItems","roller","_setActiveRoller","_setRollerState","_createRollerConfig","valueRange","_calculateRollerConfigValueRange","curDate","_getCurrentDate","setValue","valueItems","currentRoller","activeRoller","_updateRollersPosition","correctIndex","rollerValue","_refreshRollers","_refreshRoller","rollerType","rollerConfig","minYear","minMonth","maxYear","maxMonth","minHour","maxHour","DateViewStrategy","openOnFieldClick","applyButtonText","_popupToolbarItemsConfig","_device2","maxWidth","_isNativeType","NativeStrategy","_getDateBoxType","dropDownButton","getButton","_input","TIMEVIEW_CLASS","TIMEVIEW_CLOCK_CLASS","TIMEVIEW_FIELD_CLASS","TIMEVIEW_HOURARROW_CLASS","TIMEVIEW_TIME_SEPARATOR_CLASS","TIMEVIEW_FORMAT12_CLASS","TIMEVIEW_FORMAT12_AM","TIMEVIEW_FORMAT12_PM","TIMEVIEW_MINUTEARROW_CLASS","rotateArrow","$arrow","angle","cssRotate","TimeView","use24HourFormat","_showClock","_arrowOffset","_getValue","_renderBox","_updateTime","$box","_renderClock","_renderField","_$hourArrow","_$minuteArrow","_updateClock","hourArrowAngle","minuteArrowAngle","_getBoxItems","is12HourFormat","_hourBox","_minuteBox","_format12","_createHourBox","_createMinuteBox","_createFormat12Box","_onHourBoxValueChanged","_getNumberBoxConfig","_isPM","newHours","_convertMaxHourToMin","maxHoursValue","newMinutes","valueExpr","_refreshFormat12","_silentEditorValueUpdate","_suppressValueChangeAction","_resumeValueChangeAction","showSpinButtons","displayValueFormatter","_normalizeHours","_updateField","SHRINK_VIEW_SCREEN_WIDTH","DATEBOX_ADAPTIVITY_MODE_CLASS","DATEBOX_TIMEVIEW_SIDE_CLASS","CalendarWithTimeStrategy","applyValueMode","_is24HourFormat","viewDate","_updateDateTime","_timeView","_isShrinkView","_isSmallScreen","_repaintTimer","isAdaptiveMode","currentAdaptiveMode","_currentAdaptiveMode","preventDefaultValue","_box","_attachTabHandler","calendarPopupConfig","_hasFocusClass","_this$_widget$option","_removeMinWidthTimer","DATE_FORMAT","BOUNDARY_VALUES","ListStrategy","_widgetItems","_getDateByItemData","_refreshItems","_timeListItemTemplate","_listItemClickHandler","_getTimeListItems","_setSelectedItemsByValue","_asyncScrollTimeout","_scrollToSelectedItem","dateIndex","_getDateIndex","scrollToItem","_areDatesEqual","_getBoundaryDate","_getRangeItems","rangeDuration","rangeItems","boundaryValue","_updatePopupHeight","dropDownOptionsHeight","popupHeight","_timeList","DATEBOX_CLASS","DX_AUTO_WIDTH_CLASS","DX_INVALID_BADGE_CLASS","DX_CLEAR_BUTTON_CLASS","DATEBOX_WRAPPER_CLASS","DROPDOWNEDITOR_OVERLAY_CLASS","PICKER_TYPE","calendar","rollers","STRATEGY_NAME","dateView","calendarWithTime","STRATEGY_CLASSES","Native","CalendarWithTime","List","DateBox","_strategy","_renderButtonContainers","showAnalogClock","pickerType","invalidDateMessage","dateOutOfRangeMessage","adaptivityEnabled","useHiddenSubmitElement","_updatePickerOptions","_pickerType","_initStrategy","_toLowerCaseFirstLetter","strategyName","_getStrategyName","_getFormatType","currentType","isTime","_refreshFormatClass","_refreshPickerTypeClass","_formatValidationIcon","_this$_strategy$_upda","_this$_strategy","inputElement","clearButtonWidth","_getClearButtonWidth","longestElementDimensions","_getLongestElementDimensions","curWidth","shouldHideValidationIcon","_storedPadding","leftPadding","rightPadding","_isClearButtonVisible","clearButtonElement","longestValue","$longestValueElement","isPaddingStored","storedPadding","elementWidth","necessaryWidth","_renderPopupWrapper","_this$_strategy$_getP","_this$_strategy$_getP2","_this$_strategy2","defaultItems","_getPopupTitle","classPostfixes","_getFirstPopupElement","_getLastPopupElement","_popupShownHandler","_popupHiddenHandler","_clearValueHandler","_readOnlyPropValue","isCustomValueDisabled","_getDisplayedText","submitFormat","submitValue","displayedText","_getFormatByMode","_getParsedDate","_getDateByDefault","_applyInternalValidation","editorSpecific","_applyCustomValidation","parsedText","isDateInRange","validationMessage","_serializeDate","_isValueChanged","oldTime","newTime","_isTextChanged","oldText","newText","_renderProps","_renderOpenedState","_refreshStrategy","placeholder","_applyButtonHandler","_this$_strategy3","_updatePopupTitle","_renderInputValue","isValueChanged","_clearValue","MASK_EVENT_NAMESPACE","FORWARD","BACKWARD","DateBoxMask","originalHandlers","callOriginalHandler","originalHandler","applyHandler","maskHandler","_shouldUseOriginalHandler","del","_revertPart","_isAllSelected","_selectFirstPart","_selectLastPart","_revertChanges","_enterHandler","_selectNextPart","_upDownArrowHandler","isNotDeletingInCalendar","_useMaskBehavior","_setNewDateIfEmpty","originalValue","_getActivePartValue","_initialMaskValue","_loadMaskValue","_partIncrease","useMaskBehavior","emptyDateValue","_isSingleCharKey","_isSingleDigitKey","_e$originalEvent","_useBeforeInputEvent","_keyInputHandler","oldInputValue","_processInputKey","_maskInputHandler","_renderSelectedPart","_maskBeforeInputHandler","isBackwardDeletion","isForwardDeletion","_keyPressHandler","_renderDisplayText","_maskValue","_activePartIndex","_searchString","_searchNumber","_caret","_getFormatPattern","_formatPattern","isLDMLPattern","_renderDateParts","_partLimitsReached","formatLength","_getActivePartProp","isShortFormat","maxSearchLength","isLengthExceeded","isValueOverflowed","_getActivePartLimits","_setActivePartValue","startString","endLimit","_clearSearchValue","_prepareRegExpInfo","_regExpInfo","quantifierRegexp","convertedSource","sourcePart","_initMaskState","_renderMask","_detachMaskEvents","_clearMaskState","_attachMaskEvents","_dateParts","_maskClickHandler","_maskPasteHandler","_maskCompositionEndHandler","_onMouseWheel","isBoundaryIndex","_getRealLimitsPattern","lockOtherParts","limitFunction","_addLeadingZeroes","zeroes","_saveMaskValue","limitDelta","_applyLimits","limitBase","limitClosest","_replaceSelectedText","_isDateValid","_isValueDirty","_fireChangeEvent","shouldFireChangeEvent","DEFAULT_BUTTON","DX_DIALOG_CLASSNAME","DX_DIALOG_WRAPPER_CLASSNAME","DX_DIALOG_ROOT_CLASSNAME","DX_DIALOG_CONTENT_CLASSNAME","DX_DIALOG_MESSAGE_CLASSNAME","DX_DIALOG_BUTTONS_CLASSNAME","DX_DIALOG_BUTTON_CLASSNAME","DX_BUTTON_CLASSNAME","FakeDialogComponent","_options$title","isMessageDefined","isMessageHtmlDefined","messageHtml","$message","popupToolbarItems","buttons","popupInstance","showCloseButton","ignoreChildEvents","dragAndResizeArea","bottomToolbar","$firstButton","popupOptions","isPortrait","alert","confirm","DROP_DOWN_EDITOR_BUTTON_CLASS","DROP_DOWN_EDITOR_BUTTON_VISIBLE","BUTTON_MESSAGE","currentTemplate","_attachEvents","_openHandler","_create","_getOptions","_addToContainer","_legacyRender","isReadOnly","_addTemplate","$editor","_isSameTemplate","DROP_DOWN_EDITOR_CLASS","DROP_DOWN_EDITOR_INPUT_WRAPPER","DROP_DOWN_EDITOR_BUTTON_ICON","DROP_DOWN_EDITOR_OVERLAY","DROP_DOWN_EDITOR_OVERLAY_FLIPPED","DROP_DOWN_EDITOR_ACTIVE","DROP_DOWN_EDITOR_FIELD_CLICKABLE","DROP_DOWN_EDITOR_FIELD_TEMPLATE_WRAPPER","isIOs","DropDownEditor","$focusableElement","_validatedOpening","_getDefaultButtons","Ctor","onOpened","onClosed","acceptCustomValue","dropDownButtonTemplate","fieldTemplate","showDropDownButton","popupPosition","_getDefaultPopupPosition","onPopupInitialized","cancelButtonText","isGeneric","_inputWrapper","_initVisibilityActions","_initPopupInitializedAction","_updatePopupPosition","_openAction","_closeAction","_popupInitializedAction","_renderOpenHandler","_attachFocusOutHandler","_createPopup","_renderInput","_wrapInput","_setDefaultAria","_$container","haspopup","autocomplete","_isEditable","_detachFocusEvents","_getFieldTemplate","_renderTemplatedField","_fieldRenderData","_renderPlaceholder","hasFieldTemplate","_this$_fieldRenderQue","_fieldRenderQueueLength","_detachKeyboardEvents","_refreshButtonsContainer","_detachWrapperContent","$templateWrapper","_integrateInput","_attachWrapperContent","_this$_$submitElement","_this$_$beforeButtons","_this$_$afterButtonsC","beforeButtonsContainerParent","_$beforeButtonsContainer","afterButtonsContainerParent","_$afterButtonsContainer","_this$_$submitElement2","_$buttonsContainer","_refreshValueChangeEvent","_refreshEvents","_refreshEmptinessEvent","_toggleEmptinessEventHandler","_renderEmptinessEvent","$icon","$inputWrapper","_getInputClickHandler","_openOnFieldClickAction","_detachFocusOutEvents","popupWrapper","_$popup","isNewTargetOutside","_executeOpenAction","_focusInput","_toggleOpenState","_resetCaretPosition","ignoreEditable","caretPosition","_getControlsAria","arias","controls","contentReady","_contentReadyHandler","_setPopupContentId","_popupInitializedHandler","_closeOutsideDropDownHandler","onPositioned","_popupPositionedHandler","fullScreen","contentTemplate","labelMode","$popupOverlayContent","isOverlayFlipped","shouldIndentForLabel","_label","$label","_this$_validationMess","_validationMessage","_getValidationMessagePositionSide","_this$_validationMess2","myTop","popupTop","$dropDownButton","isInputClicked","isDropDownButtonClicked","isOutsideClick","_popupElementTabHandler","_popupElementEscHandler","_popupButtonInitializedHandler","buttonsConfig","shortcut","_cancelButtonHandler","_applyButtonsLocation","resultConfig","_updateButtons","getElementWidth","getSizeValue","READONLY_STATE_CLASS","INVALID_CLASS","VALIDATION_STATUS_VALID","VALIDATION_STATUS_INVALID","READONLY_NAMESPACE","ALLOWED_STYLING_MODES","VALIDATION_MESSAGE_KEYS_MAP","validationBoundary","_createValueChangeAction","_valueChangeActionSuppressed","_toggleReadOnlyState","_setSubmitElementName","_renderValidationState","_valueChangeArgs","_canValueBeChangedByClick","_getStylingModePrefix","_renderStylingMode","allowedStylingClasses","stylingModeClass","defaultOptionValue","platformOptionValue","_getValidationErrors","_disposeValidationMessage","_$validationMessage","_toggleValidationClasses","validationMessageContentId","_getValidationMessageTarget","_toggleBackspaceHandler","$eventTarget","$submitElement","_setValidationMessageOption","optionKey","_hasActiveElement","_this$_validationMess3","_refreshFocusState","updateMaxWidth","DataExpressionMixin","_dataExpressionDefaultOptions","_initDataExpressions","_compileValueGetter","_initDynamicTemplates","_displayGetterExpr","_valueGetter","_valueGetterExpr","_loadValue","_unwrappedValue","_isValueEquals","_loadValueDeferred","_rejectValueLoading","_this$_loadValueDefer","shouldSkipCallback","_getCurrentValue","_getItemKey","value1","value2","dataSourceKey","_compareValues","_compareByCompositeKey","_compareByKey","unwrapObservable","valueKey1","valueKey2","_setCollectionWidgetItemTemplate","_setCollectionWidgetOption","_getCollectionKeyExpr","isValueExprField","_dataExpressionOptionChanged","FILTER_BUILDER_RANGE_CLASS","FILTER_BUILDER_RANGE_START_CLASS","FILTER_BUILDER_RANGE_END_CLASS","FILTER_BUILDER_RANGE_SEPARATOR_CLASS","SEPARATOR","editorTemplate","conditionInfo","$editorStart","$editorEnd","getStartValue","getEndValue","_editorFactory","createEditor","parentType","valueSeparator","dataTypes","notForLookup","OPERATION_ICONS","notcontains","startswith","endswith","isblank","isnotblank","OPERATION_NAME","between","getIconByFilterOperation","filterOperation","getNameByFilterOperation","DEFAULT_DATA_TYPE","EMPTY_MENU_ICON","AND_GROUP_OPERATION","EQUAL_OPERATION","NOT_EQUAL_OPERATION","DATATYPE_OPERATIONS","DEFAULT_FORMAT","LOOKUP_OPERATIONS","AVAILABLE_FIELD_PROPERTIES","FILTER_BUILDER_CLASS","FILTER_BUILDER_ITEM_TEXT_CLASS","FILTER_BUILDER_ITEM_TEXT_PART_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_CLASS","FILTER_BUILDER_ITEM_TEXT_SEPARATOR_EMPTY_CLASS","getFormattedValueText","fieldFormat","isNegationGroup","isCondition","getGroupCriteria","setGroupCriteria","convertGroupToNewStructure","setGroupValue","getGroupMenuItem","availableGroups","groupValue","getGroupValue","getCriteriaOperation","getDefaultFilterOperations","containItems","entity","getFilterOperations","filterOperations","getCaptionByOperation","filterOperationDescriptions","operationName","getOperationFromAvailable","availableOperations","getCustomOperation","customOperations","filteredOperations","getAvailableOperations","isLookupField","customOperation","isOperationForbidden","isCustom","getDefaultOperation","defaultFilterOperation","createCondition","updateConditionByOperation","removeItem","createEmptyGroup","isNegation","isNegationGroupOperation","groupOperation","getGroupOperationFromNegationOperation","extendedFields","isGroup","convertToInnerGroup","defaultGroupOperation","innerGroup","convertToInnerStructure","appendGroupOperationToGroup","convertToInnerCondition","conditionHasCustomOperation","appendGroupOperationToCriteria","getNormalizedFields","normalizedField","defaultCalculateFilterExpression","trueText","falseText","getConditionFilterExpression","filterExpression","calculateFilterExpression","createFilterExpression","getFilterExpression","_filterExpression","getNormalizedFilter","itemsForRemove","normalizedGroupValue","isValidCondition","getCurrentLookupValueText","lookupDataSource","getPrimitiveValueText","getArrayValueText","checkDefaultValue","getCurrentValueText","itemExists","parentId","pushItemAndCheckParent","originalItems","hasParent","getParentIdFromItemDataField","generateCaptionByDataField","allowHierarchicalFields","getCaptionWithParents","hasValue","getOperationValue","getMergedOperations","betweenCaption","betweenIndex","isMatchedCondition","addedFilterDataField","removeFieldConditionsFromFilter","hasMatchedCondition","syncConditionIntoGroup","addedFilter","canPush","syncFilters","getMatchedConditions","filterHasField","renderValueText","lastItemIndex","FormItemsRunTimeInfo","_map","_findWidgetInstance","widgetInstance","_findFieldByCondition","removeItemsByItems","itemsRunTimeInfo","removeItemByKey","addItemsOrExtendFrom","itemRunTimeInfo","extendRunTimeItemInfoByKey","findWidgetInstanceByItem","storedItem","findGroupOrTabLayoutManagerByPath","targetPath","findKeyByPath","findWidgetInstanceByName","findWidgetInstanceByDataField","findItemContainerByItem","findItemIndexByItem","targetItem","findPreparedItemByItem","removeItemsByPathStartWith","filteredKeys","ItemOptionAction","_itemsRunTimeInfo","findInstance","findItemContainer","findPreparedItem","tryExecute","createItemPathByIndex","isTabs","concatPaths","getTextWithoutSpaces","isEqualToDataFieldOrNameOrTitleOrCaption","itemType","getFullOptionName","getOptionNameFromFullName","tryGetTabPath","pathParts","resultPathParts","isFullPathContainsTabs","getItemPath","tabOrGroupItems","tabs","convertToLayoutManagerOptions","form","$formElement","formOptions","extendedLayoutManagerOptions","onFieldDataChanged","onFieldItemRendered","baseOptions","showRequiredMark","showOptionalMark","requiredMark","optionalMark","requiredMessage","screenByWidth","layoutData","formData","labelLocation","customizeItem","minColWidth","showColonAfterLabel","onEditorEnterKey","alignItemLabels","cssItemClass","colCountByScreen","onLayoutChanged","WidgetOptionItemOptionAction","TabOptionItemOptionAction","tabPanel","SimpleItemTemplateChangedAction","GroupItemTemplateChangedAction","preparedItem","_prepareGroupItemTemplate","_renderGroupContentTemplate","TabsOptionItemOptionAction","ValidationRulesItemOptionAction","validator","filterRequired","oldContainsRequired","newContainsRequired","validationRules","CssClassItemOptionAction","tryCreateItemOptionAction","itemActionOptions","_itemActionOptions$it","_itemActionOptions$it2","_itemActionOptions$it3","RESPONSIVE_BOX_CLASS","SCREEN_SIZE_CLASS_PREFIX","HD_SCREEN_WIDTH","ResponsiveBox","rows","singleColumnScreen","currentScreenFactor","_initLayoutChangedAction","_layoutChangedAction","_setScreenSize","_screenItems","_itemsByScreen","_prepareGrid","_spreadItems","_layoutItems","_linkNodeToItem","_clearItemNodeTemplates","_update","currentScreen","_getCurrentScreen","_removeScreenSizeClass","grid","_grid","_prepareRowsAndCols","_rows","_cols","_createEmptyCell","getSingleColumnRows","screenItemsLength","filteredRows","_filterByScreen","sizeConfig","_defaultSizeConfig","_isSingleColumnScreen","_prepareSingleColumnScreenItems","_sizesByScreen","_screenRegExp","sizeConfigs","_createDefaultSizeConfig","defaultSizeConfig","screenRegExp","_screenWidth","itemInfo","itemCol","itemRow","itemCell","_occupyCells","locations","_isItemCellOccupied","_markSpanningCell","_loopOverSpanning","rowEnd","colEnd","boundRowEnd","boundColEnd","spanningCell","itemNode","rowsCount","colsCount","_layoutBlock","rootBox","_prepareBoxConfig","_rootBoxConfig","_$root","rootItems","_needApplyAutoBaseSize","_isSingleItem","_itemByCell","_layoutDirection","firstCellLocation","isItemRowSpanned","isItemColSpanned","block","crossDirection","_crossDirection","_nextBlock","_isBlockIndivisible","prevBlockOptions","_blockSize","startIndex","endIndex","crossStartIndex","crossSpan","crossIndex","lineCrossSpan","_cellByDirection","lineCrossEndIndex","crossEndIndex","defaultMinSize","forceRemoveRoot","$existingRoot","_saveAssistantRoot","_assistantRoots","_cleanUnusedRoots","FORM_CLASS","FORM_GROUP_CLASS","FORM_GROUP_CAPTION_CLASS","FORM_FIELD_ITEM_COL_CLASS","FIELD_ITEM_CLASS","LAYOUT_MANAGER_ONE_COLUMN","FIELD_ITEM_LABEL_CONTENT_CLASS","FORM_LAYOUT_MANAGER_CLASS","FIELD_ITEM_LABEL_CLASS","FIELD_ITEM_CONTENT_CLASS","SINGLE_COLUMN_ITEM_CONTENT","ROOT_SIMPLE_ITEM_CLASS","FORM_GROUP_CONTENT_CLASS","FIELD_ITEM_CONTENT_HAS_GROUP_CLASS","FIELD_ITEM_CONTENT_HAS_TABS_CLASS","FORM_GROUP_WITH_CAPTION_CLASS","FIELD_ITEM_TAB_CLASS","GROUP_COL_COUNT_CLASS","GROUP_COL_COUNT_ATTR","FORM_VALIDATION_SUMMARY","FORM_UNDERLINED_CLASS","SIMPLE_ITEM_TYPE","EDITORS_WITH_ARRAY_VALUE","EDITORS_WITHOUT_LABELS","convertToRenderFieldItemOptions","rootElementCssClassList","formOrLayoutManager","createComponentCallback","labelTemplate","formLabelLocation","requiredMessageTemplate","editorValue","canAssignUndefinedValueToEditor","editorValidationBoundary","managerLabelLocation","itemId","managerMarkOptions","onLabelTemplateRendered","isRequired","_hasRequiredRuleInSet","isSimpleItem","helpID","helpText","labelOptions","_convertToLabelOptions","formLabelMode","needRenderLabel","labelID","labelNeedBaselineAlign","editorType","editorOptions","_convertToEditorOptions","defaultEditorName","externalEditorOptions","editorInputId","labelText","textWithoutColon","labelMark","markOptions","needRenderOptionalMarkAsHelpText","getLabelMarkText","convertToLabelMarkOptions","editorOptionsWithValue","inputAttr","hasRequiredRule","isEditorWithoutLabels","showColon","FIELD_ITEM_REQUIRED_MARK_CLASS","FIELD_ITEM_LABEL_LOCATION_CLASS","FIELD_ITEM_OPTIONAL_MARK_CLASS","FIELD_ITEM_LABEL_TEXT_CLASS","renderLabel","labelTemplateData","$labelContainer","$labelContent","_renderLabelMark","markText","setLabelWidthByMaxLabelWidth","$targetContainer","labelsSelector","labelMarkOptions","labelWidth","FIELD_ITEM_LABEL_CONTENT_CLASS_Selector","$FIELD_ITEM_LABEL_CONTENT_CLASS_Items","FIELD_ITEM_LABEL_CONTENT_CLASS_Length","getLabelWidthByHTML","labelContent","FLEX_LAYOUT_CLASS","FIELD_ITEM_OPTIONAL_CLASS","FIELD_ITEM_REQUIRED_CLASS","FIELD_ITEM_CONTENT_WRAPPER_CLASS","FIELD_ITEM_CONTENT_LOCATION_CLASS","FIELD_ITEM_LABEL_ALIGN_CLASS","FIELD_ITEM_HELP_TEXT_CLASS","LABEL_VERTICAL_ALIGNMENT_CLASS","LABEL_HORIZONTAL_ALIGNMENT_CLASS","VALIDATION_TARGET_CLASS","renderFieldItem","$fieldEditorContainer","getTemplateData","$validationTarget","getValidationTarget","validationTargetInstance","tryGetValidationTargetInstance","subscribeWrapperInvalidClassToggle","$div","isItemHaveCustomLabel","itemName","dataGetter","formItem","$editorParent","_$validationTarget$pa","_$validationTarget$pa2","wrapperClass","toggleInvalidClass","FIELD_BUTTON_ITEM_CLASS","renderButtonItem","convertAlignmentToTextAlign","convertAlignmentToJustifyContent","$button","buttonInstance","buttonOptions","FIELD_EMPTY_ITEM_CLASS","renderEmptyItem","FORM_EDITOR_BY_DEFAULT","LAYOUT_MANAGER_FIRST_ROW_CLASS","LAYOUT_MANAGER_LAST_ROW_CLASS","LAYOUT_MANAGER_FIRST_COL_CLASS","LAYOUT_MANAGER_LAST_COL_CLASS","LayoutManager","_itemWatchers","_updateReferencedOptions","_initDataAndItems","_cleanItemWatchers","initialData","_syncDataWithItems","_updateItems","userItems","_getDataByField","_updateFieldValue","_isCheckboxUndefinedStateEnabled","allowIndeterminateState","nameParts","_triggerOnFieldDataChanged","isUserItemsExist","_generateItemsByData","processedItems","_isAcceptableItem","_updateItemWatchers","_setItems","_sortItems","watch","_getWatch","itemField","_getEditorTypeByDataType","_item$allowIndetermin","_sortIndexes","indexA","indexB","_renderResponsiveBox","templatesInfo","_getColCount","_prepareItemsWithMerging","layoutItems","_generateLayoutItems","_responsiveBox","_getResponsiveBoxConfig","_renderTemplates","_itemStateChangedHandler","itemsWithLabelTemplateCount","_item$label","_renderButtonItem","_renderFieldItem","xsColCount","xs","isSingleColumnMode","itemRenderedCountInPreviousRows","itemCssClassList","isLastColumn","_getRowsCount","isLastRow","_generateRatio","screenFactor","getTargetScreenFactor","_cashedColCount","_getMaxColCount","maxColCount","isCachedColCountObsolete","itemsMergedByCol","colSpan","_getColByIndex","merged","generatedItem","rowSpan","_renderEmptyItem","_item$label2","_getFormOrThis","getItemID","_getMarkOptions","_incTemplateRenderedCallCount","_shouldAlignLabelsOnTemplateRendered","_alignLabels","_bindDataField","_this$_labelTemplateR","_labelTemplateRenderedCallCount","totalItemsWithLabelTemplate","editorInstance","formOrThis","_createWatcher","linkEditorToDataField","fieldValue","_watch","formInstance","readOnlyState","isAutoSize","newLayoutData","_resetWidget","_disableEditorValueChangedHandler","_cashedRequiredConfig","valueGetter","dataValue","_resetColCount","isValueReferenceType","updateData","getEditor","responsiveBox","getItemsRunTimeInfo","ITEM_OPTIONS_FOR_VALIDATION_UPDATING","Form","_cachedColCountOptions","_groupsColCount","_attachSyncSubscriptions","formID","alignItemLabelsInAllGroups","alignRootItemLabels","showValidationSummary","_getGroupColCount","_applyLabelsWidthByCol","fieldItemClass","inOneColumn","cssExcludeTabbedSelector","excludeTabbed","_applyLabelsWidth","applyLabelsOptions","_getGroupElementsInColumn","cssColCountSelector","groupSelector","_applyLabelsWidthWithGroups","$rootSimpleItems","_applyLabelsWidthWithNestedGroups","$groups","groupsColIndex","groupColIndex","$groupsByCol","groupColCount","_labelLocation","_alignLabelsInColumn","layoutManager","_checkGrouping","_prepareFormData","_setStylingModeClass","addGroup","_getValidationGroup","_clearCachedInstances","_renderScrollable","_renderLayout","_renderValidationSummary","_lastMarkupScreenFactor","_targetScreenFactor","_getCurrentScreenFactor","_cachedLayoutManagers","_clearValidationSummary","useNativeScrolling","_scrollable","useSimulatedScrollbar","_getContent","_this$_$validationSum","_$validationSummary","_validationSummary","dxValidationSummary","_prepareItems","parentIsTabbedItem","currentPath","_tryPrepareGroupItem","_tryPrepareTabbedItem","_tryPrepareItemTemplate","groupContentTemplate","_itemGroupTemplate","_itemTabbedTemplate","_rootLayoutManager","_renderLayoutManager","_createLayoutManagerOptions","_tryGetItemsForTemplate","$tabPanel","tabPanelOptions","_item$tabPanelOptions","_item$tabPanelOptions2","tryUpdateTabPanelInstance","$group","$groupContent","_isDataUpdating","nestedItemsRunTimeInfo","_this$_validationSumm","refreshValidationGroup","layoutManagerOptions","baseColCountByScreen","md","sm","_clearAutoColCountChangedTimeout","autoColCountChangedTimeoutId","optionFullName","_triggerOnFieldDataChangedByDataSet","splitFullName","_itemsOptionChangedHandler","_formDataOptionChangedHandler","_defaultOptionChangedHandler","_resetValues","removeGroup","_getItemPath","optionNameWithoutPath","simpleOptionName","itemAction","_tryCreateItemOptionAction","_tryExecuteItemOptionAction","_tryChangeLayoutManagerItemOption","_changeItemOption","_generateItemsFromData","_updateValidationGroupAndSummaryIfNeeded","_this$_validationSumm2","_setLayoutManagerItemOption","contentReadyHandler","tabPath","tabLayoutManager","endPartIndex","_itemPath","_layoutManager","fullOptionName","formItems","layoutManagerItems","layoutItem","_tryChangeLayoutManagerItemOptions","_getItemByField","resultItem","fieldParts","_getFieldParts","fieldPath","_getItemByFieldPath","subItemsField","_getSubItemField","separatorIndex","resultPath","isItemWithSubItems","isGroupWithName","nameWithoutSpaces","pathNode","_searchItemInEverySubItem","_isColCountChanged","oldScreenSize","newScreenSize","isChanged","editorSelector","resetGroup","_updateData","isComplexData","resetValues","itemOption","allowUpdateItems","validateGroup","registerKeyboardAction","viewName","keyboardController","COLUMN_HEADERS_VIEW","ROWS_VIEW","FOOTER_VIEW","COLUMN_VIEWS","ADAPTIVE_NAMESPACE","HIDDEN_COLUMNS_WIDTH","ADAPTIVE_ROW_TYPE","FORM_ITEM_CONTENT_CLASS","FORM_ITEM_MODIFIED","HIDDEN_COLUMN_CLASS","ADAPTIVE_COLUMN_BUTTON_CLASS","ADAPTIVE_COLUMN_NAME_CLASS","COMMAND_ADAPTIVE_HIDDEN_CLASS","ADAPTIVE_DETAIL_ROW_CLASS","ADAPTIVE_ITEM_TEXT_CLASS","MASTER_DETAIL_CELL_CLASS","LAST_DATA_CELL_CLASS","ADAPTIVE_COLUMN_NAME","EDIT_MODE_BATCH","EDIT_MODE_ROW","EDIT_MODE_FORM","EDIT_MODE_POPUP","REVERT_TOOLTIP_CLASS","GROUP_CELL_CLASS","GROUP_ROW_CLASS","EXPAND_ARIA_NAME","COLLAPSE_ARIA_NAME","LEGACY_SCROLLING_MODE","getColumnId","getDataCellElements","adaptiveCellTemplate","$adaptiveColumnButton","adaptiveColumnsController","addWidgetPrefix","toggleExpandAdaptiveDetailRow","setEmptyText","AdaptiveColumnsController","_isRowEditMode","editMode","_getEditMode","_isItemModified","cellOptions","modifiedValues","_renderFormViewTemplate","focusAction","isCellOrBatchEditMode","allowEditing","_cellPrepared","renderFormTemplate","isItemEdited","_isItemEdited","showEditorAlways","renderFormEditTemplate","_isVisibleColumnsValid","visibleColumn","_calculatePercentWidths","widths","percentWidths","_getItemPercentWidth","_isPercentWidth","_isColumnHidden","_hiddenColumns","hiddenColumn","_getAverageColumnsWidth","containerWidth","columnsCanFit","fixedColumnsWidth","columnsWithoutFixedWidthCount","_calculatePercentWidth","columnsCount","bestFitWidth","columnWidth","_calculateColumnWidth","contentColumns","colWidth","columnId","widthOption","columnAutoWidth","columnFitted","partialWidth","resultWidth","_getNotTruncatedColumnWidth","_getCommandColumnsWidth","isFormOrPopupEditMode","adaptiveExpandedKey","isEditCell","editRowKey","_getFormItemsByHiddenColumns","hiddenColumns","_getAdaptiveColumnVisibleIndex","_hideAdaptiveColumn","resultWidths","_hideVisibleColumn","isCommandColumn","_showHiddenCellsInView","$cells","cssClassNameToRemove","_showHiddenColumns","$hiddenCommandCells","$hiddenCells","_isCellValid","_hideVisibleColumnInView","$cellElement","editFormRowIndex","getEditFormRowIndex","$rowElements","_getRowElements","cancelClassAdding","currentVisibleIndex","$rowElement","_findCellElementInRow","_hideVisibleCellInView","visibleColumnIndex","$rowCells","cellIsInsideGroup","groupCellLength","endGroupIndex","cssClassNameToAdd","getEditMode","hideRedundantColumns","hiddenQueue","hasHiddenColumns","needHideColumn","totalWidth","rootElementWidth","getVisibleContentColumns","visibleContentColumns","contentColumnsCount","minWidth","columnBestFitWidth","fixed","getItemContentByColumnIndex","_$itemContents","alwaysExpanded","isEditing","createFormByHiddenColumns","userFormOptions","defaultFormOptions","_form","updateForm","hasAdaptiveDetailRowExpanded","_contentReadyAction","updateHidingQueue","columnsHasHidingPriority","hideableColumns","_hidingColumnsQueue","hidingPriority","getHiddenColumns","getHidingColumnsQueue","addCommandColumn","adaptiveHidden","fixedPosition","columnsChanged","isAdaptiveVisible","isAdaptiveDetailRowExpanded","expandAdaptiveDetailRow","collapseAdaptiveDetailRow","updateCommandAdaptiveAriaLabel","getRowElement","setCommandAdaptiveAriaLabel","labelName","$adaptiveCommand","adaptivityModule","columnHidingEnabled","onAdaptiveDetailRowPreparing","adaptiveColumns","_adaptiveColumnsController","hidingColumnsQueueLength","hiddenColumnsLength","_getColumnIndexByElementCore","_getCellElement","columnIdentifier","isClickableElement","isClickable","_pointCreated","currentColumn","nextColumnIndex","_getNextColumnIndex","nextColumn","hasHiddenColumnsOnly","hasAdaptiveHiddenWidth","currentColumnIndex","sourceColumn","_getFormEditItemTemplate","getColumnTemplate","_closeEditItem","$targetElement","$itemContents","_beforeUpdateItems","rowIndices","_adaptiveController","oldExpandRowIndex","_isForceRowAdaptiveExpand","_afterInsertRow","isRowEditMode","_collapseAdaptiveDetailRow","_cancelEditAdaptiveDetailRow","_afterSaveEditData","_beforeCancelEditData","_getRowIndicesForCascadeUpdating","_beforeCloseEditCellInBatchMode","expandedKey","_adaptiveExpandedKey","editRow","deleteRow","rowKey","getKeyByRowIndex","resizing","_needBestFit","_correctColumnWidths","adaptiveController","oldHiddenColumns","hidingColumnsQueue","_toggleBestFitMode","isBestFit","_needStretch","_updateScrollableTimeoutID","_processItems","expandRowIndex","newMode","isNewRow","_getRowIndicesForExpand","lastRowIndex","oldExpandLoadedRowIndex","newExpandLoadedRowIndex","oldKey","rowIndexDelta","getRowIndexDelta","updateItems","allowInvisibleRowIndices","editorFactory","_getFocusCellSelector","_getTooltipsSelector","_isColumnVisible","_processNextCellInMasterDetail","$nextCell","isCellOrBatchMode","_isInsideEditForm","focusHandler","_handleTabKeyOnMasterDetailCell","$currentCell","_getFocusedCell","$dataCells","$targetCell","isCellElementsEquals","COLUMN_CHOOSER_CLASS","COLUMN_CHOOSER_BUTTON_CLASS","NOTOUCH_ACTION_CLASS","COLUMN_CHOOSER_LIST_CLASS","COLUMN_CHOOSER_PLAIN_CLASS","COLUMN_CHOOSER_DRAG_CLASS","COLUMN_CHOOSER_SELECT_CLASS","COLUMN_CHOOSER_ICON_NAME","COLUMN_CHOOSER_ITEM_CLASS","TREEVIEW_NODE_SELECTOR","CHECKBOX_SELECTOR","CLICK_TIMEOUT","processItems","chooserColumns","isSelectMode","allowHiding","disableCheckBox","ownerBand","ColumnChooserController","renderShowColumnChooserButton","$columnChooserButton","columnChooserButtonClass","columnChooserEnabled","$showColumnChooserButton","showColumnChooser","getPosition","ColumnChooserView","_resizeCore","_isWinDevice","_updateList","_popupContainer","columnChooserList","_columnChooserList","getChooserColumns","_renderTreeView","_initializePopupContainer","columnChooserOptions","themeName","isGenericTheme","isMaterial","dxPopupOptions","resizeEnabled","copyRootClassesToWrapper","_ignoreCopyRootClassesToWrapperDeprecation","treeViewConfig","dataStructure","searchEnabled","allowSearch","searchTimeout","$checkBox","$treeViewNode","checkBoxInstance","scrollableInstance","isBandColumnsUsed","scrollable","_prepareSelectModeConfig","_prepareDragModeConfig","selectNodesRecursive","onItemSelectionChanged","isLastColumnUnselected","needPartialRender","needFullRender","showInColumnChooser","$nodes","sourceLocation","columnVisible","isParentColumnVisible","isColumnChooserVisible","hideColumnChooser","popupContainer","columnChooserModule","_appendColumnChooserItem","hintText","_getToolbarButtonClass","allowMoveColumn","fromVisibleIndex","toVisibleIndex","columnChooserMode","isMoveColumnDisallowed","CONTENT_CLASS","CONTENT_FIXED_CLASS","FIRST_CELL_CLASS","LAST_CELL_CLASS","HOVER_STATE_CLASS","FIXED_COL_CLASS","FIXED_COLUMNS_CLASS","POINTER_EVENTS_NONE_CLASS","COMMAND_TRANSPARENT","DETAIL_ROW_CLASS","getTransparentColumnIndex","fixedColumns","transparentColumnIndex","normalizeColumnWidths","fixedWidths","fixedColumnIndex","baseFixedColumns","_isFixedTableRendering","_isFixedColumns","_createCol","_correctColumnIndicesForFixedColumns","transparentColspan","_partialUpdateFixedTable","fixedTableElement","_fixedTableElement","$rows","_getRowElementsCore","$colgroup","_createColGroup","_partialUpdateFixedRow","groupCellOptions","cellElements","transparentColumn","columnIndexOffset","getColumnIndexOffset","_this$_columnsControl","_getGroupCellOptions","needUpdateColspan","$fixedTable","getFixedColumns","$table","virtualColumnsScrolling","_renderRows","_renderRow","fixedCorrection","cells","fixedCells","prevFixedColumn","columnCommand","isRowAltStyle","isAltRow","_wrapTableInScrollContainer","$scrollContainer","isEmptyCell","isFixedTableRendering","isGroupCell","groupCellTemplate","alignByFixedColumnCellCount","isFixed","_getCellElementsCore","headerRowIndex","fixedCellElements","fixedColumn","getVisibleIndexByColumn","tableElement","setTableElement","$tableElement","getRowIndex","getTableElements","getFixedColumnsOffset","$transparentColumn","getTransparentColumnElement","positionTransparentColumn","getFixedTableElement","isFixedColumns","synchronizeRows","setColumnWidths","isWidthsSynchronized","isColumnWidthChanged","useVisibleColumns","hasAutoWidth","isScrollbarVisible","_getClientHeight","boundingClientRectElement","$fixedRowElements","$contentElement","rowHeights","fixedRowHeights","_tableElement","heightTable","heightFixedTable","_findContentElement","rowHeight","fixedRowHeight","setScrollerSpacing","ColumnHeadersViewFixedColumnsExtender","_getRowVisibleColumns","columnFixingOptions","allowFixing","leftPosition","rightPosition","unfix","getFixedColumnElements","columnElements","$transparentColumnElement","$fixedColumnElements","_getWidths","RowsViewFixedColumnsExtender","_detachHoverEvents","attachHoverEvent","isHover","scrollDelay","getScrollable","_fixedScrollTimeout","$nearestScrollable","shouldScroll","nearestScrollableInstance","nearestScrollableHasVerticalScrollbar","scrollHeight","getScrollbarWidth","_updateScrollable","_updateFixedTablePosition","contentElement","_renderGroupedCells","startColumnIndex","setRowsOpacity","_setRowsOpacityCore","getCellIndex","needFocus","vWidth","hWidth","marginBottom","$fixedContent","_getElasticScrollTop","elasticScrollTop","reachedBottom","$scrollableContent","$scrollableContainer","maxScrollTop","_applyElasticScrolling","_handleScroll","_updateContentPosition","isRender","_scrollTop","_afterRowPrepared","_scrollToElement","FooterViewFixedColumnsExtender","columnFixingModule","columnFixing","_generatePointsByColumns","targetDraggingPanel","pointsByColumns","targetColumn","_columnHeadersView","boundingRect","_pointsByFixedColumns","getPointsByColumns","_getTargetPoint","currentX","CELL_CONTENT_CLASS","HEADERS_CLASS","NOWRAP_CLASS","ROW_CLASS_SELECTOR","HEADER_ROW_CLASS","COLUMN_LINES_CLASS","CONTEXT_MENU_SORT_ASC_ICON","CONTEXT_MENU_SORT_DESC_ICON","CONTEXT_MENU_SORT_NONE_ICON","CELL_FOCUS_DISABLED_CLASS","VISIBILITY_HIDDEN_CLASS","TEXT_CONTENT_ALIGNMENT_CLASS_PREFIX","SORT_INDICATOR_CLASS","SORT_INDEX_INDICATOR_CLASS","HEADER_FILTER_INDICATOR_CLASS","MULTI_ROW_HEADER_CLASS","columnHeadersModule","showColumnHeaders","cellHintEnabled","createCellContent","$cellContent","addCssClassesToCellContent","contentAlignment","getHeaderContentAlignment","$indicatorElements","_getIndicatorElements","$visibleIndicatorElements","indicatorCount","columnAlignment","_getColumnAlignment","sortIndicatorClassName","_getIndicatorClassName","sortIndexIndicatorClassName","$sortIndicator","$sortIndexIndicator","_isLegacyKeyboardNavigation","_getDefaultTemplate","_getHeaderTemplate","headerCellTemplate","allowRenderToDetachedContainer","_processTemplate","resultTemplate","renderingTemplate","_isGroupingChanged","_setCellAriaAttributes","headerId","headerFilterController","$column","getColumnIndexByElement","_processHeaderAction","_hasRowElements","groupExpanding","resizeCompleted","_isElementVisible","elementOptions","_alignCaptionByCenter","$indicatorsContainer","_getIndicatorContainer","_updateCell","_updateIndicator","indicatorName","$indicatorElement","returnAll","_isSortableElement","getHeadersRowHeight","$headerRows","headerRow","getHeaderElement","bandColumnIndex","getCellElements","getVisibleColumnIndex","$columnElements","draggingPanels","draggableColumnCount","canHideColumn","allowDrag","allowReordering","isColumnOptionUsed","draggingPanel","getColumnCount","sortingOptions","allowSorting","changeSortOrder","ascendingText","descendingText","clearText","columnID","setColumnOpacity","USER_STATE_FIELD_NAMES_15_1","USER_STATE_FIELD_NAMES","IGNORE_COLUMN_OPTION_NAMES","bufferedFilterValue","COMMAND_EXPAND_CLASS","GROUP_COMMAND_COLUMN_NAME","globalColumnId","columnsControllerModule","allowFiltering","allowColumnReordering","allowColumnResizing","columnResizingMode","columnMinWidth","adaptColumnWidthByRatio","regenerateColumnsByVisibleItems","customizeColumns","Controller","DEFAULT_COLUMN_OPTIONS","COLUMN_INDEX_OPTIONS","setFilterOperationsAsDefaultValues","defaultFilterOperations","createColumn","columnOptions","userStateColumnOptions","bandColumn","commonColumnOptions","getCommonSettings","calculatedColumnOptions","_createCalculatedColumnOptions","createColumnsFromOptions","columnsOptions","_columnsUserState","checkUserStateColumn","hasColumns","getParentBandColumns","columnParentByIndex","_getChildrenByBandColumn","columnChildrenByIndex","recursive","getColumnFullPath","bandColumnsCache","getBandColumnsCache","callbackFilter","isPlain","_columns","calculateColspan","getValueDataType","getSerializationFormat","updateSerializers","isDateType","customizeTextForBooleanDataType","updateColumnIndexes","_commandColumns","updateColumnGroupIndexes","getColumnIndexByVisibleIndex","userStateColumn","applyUserState","userStateColumnIndex","columnsUserState","ignoreColumnOptionNames","_ignoreColumnOptionNames","columnCountById","resultColumns","allColumnsHaveState","userStateColumnIndexes","applyFieldsState","defaultSelectedFilterOperation","findUserStateColumn","_hasUserState","initialIndex","hasAddedBands","columnUserState","assignColumns","updateIndexes","isSortOrderValid","resetBandColumnsCache","bandedColumns","parentBandColumns","resetColumnsCache","updateColumnDataTypes","updateColumnChanges","columnChanges","_columnChanges","fireColumnsChanged","onColumnsChanging","reinitOptionNames","reinit","updateSortOrderWhenGrouping","prevGroupIndex","columnWasGrouped","lastSortOrder","sortMode","sortedByAnotherColumn","fireOptionChanged","fullOptionPath","_skipProcessingColumnsChange","columnOptionCore","notFireEvent","initialColumn","optionGetter","optionSetter","_checkColumns","getColumnByPath","defaultSetCellValue","dotCount","isCustomCommandColumn","commandColumn","getFixedPosition","processExpandColumns","expandColumns","customColumnIndex","expandColumnsByType","expandColumn","numberToString","digitsCount","mergeColumns","commandColumns","needToExtend","commandColumnIndex","isColumnFixing","_isColumnFixing","defaultCommandColumns","getCommandColumnIndex","columnType","isColumnFixed","_bandColumnsCache","findColumn","identifierOptionName","allowResizing","_getFirstItems","getFirstItemsCore","_endUpdateCore","isApplyingUserState","_isColumnsFromOptions","_dataSourceApplied","applyDataSource","columnIndexes","needUpdateRequireResize","_updateRequireResize","columnOptionValue","columnOptionName","_requireResize","forceApplying","isDataSourceLoaded","_dataSourceColumnsCount","columnsFromDataSource","firstItems","processedFields","updateColumns","isAllDataTypesDefined","_visibleColumns","_fixedColumns","_rowCount","getUserState","isDataSourceApplied","groupingOptions","autoExpandGroup","checkSerializers","defaultCalculateCellValue","_shouldReturnVisibleColumns","_compileVisibleColumns","_compileVisibleColumnsCore","_getFixedColumnsCore","getFilteringColumns","allowHeaderFiltering","notFixedColumnCount","lastFixedPosition","newColumn","_getExpandColumnsCore","getExpandColumns","firstGroupColumn","isFixedFirstGroupColumn","isFixedToEnd","rowspanGroupColumns","rowspanExpandColumns","positiveIndexedColumns","negativeIndexedColumns","notGroupedColumnsCount","columnDigitsCount","indexedColumns","firstPositiveIndexColumn","columnsByFixing","columnsByVisibleIndex","getDataColumns","bandColumnID","getInvisibleColumns","hiddenColumnsByBand","getAllColumns","columnChooserColumns","column1","column2","caption1","caption2","localeCompare","moveColumn","targetGroupIndex","sortingMode","needResetSorting","getSortDataSourceParameters","useLocalSelector","sortColumns","sortItem","calculateSortValue","displayField","sortingMethod","calculateGroupValue","updateNewLookupsOnly","valueMap","_updateColumnOptions","calculateCallbackName","calculateCallback","displayValueMap","isRTL","isColumnDataTypesUpdated","lookupDataType","valueDataType","_customizeColumns","hasOwnerBand","updateSortingGrouping","sortParameters","groupParameters","filterParameters","_updateChanges","equalSortParameters","equalFilterParameters","fromDataSource","isColumnsChanged","updateSortGroupParameterIndexes","indexParameterName","columnsGroupParameters","columnsSortParameters","groupingChanged","groupExpandingChanged","updateFilter","remoteFiltering","filterValue","columnCount","clearSorting","addColumn","deleteColumn","childIndexes","handleStateField","setUserState","isFilterPanelHidden","usedNames","hasEditableColumnWithoutName","duplicatedNames","_column$columns","isEditable","setCellValue","skipDeserialization","formattedValueWithDefaultFormat","userDataType","selectedFilterOperation","updateValueMap","calculateValue","resizedCallbacks","resized","defaultOptionName","invisibleParents","alwaysGetRowIndex","onlyVisibleDirectChildren","isParentBandColumn","bandColumns","COLUMNS_SEPARATOR_CLASS","COLUMNS_SEPARATOR_TRANSPARENT","DRAGGING_HEADER_CLASS","HEADERS_DRAG_ACTION_CLASS","TRACKER_CLASS","HEADERS_DROP_HIGHLIGHT_CLASS","BLOCK_SEPARATOR_CLASS","WIDGET_CLASS","DRAGGING_COMMAND_CELL_CLASS","MODULE_NAMESPACE","COLUMNS_SEPARATOR_TOUCH_TRACKER_WIDTH","DRAGGING_DELTA","COLUMN_OPACITY","TrackerView","View","_unsubscribeFromCallback","_positionChanged","_tablePositionController","positionChanged","_subscribeToCallback","SeparatorView","_isShown","ColumnsSeparatorView","_isTransparent","columnsSeparatorTransparent","moveByX","outerX","_parentElement","changeCursor","cursorName","BlockSeparatorView","loadingChanged","startAnimate","toOptions","DraggingHeaderView","_isDragging","isDragging","_getDraggingPanelByPos","_dragOptions","_resetTargetColumnOptions","_dropOptions","targetColumnIndex","targetColumnElement","isLast","posX","posY","_getVisibleIndexObject","_controller","_columnsResizerViewController","dragHeader","columnElement","sourceIndex","sourceColumnIndex","sourceColumnElement","_onSelectStart","onselectstart","drag","textAlign","getSwatchContainer","moveHeader","isResizing","dragOptions","moveDeltaX","moveDeltaY","newLeft","newTop","dockHeader","controller","isVerticalOrientation","axisName","pointsByTarget","centerPosition","dock","dropHeader","drop","isNextColumnResizingMode","ColumnsResizerViewController","_isHeadersRowArea","headersRowHeight","_isRtlParentStyle","_this$_$parentContain","_$parentContainer","isNextColumnMode","isRtlParentStyle","firstPointColumnIndex","_moveSeparator","_that$_draggingHeader","columnsSeparatorWidth","_columnsSeparatorView","parentOffsetLeft","_draggingHeaderView","_isResizing","_resizingInfo","_updateColumnsWidthIfNeeded","_targetPoint","_previousParentOffset","_isReadyResizing","_endResizing","_trackerView","_setupResizingInfo","currentHeader","nextHeader","startPosX","currentColumnWidth","nextColumnWidth","_startResizing","_scrollRight","loseFocus","_pointsByColumns","_unsubscribeFromEvents","_moveSeparatorHandler","_startResizingHandler","_endResizingHandler","_subscribeToEvents","needUpdate","contentWidth","resizingInfo","isPercentWidth","setColumnWidth","oldColumnWidth","cellWidth","nextCellWidth","nextMinWidth","needCorrectionNextCellWidth","allColumnsHaveWidth","totalPercent","hasScroll","lastColumnIndex","getLastResizableColumnIndex","_subscribesToCallbacks","_unsubscribeFromCallbacks","subscribe","_unsubscribes","generatePointsByColumnsHandler","generatePointsByColumnsScrollHandler","_scrollLeft","scrollChanged","previousScrollbarVisibility","previousTableHeight","scrollbarVisibility","updateFreeSpaceRowHeight","TablePositionViewController","diffOffsetTop","columnsHeadersHeight","scrollBarWidth","rowsHeight","columnsResizerController","isDraggingOrResizing","_pagerView","targetPoint","DraggingHeaderViewController","nameDraggingPanel","subscribeToEvents","$columnElement","_getSeparator","_blockSeparatorView","hideSeparators","blockSeparator","columnsSeparator","_animationColumnIndex","_headerPanelView","_columnChooserView","allowDrop","hasTargetVisibleIndex","columnsResizingReorderingModule","blockSeparatorView","_needUpdateRowHeight","wordWrapEnabled","renderFocusOverlay","COLUMN_INDICATORS_CLASS","GROUP_PANEL_ITEM_CLASS","_applyColumnState","_that$component","isGroupPanelItem","rootElement","_createIndicatorContainer","$span","indicatorAlignment","indicator","_renderIndicator","ignoreIndicatorAlignment","$indicatorContainer","$indicator","_updateIndicators","rowOptions","SCROLL_CONTAINER_CLASS","SCROLLABLE_SIMULATED_CLASS","GROUP_SPACE_CLASS","TABLE_CLASS","TABLE_FIXED_CLASS","ROW_CLASS","FILTER_ROW_CLASS","ERROR_ROW_CLASS","CELL_UPDATED_ANIMATION_CLASS","CELL_HINT_VISIBLE","FORM_FIELD_ITEM_CONTENT_CLASS","appendElementTemplate","subscribeToRowEvents","touchTarget","touchCurrentTarget","clearTouchTargets","rowElement","_rowPointerDown","_rowDblClick","getWidthStyle","setCellWidth","copyAttributes","oldAttributes","newAttributes","ColumnsView","_createScrollableOptions","scrollingOptions","rowObject","_isAltRow","isAppend","isHeaderRow","isDataRow","isMasterDetailRow","isFilterRow","isDataRowWithTemplate","isEditorShown","isHeaderRowWithTemplate","isGroupCellWithTemplate","shouldShowHint","scrollWidth","$fieldItemContent","resultOptions","formItemOptions","colgroupElement","renderDelayedTemplates","delayedTemplates","_delayedTemplates","syncTemplates","asyncTemplates","_renderDelayedTemplatesCore","_renderDelayedTemplatesCoreAsync","isAsync","templateParameters","needWaitAsyncTemplates","_needWaitAsyncTemplates","renderedTemplate","templateID","_templatesCache","templateDeferred","renderAsync","templateDeferreds","_getBodies","_needWrapRow","_this$_getBodies","hasRowTemplate","_wrapRowIfNeed","isRefreshing","needWrapRow","$tbody","_appendRow","appendTemplate","$wrappedRow","_addWatchMethod","_rowPrepared","_needRenderCell","oldValues","$newRowElement","$newCells","highlightChanges","cellUpdatedClass","ariaColIndex","findIndex","renderOptions","watchers","updateValueFunc","updateRowFunc","keepRow","forceWaiting","isLiveUpdate","$newTableElement","$cellElements","clientRect","isRowVisible","$cols","columnVisibleIndex","_getVisibleColumnIndex","_getRowElement","$tableElements","getCellElement","getCell","cellPosition","CONTEXT_MENU","VIEW_NAMES","ContextMenuController","$targetRowElement","$targetCellElement","menuItems","_rowOptions$cells","_rowOptions$cells$col","_contextMenuPrepared","ContextMenuView","contextMenuInstance","getWidgetContainerClass","contextMenuModule","onContextMenuPreparing","contextMenu","contextMenuView","dataControllerModule","cacheEnabled","onDataErrorOccurred","changePaging","_getPagingOptionValue","_skipProcessingPagingChange","_isPaging","pageChanged","_cachedProcessedItems","_currentOperationTypes","_dataChangedHandler","_columnsChangedHandler","_handleColumnsChanged","_loadingChangedHandler","_handleLoadingChanged","_loadErrorHandler","_handleLoadError","_customizeStoreLoadOptionsHandler","_handleCustomizeStoreLoadOptions","_changingHandler","_handleChanging","_dataPushedHandler","_handleDataPushed","_isLoading","_isCustomLoading","_repaintChangesOnly","_changes","dataErrorOccurred","callbackFlags","_handleDataSourceChange","needToRefreshOnDataSourceChange","changedPagingOptions","_setPagingOptions","isPageIndexChanged","_useSortingGroupingFromColumns","returnDataField","additionalFilter","_calculateAdditionalFilter","waitReady","_readyDeferred","_storeLoadOptions$fil","_columnsUpdating","filterValues","filterApplied","filterType","_applyFilter","_needApplyFilter","updateItemsHandler","_change$changeTypes","isAsyncDataSourceApplying","_isDataSourceApplying","isDelayed","needApplyFilter","_isAllDataTypesDefined","_fireLoadingChanged","pushed","fireError","pagingEnabled","appendMode","virtualMode","isPaginateChanged","isPageSizeChanged","oldDataSource","setDataSource","visibleItems","lastVisibleItem","_generateDataItem","_processDataItem","dataItem","generateDataValues","isModified","_applyChange","_applyChangeUpdate","_applyChangesOnly","_applyChangeFull","_getRowIndices","correctedRowIndex","prevIndex","rowIndexCorrection","equalItems","oldNextItem","newNextItem","isFullUpdate","_partialUpdateRow","_isCellChanged","oldRow","newRow","visibleRowIndex","isCellModified","_getChangedColumnIndices","_cell$column","_changedColumnIndices","changedColumnIndices","isCellChanged","_item1$data","_item2$data","_item1$data2","_item2$data2","expandedMatch","summaryCellsMatch","continuationMatch","_change$isLiveUpdate","getRowKey","currentItems","_correctRowIndices","oldRowIndexOffset","_rowIndexOffset","rowIndexOffset","getRowIndexOffset","newVisibleRowIndex","_afterProcessItems","cachedProcessedItems","useProcessedItemsCache","loadIndex","isDataChanged","_change$repaintChange","needUpdateDimensions","_needUpdateDimensions","loadingOperationTypes","_loadingText","_isFilterApplying","resetFilterApplying","clearFilter","filterName","clearColumnOption","searchByText","_fireDataSourceChanged","changedHandler","dataSourceChanged","dataSourceAdapterProvider","isLocalStore","isCustomStore","_createDataSourceAdapter","enabledRemoteOperations","loadError","customizeStoreLoadOptions","changing","pageCount","byLoaded","getDataByKeys","rowKeys","keyData","beginCustomLoading","messageText","endCustomLoading","customizeLoadResult","repaintRows","rowIndexes","skipProcessingPagingChange","searchText","getCachedStoreData","isLastPageLoaded","proxyMethod","cloneItems","calculateOperationTypes","isFullReload","fullReload","getPageDataFromCache","updatePaging","fillItemsFromCache","cacheItemsFromBegin","cacheItemBeginCount","cacheItemsFromEnd","_options$skip2","_options$take2","cacheItemEndCount","cachedDataPartBegin","cachedDataPartEnd","fromEnd","_options$take","cachedItems","_options$skip","localIndex","cacheItemIndex","cacheItem","getItemFromCache","getGroupItemFromCache","childCacheItem","getCacheItem","loadedItem","globalIndex","childSkips","_remoteOperations","_hasLastPage","_currentTotalCount","_cachedData","_lastOperationTypes","_isLoadingAll","_dataLoadedHandler","_pushHandler","_handlePush","isSharedDataSource","resetCurrentTotalCount","_cachedStoreData","_cachedPagingData","_needClearStoreDataCache","isLocalOperations","fromStore","_applyBatch","getDataIndexGetter","_dataIndexGetter","storeData","isCacheUpdated","_getKeyInfo","_needToCopyDataObject","isReshapeMode","isVirtualMode","getItemCount","oldItemCount","needUpdateTotalCountCorrection","_needCleanCacheByOperation","operationType","operationTypesByOrder","operationTypeIndex","currentOperationTypes","cachedStoreData","cachedPagingData","_options$data","originalStoreLoadOptions","_isRefreshing","_loadingOperationTypes","_isRefreshed","_lastOperationId","_handleDataLoadingCore","localLoadOptionNames","localPaging","needCache","needPageCache","needPagingCache","needStoreCache","_options$extra$totalC","_options$extra","mergeStoreLoadData","_options$skip3","_options$take3","cacheItems","_loadPageSize","currentTotalCount","isDataLoading","_operationTypes","_optionCache","_scheduleCustomLoadCallbacks","_dataSourceTotalCount","hasKnownLastPage","dataSourceLoadOptions","READONLY_CLASS","LINK_CLASS","ROW_SELECTED","EDIT_BUTTON_CLASS","COMMAND_EDIT_CLASS","COMMAND_EDIT_WITH_ICONS_CLASS","INSERT_INDEX","ROW_INSERTED","ROW_MODIFIED","CELL_MODIFIED","EDITING_NAMESPACE","DATA_EDIT_DATA_UPDATE_TYPE","DEFAULT_START_EDIT_ACTION","EDIT_LINK_CLASS","save","edit","undelete","EDIT_ICON_CLASS","METHOD_NAMES","ACTION_OPTION_NAMES","BUTTON_NAMES","EDITING_CHANGES_OPTION_NAME","createFailureHandler","isEditingCell","isEditRow","isEditingOrShowEditorAlwaysDataCell","isCommandCell","isEditorCell","EditingController","getButtonIndex","getButtonName","_lastOperation","_saveEditorHandler","_updateEditColumn","_internalState","_getDefaultEditorTemplate","isOnForm","_getNewRowPosition","newRowPosition","getChanges","getInsertRowCount","resetChanges","needReset","_silentOption","_getInternalData","_addInternalData","internalData","_getOldData","_this$_getInternalDat","oldData","editIndex","_fireDataErrorOccurred","getPopupContent","_needToCloseEditableCell","_isDefaultButtonVisible","allowDeleting","_isButtonVisible","_isButtonDisabled","_getButtonConfig","editingTexts","saveRowChanges","cancelRowChanges","undeleteRow","addRowToNode","editingOptions","allowAction","_getEditingButtons","buttonIndex","haveCustomButtons","_renderEditingButtons","_createButton","_getEditCommandCellTemplate","isRowBasedEditMode","getFirstEditableColumnIndex","getFirstEditableCellInRow","getFocusedCellInRow","_inputFocusTimeoutID","_pointerUpEditorHandler","_pointerDownEditorHandler","_handleEditRowKeyChange","_handleChangesChange","_resetEditColumnName","_resetEditRowKey","oldRowIndexCorrection","_getEditRowIndexCorrection","oldRowIndex","_editRowFromOptionChanged","_addInsertInfo","_items$rowIndex","isOptionChanged","_refreshCore","isEditRowKeyDefined","_setEditRowKey","_setEditRowKeyByIndex","getEditRowIndex","_getVisibleEditRowIndex","isEditRowByIndex","isKeyEqual","_getVisibleEditColumnIndex","_getInsertRowIndex","isProcessedItems","_getInsertAfterOrBeforeKey","isProcessedItem","nextItem","insertAfterKey","_generateNewItem","_this$_getInternalDat2","insertInfo","_getLoadedRowIndex","loadedRowIndex","insertAfterOrBeforeKey","_this$_getInternalDat3","isInsert","processDataItem","_processDataItemCore","modified","_initNewRow","_createInsertInfo","_getInsertIndex","parentKey","_this$_getInternalDat4","_setInsertAfterOrBeforeKey","allItems","isViewportBottom","visibleItemIndex","getBottomVisibleItemIndex","getTopVisibleItemIndex","insertKey","insertBeforeKey","maxInsertIndex","editItem","_this$_getInternalDat5","insertChange","_insertChange$insertA","_getPageIndexToInsertRow","lastPageIndex","addRow","_addRow","param","oldEditRowIndex","allowCancelEditing","_allowRowAdding","__KEY__","_addRowCore","_navigateToNewRow","insertIndex","initialOldEditRowIndex","editRowIndex","_editRowIndex","_change","focusController","pageIndexToInsertRow","navigateToRowByKey","navigateToRow","_showAddedRow","_focusFirstEditableCellInRow","_beforeFocusElementInRow","$firstCell","_editCellInProgress","_delayedInputFocus","_isEditingStart","editColumnName","_setEditColumnNameByIndex","_visibleColumns$index","_setEditColumnName","_getEditColumn","_getColumnByName","editColumn","isColumnHidden","_resetEditIndices","_item$oldData","_editRowFromOptionChangedCore","preventRendering","_needFocusEditor","_focusEditorIfNeed","_showEditPopup","_repaintEditPopup","_getEditPopupHiddenHandler","_getPopupEditFormTemplate","_getSaveButtonConfig","saveEditData","_getCancelButtonConfig","_removeInternalData","_updateInsertAfterOrBeforeKeys","removeChange","executeOperation","waitForDeferredOperations","_processCanceledEditingCell","_repaintEditCell","oldColumn","beforeFocusCallback","callBeforeFocusCallbackAlways","inputFocus","focusAndSelectElement","_beforeFocusCallback","_focusEditingCell","$editCell","editColumnIndex","_checkAndDeleteRow","confirmDelete","confirmDeleteMessage","confirmDeleteTitle","showDialogTitle","confirmResult","_deleteRowCore","_afterDeleteRow","_fireOnSaving","onSavingParams","_executeEditingAction","_processChanges","dataChanges","changeCopy","_beforeSaveEditData","newData","doneDeferred","_processRemoveIfError","_processRemove","_processRemoveCore","_processSaveEditDataResult","hasSavedData","changesLength","_fireSaveEditDataEvents","_resolveAfterSave","_saving","_saveEditDataInner","needFocusEditCell","_endSaving","_cancelSaving","_beforeEndSaving","_refreshDataAfterSave","refreshMode","isFullRefresh","isEditColumnVisible","_isEditColumnVisible","_isEditButtonDisabled","isEditRowDefined","isButtonDisabled","_applyModified","_cancelEditDataCore","_afterCancelEditData","_hideEditPopup","hasEditData","isPageChanged","skipCurrentRow","addDeferred","_prepareChange","_options$row","setCellValueResult","_updateRowValues","updateFieldValue","forceUpdateRow","_focusPreviousEditingCellIfNeed","_updateEditRow","_needUpdateRow","isCustomSetCellValue","isCustomCalculateCellValue","changeOptions","_applyChangeCore","_updateEditRowCore","_updateRowImmediately","_updateRowWithDelay","_validateEditFormAfterUpdate","_this$_editForm","elementContainer","_editForm","selectionRange","getSelectionRange","_this$component$$elem","selectionStart","setSelectionRange","changeParams","_this$getChanges","editCellTemplate","editingStartOptions","isRowMode","isRowEditing","isCellEditing","getEditFormTemplate","allowUpdating","useLegacyColumnButtonTemplate","localizationName","getButtonLocalizationNames","_button$onClick","prepareButtonItem","titleButtonTextByClassNames","revert","cancelAllChanges","saveAllChanges","prepareEditButtons","buttonItems","allowAdding","highlightDataCell","shouldHighlightCell","_allowEditAction","allowEditAction","startEditAction","needCallback","isNewRowInEditMode","visibleEditRowIndex","cellModified","editingModule","selectTextOnEditStart","_this$_updateEditItem","_updateEditItem","isParasiteChange","dataSourceKeys","newChanges","isEditNewItem","isRowRemoved","isRowInserted","isRowModified","_getColumnIndexByElement","_editCellByClick","isEditedCell","editCell","withoutSaveEditData","closeEditCell","_pointerDownTimeout","isEditForm","_parameters$column","isEditableCell","_editCellPrepared","_formItemPrepared","cellValue","getCellOptions","editButtonItems","excludedOptions","shouldInvalidate","FOCUS_OVERLAY_CLASS","ADD_ROW_BUTTON_CLASS","DROPDOWN_EDITOR_OVERLAY_CLASS","EDITOR_CELL_CLASS","CELL_MODIFIED_CLASS","DATA_ROW_CLASS","ROW_REMOVED","EDITING_EDITROWKEY_OPTION_NAME","EDITING_EDITCOLUMNNAME_OPTION_NAME","DATA_EDIT_DATA_REMOVE_TYPE","$pointerDownTarget","needCreateHandlers","_this$getController","targetComponent","isEditorPopup","checkEditorPopup","isAnotherComponent","isAddRowButton","isFocusOverlay","isCellEditMode","$dropDownEditorOverlay","$componentElement","isBatchEditMode","isCurrentComponentElement","_this$_rowsView","isEditColumnNameDefined","_handleEditColumnNameChange","oldColumnIndex","_editCellFromOptionChanged","_deferred","_editCell","coreResult","_editCellCore","isEditByOptionChanged","_getNormalizedEditCellOptions","_beforeEditCell","_prepareEditCell","_closeEditCellCore","_resetModifiedClassCells","_this$_editCellFromOp","needResetIndexes","isBatchMode","_isRowDeleteAllowed","_changes$","_deferred2","isUpdateInCellMode","focusPreviousEditingCell","processIfBatch","ROW_SELECTED_CLASS","EDIT_FORM_CLASS","DATA_EDIT_DATA_INSERT_TYPE","EDITING_POPUP_OPTION_NAME","EDITING_FORM_OPTION_NAME","TARGET_COMPONENT_NAME","EDITORS_INPUT_SELECTOR","FOCUSABLE_ELEMENT_SELECTOR","EDIT_MODE_CELL","FIRST_NEW_ROW_POSITION","LAST_NEW_ROW_POSITION","PAGE_BOTTOM_NEW_ROW_POSITION","PAGE_TOP_NEW_ROW_POSITION","VIEWPORT_BOTTOM_NEW_ROW_POSITION","VIEWPORT_TOP_NEW_ROW_POSITION","EDIT_MODES","ROW_BASED_MODES","MODES_WITH_DELAYED_FOCUS","isRenovatedScrollable","EDIT_FORM_ITEM_CLASS","EDIT_POPUP_CLASS","EDIT_POPUP_FORM_CLASS","FOCUSABLE_ELEMENT_CLASS","BUTTON_CLASS","FORM_BUTTONS_CONTAINER_CLASS","getEditorType","_column$formItem","isCustomEditorType","forEachFormItems","editingFormBasedModule","_updateEditFormDeferred","isPopupEditMode","isFormEditMode","firstFormItem","_firstFormItem","$editFormElements","_getEditFormEditorVisibleIndex","_args$items","_args$changeTypes","hasEditRow","onlyInsertChanges","_this$_editPopup","popupVisible","_editPopup","_$popupContent","_row$update","editForm","repaintForm","isMobileDevice","$popupContainer","formTemplate","isPopupForm","_this$_editPopup2","_this$_editPopup3","defaultAnimation","_this$_editPopup4","_handleFormOptionChange","_handlePopupOptionChange","_this$_editPopup5","editPopup","popupOptionName","detailCellOptions","formTemplateOptions","getFormEditorTemplate","_cellOptions$row$watc","_cellOptions$row","_validator","$editorElement","validatorOptions","dxValidator","getEditFormOptions","detailOptions","_this$_getValidationG","editFormOptions","_getValidationGroupsInForm","userCustomizeItem","editFormItemClass","itemVisible","baseEditFormOptions","$formContainer","$buttonsContainer","_this$_editPopup6","getEditForm","_this$_updateEditForm","_this$_editPopup7","_isFormItem","isDetailRow","isPopupEditing","EDIT_ROW","editingRowBasedModule","hasUpdateChanges","isVisibleInRowEditMode","$editingCell","EDITOR_INLINE_BLOCK","FOCUSED_ELEMENT_CLASS","UPDATE_FOCUS_EVENTS","DX_HIDDEN","EditorFactory","_getFocusedElement","$dataGridElement","rowSelector","focusedElementSelector","elementIsInsideGrid","_updateFocusCore","$focusCell","hideBorders","$focus","_updateFocus","_isFocusOverlay","_updateFocusTimeoutID","_updateFocusOverlaySize","hideBorder","_$focusedElement","_focusTimeoutID","refocus","isElementInCurrentGrid","_$focusOverlay","elemCoord","focusOverlayPosition","_updateFocusHandler","_getContainerRoot","_attachContainerEventHandlers","_this$component","editorFactoryModule","ERROR_MESSAGE_CLASS","ERROR_CLOSEBUTTON_CLASS","ACTION_CLASS","ErrorHandlingController","_createErrorRow","$errorRow","$closeButton","$errorMessage","_renderErrorMessage","errorRowIndex","removeErrorRow","fireContentReadyAction","renderErrorRow","$errorMessageElement","$firstErrorRow","viewElement","rowElements","resizingController","$columnHeaders","$rowsViewElement","errorHandlingModule","errorRowEnabled","errorHandling","errorHandlingController","FILTER_BUILDER_GROUP_CLASS","FILTER_BUILDER_GROUP_ITEM_CLASS","FILTER_BUILDER_GROUP_CONTENT_CLASS","FILTER_BUILDER_GROUP_OPERATIONS_CLASS","FILTER_BUILDER_GROUP_OPERATION_CLASS","FILTER_BUILDER_ACTION_CLASS","FILTER_BUILDER_IMAGE_CLASS","FILTER_BUILDER_IMAGE_ADD_CLASS","FILTER_BUILDER_IMAGE_REMOVE_CLASS","FILTER_BUILDER_ITEM_FIELD_CLASS","FILTER_BUILDER_ITEM_OPERATION_CLASS","FILTER_BUILDER_ITEM_VALUE_CLASS","FILTER_BUILDER_ITEM_VALUE_TEXT_CLASS","FILTER_BUILDER_OVERLAY_CLASS","FILTER_BUILDER_FILTER_OPERATIONS_CLASS","FILTER_BUILDER_FIELDS_CLASS","FILTER_BUILDER_ADD_CONDITION_CLASS","ACTIVE_CLASS","FILTER_BUILDER_MENU_CUSTOM_OPERATION_CLASS","SOURCE","TAB_KEY","ENTER_KEY","ESCAPE_KEY","OPERATORS","and","notAnd","notOr","FilterBuilder","onEditorPreparing","onEditorPrepared","groupOperations","maxGroupLevel","groupOperationDescriptions","closePopupOnTargetScroll","equal","notEqual","lessThan","lessThanOrEqual","greaterThan","greaterThanOrEqual","notContains","isBlank","isNotBlank","_initCustomOperations","disableInvalidateForValue","_disableInvalidateForValue","_initModel","_getNormalizedFields","_model","_customOperations","_updateFilter","_getModel","_initEditorFactory","_getDefaultGroupOperation","_this$option$","_createGroupElementByCriteria","_createConditionElement","_createConditionItem","_createGroupElement","groupCriteria","innerCriteria","$groupItem","_createRemoveButton","_createGroupOperationButton","_createAddButton","newGroup","newCondition","_getGroupOperations","groupMenuItem","$operationButton","_createButtonWithMenu","menu","removeMenu","treeViewElement","treeView","dxTreeView","_subscribeOnClickAndEnterKey","_createPopupWithTreeView","_hasValueButton","_createOperationButtonWithMenu","currentOperation","$valueButton","_createValueButton","_createOperationAndValueButtons","_createFieldButtonWithMenu","getFullCaption","$fieldButton","isSingleChild","$removeButton","addGroupHandler","addConditionHandler","_createValueText","$text","_createValueEditorWithEvents","_updateConditionValue","areValuesDifferent","_addDocumentKeyUp","isComposing","hasCompositionJustEnded","documentKeyUpHandler","_documentKeyUpHandler","_addDocumentClick","closeEditorFunc","documentClickHandler","_isFocusOnEditorParts","_documentClickHandler","_removeEvents","createValueText","closeEditor","_createValueEditor","$menuContainer","FilterBuilderView","_updatePopupOptions","_initPopup","_filterBuilderPopup","_disposePopup","_filterBuilder","_getPopupContentTemplate","$filterBuilderContainer","getCustomFilterOperations","filterBuilderModule","filterBuilder","filterBuilderPopup","filterBuilderView","FILTER_PANEL_CLASS","FILTER_PANEL_TEXT_CLASS","FILTER_PANEL_CHECKBOX_CLASS","FILTER_PANEL_CLEAR_FILTER_CLASS","FILTER_PANEL_LEFT_CONTAINER","FILTER_PANEL_TARGET","FilterPanelView","$leftContainer","_filterValueBuffer","_getCheckElement","_getFilterElement","_getTextElement","_getRemoveButtonElement","_showFilterBuilder","_addTabIndexToElement","filterText","$textElement","getFilterText","customText","clearFilterValue","tabindex","_getConditionText","fieldText","operationText","_getValueMaskedText","_getValueText","hasCustomOperation","getConditionText","getGroupText","isInnerGroup","textParts","groupText","filterPanelModule","filterPanel","filterEnabled","createFilter","filterEnabledHint","filterPanelView","DX_CONTEXT_MENU_CONTENT_DELIMITER_CLASS","Submenu","_initDataAdapter","_renderDelimiter","$contentDelimiter","_overlayPositionedActionHandler","_showDelimiter","_isMenuHorizontal","hoverStartAction","rootItem","submenu","containerOffset","vLocation","hLocation","rootOffset","rootWidth","rootHeight","submenuWidth","submenuHeight","isOverlayVisible","getOverlayContent","DX_MENU_VERTICAL_CLASS","DX_MENU_HORIZONTAL_CLASS","DX_CONTEXT_MENU_CONTAINER_BORDER_CLASS","DX_STATE_ACTIVE_CLASS","DX_ADAPTIVE_MODE_CLASS","DX_ADAPTIVE_HAMBURGER_BUTTON_CLASS","DX_ADAPTIVE_MODE_OVERLAY_WRAPPER_CLASS","SHOW_SUBMENU_OPERATION","NEXTITEM_OPERATION","PREVITEM_OPERATION","Menu","showFirstSubmenuMode","hideSubmenuOnMouseLeave","onSubmenuShowing","onSubmenuShown","onSubmenuHiding","onSubmenuHidden","rootMenuElements","submenuElements","_submenuItemElements","currentSubmenu","_submenus","navigationAction","isMenuHorizontal","_getItemsNavigationOperation","_getKeyboardNavigationAction","navOperation","_resizeEventTimer","_menuItemsWidth","_updateItemsWidthCache","_isAdaptivityEnabled","$menuItems","_toggleAdaptiveMode","_visibleSubmenu","_initAdaptivity","_renderHamburgerButton","_hamburger","_toggleTreeView","_toggleHamburgerActiveState","$menuItemsContainer","$adaptiveElements","_hideVisibleSubmenu","_treeView","_removeAdaptivity","_$adaptiveContainer","_treeviewItemClickHandler","_getAdaptiveOverlayOptions","_getTreeViewOptions","menuOptions","animationEnabled","onItemExpanded","onItemCollapsed","expandEvent","$hamburger","_getDelay","delayType","_createSubmenu","_renderBorderElement","$submenuContainer","subMenu","_getSubmenuOptions","_parentKey","_clearTimeouts","getSubmenuPosition","_attachSubmenuHandlers","$submenuTarget","selectedExpr","itemsExpr","_nestedItemOnSelectionChangedHandler","_nestedItemOnItemClickHandler","_nestedItemOnItemRenderedHandler","_moveMainMenuFocus","_getShowFirstSubmenuMode","$currentItem","$newItem","_clearSelectionInSubmenus","_clearRootSelection","targetSubmenu","cleanAllSubmenus","isOtherItem","$selectedItem","selectedItemData","$prevSelectedItem","prevSelectedItemData","$submenuOverlayContent","submenus","submenuMouseLeaveName","_submenuOnShowingHandler","_submenuOnShownHandler","_submenuOnHidingHandler","_submenuOnHiddenHandler","_submenuMouseLeaveHandler","$border","_getSubmenuByRootElement","_hideSubmenuAfterTimeout","isRootItemHovered","isSubmenuItemHovered","hoveredElementFromSubMenu","isHorizontalMenu","mouseMoveEventName","isSelectionActive","_hasChildren","_getSubmenuByElement","_itemMouseMoveHandler","_showSubmenuTimer","eventArg","_hideSubmenuTimer","_hoveredRootItem","_changeSubmenusOption","OPERATION_DESCRIPTORS","FILTERING_TIMEOUT","CORRECT_FILTER_RANGE_OVERLAY_WIDTH","FILTER_RANGE_OVERLAY_CLASS","FILTER_RANGE_START_CLASS","FILTER_RANGE_END_CLASS","MENU_CLASS","EDITOR_WITH_MENU_CLASS","EDITOR_CONTAINER_CLASS","FILTER_MENU","APPLY_BUTTON_CLASS","HIGHLIGHT_OUTLINE_CLASS","FOCUSED_CLASS","FILTER_RANGE_CONTENT_CLASS","FILTER_MODIFIED_CLASS","BETWEEN_OPERATION_DATA_TYPES","isOnClickApplyFilterMode","getEditorInstance","$editorContainer","ColumnHeadersViewFilterRowExtender","getRangeTextByFilterValue","rangeEnd","getColumnFilterValue","formatOptions","getFormatOptionsByColumn","getColumnSelectedFilterOperation","bufferedSelectedFilterOperation","getFilterValue","isFilterRange","isRangeStart","updateFilterValue","_applyFilterViewController","setHighLight","columnFilterValue","isBetween","_updateEditorValue","$editorRangeElements","$menu","overlayInstance","_updateFilterRangeContent","_updateFilterOperationChooser","_renderFilterRangeContent","_renderEditor","_getEditorOptions","_hideFilterRange","_filterRangeOverlayInstance","isFilterRowVisible","_initFilterRangeOverlay","sharedData","$prevElement","_updateFilterRangeOverlay","_showFilterRange","getFilterRangeOverlayInstance","_renderFilterCell","_renderFilterOperationChooser","accessibilityOptions","_getFilterInputAccessibilityAttributes","showAllText","updateValueTimeout","columnAriaLabel","editorController","filterRowController","setCurrentColumnForFiltering","getWrappedLookupDataSource","lookupOptions","$filterRangeContent","isCellWasFocused","restoreFocus","_focusEditor","_getFilterOperationMenuItems","columnSelectedFilterOperation","notFocusEditor","isOnClickMode","_isEditorFocused","filterRowOptions","operationDescriptions","availableFilterOperations","descriptionName","resetOperationText","_e$operationTypes","_e$operationTypes2","_e$operationTypes3","updateLookupDataSource","filterChanged","applyFilterViewController","editorDataSource","shouldUpdateFilter","__dataGridSourceFilter","DataControllerFilterRowExtender","skipCalculateColumnFilters","filters","_filterRowController$","shouldSkip","getCurrentColumnForFiltering","ApplyFilterViewController","_getHeaderPanel","_headerPanel","enableApplyButton","applyFilter","removeHighLights","columnHeadersViewElement","_currentColumn","filterRowModule","syncLookupFilterValues","filterRow","showOperationChooser","applyFilterText","betweenStartText","betweenEndText","_needUpdateLookupDataSource","_this$getView","filterItem","_prepareFilterItem","_isShowApplyFilterButton","baseOperation","getFullText","parentText","div","showHeaderFilterMenuBase","hideHeaderFilterMenu","isFilterBuilder","fieldInfo","itemsDeferred","_values","getSelectedItemsTexts","selectedItemsTexts","getHeaderItemText","anyOf","noneOf","baseOp","baseFilter","FILTER_ROW_OPERATIONS","FILTER_TYPES_INCLUDE","FILTER_TYPES_EXCLUDE","getColumnIdentifier","checkForErrors","FilterSyncController","getEmptyFilterValues","canSyncHeaderFilterWithFilterRow","getGroupInterval","getConditionFromFilterRow","getConditionFromHeaderFilter","selectedOperation","updateHeaderFilterCondition","headerFilterCondition","hasArrayValue","updateFilterRowCondition","syncFilterValue","_skipSyncColumnOptions","filterConditions","filterCondition","_initSync","filteringColumns","getFilterValueFromColumns","isFilterSyncActive","_getSyncFilterRow","_getSyncHeaderFilter","syncFilterRow","syncHeaderFilter","filterBuilderCustomOperations","DataControllerFilterSyncExtender","filterSyncEnabledValue","filterSyncController","getCurrentColumn","calculatedFilterValue","_parseColumnPropertyName","ColumnHeadersViewFilterSyncExtender","_isHeaderFilterEmpty","_needUpdateFilterIndicators","_updateHeaderFilterIndicators","filterSyncModule","filterSyncEnabled","filterSync","ROW_FOCUSED_CLASS","FOCUSED_ROW_SELECTOR","TABLE_POSTFIX_CLASS","FocusController","_keyboardController","_focusRowByIndex","_triggerFocusedRowChangedIfNeed","focusedRowIndex","_focusRowByKey","focusedRowIndexByKey","getFocusedRowIndexByKey","_fireFocusedRowChanged","isAutoNavigateToFocusedRow","_resetFocusedRow","_focusRowByIndexCore","setKeyByIndex","_isValidFocusedRowIndex","_getLastItemIndex","isRowFocused","_isLocalRowIndex","_isVirtualScrolling","virtualItems","virtualItemsCount","virtualItemsBegin","begin","visibleRowsCount","visiblePagesCount","_setFocusedRowKeyByIndex","_navigateToRow","isFocusedRowKeyDefined","setFocusedRowIndex","needFocusRow","isAutoNavigate","rowIndexByKey","_navigateTo","getPageIndexByKey","isVirtualRowRenderingMode","isVirtualRowRendering","_navigateToVirtualRow","_navigateToVisibleRow","_triggerUpdateFocusedRow","scrollToRowElement","rowsScrollController","_rowsScrollController","getItemOffset","triggerUpdateFocusedRow","scrollTopPosition","_focusRowByKeyOrIndex","currentFocusedRowIndex","updateFocusedRow","$mainRow","isMainTable","_clearPreviousFocusedRow","_prepareFocusedRow","scrollToElementVertically","$prevRowFocusedElement","$focusedRowTable","$firstRow","focusModule","focusedRowEnabled","autoNavigateToFocusedRow","focusedColumnIndex","setRowFocusType","_focusedCellPosition","visibleRow","setFocusedColumnIndex","_escapeKeyHandler","isCellFocusType","_focus","_getCellElementFromTarget","_updateFocusedCellPosition","prevRowIndex","prevColumnIndex","_fireFocusedCellChanged","isRowFocusType","isRowElement","_getElementType","getFirstValidCellInRow","sortByKey","notSortedKeys","notSortedKey","isPartialUpdate","isPartialUpdateWithDeleting","_updatePageIndexes","processUpdateFocusedRow","prevRenderingPageIndex","_lastRenderingPageIndex","renderingPageIndex","_isPagingByRendering","isPagingByRendering","isValidRowIndexByKey","needFocusRowByIndex","getGlobalRowIndexByKey","useGroup","_generateOperationFilterByKey","_generateBooleanFilter","booleanFilter","sortFilter","keyPart","visibleRows","_checkRowKeys","updateFocusElementTabIndex","preventScroll","getVisibleRowIndex","_setFocusedRowElementTabIndex","_findRowElementForTabIndex","_scrollToFocusOnResize","setFocusedCellPosition","getRow","getScrollElementPosition","currentScrollTop","scrollHandler","BORDERS_CLASS","IMPORTANT_MARGIN_CLASS","GRIDBASE_CONTAINER_CLASS","isPixelWidth","calculateFreeWidth","_getTotalWidth","calculateFreeWidthWithCurrentMinWidth","currentMinWidth","ResizingController","_initPostRenderHandlers","_refreshSizesHandler","_refreshSizes","resizeDeferred","_e$changeTypes","_setScrollerSpacing","_hasHeight","_setAriaRowColCount","_getBestFitWidths","_widths","_rowsView$getTableEle","headersTableElement","_setVisibleWidths","_toggleBestFitModeForView","$rowsTables","$viewTables","$tableBody","$rowsTable","$viewTable","$rowsFixedTable","_footerView","_toggleContentMinHeight","getContentHeightLimit","_synchronizeColumns","resetBestFitMode","needBestFit","hasMinWidth","isColumnWidthsCorrected","_maxWidth","isFocusOutsideWindow","expandColumnWidth","_processStretch","freeWidth","columnCountWithoutWidth","hasPercentWidth","hasWidth","_hasWidth","isHiddenColumn","averageColumnsWidth","realColumnWidth","_getRealColumnWidth","borderWidth","resultSizes","tableSize","unusedIndexes","diffElement","onePixelElementsCount","groupWidth","percentTotalWidth","pixelTotalWidth","freeSpace","percentTotalWidthInPixel","updateSize","$groupElement","importantMarginClass","checkSize","_checkSize","prevResult","_resizeDeferred","_resetGroupElementHeight","_updateDimensionsCore","groupElement","_lastWidth","_lastHeight","_devicePixelRatio","devicePixelRatio","_setScrollerSpacingCore","hasHeight","vScrollbarWidth","hScrollbarWidth","$testDiv","rootElementHeight","maxHeightHappened","isMaxHeightApplied","_updateLastSizes","setLoading","SynchronizeScrollingController","_scrollChangedHandler","GridView","_resizingController","_getWidgetAriaLabel","_groupElement","_getTableRoleName","isFirstRender","_rootElement","gridViewModule","showBorders","synchronizeScrolling","gridView","HEADER_FILTER_CLASS","HEADER_FILTER_MENU_CLASS","DEFAULT_SEARCH_EXPRESSION","resetChildrenItemSelection","updateSelectAllState","selectAllCheckBox","isSearchEnabled","updateHeaderFilterItemSelectionState","filterValuesMatch","isExcludeFilter","HeaderFilterView","getPopupContainer","getListContainer","_listContainer","applyHeaderFilter","fillSelectedItemKeys","isExclude","_getNode","hasChildren","hasChildrenWithSelection","updatePopup","headerFilterMenu","_cleanPopupContent","_getSearchExpr","useDefaultSearchExpr","headerFilterDataSource","headerFilterOptions","_initializeListContainer","searchMode","pageLoadMode","showSelectionControls","_selectedItemsUpdating","oldSelected","filterValueIndex","headerFilterMixin","$headerFilterIndicator","indicatorLabel","requireReady","DATE_INTERVAL_FORMATS","ungroupUTCDates","dates","isMonthPart","convertDataFromUTCToLocal","getHeaderFilterGroupParameters","isUTCFormat","HeaderFilterController","_headerFilterView","_updateSelectedState","_normalizeGroupItem","valueSelector","displaySelector","groupInterval","firstValueText","secondValue","secondValueText","emptyValue","_column$headerFilter","remoteGrouping","isLookup","normalizeLookupDataSource","cutoffLevel","_filter","convertUTCDates","origPostProcess","isGroupPanel","dxResizableInstance","dxResizable","headerFilterByColumn","ColumnHeadersViewHeaderFilterExtender","_subscribeToIndicatorEvent","HeaderPanelHeaderFilterExtender","headerFilterModule","headerFilterView","HEADER_PANEL_CLASS","TOOLBAR_BUTTON_CLASS","TOOLBAR_ARIA_LABEL","DEFAULT_TOOLBAR_ITEM_NAMES","HeaderPanel","_getButtonContainer","specificClass","secondClass","_getToolbarOptions","userToolbarOptions","toolbarOptions","itemRenderedCallback","_normalizeToolbarItems","defaultButtonsByNames","normalizedItems","_toolbar","_toolbarOptions","$headerPanel","$toolbar","toolbarInstance","itemOptionPrefix","_this$_toolbar","getHeaderPanel","normalizedItem","headerPanelModule","ROWS_VIEW_CLASS","GROUP_FOOTER_CLASS","MASTER_DETAIL_ROW_CLASS","FREESPACE_ROW_CLASS","VIRTUAL_ROW_CLASS","COMMAND_SELECT_CLASS","COMMAND_CELL_SELECTOR","DATEBOX_WIDGET_NAME","FOCUS_STATE_CLASS","REVERT_BUTTON_CLASS","FAST_EDITING_DELETE_KEY","INTERACTIVE_ELEMENTS_SELECTOR","NON_FOCUSABLE_ELEMENTS_SELECTOR","FOCUS_TYPE_ROW","FOCUS_TYPE_CELL","FUNCTIONAL_KEYS","isNotFocusedRow","isCellElement","isElementDefined","isMobile","isCellInHeaderRow","isFixedColumnIndexOffsetRequired","shouldPreventScroll","KeyboardNavigationController","_selectionController","_updateFocusTimeout","_fastEditingStarted","_canceledCellPosition","setupFocusedView","_isNeedScroll","_focusedView","_initViewHandlers","_initDocumentHandlers","rowsViewFocusHandler","isRelatedTargetInRowsView","_isEventInCurrentGrid","$focusedCell","$rowsView","isFocusedViewCorrect","needUpdateFocus","isFocusedElementCorrect","_initPointerEventHandler","_initKeyDownHandler","_setRowsViewAttributes","_isNeedFocus","_isHiddenFocus","isCurrentRowsViewClick","isEditorOverlay","isColumnResizing","targetInsideFocusedView","_resetFocusedCell","_resetFocusedView","_getRowsViewElement","isGridEmpty","_applyTabIndexToElement","pointerEventName","clickSelector","_pointerEventAction","_pointerEventHandler","_keyDownListener","_keyDownHandler","focusType","setCellFocusType","_this$_editingControl","needStopPropagation","isHandled","_processOnKeyDown","_updateFocusedCellPositionByTarget","_leftRightKeysHandler","_upDownKeysHandler","_pageUpDownKeyHandler","_spaceKeyHandler","_ctrlAKeyHandler","_beginFastEditing","_tabKeyHandler","_enterKeyHandler","_ctrlFKeyHandler","_f2KeyHandler","_isFastEditingAllowed","_isFastEditingStarted","_closeEditCell","$event","directionCode","_getDirectionCodeByKey","isEditingNavigationMode","allowNavigate","_isVirtualColumnRender","_processVirtualHorizontalPosition","_getNextCell","_arrowKeysHandlerFocusCell","_this$_editingControl2","_this$_editingControl3","isUpArrow","isRowEditingInCurrentRow","_navigateNextCell","_isVirtualRowRender","_scrollBy","isPageUp","pageStep","isFocusedRowElement","isFocusedSelectionCell","startSelectionWithCheckboxes","changeItemSelection","selectAll","isCellPositionDefined","isOriginalHandlerRequired","_isLastValidCell","_isFirstValidCell","focusedViewElement","_editingCellTabHandler","_targetCellTabHandler","_getMaxHorizontalOffset","_isColumnRendered","allVisibleColumns","renderedVisibleColumns","_isFixedColumn","_isColumnVirtual","localColumnIndex","getColumnIndex","horizontalScrollPosition","needToScroll","_getVisibleColumnCount","leftEdgePosition","_getHorizontalScrollPositionOffset","scrollBy","positionOffset","_getCell","currentCellWidth","rtlMultiplier","isEditingAllowed","elementType","nextCellInfo","_getNextCellByTabKey","_getRowIndex","_isDataRow","_focusCell","isHighlighted","_editFocusedCell","_focusInteractiveElement","$lastInteractiveElement","_getInteractiveElement","_checkNewLineTransition","_fireFocusedCellChanging","$newCellElement","_getCellPosition","_fireFocusedRowChanging","rowIndexChanged","_processEnterKeyForDataCell","_getEnterKeyDirection","allowEditingOnEnterKey","_allowEditingOnEnterKey","_handleEnterKeyEditingCell","_startEditing","enterKeyDirection","isShift","_focusEditFormCell","searchTextEditor","getSearchTextEditor","isCellValid","isVerticalDirection","_fireFocusChangingEvents","isDeleting","fastEditingKey","isInteractiveElement","isRevertButton","isExpandCommandCell","_focusView","_isMasterDetailCell","_clickTargetCellHandler","_isCellEditMode","resetFocusedRow","_allowRowUpdating","skipFocusEvent","activeElementSelector","_focusElement","getFocusedView","rowsViewElement","$focusedView","_getFocusedViewByElement","disableFocus","$focusElement","focusedView","$focusViewElement","isRowFocus","isRenderView","_hasSkipRow","$focusedElementInsideCell","isFocusedElementDefined","_this$_focusedCellPos","_getFocusedColumnIndexOffset","_getFixedColumnIndexOffset","_applyColumnIndexBoundaries","_this$_focusedView","renderFocusState","restoreFocusableElement","newRowIndex","_getNewPositionByCode","visibleColumnsCount","_hasValidCellAfterPosition","_isLastRow","_hasValidCellBeforePosition","_isCellByPositionValid","getMaxRowIndex","isFirstValidCell","hasValidCells","checkingPosition","visibleColumnCount","isClick","isShowWhenGrouped","isDataCell","rowItems","_isLegacyNavigation","focusedCellPosition","includeCommandCells","newFocusedCellPosition","isLastCellOnDirection","_isCellInRow","_isAllowEditing","_startEditCell","editResult","_editingCellHandler","_$input$get$select","_$input$get","keyDownEvent","keyPressEvent","inputEvent","$widgetContainer","fireRowEvent","newColumnIndex","prevCellIndex","localRowIndex","$newFocusedRow","prevFocusedRowIndex","$editForm","$masterDetailCell","_processCanceledEditCellPosition","isCanceled","updateFocusedRowIndex","lastVisibleIndex","keyboardNavigationModule","useLegacyKeyboardNavigation","enterKeyAction","editOnKeyPress","needTriggerPointerEventHandler","_triggerPointerDownEventHandler","pageSizeChanged","_updateFocusedCellTabIndex","cellElementsLength","updateCellTabIndex","isMasterDetailCell","isValidCell","_renderFocusByChange","_getEditorInstance","_handleEditingNavigationMode","originalKeyHandler","isDropDownOpened","isDateBoxWithMask","getWidgetInstance","keyboardNavigationController","_keyboardNavigationController","getRowIndexCorrection","focusedRowIndexCorrection","ROW_LINES_CLASS","masterDetailModule","masterDetail","initMasterDetail","_expandedItems","_isExpandAll","expandIndex","detailColumnIndex","isEnabledChanged","isAutoExpandAllChanged","_updateParentDataGrids","$masterDetailRow","_updateMasterDataGrid","$detailElement","masterRowOptions","masterDataGrid","_updateMasterDataGridCore","_updateFixedMasterDetailGrids","masterRowIndex","$tables","rowsNotEqual","tablesNotEqual","detailElementWidth","isDetailHorizontalScrollCanBeShown","isDetailGridWidthChanged","_isDetailRow","$detailCell","WIDGET_WITH_LEGACY_CONTAINER_NAME","ModuleItem","_actionConfigs","optionCache","localize","containerName","$gridElement","getViews","_isReady","_requireRender","_$parent","requireResize","MODULES_ORDER_MAX_INDEX","modulesOrder","controllerTypes","viewTypes","module1","module2","orderIndex1","orderIndex2","createModuleItems","moduleTypes","moduleItems","moduleType","moduleItem","moduleNames","unregisterModule","GridPagerWrapper","pageIndexChanged","getElementStyle","_getElementComputedSt","computedStyle","getElementContentWidth","getElementMinWidth","contentAttributes","infoTextRef","infoTextVisible","isLargeDisplayMode","pageSizesRef","pagesRef","parentRef","Content","calculateLargeDisplayMode","pageSizes","pageSizesWidth","pages","pagesWidth","parentWidth","calculateInfoTextVisible","infoWidth","minimalWidth","getElementsWidth","pagesHtmlWidth","ResizableContainerProps","ResizableContainer","actualIsLargeDisplayMode","actualInfoTextVisible","subscribeToResize","effectUpdateChildProps","updateAdaptivityProps","pagerProps","displayMode","gridCompatibility","infoText","lightModeEnabled","maxPagesCount","pageIndexChange","pageSizeChange","pagesCountText","pagesNavigatorVisible","showInfo","showNavigationButtons","showPageSizes","currentElementsWidth","elementsWidth","BasePagerProps","PagerProps","defaultPageSize","defaultPageIndex","InternalPagerProps","PAGER_INFO_CLASS","InfoTextPropsType","InfoText","_this$props$infoText","KeyboardActionContext","LightButtonProps","LightButton","subscribeToClick","keyboardContext","PAGER_CLASS","LIGHT_MODE_CLASS","PAGER_PAGES_CLASS","PAGER_PAGE_INDEXES_CLASS","PAGER_PAGE_CLASS","PAGER_SELECTION_CLASS","PAGER_PAGE_SIZE_CLASS","PAGER_PAGE_SIZES_CLASS","PAGER_SELECTED_PAGE_SIZE_CLASS","FIRST_CHILD_CLASS","PageProps","Page","PAGER_PAGE_SEPARATOR_CLASS","PagesMarkup","pageProps","PAGES_LIMITER","getDelimiterType","slidingWindowSize","createPageIndexesBySlidingWindowIndexes","slidingWindowIndexes","pageIndexes","indexesForReuse","createPageIndexes","PagesLargePropsType","PagesLarge","canReuseSlidingWindow","generatePageIndexes","isSlidingWindowMode","onPageClick","slidingWindowState","slidingWindowStateHolder","currentPageCount","lastPageIsFartherThanWindow","pageIndexExistInIndexes","_createPageIndexes","createPage","rtlPageIndexes","EditorStateProps","EditorLabelProps","DEFAULT_VALUE","NumberBoxProps","NumberBoxPropsType","NumberBox","oneDigitWidth","calculateValuesFittedWidth","PAGER_INFO_TEXT_CLASS","PAGER_PAGE_INDEX_CLASS","LIGHT_PAGES_CLASS","PAGER_PAGES_COUNT_CLASS","pageIndexRef","selectLastPageIndex","PagerSmallProps","PagesSmall","updateWidth","_this$pageIndexRef$cu","_this$props$pagesCoun","PAGER_NAVIGATE_BUTTON","PAGER_PREV_BUTTON_CLASS","PAGER_NEXT_BUTTON_CLASS","PAGER_BUTTON_DISABLE_CLASS","getNextButtonLabel","getPrevButtonLabel","nextEnabledClass","prevEnabledClass","nextDisabledClass","prevDisabledClass","reverseDirections","nextButtonProps","prevButtonProps","renderNextButton","renderPrevButton","navigate","getIncrement","PageIndexSelectorProps","PageIndexSelectorPropsType","PageIndexSelector","getButtonProps","canNavigateToPage","getNextPageIndex","canNavigateTo","navigateToPage","rtlAwareDirection","canNavigate","SelectBoxProps","SelectBoxPropsType","SelectBox","PageSizeSmallPropsType","PageSizeSmall","pageSizesText","PageSizeLargePropsType","PageSizeLarge","onPageSizeChange","processedPageSize","htmlRef","normalizedPageSizes","getAllText","PageSizeSelectorProps","PageSizeSelectorPropsType","PageSizeSelector","infoVisible","pageIndexSelectorVisible","pagesContainerVisibility","pagesContainerVisible","widgetRootElementRef","PagerContentProps","PagerContent","createFakeInstance","keyboardAction","_this$props$onKeyDown","fakePagerInstance","normalizedDisplayMode","_this$props2","newPageIndex","newPageSize","_this$props$pageSize$","Pager","MAX_PAGES_COUNT","getPageIndex","PagerView","pager","_pager","pagerOptions","showPageSizeSelector","getPageSizes","getPager","allowedPageSizes","_pageSizes","pagerVisible","scrolling","isPager","isPaging","isDataSource","isScrolling","pagerModule","pagerView","COMMAND_HANDLE_CLASS","HANDLE_ICON_CLASS","SORTABLE_WITHOUT_HANDLE_CLASS","RowDraggingExtender","_updateHandleColumn","_allowReordering","rowDragging","allowDropInsideItem","isHandleColumnVisible","showDragIcons","_getHandleTemplate","sortableName","sortableFixedName","currentSortableName","anotherSortableName","togglePointerEventsStyle","_this$sortableFixedNa","cursorOffset","rowsViewOffset","onDraggableElementShown","dragTemplate","$dragElement","dragElement","gridInstance","_synchronizeScrollLeftPosition","_getDraggableRowTemplate","handle","dropFeedbackMode","onDragStart","_rowDragging$onDragSt","onDragEnter","onDragLeave","onDragEnd","_rowDragging$onDragEn","onAdd","_rowDragging$onAdd","hasFixedSortable","_updateSortable","_sortable","_sortableFixed","sortable","_getDraggableGridOptions","gridOptions","onRowPrepared","$dataGridContainer","rowDraggingModule","FREE_SPACE_CLASS","ROW_ALTERNATION_CLASS","LAST_ROW_BORDER","EMPTY_CLASS","ROW_INSERTED_ANIMATION_CLASS","LOADPANEL_HIDE_TIMEOUT","getMaxHorizontalScrollOffset","rowsModule","showIndicator","indicatorSrc","showPane","dataRowTemplate","rowAlternationEnabled","twoWayBindingEnabled","defaultCellTemplate","isDataTextEmpty","_getDefaultGroupTemplate","_setAriaRowIndex","isPagerMode","_loadPanel","_renderLoadPanel","allColumnsHasWidth","_renderScrollableCore","isNativeScrolling","dxScrollableOptions","onScroll","_scrollableContainer","renderLoadPanel","newTableElement","rowInsertedClass","$rowsElement","_createEmptyRow","_appendEmptyRow","$emptyRow","$tBodies","isTableContainer","_renderFreeSpaceRow","$freeSpaceRowElement","_rowHeight","_getRowsHeight","_updateRowHeight","_getFreeSpaceRowElements","tableElements","_getNoDataText","evaluate","_getColumnsCountBeforeGroups","columnsCountBeforeGroups","groupColumnAlignment","_renderDataRowByTemplate","resizeCompletedHandler","_lastColumnWidths","groupingTextsOptions","_getDevicePixelRatio","renderNoDataText","freeSpaceRowElements","isFreeSpaceRowVisible","elementHeightWithoutScrollbar","contentHeight","showFreeSpaceRow","borderTopWidth","heightCorrection","_getHeightCorrection","resultHeight","_updateLastRowBorder","freeSpaceRowCount","isZoomedWebkit","isChromeLatest","hasExtraBorderTop","_fireColumnResizedCallbacks","_editorFactoryController","forceUpdateScrollPosition","scrollableContainer","lastColumnWidths","_updateHorizontalScrollPosition","maxHorizontalScrollOffset","scrollRight","dxScrollable","_height","loadPanelOptions","visibilityOptions","calculateLoadPanelPosition","_hideLoadingTimeoutID","groupCellIndex","_getBoundaryVisibleItemIndex","isTop","isFloor","prevOffset","viewportBoundary","contentElementOffsetTop","getTopVisibleRowData","scrollToElement","_restoreErrorRow","SEARCH_PANEL_CLASS","SEARCH_TEXT_CLASS","searchModule","searchPanel","highlightSearchText","highlightCaseSensitive","searchVisibleColumnsOnly","onQueryDone","getSearchPanelOptions","_prepareSearchItem","searchPanelOptions","$search","$searchPanel","dxTextBox","_searchParams","_getFormattedSearchText","_getStringNormalizer","isCaseSensitive","_findHighlightingTextNodes","stringNormalizer","normalizedSearchText","resultTextNodes","$contents","normalizedText","_highlightSearchTextCore","$textNode","$searchTextSpan","firstContentElement","_highlightSearchText","isEquals","textNodes","textNode","_highlightTimer","ROW_SELECTION_CLASS","SELECT_CHECKBOX_CLASS","CHECKBOXES_HIDDEN_CLASS","SELECTION_DISABLED_CLASS","SHOW_CHECKBOXES_MODE","SELECTION_MODE","processLongTap","isSelectionWithCheckboxes","stopSelectionWithCheckboxes","SelectionController","selectionCellTemplate","isRowSelected","renderSelectCheckBoxContainer","selectionHeaderTemplate","_renderSelectAllCheckBox","_attachSelectAllCheckBoxClickEvent","selectAllMode","_selectionMode","_isSelectionWithCheckboxes","_createSelection","_updateSelectColumn","removedKeys","deselectRows","_getSelectionConfig","selectionOptions","virtualPaging","allowSelectAll","legacyScrollingMode","selectionFilter","ignoreDisabledItems","allowLoadByRange","hasGroupColumns","_dataController$dataS","_dataController$dataS2","isSelectableItem","getItemData","getLoadOptions","loadItemIndex","focusedItemIndex","shiftItemIndex","_dataController$dataS3","_dataController$dataS4","minIndex","isSelectColumnVisible","_fireSelectionChanged","selectedRowKeys","selectionChanged","_updateCheckboxesState","isDeferredMode","keyIndex","isComplexKey","selectionChangedOptions","changedItemIndexes","getChangedItemIndexes","visibleChangedItemIndexes","itemIndexes","_selectedItemsInternalChange","selectedRowsData","currentSelectedRowKeys","currentDeselectedRowKeys","isDeferredSelection","isDataItem","oldSelectionMode","selectRows","_isOnePageSelectAll","getSelectAllState","deselectAll","preserve","isDeselect","getSelectedRowKeys","selectRowsByIndexes","setFocusOnly","loadedItemIndex","_focusedItemIndex","selectionModule","hasSelectColumn","isUpdateSelection","_updateSelectAllValue","selectAllValue","hasSelection","dxCheckBox","isEmptyData","_attachCheckBoxClickEvent","_renderSelectCheckBox","_e$event","_updateCheckboxesClass","isSelectionDisabled","isCommandSelect","isCheckBoxesHidden","SORT_CLASS","SORT_NONE_CLASS","SORTUP_CLASS","SORTDOWN_CLASS","SORT_INDEX_CLASS","SORT_INDEX_ICON_CLASS","HEADERS_ACTION_CLASS","ariaSortState","isSortingAllowed","hasSeveralSortIndexes","COLUMN_HEADERS_VIEW_NAMESPACE","ColumnHeadersViewSortingExtender","$cellElementFromEvent","editingMode","HeaderPanelSortingExtender","sortingModule","showSortIndexes","DATE_REGEX","parseDates","StateStoringController","getStorage","storage","localStorage","getUniqueStorageKey","storageKey","_loadState","customLoad","_saveState","setItem","customSave","isEnabled","_windowUnloadHandler","_savingTimeoutID","getDataState","processLoadState","_initialPageSize","_initialFilterValue","exportSelectionOnly","DEFAULT_FILTER_VALUE","hasFilterState","stateStoringModule","stateStoring","savingTimeout","stateLoaded","isStateLoading","applyState","newState","oldStateHash","newStateHash","isVirtualScrollingMode","stateStoringController","_restoreStateTimeoutID","DATAGRID_SELECTION_DISABLED_CLASS","DATAGRID_GROUP_OPENED_CLASS","DATAGRID_GROUP_CLOSED_CLASS","NO_DATA_CLASS","SCROLLING_MODE_INFINITE","SCROLLING_MODE_VIRTUAL","SCROLLING_MODE_OPTION","ROW_RENDERING_MODE_OPTION","DATE_INTERVAL_SELECTORS","getIntervalSelector","nameIntervalSelector","equalSelectors","selector1","selector2","editorData","dxComponents","filter1","filter2","normalizeGroupingLoadOptions","noDataClass","noDataElement","resultFilter","_filters$i","changeNames","changesWithChangeNamesCount","sortParameters1","sortParameters2","ignoreIsExpanded","pointCreated","notCreatePoint","prevItemOffset","selectionEnd","isSelectTextOnEditingStart","_loadItemDeferred","hasResizableColumns","$grid","rowRenderingMode","isAppendMode","getPixelRatio","lookupDataSourceOptions","cachedUniqueRelevantItems","hasGroupPaging","hasLookupOptimization","newDataSource","lookupItems","_column$displayValueM","flatMap","INVALIDATE_CLASS","INVALID_MESSAGE_CLASS","WIDGET_INVALID_MESSAGE_CLASS","INVALID_MESSAGE_ALWAYS_CLASS","VALIDATOR_CLASS","PENDING_INDICATOR_CLASS","VALIDATION_PENDING_CLASS","PADDING_BETWEEN_TOOLTIPS","FORM_BASED_MODES","VALIDATION_STATUS","valid","pending","EDIT_DATA_INSERT_TYPE","EDIT_DATA_REMOVE_TYPE","VALIDATION_CANCELLED","validationResultIsValid","cellValueShouldBeValidated","ValidatingController","_validationState","initValidationState","_validationStateCache","_rowIsValidated","validationData","_getValidationData","validated","isObjectKeyHash","_getBrokenRules","validationResults","brokenRules","brokenRule","_rowValidating","getChangeByKey","errorText","getHiddenValidatorsErrorText","brokenRulesMessages","isGroupExpandColumn","isVisibleColumn","isFull","completeList","_isValidationInProgress","_currentCellValidator","_validationResult","validators","resetRowValidationResults","isRowDataModified","updateValidationState","setDisableApplyValidationResults","groupConfig","setValidator","renderCellPendingIndicator","disposeCellPendingIndicator","validationStatusChanged","updateCellValidationResult","validatorInitialized","validatorDisposing","getCellValidationResult","cancelCellValidationResult","applyValidationResult","requestIsDisabled","disabledPendingId","_disableApplyValidationResults","_syncInternalEditingData","_parameters$row","oldDataFromState","createValidator","needCreateValidator","_parameters$row$oldDa","_parameters$row2","isCellOrBatchEditingAllowed","useDefaultValidator","applyValidationResults","validationRequestsCallbacks","bypass","flag","getDisableApplyValidationResults","isCurrentValidatorProcessing","validateCell","cellParams","stateRestored","_validationData$valid","removeCellValidationResult","isInvalidCell","getCellValidator","_ref8","setCellValidationStatus","validatingModule","validationCancelChanges","validating","validatingController","_updateRowAndPageIndices","startInsertIndex","_ref9","isNotCanceled","addInValidItem","isInserted","_createInvisibleColumnValidators","invisibleColumns","invisibleColumnValidators","isCellVisible","disposeValidators","isFullValid","_showErrorRow","shouldResetValidationState","columnsWithValidatingEditors","_col$validationRules","validationState","resetRowAndPageIndices","currentValidator","isValidated","needValidation","isCellInvalid","_showRevertButton","$tooltipElement","$overlayContainer","tooltipOptions","$buttonElement","_positionedHandler","_hideFixedGroupCell","$nextFixedRowElement","$groupCellElement","nextRowOptions","__skipPositionProcessing","needRepaint","normalizedPosition","_normalizeValidationMessagePositionAndMaxWidth","_showValidationMessage","revertTooltip","editorPopup","myPosition","atPosition","errorMessageText","invalidMessageClass","$overlayElement","_shiftValidationMessageIfNeed","visibleTableWidth","w1","w2","$overlayContentElement","validationMessageWidth","needMaxWidth","boundaryNonFixedColumnsInfo","firstNonFixedColumnIndex","lastNonFixedColumnIndex","endColumnIndex","$revertContent","contentOffset","revertContentOffset","revertTooltipClass","skipValidator","updateCellState","_change$data","showValidationMessage","errorMessages","$tooltips","_oldRow$cells","_cell$column$validati","oldValidationStatus","newValidationStatus","rowIsModified","cellIsMarkedAsInvalid","hasValidationRules","$freeSpaceRowElements","$tooltipContent","isEditorDisposed","contentTable","foreachColumnInfo","offsets","lastProcessedIndexes","processedColumnCount","createColumnsInfo","newInfo","columnInfo","cellColspan","DEFAULT_COLUMN_WIDTH","VirtualScrollingRowsViewExtender","setScrollPosition","HeaderViewExtender","ColumnsControllerExtender","getWidths","_beginPageIndex","_endPageIndex","_position","_virtualVisibleColumns","getBeginPageIndex","getColumnPageSize","getTotalWidth","getEndPageIndex","_fireColumnsChanged","_renderTime","getScrollingTimeout","renderingThreshold","scrollingTimeout","_changedTimeout","_setScrollPositionCore","endPageIndex","needColumnsChanged","isBase","_this$_columns","visibleColumnsHash","beginFixedColumnCount","beginFixedColumns","beginColumns","beginWidth","endFixedColumnCount","endFixedColumns","endColumns","endWidth","columnsInfo","leftFixedColumnCount","virtualColumnsModule","columnRenderingMode","columnPageSize","columnRenderingThreshold","needTwoPagesLoading","isVirtual","getViewportItemIndex","fireChanged","_isChangedFiring","processDelayChanged","_isDelayChanged","getViewportPageCount","_dataOptions","preventPreload","realViewportSize","viewportSize","viewportItemSize","getContentOffset","getViewportPosition","itemSize","getItemSizes","getPreloadPageCount","preloadEnabled","getPageIndexForLoad","dataOptions","needToLoadPageBeforeLast","needToLoadPrevPage","needToLoadNextPage","_loadingPageIndexes","loadCore","processChanged","isDelayChanged","removeCacheItem","isPrepend","viewportItems","correctCount","removeItemCount","updateLoading","_lastPageIndex","VirtualDataLoader","viewportItemIndexChanged","lastPageSize","maxPageIndex","pageIndexForLoad","delayDeferred","_delayDeferred","loadIfNeed","_setViewportPositionCore","handleDataChanged","removeInvisiblePages","lastCacheLength","getDelayDeferred","beginItemsCount","endItemsCount","_isVirtualMode","_isVirtual","_isAppendMode","subscribeToExternalScrollers","scrollChangedHandler","$scrollElement","scrollableArray","scrollToArray","disposeArray","getElementOffset","$scrollableElement","scrollableOffset","widgetScrollStrategy","subscribeToScrollEvents","topOffset","scrollMethod","getScrollElementParent","_$element$get$parentN","VirtualScrollController","_viewportSize","_viewportItemSize","_viewportItemIndex","_isScrollingBack","_contentSize","_itemSizes","_sizeRatio","_dataLoader","viewportParams","getViewportParams","loadedOffset","loadedItemCount","changingDuration","setViewportPosition","_scrollTimeoutID","getItemIndexByPosition","viewportItemIndex","defaultItemSize","itemOffset","itemOffsetsWithSize","itemOffsetWithSize","itemOffsetDiff","isScrollingBack","prevPosition","setViewportItemIndex","setContentItemSizes","sizes","virtualContentSize","contentHeightLimit","isEnd","currentItemIndex","getVirtualContentSize","viewportHeight","isRefresh","subscribeToWindowScrollEvents","_windowScroll","_this$option2","topIndex","bottomIndex","maxGap","minGap","topMinGap","bottomMinGap","remainedItems","BOTTOM_LOAD_PANEL_CLASS","TABLE_CONTENT_CLASS","FREESPACE_CLASS","LOAD_TIMEOUT","VISIBLE_PAGE_INDEX","_correctCount","isItemCountableFunc","isItemCountableByDataSource","updateItemIndices","VirtualScrollingDataSourceAdapterExtender","_updateLoading","_virtualScrollController","_loadPageCount","_getVirtualScrollDataOptions","_startLoadTime","virtualScrollController","loadPageCount","takeIsDefined","removeEmptyRows","$emptyRows","_dataController$state","scrollToPage","updateViewport","_scrollToCurrentPageOnResize","resizeHandler","scrollPosition","itemSizes","startRenderTime","_removeRowsElements","_updateBottomLoading","_addVirtualRow","$virtualRow","_updateContentItemSizes","_getRowHeights","correctedRowHeights","_correctRowHeights","_updateViewportSize","_this$getController$i","firstCountableItem","lastLoadIndex","$virtualRows","prevFixed","_isTableLinesDisplaysCorrect","table","hasColumnLines","_isColumnElementsEqual","$columns","$virtualColumns","_getCellClasses","isExpandColumn","_findBottomLoadPanel","$bottomLoadPanel","showBottomLoading","bottomLoadPanelElement","zeroTopPosition","isScrollTopChanged","hasBottomLoadPanel","isViewportChanging","scrollPos","_dataController$loadI","virtualScrollingModule","updateTimeout","minTimeout","rowPageSize","prerenderedRowChunkSize","loadTwoPagesOnStart","legacyMode","prerenderedRowCount","baseResult","initVirtualRows","_loadViewportParams","getLoadPageParams","getRowPageSize","isSortingOperation","allowedTopOffset","virtualRowsRendering","_allItems","_visibleItems","_rowPageIndex","_viewportChanging","_needUpdateViewportAfterLoading","_getRowsScrollDataOptions","_this$_dataSource2","loadViewport","_updateLoadViewportParams","isItemCountable","_that$_dataSource","_itemCount","isNextAfterLast","countableOnly","cancelEmptyChanges","_dataSource$lastLoadO","prevCountable","prevRowType","isPrevRowNew","wasCountableItem","itemCountable","isNextGroupItem","isNextDataItem","isPrevNewRowFirst","skipForCurrentPage","isNewRowOnStart","isNewRowInEmptyData","isLoadIndexGreaterStart","isLoadIndexLessEnd","byLoadedRows","firstLoadIndex","_dataSource$lastLoadO2","_this$_rowsScrollCont","getPreloadedRowCount","preloadCount","byLoadedPage","_this$_dataSource3","_this$_dataSource4","loadedPageIndex","loadedTake","topPreloadCount","bottomPreloadCount","skipWithPreload","loadingTake","_updateVisiblePageIndex","currentPageIndex","viewPortItemIndex","_getChangedLoadParams","loadedPageParams","pageIndexIsValid","_pageIndexIsValid","_loadItems","checkLoading","viewportIsFilled","_dataSourceAdapter$lo","_dataSourceAdapter$pa","changedParams","currentLoadPageCount","lastRequiredItemCount","pageIndexNotChanged","allLoadedInAppendMode","isRepaintMode","pageIndexIncreased","viewportChanging","checkLoadedParamsOnly","viewportIsNotFilled","loadingItemsStarted","_this$_loadViewportPa","_this$_loadViewportPa2","currentTake","newTake","topItemIndex","_this$_loadViewportPa3","bottomItemIndex","_this$_dataSource5","masterDataGridUpdated","isNewVirtualMode","_resizeTimeout","_lastTime","DataConverter","_dataStructure","_itemsCount","_visibleItemsCount","_indexByKey","_convertItemsToNodes","_getParentId","_convertItemToNode","_checkForDuplicateId","_itemHasChildren","_dataAccessors","_dataType","_getUniqueKey","itemKey","isCorrectKey","getItemsCount","_rootValue","_makeObjectFromPrimitive","setChildrenKeys","getParentNode","setters","_convertToPublicNode","publicNode","convertToPublicNodes","publicNodes","_getByKey","setDataAccessors","accessors","getByKey","currentElementKey","getVisibleItemsCount","updateIndexByKey","updateChildrenKeys","removeChildrenKeys","createPlainStructure","EXPANDED","SELECTED","DISABLED","setEditorClass","DataAdapter","_defaultOptions","dataConverter","dataAccessors","_selectedNodesKeys","_expandedNodesKeys","_createInternalDataStructure","getTreeNodes","setOption","onNodeChanged","_initialDataStructure","_updateExpansion","_setChildrenSelection","_setParentSelection","_updateNodesKeysArray","_updateOneBranch","_setParentExpansion","_getDataBySelectionMode","_isNodeVisible","getFullData","_toggleChildrenSelection","_iterateParents","newParentState","_calculateSelectedState","_setFieldState","_iterateChildren","processedKeys","nodeKey","selectedItemsCount","invisibleItemsCount","isChildInvisible","childState","_markChildren","_removeNode","_addNode","_updateFields","getExpandedNodesKeys","getNodesByItems","getPublicNode","getChildrenNodes","selectRecursive","isSingleModeUnselect","_isSingleModeUnselect","selectionState","toggleNodeDisabledState","toggleSelectAll","lastSelectedKey","isAllSelected","toggleExpansion","isFiltered","_filterDataStructure","_createCriteria","getOperationBySearchMode","lookForParents","HierarchicalCollectionWidget","parentIdExpr","expandedExpr","_initAccessors","_createDataAdapterAccessors","_getIconContainer","_getAccessors","accessor","_compileAccessor","optionExpr","newAccessor","RADIO_BUTTON_CLASS","RADIO_BUTTON_ICON_CLASS","RADIO_BUTTON_ICON_DOT_CLASS","RADIO_BUTTON_CHECKED_CLASS","RADIO_BUTTON_ICON_CHECKED_CLASS","RadioButton","_renderIcon","_renderCheckedState","_renderClick","_$icon","SELECT_DECORATOR_ENABLED_CLASS","SELECT_DECORATOR_SELECT_ALL_CLASS","SELECT_DECORATOR_SELECT_ALL_CHECKBOX_CLASS","SELECT_DECORATOR_SELECT_ALL_LABEL_CLASS","SELECT_CHECKBOX_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CONTAINER_CLASS","SELECT_RADIO_BUTTON_CLASS","_singleStrategy","_containerClass","_controlClass","_controlWidget","beforeBag","$control","_commonOptions","_isSelected","_saveSelectionChangeEvent","_processCheckedState","modifyElement","_updateSelectAllState","_$selectAll","_selectAllCheckBox","afterRender","_renderSelectAll","handleKeyboardEvents","currentFocusedIndex","moveFocusUp","moveFocusDown","$selectAll","isFocusOutOfList","hasSelectAllItem","handleEnterPressing","downArrowHandler","_attachSelectAllHandler","_selectAllHandler","_selectAllClickHandler","isSelectedAll","_selectAllItems","_unselectAllItems","_checkSelectAllCapability","_disposeSelectAll","LIST_ITEM_BADGE_CONTAINER_CLASS","LIST_ITEM_BADGE_CLASS","BADGE_CLASS","LIST_ITEM_CHEVRON_CONTAINER_CLASS","LIST_ITEM_CHEVRON_CLASS","ListItem","_renderBadge","_renderShowChevron","badge","$badge","$chevron","showChevron","$chevronContainer","_getWindow$getCompute","_getWindow","getElementMargin","side","_scrollView","LIST_CLASS","LIST_ITEM_CLASS","LIST_ITEM_SELECTOR","LIST_ITEM_ICON_CONTAINER_CLASS","LIST_ITEM_ICON_CLASS","LIST_GROUP_CLASS","LIST_GROUP_HEADER_CLASS","LIST_GROUP_BODY_CLASS","LIST_COLLAPSIBLE_GROUPS_CLASS","LIST_GROUP_COLLAPSED_CLASS","LIST_GROUP_HEADER_INDICATOR_CLASS","LIST_HAS_NEXT_CLASS","LIST_NEXT_BUTTON_CLASS","WRAP_ITEM_TEXT_CLASS","SELECT_ALL_ITEM_SELECTOR","LIST_ITEM_DATA_KEY","LIST_FEEDBACK_SHOW_TIMEOUT","groupItemsGetter","ListBase","moveFocusPerPage","getEdgeVisibleItem","isFocusedItem","resultPosition","containerHeight","isItemVisible","$nextItem","nextItemLocation","pullRefreshEnabled","scrollByThumb","pullingDownText","pulledDownText","refreshingText","pageLoadingText","onPullRefresh","onPageLoading","nextButtonText","onItemSwipe","onGroupRendered","collapsibleGroups","indicateLoading","_listAttributes","_swipeEnabled","showChevronExpr","badgeExpr","_updateLoadingState","_selectionChangeEventInstance","_getSelectionChangeEvent","_refreshItemElements","_itemElementsCache","_initScrollView","_createGroupRenderAction","_scrollBottomMode","_nextButtonMode","scrollBottom","nextButton","_getGroupedOption","_getGroupContainerByIndex","_dataSourceFromUrlLoadMode","autoPagingEnabled","getScrollView","_scrollHandler","onPullDown","_pullDownHandler","onReachBottom","_scrollBottomHandler","reachBottomText","_createScrollViewActions","_scrollAction","_pullRefreshAction","_pageLoadingAction","$iconContainer","tryLoadMore","shouldLoadNextPage","_shouldContinueLoading","_infiniteDataLoading","_toggleNextButton","_shouldRenderNextButton","_loadIndicationSuppressed","_isDataSourceFirstLoadCompleted","_isFirstLoadCompleted","_dataSourceLoadingChangedHandler","_showLoadingIndicatorTimer","_this$_scrollView","shouldIndicateLoading","startLoading","finishLoading","_hideLoadingIfLoadIndicationOff","_isLoadIndicationSuppressed","_scrollViewIsFull","scrollView","_this$_scrollView$scr","_this$_scrollView$scr2","isBottomReached","isElementVisible","_loadNextPageTimer","_renderGroup","_attachGroupCollapseEvent","attachGroupHeaderInkRippleEvents","_collapseGroupHandler","$groupBody","startHeight","endHeight","_inkRippleTimer","_attachSwipeEvent","endEventName","swipe","_itemSwipeEndHandler","_nextButtonHandler","toggleLoading","_$nextButton","$groupHeaderElement","groupTemplateName","_renderingGroupIndex","_groupRenderAction","groupData","downInkRippleHandler","upInkRippleHandler","_downInkRippleHandler","_upInkRippleHandler","downArguments","upArguments","_toggleDisabledState","_getNextButton","_createNextButton","expandGroup","collapseGroup","distance","LIST_EDIT_DECORATOR","SWIPE_START_EVENT_NAME","SWIPE_UPDATE_EVENT_NAME","SWIPE_END_EVENT_NAME","EditDecorator","_shouldHandleSwipe","swipeConfig","_clearSwipeCache","_itemWidthCache","_itemSwipeStartHandler","_itemSwipeUpdateHandler","afterBag","handleClick","handleContextMenu","visibilityChange","getExcludedSelectors","register","decoratorClass","decoratorsRegistry","decoratorConfig","SELECTION_SHIFT","SELECTION_MASK","combineIndex","splitIndex","combinedIndex","GroupedEditStrategy","_groupElements","_groupItemElements","itemGroup","_getGroups","groupItemByKeyMap","getItemMeta","groupKey","itemMeta","selectedGroup","movingIndices","destinationIndices","movingItemGroup","destinationItemGroup","firstIndex","secondIndex","editOptionsRegistry","registerOption","enabledFunc","decoratorTypeFunc","decoratorSubTypeFunc","decoratorType","decoratorSubType","LIST_ITEM_BEFORE_BAG_CLASS","LIST_ITEM_AFTER_BAG_CLASS","DECORATOR_BEFORE_BAG_CREATE_METHOD","DECORATOR_AFTER_BAG_CREATE_METHOD","DECORATOR_MODIFY_ELEMENT_METHOD","DECORATOR_AFTER_RENDER_METHOD","DECORATOR_GET_EXCLUDED_SELECTORS_METHOD","EditProvider","_fetchRequiredDecorators","_decorators","decorator","optionEnabled","_createDecorator","subType","_findDecorator","_registry$type","foundDecorator","modifyItemElement","_prependBeforeBags","_appendAfterBags","_applyDecorators","afterItemsRendered","$beforeBags","_collectDecoratorsMarkup","$afterBags","containerClass","$collector","_handlerExists","decorators","_eventHandler","contextMenuHandlerExists","getExcludedItemSelectors","excludedSelectors","LIST_ITEM_SELECTED_CLASS","LIST_ITEM_RESPONSE_WAIT_CLASS","ListEdit","moveFocusedItem","moveUp","editStrategy","isLastIndexFocused","nextItemIndex","editProvider","_editProvider","isInternalMoving","privateKey","__dx_key__","onSelectAllValueChanged","selectAllText","menuMode","allowItemDeleting","itemDeleteMode","itemDragging","_initEditProvider","_isPageSelectAll","_disposeEditProvider","_refreshEditProvider","handledByEditProvider","_this$_editStrategy$g","focusListItem","unselectAll","getFlatIndexByItemElement","getItemElementByFlatIndex","flatIndex","getItemByIndex","ListSearch","_addWidgetPrefix","LOADINDICATOR_CLASS","LOADINDICATOR_WRAPPER_CLASS","LOADINDICATOR_CONTENT_CLASS","LOADINDICATOR_ICON_CLASS","LOADINDICATOR_SEGMENT_CLASS","LOADINDICATOR_SEGMENT_INNER_CLASS","LOADINDICATOR_IMAGE_CLASS","LoadIndicator","_animatingSegmentCount","_animatingSegmentInner","obsoleteAndroid","viaImage","_renderIndicatorContent","_renderMarkup","_$content","_renderMarkupForImage","_renderMarkupForAnimation","animatingSegmentInner","_$indicator","$segment","_updateContentSizeForAnimation","minDimension","_removeMarkupForAnimation","_removeMarkupForImage","LOADPANEL_CLASS","LOADPANEL_WRAPPER_CLASS","LOADPANEL_INDICATOR_CLASS","LOADPANEL_MESSAGE_CLASS","LOADPANEL_CONTENT_CLASS","LOADPANEL_CONTENT_WRAPPER_CLASS","LOADPANEL_PANE_HIDDEN_CLASS","LoadPanel","templatesRenderAsynchronously","hideTopOverlayHandler","shadingColor","_$loadPanelContentWrapper","_togglePaneVisible","_cleanPreviousContent","_renderLoadIndicator","_renderMessage","_clearShowTimeout","_showTimeout","TOAST_CLASS","TOAST_CLASS_PREFIX","TOAST_WRAPPER_CLASS","TOAST_CONTENT_CLASS","TOAST_MESSAGE_CLASS","TOAST_ICON_CLASS","WIDGET_NAME","toastTypes","TOAST_STACK","FIRST_Z_INDEX_OFFSET","visibleToastInstance","POSITION_ALIASES","DEFAULT_BOUNDARY_OFFSET","_proxiedDocumentDownHandler","Toast","displayTime","closeOnSwipe","closeOnClick","_posStringToObject","_toggleCloseEvents","_renderScrollTerminator","verticalPosition","horizontalPosition","_hideTimeout","_overlayStack","_zIndexInitValue","$notify","$containers","typeOrStack","userHiddenAction","getDefaultDirection","containerKey","userShowingAction","getStackContainer","setContainerClasses","setContainerStyles","createStackContainer","containerClasses","toastWidth","toastHeight","dimensions","coordinates","getCoordinatesByAlias","getPositionStylesByCoordinates","_coordinates$bottom","_coordinates$left","_coordinates$right","_coordinates$top","_coordinates$left2","_coordinates$right2","_coordinates$right3","_coordinates$top2","_coordinates$bottom2","_coordinates$left3","_coordinates$top3","_coordinates$bottom3","getRealSeparatorIndex","quoteBalance","separatorCount","occurrence","getNthOccurrence","splitByIndex","adjustPercentValue","rawValue","getCaretBoundaries","prefixStubLength","postfixStubLength","_getDigitCountBeforeIndex","textBeforePosition","_reverseText","_getDigitPositionByIndex","digitIndex","_trimNonNumericCharsFromEnd","getCaretWithOffset","getCaretAfterFormat","formatted","isSeparatorBasedText","isSeparatorBasedString","realSeparatorOccurrenceIndex","pointPosition","newPointPosition","formattedParts","isCaretOnFloat","relativeIndex","digitsBefore","newPosition","getCaretInBoundaries","formattedIntPart","positionFromEnd","digitsFromEnd","newPositionFromEnd","newPositionFromBegin","isCaretInBoundaries","boundaries","adjustedCaret","getCaretOffset","previousText","previousBoundaries","newBoundaries","SPIN_CLASS","SPIN_BUTTON_CLASS","SPIN_HOLD_DELAY","NUMBER_BOX","POINTERUP_EVENT_NAME","POINTERCANCEL_EVENT_NAME","SpinButton","onChange","_spinIcon","_spinDownHandler","_spinChangeHandler","_feedBackDeferred","SPIN_CONTAINER_CLASS","SPIN_TOUCH_FRIENDLY_CLASS","SpinButtons","$spinContainer","$spinContainerChildren","_spinButtonsPointerDownHandler","_spinUpChangeHandler","_spinDownChangeHandler","$spinUp","$spinDown","_isTouchFriendly","isTouchFriendly","$spinButtons","spinUp","spinDown","FIREFOX_CONTROL_KEYS","FORCE_VALUECHANGE_EVENT_NAMESPACE","NumberBoxBase","useLargeSpinButtons","invalidValueMessage","_isSupportInputMode","_getDefaultAttributes","inputmode","_validateValue","isInputCharValid","_keyPressed","_spinValueChange","inputValue","_forceValueRender","valuenow","valuetext","_applyDisplayValueFormatter","valuemin","valuemax","_normalizeInputValue","_correctRounding","isFloatValue","isFloatStep","valueAccuracy","stepAccuracy","accuracy","_renderValueChangeEvent","forceValueChangeEvent","_forceRefreshInputValue","_normalizeText","_parseValue","valueHasDigits","_isValueValid","_applyValueBoundaries","isValueIncomplete","_isValueIncomplete","isValueCorrect","_isValueInRange","_replaceCommaWithPoint","_inputIsInvalid","isNumberMode","validityState","validity","badInput","_isNumber","isValueValid","NUMBER_FORMATTER_NAMESPACE","MOVE_FORWARD","MOVE_BACKWARD","MINUS","MINUS_KEY","INPUT_EVENT","CARET_TIMEOUT_DURATION","NumberBoxMask","_isDeleteKey","minus","_revertSign","_removeHandler","_arrowHandler","_moveCaretToBoundaryEventHandler","_updateFormattedValue","_getTextSeparatorIndex","_preventNestedFocusEvent","clearCaretTimeout","_caretTimeout","_getInputVal","shouldHandleEvent","_focusOutOccurs","_hasValueBeenChanged","_updateParsedValue","_adjustParsedValue","_setTextByParsedValue","_parsedValue","nextCaret","_moveCaretToBoundary","newCaret","_shouldMoveCaret","isDecimalSeparatorNext","moveToFloat","_lastKey","_lastKeyName","_shouldHandleKey","enteredChar","_tryParse","_moveCaret","isDeleteKey","isBackspaceKey","canDelete","_isStub","editedText","noDigits","valueAfterRemoving","_isNonStubAfter","_isPercentFormat","noEscapedFormat","_parse","formatOption","isCustomParser","integerPartStartIndex","formatPointIndex","textPointIndex","formatIntegerPartLength","textIntegerPartLength","customFormatter","_currentFormat","_updateFormat","isExponentialFormat","shouldUseFormatAsIs","_getFormatForSign","_sign","_removeStubs","excludeComma","stubs","_getStubs","prefixStubs","postfixRegex","decoratorsRegex","stub","_truncateToPrecision","maxPrecision","strValue","isTextSelected","_getParsedValue","_getPrecisionLimits","isDecimalPointRestricted","isUselessCharRestricted","textWithoutStubs","parsedValueSign","parsedValueWithSign","pointIndex","floatLength","isPrecisionInRange","endsWithZero","_setInputText","_formattedValue","_renderInputType","isNumberType","_setInputType","_isChar","isSpecialChar","isMinusKey","_renderFormatter","_detachFormatterEvents","_attachFormatterEvents","_isInputFromPaste","_isValuePasted","_formatValue","escapedDecimalSeparator","regExpString","stubRegExp","realSeparatorIndex","floatPart","minPrecision","_applyRevertedSign","preserveSelectedText","currentText","caretInBoundaries","_removeMinusFromText","isMinusPressed","textWithoutMinus","wasMinusRemoved","textWasChanged","clearedText","OVERLAY_POSITION_ALIASES","OVERLAY_DEFAULT_BOUNDARY_OFFSET","OverlayPositionController","onVisualPositionChanged","restorePosition","_fixWrapperPosition","_$markupContainer","_$visualContainer","_shouldRenderContentInitialPosition","_visualPosition","_initialPosition","_previousVisualPosition","updateContainer","updatePosition","updateVisualContainer","$visualContainer","fixWrapperPosition","styleWrapperPosition","restorePositionOnNextRender","openingHandled","shouldRestorePosition","positionProp","_normalizePosition","containerProp","_getVisualContainer","detectVisualPositionChange","_updateVisualPositionValue","_raisePositionedEvents","positionContent","_renderContentInitialPosition","positionWrapper","useFixed","positionStyle","_renderBoundaryOffset","wrapperOverflow","previousPosition","isVisualPositionChanged","_this$_position","_this$_props$position","_this$_props$position2","visualContainerProp","positionOf","defaultPositionConfig","_positionToObject","hideCallback","indexOfCallback","hasCallback","viewPortChanged","OVERLAY_CLASS","OVERLAY_WRAPPER_CLASS","OVERLAY_SHADER_CLASS","INNER_OVERLAY_CLASS","RTL_DIRECTION_CLASS","OVERLAY_STACK","PREVENT_SAFARI_SCROLLING_CLASS","Overlay","wrapperAttr","_ignoreElementAttrDeprecation","_checkParentVisibility","_initHideOnOutsideClickHandler","_initTabTerminatorHandler","_customWrapperClass","_initInnerOverlayClass","_toggleViewPortSubscription","_initHideTopOverlayHandler","_parentsScrollSubscriptionInfo","_hideOnParentsScrollHandler","warnPositionAsFunction","_hideTopOverlayHandler","_getActionsList","actions","_documentDownHandler","_renderWrapperAttributes","_initPositionController","_showAnimationProcessing","_stopAnimation","isAttachedTarget","isInnerOverlay","outsideClick","_outsideClickHandler","_isTopOverlay","overlayStack","tabbableElements","_findTabbableBounds","baseZIndex","_this2","_viewPortChangeHandle","_viewPortChangeHandler","_positionController","_renderVisibilityAnimate","_getAnimationConfig","_animateShowing","_this$_getAnimationCo","_showAnimation$start","_showAnimation$comple","_this3","showAnimation","_normalizeAnimation","startShowAnimation","completeShowAnimation","_isAnimationPaused","_toggleSafariScrolling","_showingDeferred","_processShowingHidingCancel","cancelArg","applyFunction","cancelFunction","shouldCancel","_parentHidden","_isParentHidden","_currentVisible","_isHidingActionCanceled","_updateZIndexStackPosition","showingArgs","_isShowingActionCanceled","_moveFromContainer","_stopShowTimer","_asyncShowTimeout","showHideConfig","_animateHiding","_this$_getAnimationCo2","_hideAnimation$start","_hideAnimation$comple","_this4","hideAnimation","startHideAnimation","completeHideAnimation","_this4$_actions","_hideAnimationProcessing","_hidingDeferred","hidingArgs","_forceFocusLost","_toggleShading","_toggleSubscriptions","shouldResetActiveElement","completeCallback","startCallback","_checkContainerExists","_moveToContainer","_renderGeometry","pushToStack","_zIndex","_toggleTabTerminator","_this5","_proxiedTabTerminatorHandler","$elements","elementsCount","$firstTabbable","$lastTabbable","isTabOnLast","isShiftTabOnFirst","isEmptyTabList","isOutsideTarget","_toggleHideTopOverlayCallback","_toggleHideOnParentsScrollSubscription","needSubscribe","_this$_parentsScrollS","scrollEvent","prevTargets","closeOnScroll","$parents","_hideOnParentScrollTarget","closeHandled","_appendContentToElement","shouldDeferRendering","isParentHidden","_contentAlreadyRendered","isHidden","whenContentRendered","contentTemplateOption","noModel","_getPositionControllerConfig","$scrollTerminator","terminatorEventName","isWheel","isMouseMove","isScrollByWheel","$wrapperContainer","containerExists","_renderGeometryImpl","_renderPosition","_isAllWindowCovered","isIosSafari","isAllWindowCovered","isScrollingPrevented","shouldPreventScrolling","shouldEnableScrolling","_cachedBodyScrollTop","_renderWrapperDimensions","isVisualContainerWindow","wrapperWidth","wrapperHeight","_deferShowTimer","_this$_animateDeferre","_animateDeferred","_this$_animateDeferre2","animateDeferred","forceStopAnimation","zIndex","WINDOW_HEIGHT_PERCENT","getElementMaxHeightByWindow","startLocation","actualOffset","elementOffset","offsetBottom","zIndexStack","ZIndex","baseIndex","isLastZIndexInStack","borderWidthStyles","WEIGHT_OF_SIDES","POPOVER_POSITION_ALIASES","POPOVER_DEFAULT_BOUNDARY_OFFSET","PopoverPositionController","_$arrow","_positionSide","updateTarget","_getContainerPosition","hOffset","vOffset","isVerticalSide","_isVerticalSide","isHorizontalSide","_isHorizontalSide","isPopoverInside","_isPopoverInside","arrowSize","arrowSizeCorrection","_getContentBorderWidth","arrowOffset","_getDisplaySide","weightSign","horizontalWeight","verticalWeight","POPOVER_CLASS","POPOVER_WRAPPER_CLASS","POPOVER_ARROW_CLASS","POPOVER_WITHOUT_TITLE_CLASS","POSITION_FLIP_MAP","getEventNameByOption","getEventDelay","attachEvent","hideEvent","isSelector","shouldIgnoreHideEvent","_clearEventsTimeouts","_timeouts","EVENT_HANDLER_NAME","detachEvent","Popover","arrowPosition","_renderArrow","_detachEvents","_isOutsideClick","_renderTitle","shouldUpdateDimensions","_renderOverlayPosition","_resetOverlayPosition","_updateContentSize","contentPosition","resultLocation","_getSideByLocation","_togglePositionClass","_toggleFlippedClass","isArrowVisible","_renderArrowPosition","_setContentHeight","containerLocation","newContainerWidth","newOverlayContentHeight","newPopupContentHeight","isFlippedByVertical","isFlippedByHorizontal","positionClass","isFlippedHorizontal","isFlippedVertical","arrowRect","arrowFlip","arrowLocation","axis","contentLocation","contentSize","finalArrowLocation","fullUpdate","_clearEventTimeout","PopupFull","_getToolbarName","KEYBOARD_DRAG_STEP","PopupDrag","draggableElement","positionController","_draggableElement","_handle","_dragEnabled","unsubscribe","moveDown","moveLeft","moveRight","_getEventNames","startEventName","_dragStartHandler","updateEventName","_dragUpdateHandler","_dragEndHandler","allowedOffsets","_getAllowedOffsets","_prevOffset","_moveByOffset","dragHandled","_fitOffsetIntoAllowedRange","_getContainerDimensions","$dragResizeContainer","_getElementPosition","_getInnerDelta","containerDimensions","elementDimensions","_getElementDimensions","_getOuterDelta","outsideDragFactor","_getFullDelta","fullDelta","outerDelta","isDragAllowed","elementPosition","containerPosition","RESIZABLE","RESIZABLE_CLASS","RESIZABLE_RESIZING_CLASS","RESIZABLE_HANDLE_CLASS","RESIZABLE_HANDLE_TOP_CLASS","RESIZABLE_HANDLE_BOTTOM_CLASS","RESIZABLE_HANDLE_LEFT_CLASS","RESIZABLE_HANDLE_RIGHT_CLASS","RESIZABLE_HANDLE_CORNER_CLASS","DRAGSTART_START_EVENT_NAME","DRAGSTART_EVENT_NAME","DRAGSTART_END_EVENT_NAME","SIDE_BORDER_WIDTH_STYLES","Resizable","handles","stepPrecision","area","onResizeStart","onResize","onResizeEnd","roundStepValue","keepAspectRatio","_renderHandles","_resizeStartAction","_resizeEndAction","_resizeAction","_handles","directions","activeHandlesMap","handleName","_renderHandle","$handle","_dragHandler","handleElement","_toggleEventHandlers","shouldAttachEvents","_getElementSize","_toggleResizingClass","_movingSides","_getMovingSides","_elementLocation","_elementSize","_renderDragOffsets","_getArea","handleWidth","handleHeight","handleOffset","areaOffset","_getAreaScrollOffset","_leftMaxOffset","scrollX","_rightMaxOffset","_topMaxOffset","scrollY","_bottomMaxOffset","_getBorderWidth","_proportionate","factor","_getProportionalDelta","proportionalY","proportionalX","_getDirectionName","sides","_fitIntoArea","directionName","_fitDeltaProportionally","fittedDelta","isInArea","isFittedX","isFittedY","_fitDelta","_getDeltaByOffset","shouldKeepAspectRatio","_isCornerHandler","proportionalDelta","fittedProportionalDelta","roundedFittedDelta","_roundByStep","_updatePosition","_getOffset","_updateDimensions","_triggerResizeAction","isAbsoluteSize","isStepPrecisionStrict","elementStyle","shouldRenderWidth","shouldRenderHeight","xor","_roundStrict","_roundNotStrict","_getSteps","steps","xPos","yPos","newXShift","newYShift","separatorOffset","isSmallOffset","newOffsetX","newOffsetY","roundedOffset_x","roundedOffset_y","hasCornerTopLeftClass","hasCornerTopRightClass","hasCornerBottomLeftClass","hasCornerBottomRightClass","_getAreaFromObject","_getAreaFromElement","areaElement","_correctAreaGeometry","$area","areaBorderLeft","areaBorderTop","_renderWidth","_renderHeight","PopupPositionController","forceApplyBindings","dragOutsideBoundary","_$dragResizeContainer","_outsideDragFactor","_lastPositionBeforeFullScreen","_updateDragResizeContainer","_updateOutsideDragFactor","_fullScreenEnabled","_fullScreenDisabled","resizeHandled","_this$_props$forceApp","_this$_props","_getOutsideDragFactor","_getDragResizeContainer","isContainerDefined","POPUP_CLASS","POPUP_WRAPPER_CLASS","POPUP_FULL_SCREEN_CLASS","POPUP_FULL_SCREEN_WIDTH_CLASS","POPUP_NORMAL_CLASS","POPUP_CONTENT_CLASS","POPUP_DRAGGABLE_CLASS","POPUP_TITLE_CLASS","POPUP_TITLE_CLOSEBUTTON_CLASS","POPUP_BOTTOM_CLASS","POPUP_HAS_CLOSE_BUTTON_CLASS","POPUP_CONTENT_FLEX_HEIGHT_CLASS","POPUP_CONTENT_INHERIT_HEIGHT_CLASS","ALLOWED_TOOLBAR_ITEM_ALIASES","BUTTON_DEFAULT_TYPE","BUTTON_NORMAL_TYPE","BUTTON_TEXT_MODE","BUTTON_CONTAINED_MODE","IS_OLD_SAFARI","HEIGHT_STRATEGIES","static","flex","getButtonPlace","Popup","_this$_drag","_drag","_this$_drag2","_this$_drag3","_this$_drag4","titleTemplate","onTitleRendered","bottomTemplate","useDefaultToolbarButtons","useFlatToolbarButtons","autoResizeEnabled","_iosAnimation","_androidAnimation","popupWrapperClassExternal","popupWrapperClasses","_updateResizeCallbackSkipCondition","isFullscreen","_toggleFullScreenClass","_contentResizeHandler","_shouldSkipContentResize","shouldOnlyReposition","_doesShowAnimationChangeDimensions","_animation$show","doesShowAnimationChangeDimensions","_areContentDimensionsRendered","_observeContentResize","shouldObserve","_entry$contentBoxSize","_this$_renderedDimens3","_this$_renderedDimens4","_this$_renderedDimens","_this$_renderedDimens2","contentBox","contentBoxSize","inlineSize","_renderedDimensions","blockSize","contentRect","_renderResize","_renderBottom","titleText","_$title","$title","_renderTemplateByType","_renderDrag","_executeTitleRenderAction","_hasCloseButton","additionalToolbarOptions","toolbarTemplate","useDefaultButtons","useFlatButtons","$titleElement","_getTitleRenderAction","titleElement","_titleRenderAction","_createTitleRenderAction","_getCloseButton","_getCloseButtonRenderer","_createToolbarItemAction","toolbarsItems","_toolbarItemClasses","currentPlatform","isShortcut","_getToolbarItemByAlias","isLTROrder","_getLocalizationKey","itemConfig","itemClass","$toolbarItem","_$bottom","$bottom","compactMode","_toggleClasses","aliases","_getDragTarget","topToolbar","useResizeObserver","isAnimated","shouldRepeatAnimation","isDimensionChange","_cacheDimensions","_resetContentHeight","$dragTarget","_resizable","_resizeEndHandler","overlayContent","currentHeightStrategyClass","_chooseHeightStrategy","_getHeightCssStyles","_setHeightClasses","_heightStrategyChangeOffset","popupVerticalPaddings","isAutoWidth","_isAutoHeight","contentMaxHeight","contentMinHeight","popupHeightParts","_splitPopupHeight","toolbarsAndVerticalOffsetsHeight","footer","contentVerticalOffsets","popupVerticalOffsets","overlayHeight","maxHeightValue","minHeightValue","currentClass","excessClasses","_renderFullscreenWidthClass","refreshPosition","_this$_resizable2","_this$_resizable","shouldRenderGeometry","SCROLLVIEW_PULLDOWN_REFRESHING_CLASS","SCROLLVIEW_PULLDOWN_READY_CLASS","SCROLLVIEW_PULLDOWN_IMAGE_CLASS","SCROLLVIEW_PULLDOWN_INDICATOR_CLASS","SCROLLVIEW_PULLDOWN_TEXT_CLASS","SCROLLVIEW_PULLDOWN_VISIBLE_TEXT_CLASS","STATE_RELEASED","STATE_READY","STATE_REFRESHING","STATE_LOADING","PULLDOWN_RELEASE_TIME","PullDownNativeScrollViewStrategy","_$topPocket","_$pullDown","_$refreshingText","_$scrollViewContent","_initCallbacks","pullDownCallbacks","releaseCallbacks","reachBottomCallbacks","_renderPullDown","_releaseState","$image","$loadContainer","$loadIndicator","_$pullDownText","_$pullingDownText","_$pulledDownText","_refreshPullDownText","pullDownTextItems","visibleState","_setTopPocketOffset","_topPocketSize","contentEl","containerEl","_bottomBoundary","_allowedDirections","allowedDirections","_pullDownEnabled","handleEnd","_complete","handleStop","_setPullDownOffset","_pullDownRefreshTimeout","_pullDownRefreshing","handleScroll","currentLocation","scrollDelta","_location","_isPullDown","_pullDownReady","_isReachBottom","_reachBottom","_stateReleased","_reachBottomEnabled","pullDownEnable","reachBottomEnable","pendingRelease","_releaseTimeout","_updateAction","SCROLLVIEW_PULLDOWN_DOWN_LOADING_CLASS","PULLDOWN_ICON_CLASS","STATE_TOUCHED","STATE_PULLED","SwipeDownNativeScrollViewStrategy","_releasePullDown","handleInit","_startClientY","_deltaY","_movePullDown","pullDownHeight","_getPullDownHeight","_getPullDownStartPosition","_pullDownRefreshHandler","_refreshPullDown","math","ScrollViewScroller","_bottomPocketSize","_updateBounds","considerPockets","_direction","_$bottomPocket","_updateScrollbar","_scrollbar","containerSize","_containerSize","scaleRatio","_getScaleRatio","_moveContent","_reachBottomReady","_moveScrollbar","moveTo","_scrollComplete","_inBounds","_reachBottomLoading","_minOffset","_getMinOffset","_getMaxOffset","_maxOffset","_releaseHandler","_moveToBounds","_releaseTask","_release","_reachBottomEnablingHandler","_pullDownEnablingHandler","_considerTopPocketChange","_updateHandler","_pendingReleaseHandler","SimulatedScrollViewStrategy","_createScroller","scroller","_scrollers","_scrollerOptions","$topPocket","$bottomPocket","$pullDown","$pullDownText","$pullingDownText","$pulledDownText","$refreshingText","SCROLLVIEW_CLASS","SCROLLVIEW_CONTENT_CLASS","SCROLLVIEW_TOP_POCKET_CLASS","SCROLLVIEW_BOTTOM_POCKET_CLASS","SCROLLVIEW_PULLDOWN_CLASS","SCROLLVIEW_REACHBOTTOM_CLASS","SCROLLVIEW_REACHBOTTOM_INDICATOR_CLASS","SCROLLVIEW_REACHBOTTOM_TEXT_CLASS","SCROLLVIEW_LOADPANEL","refreshStrategies","pullDown","swipeDown","simulated","isServerSide","scrollViewServerConfig","ScrollView","refreshStrategy","_loadingIndicatorEnabled","_initScrollableMarkup","_initContent","_initTopPocket","_initBottomPocket","_initLoadPanel","$reachBottom","_$reachBottom","_$reachBottomText","_updateReachBottomText","$loadPanelElement","_createStrategy","strategyClass","_reachBottomHandler","_createActions","_pullDownAction","_reachBottomAction","_tryRefreshPocketState","_pullDownEnable","_reachBottomEnable","_loadingIndicator","_pullDownLoading","preventReachBottom","showOrHide","_lock","_unlock","Animator","_stopped","_proxiedStepCore","_stepCore","_stepAnimationFrame","_isStopped","_isFinished","_step","inProgress","deviceDependentOptions","SCROLLABLE_NATIVE","SCROLLABLE_NATIVE_CLASS","SCROLLABLE_SCROLLBAR_SIMULATED","SCROLLABLE_SCROLLBARS_HIDDEN","VERTICAL","HORIZONTAL","HIDE_SCROLLBAR_TIMEOUT","_useSimulatedScrollbar","_isLocked","_isDirection","_allowedDirection","_isRtlNativeStrategy","_isScrollbarVisible","_renderScrollbars","updateRtlPosition","_moveScrollbars","_scrollbars","_hideScrollbarTimeout","_renderScrollbar","expandable","handleStart","handleCancel","_eachScrollbar","scrollbar","createActions","_createActionArgs","_eventForUserAction","_getScrollOffset","reachedLeft","_isReachedRight","_isReachedLeft","reachedRight","reachedTop","_normalizeOffsetLeft","_hideScrollbars","disabledChanged","_updateScrollbars","_componentContentSize","scrollableNativeRegexp","_removeScrollbars","_isScrolledInMaxDirection","getElementLocationInternal","containerElement","additionalOffset","inverseProp","containerOffsetSize","containerClientSize","relativeElementOffset","containerScrollOffset","relativeStartOffset","relativeEndOffset","SCROLLABLE","SCROLLABLE_STRATEGY","SCROLLABLE_CLASS","SCROLLABLE_DISABLED_CLASS","SCROLLABLE_CONTAINER_CLASS","SCROLLABLE_WRAPPER_CLASS","BOTH","Scrollable","onBounce","inertiaEnabled","updateManually","_setUseSimulatedScrollbar","_updateRtlPosition","_savedScrollOffset","_renderDirection","_renderStrategy","_renderDisabledState","needInitializeRtlConfig","initEventData","_initHandler","_updateIfNeed","_resetInactiveDirection","inactiveProp","_getInactiveProp","_normalizeLocation","_updateAllowedDirection","_allowedDirectionValue","_applyScaleRatio","elementInsideContent","elementIsInsideContent","hoveredScrollable","activeScrollable","SCROLLABLE_SIMULATED","SCROLLABLE_SIMULATED_CURSOR","SCROLLABLE_SIMULATED_KEYBOARD","SCROLLABLE_SCROLLBARS_ALWAYSVISIBLE","SCROLLABLE_SCROLLBAR_CLASS","ACCELERATION","OUT_BOUNDS_ACCELERATION","MIN_VELOCITY_LIMIT","SCROLL_LINE_HEIGHT","VALIDATE_WHEEL_TIMEOUT","BOUNCE_MIN_VELOCITY_LIMIT","BOUNCE_DURATION","BOUNCE_FRAMES","BOUNCE_ACCELERATION_SUM","KEY_CODES","PAGE_UP","PAGE_DOWN","END","HOME","LEFT","UP","RIGHT","DOWN","TAB","InertiaAnimator","VELOCITY_LIMIT","_velocity","_scrollStep","_acceleration","BounceAnimator","_crossBoundOnNextStep","_bounceLocation","Scroller","_initAnimators","_initScrollbar","_topReached","_bottomReached","_axis","_prop","_dimension","_scrollProp","_inertiaAnimator","_bounceAnimator","_scrollByThumb","visibilityMode","_visibilityModeNormalize","_scrollbarVisible","_$scrollbar","prevLocation","_suppressBounce","_bounceEnabled","_boundLocation","_moveContentByTranslator","_scaleRatio","realDimension","_getRealDimension","baseDimension","_getBaseDimension","dimensionName","translateOffset","_maxScrollPropValue","_translateOffset","_hideScrollbar","_completeDeferred","_scrollToBounds","_bounceAction","_setupBounce","boundLocation","bounceDistance","nextLocation","_stopScrolling","_prepareThumbScrolling","scrollbarClicked","_isScrollbar","_moveToMouseLocation","_thumbScrolling","_isThumb","_crossThumbScrolling","_isAnyThumbScrolling","feedbackOn","_isThumbScrollingHandler","mouseLocation","_containerToContentRatio","_startHandler","_showScrollbar","_moveHandler","_scrollByHandler","containerToContentRatio","_endHandler","_inertiaHandler","_resetThumbScrolling","_suppressInertia","_inertiaEnabled","_stopHandler","_disposeHandler","_resetScaleRatio","_updateLocation","baseContainerSize","baseContentSize","locationChanged","_createActionsHandler","bounce","isOverflowHidden","containerScrollSize","_validateEvent","isThumb","_reachedMin","_reachedMax","_cursorEnterHandler","cursorEnter","_cursorLeaveHandler","cursorLeave","SimulatedStrategy","_createScrollers","_attachKeyboardHandler","_attachCursorHandlers","scrollbarVisible","isAnyThumbScrolling","_getPropByDirection","isThumbScrollingVertical","isThumbScrollingHorizontal","_suppressDirections","_eachScroller","_isContent","_validDirections","_startAction","_saveActive","_resetActive","_adjustDistance","_tryGetDevicePixelRatio","_refreshCursorState","_endAction","_updateRtlConfig","_updateHandlerTimeout","_scrollByLine","_scrollByPage","_scrollToHome","_scrollToEnd","page","_wheelProp","_dimensionByProp","_createActionHandler","_createScrollerActions","actionHandler","scrollerX","scrollerY","_scrollOffset","_isHoverMode","_hoverHandled","$scrollable","targetScrollable","touchDirection","verticalScroller","horizontalScroller","_isHorizontalAndRtlEnabled","_rtlConfig","windowPixelRatio","_getWindowDevicePixelRatio","skipUpdating","_validateWheel","_wheelDirection","reachedMin","reachedMax","contentGreaterThanContainer","locatedNotAtBound","scrollFromMin","scrollFromMax","_validateWheelTimer","SCROLLBAR","SCROLLABLE_SCROLLBAR_ACTIVE_CLASS","SCROLLABLE_SCROLL_CLASS","SCROLLABLE_SCROLL_CONTENT_CLASS","HOVER_ENABLED_STATE","THUMB_MIN_SIZE","SCROLLBAR_VISIBLE","onHover","never","activeScrollbar","Scrollbar","_isHovered","_renderThumb","_attachPointerDownHandler","_$thumb","feedbackOff","_needScrollbar","_adjustVisibility","_baseContainerToContentRatio","scrollBarLocation","_calculateScrollBarPosition","_thumbRatio","_realContainerToContentRatio","thumbSize","_normalizeSize","DROPDOWNLIST_POPUP_WRAPPER_CLASS","SEARCH_EVENT","SEARCH_MODES","useCompositionEvents","DropDownList","_allowSelectItemByTab","_setSelectedElement","_setValue","minSearchLength","valueChangeEvent","showDataBeforeSearch","_setListDataSource","_validateSearchMode","_clearSelectedItem","_initItems","_setListFocusedElementOptionChange","_updateActiveDescendant","_initContentReadyAction","_initSelectionChangedAction","_initItemClickAction","_saveFocusOnWidget","_fitIntoRange","availableItems","_calcNextItem","_getSelectedIndex","_updateCustomBoundaryContainer","_popupWrapperClass","customContainer","$containerWithParents","overflowY","_$customBoundaryContainer","_loadInputValue","_setSelectedItem","_loadItem","_getItemFromPlain","itemByValue","_this$_list","listFocusedItemId","isElementOnDom","activedescendant","_displayValue","_refreshSelected","_listItemElements","itemValue","_isSelectedValue","_setFocusPolicy","normalizedSearchMode","_processDataSourceChanging","_isCustomValueAllowed","_clearFilter","_$list","_getMaxHeight","_renderList","canListHaveFocus","_canListHaveFocus","_setAriaTargetForList","_listId","$list","_listConfig","_refreshList","_renderPreventBlurOnListClick","_shouldRefreshDataSource","dataSourceProvided","_needPassDataSourceToList","_templates","templateProvider","_listContentReadyHandler","_listItemClickAction","_getDataSource","dxList","_isMinSearchLengthExceeded","_needClearFilter","_canKeepDataSource","isMinSearchLengthExceeded","_isLastMinSearchLengthExceeded","_getSearchEvent","_getCompositionStartEvent","_getCompositionEndEvent","_getSetFocusPolicyEvent","_shouldRenderSearchEvent","_searchHandler","_isTextCompositionInProgress","_isTextComposition","_clearSearchTimer","_searchTimer","_searchDataSource","_searchCanceled","_filterDataSource","_dataSourceFiltered","_refreshPopupVisibility","_shouldOpenPopup","_hasItemsToShow","shouldOpenPopup","resultAmount","_updatePopupDimensions","_needPopupRepaint","$customBoundaryContainer","_shouldUseDisplayValue","DISABLED_STATE_SELECTOR","SELECTBOX_CLASS","SELECTBOX_POPUP_CLASS","SELECTBOX_CONTAINER_CLASS","SELECTBOX_POPUP_WRAPPER_CLASS","clearSelectBox","_valueSubstituted","_preventFiltering","_savedTextRemoveEvent","_preventSubstitution","searchIfNeeded","_cancelSearchIfNeed","_setNextValue","_cancelEditing","isOpened","inputText","isCustomText","customItemCreateEvent","onCustomItemCreating","customItem","allowClearing","tooltipEnabled","displayCustomValue","_initCustomItemCreatingAction","_renderTooltip","_focusListElement","_focusSelectedElement","_items$indexOf","$listItems","_isCustomItemSelected","_renderFocusedElement","_preventInputValueRender","isPaginate","_renderInputValueAsync","_renderInputValueImpl","_setNextItem","dataSourceIsLoaded","hasPages","isLastItem","isUnknownItem","_getSelectionChangeHandler","_listFocusedItemChangeHandler","focusedItem","_selectionChangeHandler","addedItem","_getActualSearchValue","_shouldClearFilter","_restoreInputText","_wasSearch","showDataImmediately","_isValueEqualInputText","initialSelectedItem","_shouldCancelSearch","saveEditingValue","_isValueChanging","_createCustomItem","_clearTextValue","newSelectedItem","_valueChangeEventIncludesBlur","_getValueChangeEventOptionName","_isPreventedFocusOutEvent","isOverlayTarget","_isOverlayNestedTarget","shouldCancelSearch","isPopupVisible","_shouldCancelSearchValue","$listFocused","_shouldCloseOnItemClick","_completeSelection","selectedItemText","_customItemAddedHandler","_customItemCreatingAction","_setCustomItem","_wasSearchValue","_renderInputSubstitution","currentSearchLength","inputHasSelection","isLastSymbolSelected","_shouldSubstitutionBeRendered","_refreshFocusEvent","_setOption","_clearItemKeys","getSelectableItems","_removeTemplateProperty","remoteFilter","_loadFilteredData","localFilter","filterLength","needLoadAllData","filteredItems","updateSelectedItemKeyHash","keyHashIndices","keyIndices","_isAnyItemSelected","_getFullSelectAllState","dataFilter","selectedItemsLength","disabledItemsLength","_getVisibleSelectAllState","hasSelectedItems","hasUnselectedItems","isItemKeySelected","needResetSelectionFilter","_addSelectionFilter","removeSelectedItem","addSelectedItem","setSelectedItems","isItemDataSelected","_getKeyExpr","keyField","_normalizeKey","_getFilterByKey","_findSubFilter","filterString","subFilter","_isLastSubFilter","_addFilterOperator","filterOperator","_denormalizeFilter","_isOnlyNegativeFiltersLeft","needAddFilter","removedIndex","_removeSameFilter","filterIndex","shouldCleanFilter","isKeyOperatorsAfterRemoved","_isKeyFilter","_hasKeyFiltersOnlyStartingFromIndex","_normalizeFilter","_removeFilterByIndex","_isSimpleKeyFilter","inverted","_filterIndex","_initSelectedItemKeyHash","_preserveSelectionUpdate","keyIndicesToRemoveMap","isBatchDeselect","_batchRemoveSelectedItems","_loadSelectedItemsCore","selectionFilterCreator","deselectedItems","_replaceSelectionUpdate","internalKeys","_warnOnIncorrectKeys","_isMultiSelectEnabled","_requestInProgress","_this$_lastLoadDeferr","_lastLoadDeferred","_concatRequestsItems","oldRequestItems","updatedKeys","_collectLastRequestData","isDeselectAll","multiSelectEnabled","lastRequestData","_lastRequestData","_shouldMergeWithLastRequest","_updateKeysByLastRequestData","_this$_lastRequestDat","_this$_lastRequestDat2","currentKeys","_loadSelectedItems","disabledItemKeys","_getKeyHash","_indexOfSelectedItemKey","_getSelectedIndexByKey","ignoreIndicesMap","_getSelectedIndexByHash","_shiftSelectedKeyIndices","currentKeyIndex","currentKey","currentKeyHash","currentKeyIndices","_updateAddedItemKeys","_updateRemovedItemKeys","oldSelectedKeys","oldSelectedItems","_isItemSelectionInProgress","shouldCheckPending","_this$_lastRequestDat3","visibleOnly","_selectionStrategy","filterIsChanged","_keys","_addSelectedItem","_removeSelectedItem","_setSelectedItems","_this$options$allowLo","_this$options","isSelectedItemsChanged","indexOffset","focusedItemNotInLoadedRange","shiftFocusedItemNotInLoadedRange","itemIsNotInLoadedRange","_shiftFocusedItemIndex","isSelectable","changeItemSelectionWhenShiftKeyInVirtualPaging","changeItemSelectionWhenShiftKeyPressed","_resetItemSelectionWhenShiftKeyPressed","clearSelectedItems","_resetFocusedItemIndex","itemIndexStep","indexOffsetDefined","focusedData","focusedKey","isFocusedItemSelected","isOnePage","_onePageSelectAll","FOCUS_DISABLED_CLASS","GRID_ROW_SELECTOR","GRID_CELL_SELECTOR","TREELIST_ROW_SELECTOR","TREELIST_CELL_SELECTOR","viewItemSelectorMap","columnHeaders","isMouseDown","isHiddenFocusing","focusedElementInfo","processKeyDown","$mainElement","executeKeyDown","fireKeyDownEvent","saveFocusedElementInfo","selectView","ariaLabel","$activeElements","getActiveAccessibleElements","viewInstance","$viewElement","findFocusedViewElement","viewSelectors","onDocumentVisibilityChange","subscribeVisibilityChange","unsubscribeVisibilityChange","hiddenFocus","getMainElement","keyDownHandler","mouseDownHandler","focusinHandler","needShowOverlay","viewNames","viewItemIndex","_viewName","setTabIndex","DEFAULT_DATE_INTERVAL","DEFAULT_DATETIME_INTERVAL","dateIntervals","getFilterSelector","getFilterExpressionByRange","endFilterValue","startFilterExpression","endFilterExpression","getFilterExpressionForDate","dateStart","dateEnd","getFilterExpressionForNumber","startFilterValue","isSearchByDisplayValue","isCorrectStructure","hasTwoFields","hasCorrectFields","hasSimpleItems","innerItem","CHECKBOX_SIZE_CLASS","EditorFactoryMixin","getResultConfig","checkEnterBug","getTextEditorConfig","isEnterBug","needDelayedUpdate","isInputOrKeyUpEvent","updateValue","valueChangeTimeout","prepareBooleanEditor","prepareSelectBox","editorName","displayGetter","selectBox","stopWatch","showClearButton","editorElement","isSearching","showValidationMark","dxDateBox","defaultEnterKeyHandler","dxTextArea","targetDraggable","sourceDraggable","DRAGGABLE","DRAG_EVENT_NAME","DRAGEND_EVENT_NAME","DRAG_ENTER_EVENT_NAME","DRAGEND_LEAVE_EVENT_NAME","POINTERDOWN_EVENT_NAME","CLONE_CLASS","getMousePosition","GESTURE_COVER_CLASS","ScrollHelper","_preventScroll","_scrollValue","_overFlowAttr","_sizeAttr","_scrollSizeProp","_clientSizeProp","_limitProps","updateScrollable","mousePosition","isScrollableFound","isTargetOverOverlayWrapper","isTargetOverOverlayContent","_trySetScrollable","_$scrollableAtPointer","_scrollSpeed","isScrollable","distanceToBorders","sensitivity","_calculateDistanceToBorders","_calculateScrollSpeed","areaBoundingRect","maxSpeed","scrollByStep","nextScrollPosition","_nextScrollPosition","dragMoveArgs","_dragMoveArgs","_dragMoveHandler","isOutsideScrollable","scrollableSize","ScrollAnimator","horizontalScrollHelper","_horizontalScrollHelper","verticalScrollHelper","_verticalScrollHelper","Draggable","dragMove","dragEnter","dragLeave","dragEnd","sourceEvent","_getSourceDraggable","_fireRemoveEvent","onDragMove","onDrop","dragDirection","boundOffset","allowMoveByClick","autoScroll","scrollSpeed","scrollSensitivity","_scrollAnimator","_normalizeCursorOffset","_getNormalizedCursorOffset","_calculateElementOffset","dragElementOffset","isCloned","_dragElementIsCloned","normalizedCursorOffset","currentLocate","_initialLocate","initialOffset","_initPosition","_startPosition","_startAnimator","_stopAnimator","_getItemsSelector","itemsSelector","targetGroup","sourceGroup","_getScrollable","_dragEnterHandler","_dragLeaveHandler","_$dragElement","_getDragTemplateArgs","_createDragElement","_getContainer","_resetDragElement","_toggleDraggingClass","_resetSourceElement","_toggleDragSourceClass","_$sourceElement","_getDraggableElement","$sourceElement","_getSourceElement","draggable","_getAction","_getEventArgs","_isValidElement","dragStartArgs","_getDragStartArgs","_setSourceDraggable","_setGestureCoverCursor","isFixedPosition","_getAreaOffset","_getBoundOffset","areaWidth","areaHeight","elementHeight","startOffset_left","startOffset_top","startPosition","_getTargetDraggable","allObjects","fromComponent","toComponent","fromData","toData","_revertItemToInitialPosition","dragEndEventArgs","dropEventArgs","needRevertPosition","_resetTargetDraggable","_resetSourceDraggable","_isTargetOverAnotherDraggable","$sourceDraggableElement","$targetDraggableElement","firstWidgetElement","isTargetOverItself","isTargetOverNestedDraggable","_fireDragEnterEvent","_setTargetDraggable","_fireDragLeaveEvent","SORTABLE","PLACEHOLDER_CLASS","_config$to","_config$to2","stopAnimation","getScrollableBoundary","Sortable","_sourceScrollHandler","_handleSourceScroll","_sourceScrollableInfo","itemOrientation","moveItemOnDrop","onDragChange","onRemove","onReorder","onPlaceholderPrepared","dropInsideItem","itemPoints","fromIndexOffset","autoUpdate","draggableElementSize","_$placeholderElement","_isIndicateMode","_$modifiedItem","_modifiedItemMargin","_getPrevVisibleItem","_updateItemPoints","_subscribeToSourceScroll","_getElementIndex","_unsubscribeFromSourceScroll","sourceScrollableInfo","scrollProp","_correctItemPoints","_movePlaceholder","lastItemPoint","_isVerticalOrientation","sourceElementSize","scrollSize","lastPointPosition","freeSize","_getItems","$lastItem","$sortable","_allowDrop","$targetDraggable","itemPoint","cancelAdd","cancelRemove","isSourceDraggable","_fireAddEvent","_moveItem","_fireReorderEvent","cursorPosition","_updatePlaceholderPosition","_createPlaceholder","$placeholderContainer","_isValidPoint","draggableVisibleIndex","_getItemPoints","itemWidth","visibleItemElements","visibleItemCount","$draggableItem","needCorrectLeftPosition","needCorrectTopPosition","points","forceUpdate","positionPropName","_togglePlaceholder","_normalizeToIndex","isAnotherDraggable","placeholderElement","_makeWidthCorrection","_$scrollable","scrollableWidth","overflowLeft","overflowRight","_updatePlaceholderSizes","$placeholderElement","$prevTargetItemElement","$targetItemElement","_moveItemCore","$targetItem","prevItem","isDragSource","$fromElement","_optionChangedDropInsideItem","_optionChangedToIndex","_isPositionVisible","scrollContainer","showPlaceholder","_moveItems","_updateDragSourceClass","_getActualFromIndex","_makeLeftCorrection","prevVisibleItemElement","_getPositions","positions","_getDraggableElementSize","prevToIndex","prevPositions","animationConfig","_translator","completeAction","MULTIVIEW_CLASS","MULTIVIEW_WRAPPER_CLASS","MULTIVIEW_ITEM_CONTAINER_CLASS","MULTIVIEW_ITEM_CLASS","MULTIVIEW_ITEM_HIDDEN_CLASS","MULTIVIEW_ITEM_DATA_KEY","MULTIVIEW_ANIMATION_DURATION","MultiView","swipeEnabled","_$itemContainer","_itemWidth","_itemWidthValue","_clearItemWidthCache","_normalizeIndex","_getRTLSignCorrection","_initSwipeable","_deferredItems","selectedItemIndices","_updateItemsVisibility","renderContentDeferred","_updateItemsPosition","positionSign","_animationDirection","_renderSpecificItem","hasItemContent","animationDirection","_animateItemContainer","indexDifference","_getItemFocusLoopSignCorrection","isSwipePresent","directionSignVariable","_getSwipeDisabledState","_swipeDirection","swipeDirection","$selectedElement","_itemFocusLooped","_updateSwipeDisabledState","TABS_ITEM_BADGE_CLASS","TabsItem","TABS_EXPANDED_CLASS","getScrollLeftMax","isReachedLeft","scrollOffsetLeft","epsilon","isReachedRight","TABS_CLASS","TABS_WRAPPER_CLASS","TABS_STRETCHED_CLASS","TABS_SCROLLABLE_CLASS","TABS_NAV_BUTTONS_CLASS","OVERFLOW_HIDDEN_CLASS","TABS_ITEM_CLASS","TABS_ITEM_SELECTED_CLASS","TABS_NAV_BUTTON_CLASS","TABS_LEFT_NAV_BUTTON_CLASS","TABS_RIGHT_NAV_BUTTON_CLASS","TABS_ITEM_TEXT_CLASS","TABS_ITEM_DATA_KEY","BUTTON_NEXT_ICON","BUTTON_PREV_ICON","FEEDBACK_HIDE_TIMEOUT","FEEDBACK_DURATION_INTERVAL","FEEDBACK_SCROLL_TIMEOUT","TAB_OFFSET","Tabs","showNavButtons","_renderMultiple","$iconElement","_deferredTemplates","_deferRenderScrolling","_renderScrolling","removeClasses","_isItemsWidthExceeded","_renderNavButtons","_updateNavButtonsVisibility","_scrollToItem","_cleanScrolling","_needStretchItems","tabItemsWidth","$visibleItems","itemsWidth","maxTabWidth","_cleanNavButtons","_leftButton","_rightButton","_createNavButton","$leftButton","$rightButton","_updateScrollPosition","holdAction","_holdInterval","holdEventName","pointerUpEventName","pointerOutEventName","navButton","$navButton","_clearInterval","TabPanelItem","TABPANEL_CLASS","TABPANEL_TABS_CLASS","TABPANEL_CONTAINER_CLASS","TabPanel","itemTitleTemplate","onTitleClick","onTitleHold","_createTitleActions","_createTitleClickAction","_createTitleHoldAction","_createTitleRenderedAction","_titleClickAction","_titleHoldAction","_titleRenderedAction","_updateLayout","_tabs","_$tabContainer","$tabs","_tabConfig","tabsHeight","tabItems","$activeTab","$value","_isFocusOutHandlerExecuting","_setTabsOption","selectedTabContent","ignoreKeys","TEXTBOX_CLASS","SEARCHBOX_CLASS","SEARCH_ICON_CLASS","TextBox","_showClearButton","_renderSearchMode","_toggleMaxLengthProp","_getMaxLength","_renderSearchIcon","_$searchIcon","$searchIcon","_getLabelContainerWidth","$inputContainer","_getLabelBeforeWidth","labelBeforeWidth","_updateLabelWidth","_onKeyDownCutOffHandler","actualMaxLength","_hasSelection","_cutOffExtraChar","_onChangeCutOffHandler","textInput","isMaskSpecified","TextEditorButton","$placeMarker","_addPlaceMarker","_isRendered","_isDisabled","_shouldRender","isModernAndroidDevice","isInputEventsL2Supported","EMPTY_CHAR","BaseMaskRule","_next","_prepareHandlingArgs","_config$str","_config$start","_config$length","handlingProperty","isAccepted","isForwardDirection","_adjustedForward","_adjustedBackward","EmptyMaskRule","MaskRule","maskChar","rest","_tryAcceptChar","_accepted","_isAllowed","acceptedChar","fullText","_isAccepted","_isValid","allowedChars","StubMaskRule","hasValueProperty","nextArgs","pointerDown","STATE_INVISIBLE_CLASS","TEXTEDITOR_CLEAR_BUTTON_CLASS","TEXTEDITOR_CLEAR_ICON_CLASS","TEXTEDITOR_ICON_CLASS","TEXTEDITOR_SHOW_CLEAR_BUTTON_CLASS","ClearButton","rendered","CUSTOM_BUTTON_HOVERED_CLASS","CustomButton","ignoreParentReadOnly","_prepareIntegrationOptions","isUpdated","isDefinedByUser","TEXTEDITOR_BUTTONS_CONTAINER_CLASS","checkButtonInfo","buttonInfo","checkNamesUniqueness","existingNames","isPredefinedButtonName","predefinedButtonsInfo","TextEditorButtonCollection","defaultButtonsInfo","_compileButtonInfo","isStringButton","isDefaultButton","defaultButtonInfo","buttonsInfo","clean","renderAfterButtons","renderBeforeButtons","updateButtons","TEXTEDITOR_LABEL_CLASS","TEXTEDITOR_WITH_LABEL_CLASS","TEXTEDITOR_WITH_FLOATING_LABEL_CLASS","TEXTEDITOR_WITH_BEFORE_BUTTONS_CLASS","LABEL_BEFORE_CLASS","LABEL_CLASS","LABEL_AFTER_CLASS","TextEditorLabel","containsButtonsBefore","beforeWidth","_id","_toggleMarkupVisibility","_$before","_$labelSpan","_$label","_$after","_updateMark","_updateText","_updateBeforeWidth","_updateMaxWidth","_updateEditorBeforeButtonsClass","_updateEditorLabelClass","labelClass","beforeButtonsClass","getId","updateMode","updateText","updateMark","updateContainsButtonsBefore","updateBeforeWidth","TEXTEDITOR_CLASS","TEXTEDITOR_INPUT_CONTAINER_CLASS","TEXTEDITOR_INPUT_CLASS","TEXTEDITOR_INPUT_SELECTOR","TEXTEDITOR_CONTAINER_CLASS","TEXTEDITOR_PLACEHOLDER_CLASS","TEXTEDITOR_EMPTY_INPUT_CLASS","TEXTEDITOR_PENDING_INDICATOR_CLASS","TEXTEDITOR_VALIDATION_PENDING_CLASS","TEXTEDITOR_VALID_CLASS","EVENTS_LIST","CONTROL_KEYS","TextEditorLabelCreator","checkButtonsOptionType","TextEditorBase","_buttonCollection","_labelContainerElement","spellcheck","onKeyUp","onInput","onCut","onCopy","onPaste","onEnterKey","_buttonsContainer","_isControlKey","_updateButtonsStyling","_renderLabel","_renderEnterKeyAction","_$textEditorContainer","_$textEditorInputContainer","_createInput","_getInputContainer","_renderPendingIndicator","_pendingIndicator","_disposePendingIndicator","_showValidMark","_cleanButtonContainers","_unobserveLabelContainerResize","_applyInputAttributes","inputAttrName","customAttributes","inputAttributes","defaultAttributes","renderInputPromise","_toggleEmptiness","_toggleSpellcheckState","_toggleTabIndex","_getLabelContainer","buttonsBeforeWidth","_setLabelContainerAria","labelConfig","_renderPlaceholderMarkup","_attachPlaceholderEvents","_$placeholder","placeholderText","startEvent","_placeholder","isCtrlEnter","isNewValue","_renderValueEventName","_cleanValueChangeEvent","valueChangeNamespace","textChangeNamespace","_focusEventTarget","_isInput","shouldPrevent","_isNestedTarget","_focusClassTarget","_enterKeyAction","_enterKeyHandlerUp","BLUR_EVENT","BaseMaskStrategy","DIRECTION","editorOption","editorInput","editorCaret","handlerName","attachEvents","getHandleEventNames","subscriptionName","getEventHandler","_attachChangeEventHandlers","detachEvents","_suppressCaretChanging","_changeHandler","_showMaskPlaceholder","_isValueEmpty","_adjustCaret","_maskRulesChain","_cutHandler","selectedText","_maskKeyHandler","_dropHandler","_clearDragTimer","_dragTimer","_convertToValue","_keyPressHandled","_pasteHandler","pastedText","restText","accepted","_handleChain","_autoFillHandler","inputVal","_inputHandlerTimer","_isAutoFill","_validateMask","runWithoutEventProcessing","keyPressHandled","_backspaceHandler","_delHandler","_handleKey","_backspaceHandlerTimeout","BACKSPACE_INPUT_TYPE","DefaultMaskStrategy","_isControlKeyFired","_inputHandler","_backspaceInputHandled","_handleBackspaceInput","afterBackspaceHandler","needAdjustCaret","currentCaret","_displayMask","_tryMoveCaretBackward","DELETE_INPUT_TYPE","InputEventsMaskStrategy","_beforeInputHandler","_prevCaret","setBackwardDirection","_updateEditorMask","_getEmptyString","_this$_prevCaret","_this$_prevCaret2","_this$_prevCaret3","_length","setForwardDirection","hasValidChars","textLength","updatedCharsCount","correction","stubCaret","ESCAPED_CHAR","TEXTEDITOR_MASKED_CLASS","FORWARD_DIRECTION","BACKWARD_DIRECTION","buildInMaskRules","isLiteralChar","isSpaceChar","isNumericChar","TextEditorMask","mask","maskRules","maskInvalidMessage","useMaskedValue","showMaskMode","keyHandlerMap","_maskStrategy","parentHandler","_$hiddenElement","_initMaskStrategy","_renderHiddenElement","_attachMouseWheelEventHandlers","hasMouseWheelHandler","mouseWheelAction","_removeHiddenElement","_parseMask","_renderMaskedValue","_changedValue","changeEvent","_maskRules","_parseMaskRule","currentMaskChar","isEscapedChar","_getMaskRule","ruleConfig","rulePattern","_normalizeChainArguments","chainArgs","_isMaskedValueMode","textBefore","textAfter","edited","_shouldShowMask","submitElementValue","_getPreparedValue","handledCount","_textValue","_replaceMaskCharWithEmpty","keyHandler","_handleSelection","raiseInputEvent","_handleKeyChain","emptyChars","chars","caretStart","maskRuleIndex","_typingDirection","_updateHiddenElement","_updateMaskOption","_processEmptyMask","isFocusingOnCaretChange","getCaret","range","setCaret","$activeThemeLink","knownThemes","currentThemeName","pendingThemeName","themeClasses","themeReadyCallback","initDeferred","DX_LINK_SELECTOR","THEME_ATTR","ACTIVE_ATTR","DX_HAIRLINES_CLASS","ANY_THEME","defaultTimeout","THEME_MARKER_PREFIX","readThemeMarker","waitForThemeLoad","waitStartTime","intervalCleared","handleLoaded","isPendingThemeLoaded","isTimeout","anyThemePending","themeMarker","processMarkup","$allThemeLinks","fullThemeName","resolveFullThemeName","desiredThemeName","desiredThemeParts","knownThemeName","themeData","knownThemeParts","initContext","newContext","currentThemeData","isAutoInit","_autoInit","loadCallback","_forceTimeout","themeNameParts","pixelRatio","$tester","isTheme","themeRegExp","isCompact","isWebFontLoaded","testElement","etalonFontWidth","testedFontWidth","waitWebFont","intervalId","autoInit","TOOLBAR_ITEMS","getItemInstance","toggleItemFocusableElementTabIndex","_itemData$options","isItemNotFocusable","$widget","_itemInstance$_focusT","_itemData$options2","itemInstance","_$focusTarget","$focusTarget","TOOLBAR_LABEL_CLASS","MultiLineStrategy","_updateMenuVisibility","_renderMenuItems","_getMenuItems","_this$_toolbar$option","_getItemsWidth","_arrangeItems","_$toolbarItemsContainer","labelPaddings","_hideOverflowItems","TOOLBAR_MENU_ACTION_CLASS","TOOLBAR_HIDDEN_BUTTON_CLASS","TOOLBAR_HIDDEN_BUTTON_GROUP_CLASS","TOOLBAR_MENU_SECTION_CLASS","TOOLBAR_MENU_CUSTOM_CLASS","TOOLBAR_MENU_LAST_SECTION_CLASS","ToolbarMenuList","_renderSections","_getSections","section","sectionName","_updateSections","$sections","itemContainer","$after","_item$location","isAction","menuTemplate","DROP_DOWN_MENU_CLASS","DROP_DOWN_MENU_POPUP_CLASS","DROP_DOWN_MENU_POPUP_WRAPPER_CLASS","DROP_DOWN_MENU_LIST_CLASS","DROP_DOWN_MENU_BUTTON_CLASS","POPUP_BOUNDARY_VERTICAL_OFFSET","POPUP_VERTICAL_OFFSET","DropDownMenu","extension","_button","_initButtonClickAction","_buttonClickAction","_renderButton","_toggleMenuVisibility","_getListDataSource","_areaTarget","_this$_list2","_deferRendering","_this$_list3","_this$_list4","_this$_list5","_updateFocusableItemsTabIndex","TOOLBAR_DROP_DOWN_MENU_CONTAINER_CLASS","TOOLBAR_AUTO_HIDE_ITEM_CLASS","TOOLBAR_HIDDEN_ITEM","SingleLineStrategy","_renderOverflowMenu","_hasVisibleMenuItems","_renderMenuButtonContainer","_overflowMenuContainer","itemClickAction","_menu","renderMenuItems","_$overflowMenuContainer","_$afterSection","isMenuVisible","_isMenuItem","_this$_toolbar$option2","_this$_restoreItems","$hiddenItems","_restoreItems","overflowItems","$itemMarkup","overflowGetter","itemOverflow","_this$_restoreItems2","_$centerSection","_elementWidth","_$beforeSection","_this$_menu","_this$_menu2","_this$_menu3","_this$_menu4","_this$_menu5","_this$_menu6","TOOLBAR_MULTILINE_CLASS","TOOLBAR_AUTO_HIDE_TEXT_CLASS","Toolbar","menuContainer","overflowMenuVisible","_isMultiline","_layoutStrategy","_renderToolbar","_renderLayoutStrategy","_postProcessRenderItems","_isToolbarItem","TOOLBAR_CLASS","AsyncCollectionWidget","itemDeferred","_renderItemsAsync","TOOLBAR_BEFORE_CLASS","TOOLBAR_CENTER_CLASS","TOOLBAR_AFTER_CLASS","TOOLBAR_MINI_CLASS","TOOLBAR_ITEM_CLASS","TOOLBAR_ITEMS_CONTAINER_CLASS","TOOLBAR_GROUP_CLASS","TOOLBAR_COMPACT_CLASS","TEXT_BUTTON_MODE","DEFAULT_BUTTON_TYPE","DEFAULT_DROPDOWNBUTTON_STYLING_MODE","TOOLBAR_ITEM_DATA_KEY","ANIMATION_TIMEOUT","ToolbarBase","rawModel","_data$options","_data$options2","_data$options$styling","_data$options3","_data$options$type","menuItem","renderAs","_applyCompactMode","_updateDimensionsInMaterial","sectionClass","$section","beforeRect","afterRect","_alignCenterSection","labelOffset","widthBeforeSection","widthAfterSection","elemsAtSectionWidth","sectionMaxWidth","_alignSection","leftRect","rightRect","centerRect","marginRight","$labels","_getCurrentLabelsPaddings","currentWidth","_getCurrentLabelsWidth","_alignSectionLabels","expanding","getRealLabelWidth","currentLabelWidth","labelMaxWidth","possibleLabelWidth","_item$text","itemHasText","_renderGroupedItems","_group$location","_waitParentAnimationTimeout","readyToResolve","runCheck","TOOLTIP_CLASS","TOOLTIP_WRAPPER_CLASS","Tooltip","_contentId","_toggleAriaDescription","NODE_CLASS","NODE_CONTAINER_CLASS","NODE_LOAD_INDICATOR_CLASS","OPENED_NODE_CONTAINER_CLASS","IS_LEAF","ITEM_WITH_CHECKBOX_CLASS","ITEM_WITHOUT_CHECKBOX_CLASS","TOGGLE_ITEM_VISIBILITY_CLASS","LOAD_INDICATOR_CLASS","LOAD_INDICATOR_WRAPPER_CLASS","TOGGLE_ITEM_VISIBILITY_OPENED_CLASS","SELECT_ALL_ITEM_CLASS","EXPAND_EVENT_NAMESPACE","DATA_ITEM_ID","TreeViewBase","expandEventName","_getEventNameByOption","expandByClick","_expandEventHandler","checkboxInstance","_getCheckBoxInstance","currentState","_updateItemSelection","toggleExpandedNestedItems","_toggleExpandedNestedItems","_showCheckboxes","asterisk","_toggleExpandedState","_getNodeElement","_encodeString","$nodeByKey","expandAllEnabled","hasItemsExpr","expandNodesRecursive","scrollDirection","virtualModeEnabled","createChildren","_createSelectAllValueChangedAction","_selectAllValueChangedAction","_fireSelectAllValueChanged","_checkBoxModeChange","selectAllExists","_$selectAllItem","_renderSelectAllItem","_initExpandEvent","_useCustomChildrenLoader","_loadChildrenByCustomLoader","_initVirtualMode","internal","_isDataStructurePlain","invocationResult","_combineFilter","_initStoreChangeHandlers","_removeTreeViewLoadIndicator","_treeViewLoadIndicator","_createTreeViewLoadIndicator","_updateLevel","_parentIdGetter","removedKey","_markChildrenItemsToRemove","_removeItems","_getContainerByParentKey","_getOldContainer","_renderNodeContainer","_isRootLevel","_renderScrollableContainer","_isSingleSelection","_isRecursiveSelection","_selectAllEnabled","skipContentReadyAction","_expandedGetter","_getLevel","nodeIndex","nodeData","showCheckBox","_renderCheckBox","_toggleSelectedClass","_renderChildren","_renderToggleItemVisibilityIcon","_loadSublevel","_renderSublevel","_getActualNode","_addLeafClass","cachedNode","_hasItemsGetter","childrenNodes","_loadNestedItems","$nestedNodeContainer","childNodesByChildrenKeys","_updateParentsState","_normalizeIconState","expandedEventName","_getNodeByElement","_decodeString","_createLoadIndicator","_updateExpandedItemsUI","_renderToggleItemVisibilityIconClick","isHiddenNode","nodeContainerExists","completionCallback","_animateNodeContainer","_loadNestedItemsWithUpdate","actualNodeData","_areNodesExists","_appendItems","keyOfRootItem","fullData","nodeHeight","_fireExpandedStateUpdatedEvent","hasNewItems","_LoadIndicator$getIns","$toggleItem","_onSelectAllCheckboxValueChanged","_toggleSelectAll","_updateItemsUI","$checkbox","_changeCheckboxValue","_toggleNodeDisabledState","checkbox","_isLastSelectedBranch","selectedNodesKeys","_isLastRequired","isSingleMode","getSelectedNodeKeys","_fireItemSelectionChanged","needFireSelectAllChanged","nodeSelection","selectAllCheckbox","$parentNode","parentValue","_createEventHandler","pointerDownSelector","pointerDownEvent","_updateSelectionToFirstItem","_updateSelectionToLastItem","isSelectAllItem","_setFocusedItemTimeout","_findNonDisabledNodes","_nodeElements","$prevItem","prevItemElement","_getNodeItemElement","nextItemElement","$firstItem","_expandFocusedContainer","_collapseFocusedContainer","$focusedNode","_getClosestNonDisabledNode","nodeElement","collapsedNode","decodeURI","expandItem","collapseItem","getNodes","getSelectedNodes","dataAdapter","keyOrItemOrElement","nodeKeysToExpand","scrollCallback","_expandNodes","scrollToElementTopLeft","relativeOffset","keysToExpand","resultCallback","callbacksByNodes","TreeViewSearch","_updateSearch","_repaintContainer","_updateDataAdapter","_searchEditor","_getSearchEditorOptions","rootNodes","isSearchMode","_removeSearchBox","STATUS","BaseRuleValidator","defaultMessage","defaultFormattedMessage","rulesValidators","valueArray","RequiredRuleValidator","NumericRuleValidator","ignoreEmptyValue","useCultureSettings","RangeRuleValidator","validNumber","numeric","validValue","StringLengthRuleValidator","CustomRuleValidator","extraParams","validationCallback","AsyncRuleValidator","reevaluate","_getWrappedPromise","CompareRuleValidator","comparisonTarget","otherValue","comparisonType","PatternRuleValidator","EmailRuleValidator","stringLength","GroupConfig","_pendingValidators","_onValidatorStatusChanged","_resetValidationInfo","_unsubscribeFromAllChangeEvents","validatorResult","_addPendingValidator","_subscribeToChangeEvents","_raiseValidatedEvent","_updateValidationInfo","_validationInfo","_unsubscribeFromChangeEvents","foundValidator","_removePendingValidator","_orderBrokenRules","orderedRules","foundRules","_updateBrokenRules","_resolveIfComplete","_synchronizeValidationInfo","removeRegisteredValidator","registerValidator","ValidationEngine","_$element$data","_$element$data$dxComp","hasValidationGroup","dxValidationGroup","$dxGroup","initGroups","_setDefaultMessage","_addBrokenRule","_rules$","pendingRules","asyncRuleItems","ruleValidationResult","ruleValidator","_validateAsyncRules","_synchronizeGroupValidationInfo","_result$brokenRules","_validationGroup","asyncResults","validateResult","ruleResult","_getPatchedRuleResult","_updateRuleConfig","_getAsyncRulesResult","registerValidatorInGroup","_shouldRemoveGroup","validatorsInGroup","isDefaultGroup","isValidationGroupInstance","initedOptions","newStatus","VALIDATION_ENGINE_CLASS","VALIDATION_SUMMARY_CLASS","ValidationGroup","validatorContainer","_initGroupRegistration","summaryContainer","INVALID_MESSAGE","INVALID_MESSAGE_ALWAYS","INVALID_MESSAGE_CONTENT","VALIDATION_MESSAGE_MIN_WIDTH","_renderInnerHtml","_ensureMessageNotEmpty","_updatePositionByTarget","_toggleModeClass","_updateContentId","_textMarkup","_getTextMarkup","shouldShowMessage","_toggleVisibilityClasses","validationErrorMessage","_err$message","targetWidth","_getPositionsArray","rtlSide","componentOffset","ValidationSummary","_unsubscribeGroup","_groupWasInit","groupSubscription","_groupValidationHandler","_getOrderedItems","orderedItems","foundItems","_itemValidationHandler","itemsChanged","foundRule","foundItem","DefaultAdapter","getCurrentValidationError","VALIDATION_STATUS_PENDING","Validator","_initAdapter","skipValidation","_getEditor","dxStandardEditor","_this$option$editor$o","_this$option$editor","_toggleAccessibilityAttributes","_resetValidationRules","_getValidationRules","_validationRules","currentError","currentResult","_applyValidationResult","_updateValidationResult","validatedAction","focusableFn","isTabIndexNotNaN","isDefaultFocus","isHyperlink","focusable","tabbable","SWATCH_CONTAINER_CLASS_PREFIX","swatchContainer","viewport","swatchClassRegex","swatchClass","viewportSwatchContainer","E1001","E1002","E1003","E1004","E1005","E1006","E1007","E1010","E1011","E1012","E1016","E1018","E1019","E1020","E1021","E1022","E1023","E1025","E1026","E1031","E1032","E1033","E1034","E1035","E1037","E1038","E1039","E1040","E1041","E1042","E1043","E1044","E1045","E1046","E1047","E1048","E1049","E1050","E1051","E1052","E1053","E1054","E1055","E1056","E1058","E1059","E1060","W1001","W1002","W1003","W1004","W1005","W1006","W1007","W1008","W1009","W1010","W1011","W1012","W1013","W1014","W1015","W1016","W1017","W1018","W1019","W1020","W1021","stubComponent","EditorClass","searchEditorOptions","_renderSearch","searchBoxClassName","rootElementClassName","_$searchEditorElement","userEditorOptions","_valueChangeDeferred","_valueChangeTimeout","_cleanAria","hoveredElement","_renderHint","_isFocusable","_attachFeedbackEvents","_toggleIndependentState","_attachFocusEvents","_renderAccessKey","hasChildListeners","hasKeyboardEventHandler","shouldAttach","onlyChildProcessing","keyboardListeners","_updatedHover","_hover","_findHoverTarget","$previous","newHoveredElement","widgetOptionMap","INKRIPPLE_CLASS","INKRIPPLE_WAVE_CLASS","INKRIPPLE_SHOWING_CLASS","INKRIPPLE_HIDING_CLASS","DEFAULT_WAVE_SIZE_COEFFICIENT","MAX_WAVE_SIZE","ANIMATION_DURATION","HOLD_ANIMATION_DURATION","DEFAULT_WAVE_INDEX","initConfig","wavesNumber","durations","getDurations","getInkRipple","getWaves","inkRipple","$currentWave","getWaveStyleConfig","elementDiagonal","waveSize","$wave","wave","hidingTimeout","hideSelectedWave","showingTimeout","showingWaveHandler","durationCss","showingScale","hidingScale","hidingOpacity","animationDuration","componentHooks","onComponentDidMount","onComponentDidUpdate","onComponentShouldUpdate","onComponentWillMount","onComponentWillUnmount","onComponentWillUpdate","_children","newProps","arguments$1","childLen","prop$1","isStringOrNumber","combineFrom","key$1","isLinkEventObject","EMPTY_OBJ","Fragment","normalizeEventName","insertOrAppend","newNode","newDom","lastDom","callAll","arrayFn","findChildVNode","startEdge","findDOMfromVNode","removeVNodeDOM","moveVNodeDOM","createDerivedState","getDerivedStateFromProps","renderCheck","componentComparator","createVNode","renderComplete","setTextContent","isLastValueSameLinkEvent","lastValue","nextValue","mergeUnsetProperties","safeCall1","arg1","keyPrefix","childFlag","normalizeChildren","mergeDefaultHooks","defaultHooks","mergeDefaultProps","resolveComponentFlags","createComponentVNode","createTextVNode","createFragment","createVoidVNode","cloneFragment","vNodeToClone","oldChildren","directClone","propsToClone","_normalizeVNodes","newKey","isPrefixedKey","getFlagsForElementVnode","newChildren","newChildFlags","needsCloning","isNullKey","isPrefixed","normalizeRoot","xlinkNS","xmlNS","getDelegatedEventObject","onDblClick","onKeyPress","onMouseDown","onMouseMove","onMouseUp","onTouchEnd","onTouchMove","onTouchStart","attachedEventCounts","attachedEvents","syntheticEvents","updateOrAddSyntheticEvent","eventsObject","$EV","attachEventToDocument","unmountSyntheticEvent","handleSyntheticEvent","lastEvent","nextEvent","getTargetNode","dispatchEvents","cancelBubble","immediatePropagationStopped","extendEventProperties","rootClickEvent","rootEvent","attachedEvent","triggerEventListener","nativeListenerName","createWrappedFunction","applyValue","fnMethod","newVNode","previousKey","previousArgs","isCheckedType","onTextInputChange","applyValueInput","wrappedOnChange","emptywrapper","inputEvents","nextPropsOrEmpty","multiple","updateChildOptions","updateChildOption","onSelectChange","applyValueSelect","selectEvents","mounting","multiplePropInBoolean","onTextareaInputChange","applyValueTextArea","wrappedOnChange$1","textAreaEvents","domValue","processElement","isControlled","addFormElementEventHandlers","isControlledFormElement","createRef","unmountRef","mountRef","unmount","unmountAllChildren","$UN","clearDOM","removeAllChildren","wrapLinkEvent","ev","patchEvent","patchStyle","lastAttrValue","nextAttrValue","domStyle","removeProperty","patchDangerInnerHTML","lastVNode","lastHtml","nextHtml","patchProp","hasControlledValue","autofocus","setAttributeNS","mountProps","isFormElement","renderNewInput","nextInput","childContext","createClassComponentInstance","usesNewAPI","$N","getSnapshotBeforeUpdate","$SVG","$L","$BS","$BR","$PS","renderFunctionalComponent","mountElement","mountClassComponent","mountFunctionalComponent","mountFunctionalComponentCallbacks","mountText","mountFragment","mountPortal","placeHolderVNode","mountArrayChildren","childrenIsSVG","mountClassComponentCallbacks","createClassMountCallback","createOnMountCallback","replaceWithNewNode","nextVNode","patch","nextFlags","patchElement","patchClassComponent","patchFunctionalComponent","patchText","patchFragment","patchPortal","patchSingleTextChild","lastChildren","nextChildren","patchContentEditableChildren","lastChildFlags","nextChildFlags","nextIsSingle","lastLen","patchChildren","lastContainer","nextContainer","lastProps","lastPropsOrEmpty","nextClassName","nextRef","lastRef","replaceOneVNodeWithMultipleVNodes","lastLength","nextLength","patchKeyedChildren","patchNonKeyedChildren","createDidUpdate","lastState","snapshot","updateClassComponent","hasSCU","nextHooksDefined","lastInput","lastChildrenLength","nextChildrenLength","nextChild","commonLength","aLength","bLength","outerEdge","nextPos","aEnd","bEnd","aNode","bNode","outer","patchKeyedChildrenComplex","aStart","bStart","aLeft","bLeft","Int32Array","canRemoveWholeContent","moved","patched","seq","lis_algorithm","maxLen","arrI","u","hasDocumentAvailable","__render","rootInput","QUEUE","microTaskPending","queueStateChanges","stateKey","$F","rerender","QU","$QU","callSetStateCallbacks","pendingState","_nextContext","getTypeOf","decode","uint8array","Uint8Array","compressedSize","uncompressedSize","crc32","compressedContent","getContentWorker","uncompressWorker","streamInfo","data_length","getCompressedWorker","withStreamInfo","createWorkerFrom","compressWorker","STORE","magic","DEFLATE","base64","binary","createFolders","compressionOptions","comment","unixPermissions","dosPermissions","lie","Uint32Array","_pako","_pakoAction","_pakoOptions","meta","inherits","processChunk","_createPako","transformTo","cleanUp","onData","pako","utf8encode","I","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCFullYear","getUTCMonth","getUTCDate","fileRecord","LOCAL_FILE_HEADER","dirRecord","CENTRAL_FILE_HEADER","bytesWritten","zipComment","zipPlatform","encodeFileName","streamFiles","accumulate","contentBuffer","dirRecords","currentSourceOffset","entriesCount","currentFile","_sources","openedSource","closedSource","DATA_DESCRIPTOR","CENTRAL_DIRECTORY_END","prepareNextSource","isPaused","pause","resume","registerPrevious","generatedError","generateWorker","_compressWorker","files","loadAsync","external","decompressed","checkCRC32","optimizedBinaryString","decodeFileName","utf8decode","prepareContent","fileNameStr","fileCommentStr","unsafeOriginalName","_upstreamEnded","_bindStream","_stream","Readable","_helper","_read","Buffer","newBufferFrom","allocBuffer","alloc","generateInternalStream","checkSupport","generateNodeStream","toNodejsStream","stream","byteAt","zero","lastIndexOfSignature","readAndCheckSignature","readData","checkOffset","checkIndex","setIndex","readInt","readString","readDate","subarray","ZIP64_CENTRAL_DIRECTORY_LOCATOR","ZIP64_CENTRAL_DIRECTORY_END","destType","dataIsReady","_tickScheduled","_tickAndRepeat","isFinished","_tick","extraStreamInfo","isLocked","_listeners","mergeStreamInfo","nodestream","_internalType","_outputType","_mimeType","newBlob","_worker","objectMode","arraybuffer","nodebuffer","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","getBlob","leftOver","applyFromCharCode","Utf8DecodeWorker","Utf8EncodeWorker","stringifyByChunk","stringifyByChar","applyCanBeUsed","byteLength","MAX_VALUE_16BITS","MAX_VALUE_32BITS","pretty","FileReader","readAsArrayBuffer","setimmediate","checkSignature","reader","isSignature","readBlockEndOfCentral","diskNumber","diskWithCentralDirStart","centralDirRecordsOnThisDisk","centralDirRecords","centralDirSize","centralDirOffset","zipCommentLength","readBlockZip64EndOfCentral","zip64EndOfCentralSize","zip64ExtensibleData","readBlockZip64EndOfCentralLocator","diskWithZip64CentralDirStart","relativeOffsetEndOfZip64CentralDir","disksCount","readLocalFiles","localHeaderOffset","readLocalPart","handleUTF8","processAttributes","readCentralDir","zip64","readCentralPart","readEndOfCentral","prepareReader","isEncrypted","bitFlag","useUTF8","fileNameLength","compressionMethod","versionMadeBy","extraFieldsLength","fileCommentLength","diskNumberStart","internalFileAttributes","externalFileAttributes","readExtraFields","parseZIP64ExtraField","fileComment","extraFields","findExtraFieldUnicodePath","findExtraFieldUnicodeComment","_dataBinary","internalStream","_decompressWorker","nodeStream","outcome","callFulfilled","otherCallFulfilled","callRejected","otherCallRejected","chunkSize","windowBits","memLevel","gzip","ended","chunks","strm","avail_out","deflateInit2","deflateSetHeader","dictionary","string2buf","deflateSetDictionary","_dict_set","next_in","avail_in","Buf8","next_out","deflate","buf2binstring","shrinkBuf","deflateEnd","flattenChunks","Deflate","deflateRaw","inflateInit2","Z_OK","inflateGetHeader","Z_FINISH","Z_NO_FLUSH","binstring2buf","inflate","Z_NEED_DICT","inflateSetDictionary","Z_BUF_ERROR","Z_STREAM_END","Z_SYNC_FLUSH","utf8border","buf2string","arraySet","inflateEnd","Inflate","inflateRaw","ungzip","setTyped","Buf16","Buf32","Z_PARTIAL_FLUSH","Z_FULL_FLUSH","Z_BLOCK","Z_TREES","Z_ERRNO","Z_STREAM_ERROR","Z_DATA_ERROR","Z_NO_COMPRESSION","Z_BEST_SPEED","Z_BEST_COMPRESSION","Z_DEFAULT_COMPRESSION","Z_FILTERED","Z_HUFFMAN_ONLY","Z_RLE","Z_FIXED","Z_DEFAULT_STRATEGY","Z_BINARY","Z_TEXT","Z_UNKNOWN","Z_DEFLATED","D","pending_buf","pending_out","total_out","N","_tr_flush_block","block_start","strstart","U","max_chain_length","prev_length","nice_match","w_size","w_mask","good_match","lookahead","match_start","window_size","hash_size","adler","total_in","ins_h","hash_shift","hash_mask","match_length","_tr_tally","max_lazy_match","last_lit","W","prev_match","match_available","good_length","max_lazy","nice_length","max_chain","pending_buf_size","gzhead","gzindex","last_flush","w_bits","hash_bits","dyn_ltree","dyn_dtree","bl_tree","l_desc","d_desc","bl_desc","bl_count","heap","heap_len","heap_max","l_buf","lit_bufsize","d_buf","opt_len","static_len","bi_buf","bi_valid","G","data_type","_tr_init","K","Y","deflateInit","deflateReset","deflateResetKeep","hcrc","_tr_align","_tr_stored_block","deflateInfo","xflags","extra_len","dmax","wsize","whave","wnext","bits","lencode","distcode","lenbits","distbits","sane","havedict","total","wbits","ncode","nlen","ndist","have","lens","work","lendyn","distdyn","back","was","inflateReset","inflateReset2","inflateResetKeep","inflateInit","inflateInfo","static_tree","extra_bits","extra_base","elems","max_length","has_stree","dyn_tree","max_code","stat_desc","J","arrayMap","iteratee","arrayReduce","initAccum","asciiToArray","reAsciiWord","asciiWords","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","toStringTag","baseGetTag","basePropertyOf","baseSlice","isSymbol","INFINITY","symbolProto","baseToString","castSlice","hasUnicode","stringToArray","createCaseFirst","strSymbols","trailing","deburr","words","rsApos","reApos","createCompounder","deburredLetters","deburrLetter","freeGlobal","objectProto","nativeObjectToString","isOwn","unmasked","rsAstralRange","rsComboMarksRange","reComboHalfMarksRange","rsComboSymbolsRange","rsComboRange","rsVarRange","rsZWJ","reHasUnicode","reHasUnicodeWord","hasUnicodeWord","freeSelf","unicodeToArray","rsAstral","rsCombo","rsFitz","rsModifier","rsNonAstral","rsRegional","rsSurrPair","reOptMod","rsOptVar","rsOptJoin","rsSeq","rsSymbol","reUnicode","rsDingbatRange","rsLowerRange","rsMathOpRange","rsNonCharRange","rsPunctuationRange","rsSpaceRange","rsUpperRange","rsBreakRange","rsBreak","rsDigits","rsDingbat","rsLower","rsMisc","rsUpper","rsMiscLower","rsMiscUpper","rsOptContrLower","rsOptContrUpper","rsOrdLower","rsOrdUpper","rsEmoji","reUnicodeWord","unicodeWords","capitalize","camelCase","word","reLatin","reComboMark","isObjectLike","symbolTag","guard","extendStatics","__extends","__assign","__rest","__values","__read","__spread","numberFormatKeys","OBJECT_STRING","parseArgs","looseClone","looseEqual","isObjectA","isObjectB","isArrayA","isArrayB","keysA","keysB","escapeHtml","rawText","escapeParams","_i18n","$t","i18n","$i18n","_t","_getMessages","$tc","choice","_tc","$te","_te","$d","$n","beforeCreate","__i18n","VueI18n","localeMessages","resource","mergeLocaleMessage","_i18nWatcher","watchI18nData","rootI18n","fallbackLocale","formatFallbackMessages","silentTranslationWarn","silentFallbackWarn","pluralizationRules","preserveDirectiveContent","localeMessages$1","sharedMessages","sync","_localeWatcher","watchLocale","onComponentInstanceCreated","beforeMount","subscribeDataChanging","_subscribing","mounted","__INTLIFY_META__","beforeDestroy","$nextTick","unsubscribeDataChanging","destroyVM","interpolationComponent","functional","places","slots","onlyHasDefaultPlace","useLegacyPlaces","createParamsFromPlaces","everyPlace","vnodeHasPlaceAttribute","assignChildPlace","assignChildIndex","place","vnode","numberComponent","_ntp","slot","scopedSlots","staticClass","binding","oldVNode","localeEqual","_localeMessage","getLocaleMessage","unbind","modifiers","_vt","_locale","ref$1","ref$2","tc","makeParams","install","_Vue","installed","directive","strats","optionMergeStrategies","parentVal","childVal","BaseFormatter","_caches","interpolate","tokens","RE_TOKEN_LIST_VALUE","RE_TOKEN_NAMED_VALUE","sub","isClosed","compiled","APPEND","PUSH","INC_SUB_PATH_DEPTH","PUSH_SUB_PATH","BEFORE_PATH","IN_PATH","BEFORE_IDENT","IN_IDENT","IN_SUB_PATH","IN_SINGLE_QUOTE","IN_DOUBLE_QUOTE","AFTER_PATH","pathStateMachine","literalValueRE","isLiteral","exp","stripQuotes","getPathCharType","formatSubPath","trimmed","parse$1","newChar","typeMap","subPathDepth","maybeUnescapeQuote","I18nPath","parsePath","hit","getPathValue","availabilities","htmlTagMatcher","linkKeyMatcher","linkKeyPrefixMatcher","bracketsMatcher","defaultModifiers","toLocaleUpperCase","toLocaleLowerCase","defaultFormatter","this$1","dateTimeFormats","numberFormats","_vm","_formatter","_modifiers","_missing","missing","_root","_sync","_fallbackRoot","fallbackRoot","_formatFallbackMessages","_silentTranslationWarn","_silentFallbackWarn","_dateTimeFormatters","_numberFormatters","_path","_dataListeners","_componentInstanceCreatedListener","componentInstanceCreatedListener","_preserveDirectiveContent","_warnHtmlInMessage","warnHtmlInMessage","_postTranslation","postTranslation","_escapeParameterHtml","escapeParameterHtml","getChoiceIndex","choicesLength","thisPrototype","prototypeGetChoiceIndex","defaultImpl","_choice","_choicesLength","_exist","_checkLocaleMessage","_initVM","prototypeAccessors","availableLocales","ret","$destroy","$watch","$forceUpdate","$set","newI18n","_getDateTimeFormats","_getNumberFormats","_localeChainCache","fallback","orgLevel","_warnDefault","interpolateMode","missingRet","parsedArgs","_isFallbackRoot","_isSilentFallbackWarn","_isSilentFallback","_isSilentTranslationWarn","_interpolate","visitedLinkStack","pathRet","_link","idx","linkKeyPrefixMatches","linkPrefix","formatterName","linkPlaceholder","translated","_translate","_createMessageContext","_named","named","_appendItemToChain","blocks","follow","_appendLocaleToChain","_appendBlockToChain","_getLocaleChain","predefined","fetchChoice","choices","setLocaleMessage","getDateTimeFormat","setDateTimeFormat","_clearDateTimeFormat","mergeDateTimeFormat","_localizeDateTime","getNumberFormat","setNumberFormat","_clearNumberFormat","mergeNumberFormat","_getNumberFormatter","_n","nf","formatToParts","intlDefined","dateTimeFormat","encodeReserveRE","encodeReserveReplacer","commaRE","resolveQuery","extraQuery","_parseQuery","parsedQuery","parseQuery","castQueryParamValue","stringifyQuery","val2","trailingSlashRE","createRoute","redirectedFrom","route","getFullPath","formatMatch","START","_stringifyQuery","isSameRoute","onlyPath","isObjectEqual","aKeys","bKeys","aVal","bKey","bVal","isIncludedRoute","queryIncludes","handleRouteEntered","instances","cbs","enteredCbs","i$1","_isBeingDestroyed","routerView","$createElement","$route","_routerViewCache","_routerRoot","vnodeData","$vnode","keepAlive","_directInactive","routerViewDepth","cachedComponent","configProps","fillPropsinData","registerRouteInstance","prepatch","propsToPass","resolveProps","resolvePath","firstChar","segments","hashIndex","queryIndex","cleanPath","isarray","pathToRegexp_1","pathToRegexp","parse_1","compile_1","tokensToFunction_1","tokensToFunction","tokensToRegExp_1","tokensToRegExp","PATH_REGEXP","defaultDelimiter","escaped","modifier","partial","optional","escapeGroup","encodeURIComponentPretty","encodeAsterisk","attachKeys","sensitive","regexpToRegexp","arrayToRegexp","stringToRegexp","endsWithDelimiter","regexpCompileCache","fillParams","routeMsg","filler","pathMatch","normalizeLocation","_normalized","params$1","rawPath","parsedPath","basePath","toTypes","eventTypes","Link","exact","exactPath","activeClass","exactActiveClass","ariaCurrentValue","$router","globalActiveClass","linkActiveClass","globalExactActiveClass","linkExactActiveClass","activeClassFallback","exactActiveClassFallback","compareTarget","guardEvent","scopedSlot","$scopedSlots","$hasNormal","isExactActive","findAnchor","$slots","isStatic","aData","handler$1","event$1","aAttrs","isDef","registerInstance","callVal","_parentVnode","_router","util","defineReactive","destroyed","_route","beforeRouteEnter","beforeRouteLeave","beforeRouteUpdate","created","inBrowser","createRouteMap","routes","oldPathList","oldPathMap","oldNameMap","parentRoute","pathList","pathMap","nameMap","addRouteRecord","matchAs","pathToRegexpOptions","normalizedPath","normalizePath","compileRouteRegex","redirect","beforeEnter","childMatchAs","aliasRoute","createMatcher","addRoutes","addRoute","parentOrRoute","getRoutes","currentRoute","_createRoute","paramNames","record$1","matchRoute","originalRedirect","resolveRecordPath","resolvedPath","aliasedPath","aliasedMatch","aliasedRecord","Time","genStateKey","getStateKey","setStateKey","positionStore","setupScroll","scrollRestoration","protocolAndPath","absolutePath","stateCopy","handlePopState","isPop","behavior","scrollBehavior","getScrollPosition","scrollToPosition","saveScrollPosition","getElementPosition","docEl","docRect","elRect","isValidPosition","normalizePosition","hashStartsWithNumberRE","getElementById","supportsPushState","runQueue","NavigationFailureType","redirected","aborted","cancelled","duplicated","createNavigationRedirectedError","createRouterError","stringifyRoute","createNavigationDuplicatedError","createNavigationCancelledError","createNavigationAbortedError","_isRouter","propertiesToLog","isNavigationFailure","errorType","resolveAsyncComponents","hasAsync","flatMapComponents","cid","resolvedDef","isESModule","resolved","comp","flatten","hasSymbol","History","normalizeBase","readyCbs","readyErrorCbs","errorCbs","listeners","baseEl","resolveQueue","updated","deactivated","extractGuards","records","guards","extractGuard","extractLeaveGuards","bindGuard","extractUpdateHooks","extractEnterGuards","bindEnterGuard","onReady","errorCb","transitionTo","onComplete","onAbort","confirmTransition","updateRoute","ensureURL","afterHooks","lastRouteIndex","lastCurrentIndex","beforeHooks","enterGuards","resolveHooks","setupListeners","cleanupListener","HTML5History","_startLocation","expectScroll","supportsScroll","handleRoutingEvent","go","fromRoute","getCurrentLocation","pathLowerCase","baseLowerCase","HashHistory","checkFallback","ensureSlash","replaceHash","pushHash","getUrl","AbstractHistory","VueRouter","registerHook","createHref","$once","handleInitialScroll","routeOrError","beforeResolve","afterEach","forward","getMatchedComponents","normalizedTo","START_LOCATION","locals","listToStyles","newStyles","sourceMap","hasDocument","DEBUG","stylesInDom","singletonElement","singletonCounter","isProduction","ssrIdKey","isOldIE","addStylesClient","_isProduction","addStylesToDom","newList","mayRemove","refs","addStyle","createStyleElement","styleIndex","applyToSingletonTag","applyToTag","newObj","replaceText","textStore","styleSheet","cssNode","ssrId","asyncIterator","_invoke","delegate","sent","_sent","dispatchException","abrupt","__await","resultName","nextLoc","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","completion","displayName","isGeneratorFunction","awrap","AsyncIterator","rval","delegateYield","regeneratorRuntime","negated","loader","__$waitInstance","$store","dispatch","namespaced","waitingFor","progresses","any","commit","progress","mutations","waiter","staticRenderFns","_compiled","_scopeId","ssrContext","__VUE_SSR_CONTEXT__","_registeredComponents","_ssrRegister","_injectStyles","for","enterClass","enterActiveClass","enterToClass","leaveClass","leaveActiveClass","leaveToClass","transitionClass","computed","waitsFor","_self","$emit","afterAnter","enterCancelled","beforeLeave","afterLeave","leaveCancelled","_v","_s","accessorName","useVuex","vuexModuleName","registerDirective","directiveName","_modules","stateHandler","dispatchWaitingAction","wait","emptyObject","isUndef","isTrue","isFalse","_toString","isValidArrayIndex","makeMap","expectsLowerCase","isReservedAttribute","remove$2","cached","camelizeRE","hyphenateRE","hyphenate","polyfillBind","boundFn","nativeBind","_from","identity","looseIndexOf","hasChanged","SSR_ATTR","ASSET_TYPES","LIFECYCLE_HOOKS","productionTip","devtools","ignoredElements","keyCodes","isReservedTag","isReservedAttr","isUnknownElement","getTagNamespace","parsePlatformTagName","mustUseProp","_lifecycleHooks","unicodeRegExp","isReserved","bailRE","hasProto","UA","isIE","isIE9","isEdge","isIOS","_isServer","isFF","nativeWatch","supportsPassive","isServerRendering","env","VUE_ENV","__VUE_DEVTOOLS_GLOBAL_HOOK__","_Set","Reflect","currentInstance","getCurrentInstance","setCurrentInstance","_scope","uid$2","Dep","subs","addSub","removeSub","depend","addDep","targetStack","pushTarget","popTarget","VNode","elm","componentOptions","asyncFactory","fnContext","fnOptions","fnScopeId","isRootInsert","isComment","isOnce","asyncMeta","isAsyncPlaceholder","createEmptyVNode","cloneVNode","cloned","arrayProto","arrayMethods","methodsToPatch","reactive","makeReactive","shallowReactive","shallow","isReadonly","isReactive","__ob__","isShallow","__v_isShallow","__v_isReadonly","isProxy","toRaw","observed","markRaw","inserted","ob","observeArray","dep","RefFlag","isRef","__v_isRef","shallowRef","triggerRef","unref","customRef","factory","newVal","toRefs","toRef","rawToReadonlyFlag","rawToShallowReadonlyFlag","createReadonly","existingFlag","existingProxy","defineReadonlyProperty","shallowReadonly","seenObjects","traverse","_traverse","seen","isA","isFrozen","depId","normalizeEvent","createFnInvoker","invoker","invokeWithErrorHandling","updateListeners","oldOn","createOnceHandler","old","mergeVNodeHook","hookKey","oldHook","wrappedHook","extractPropsFromVNodeData","propOptions","checkProp","simpleNormalizeChildren","normalizeArrayChildren","nestedIndex","_isVList","provide","provides","_provided","parentProvides","treatDefaultAsFactory","initProvide","provideOption","provided","initInjections","resolveInject","toggleObserving","provideKey","provideDefault","resolveSlots","name_2","isWhitespace","normalizeScopedSlots","ownerVm","normalSlots","prevScopedSlots","hasNormalSlots","isStable","$stable","$key","key_1","normalizeScopedSlot","key_2","proxyNormalSlot","isExtensible","renderList","renderSlot","fallbackRender","bindObject","scopedSlotFn","resolveFilter","resolveAsset","isKeyNotMatch","expect","checkKeyCodes","eventKeyCode","builtInKeyCode","eventKeyName","builtInKeyName","mappedKeyCode","bindObjectProps","asProp","isSync","domProps","camelizedKey","hyphenatedKey","renderStatic","isInFor","_staticTrees","_renderProxy","markStatic","markOnce","markStaticNode","bindObjectListeners","existing","ours","resolveScopedSlots","hasDynamicKeys","contentHashKey","bindDynamicKeys","baseObj","prependModifier","installRenderHelpers","_o","_l","_q","_m","_u","_g","_p","FunctionalRenderContext","contextVm","_original","isCompiled","needNormalization","injections","createElement$1","createFunctionalComponent","validateProp","mergeProps","renderContext","cloneAndMarkFunctionalResult","vnodes","componentVNodeHooks","hydrating","_isDestroyed","mountedNode","createComponentInstanceForVnode","activeInstance","$mount","oldVnode","updateChildComponent","_isMounted","callHook$1","queueActivatedComponent","activateChildComponent","deactivateChildComponent","hooksToMerge","createComponent","baseCtor","_base","resolveAsyncComponent","createAsyncPlaceholder","resolveConstructorOptions","transformModel","nativeOn","installComponentHooks","_isComponent","inlineTemplate","toMerge","_merged","mergeHook","f1","f2","SIMPLE_NORMALIZE","ALWAYS_NORMALIZE","normalizationType","alwaysNormalize","pre","applyNS","registerDeepBindings","initSetup","_setupContext","createSetupContext","setupResult","_setupState","__sfc","_setupProxy","proxyWithRefUnwrap","initAttrsProxy","initSlotsProxy","expose","exposed","_attrsProxy","syncSetupAttrs","$attrs","defineProxyAttr","_slotsProxy","syncSetupSlots","useSlots","getContext","useAttrs","mergeDefaults","opt","_vnode","parentVnode","parentData","_parentListeners","target$1","currentRenderingInstance","renderMixin","ensureCtor","errorComp","owners","loading","loadingComp","owners_1","sync_1","timerLoading_1","timerTimeout_1","$on","forceRender_1","reject_1","res_1","getFirstComponentChild","initEvents","_hasHookEvent","updateComponentListeners","add$1","remove$1","$off","createOnceHandler$1","_target","onceHandler","oldListeners","eventsMixin","hookRE","i_1","setActiveInstance","prevActiveInstance","initLifecycle","$refs","_watcher","lifecycleMixin","prevEl","prevVnode","restoreActiveInstance","__patch__","__vue__","vmCount","mountComponent","updateComponent","watcherOptions","Watcher","preWatchers","_preWatchers","renderChildren","newScopedSlots","oldScopedSlots","hasDynamicScopedSlot","needsForceUpdate","prevVNode","$listeners","propKeys","_propKeys","isInInactiveTree","direct","activatedChildren","waiting","flushing","resetSchedulerState","activeEffectScope","currentFlushTimestamp","getNow","performance_1","flushSchedulerQueue","activatedQueue","updatedQueue","callActivatedHooks","callUpdatedHooks","queueWatcher","noRecurse","EffectScope","detached","cleanups","scopes","currentEffectScope","fromParent","effectScope","recordEffectScope","getCurrentScope","onScopeDispose","uid$1","expOrFn","isRenderWatcher","lazy","dirty","deps","newDeps","depIds","newDepIds","expression","cleanupDeps","tmp","onStop","getterOrOptions","debugOptions","onlyGetter","WATCHER","WATCHER_CB","WATCHER_GETTER","WATCHER_CLEANUP","watchEffect","doWatch","watchPostEffect","watchSyncEffect","INITIAL_WATCHER_VALUE","onTrack","onTrigger","forceTrigger","isMultiSource","onCleanup","baseGetter_1","errorCaptured","globalHandleError","_handled","timerFunc","isUsingMicroTask","flushCallbacks","copies","p_1","counter_1","observer","textNode_1","useCssModule","useCssVars","vars","createLifeCycle","hookName","injectHook","mergeLifecycleHook","onBeforeMount","onMounted","onBeforeUpdate","onBeforeUnmount","onUnmounted","onErrorCaptured","onActivated","onDeactivated","onServerPrefetch","onRenderTracked","onRenderTriggered","defineComponent","arrayKeys","NO_INIITIAL_VALUE","protoAugment","copyAugment","__v_skip","customSetter","childOb","dependArray","mergeData","toVal","fromVal","mergeDataOrFn","instanceData","defaultData","dedupeHooks","mergeAssets","parent_1","defaultStrat","normalizeInject","normalizeDirectives$1","dirs","directives","mergeOptions","extends","mergeField","strat","warnMissing","assets","camelizedId","PascalCaseId","absent","booleanIndex","getTypeIndex","getPropDefaultValue","prevShouldObserve","getType","functionTypeCheckRE","isSameType","expectedTypes","sharedPropertyDefinition","sourceKey","initState","initProps$1","initMethods","initData","initComputed$1","initWatch","propsOptions","computedWatcherOptions","_computedWatchers","isSSR","userDef","defineComputed","shouldCache","createComputedGetter","createGetterInvoker","createWatcher","stateMixin","dataDef","propsDef","$delete","initMixin$1","_uid","initInternalComponent","vnodeComponentOptions","superOptions","cachedSuperOptions","modifiedOptions","resolveModifiedOptions","extendOptions","latest","sealed","sealedOptions","initUse","plugin","installedPlugins","_installedPlugins","initMixin","initExtend","Super","SuperId","cachedCtors","_Ctor","Sub","initProps","initComputed","Comp","initAssetRegisters","definition","getComponentName","pruneCache","keepAliveInstance","pruneCacheEntry","patternTypes","KeepAlive","exclude","cacheVNode","vnodeToCache","keyToCache","builtInComponents","initGlobalAPI","configDef","observable","acceptValue","isEnumeratedAttr","isValidContentEditableValue","convertEnumeratedValue","isFalsyAttrValue","isBooleanAttr","isXlink","getXlinkProp","genClassForVnode","mergeClassData","renderClass","dynamicClass","stringifyClass","stringifyArray","stringifyObject","stringified","namespaceMap","svg","isHTMLTag","unknownElementCache","HTMLUnknownElement","HTMLElement","isTextInputType","createComment","referenceNode","setStyleScope","scopeId","nodeOps","registerRef","isRemoval","refValue","$refsValue","isFor","refInFor","_isString","_isRef","setSetupRef","emptyNode","sameVnode","sameInputType","typeA","typeB","createKeyToOldIdx","beginIdx","endIdx","createPatchFunction","backend","emptyNodeAt","createRmCb","childElm","removeNode","createElm","insertedVnodeQueue","parentElm","refElm","nested","ownerArray","setScope","invokeCreateHooks","isReactivated","initComponent","reactivateComponent","pendingInsert","isPatchable","i_2","ancestor","addVnodes","startIdx","invokeDestroyHook","removeVnodes","removeAndInvokeRemoveHook","i_3","updateChildren","oldCh","newCh","removeOnly","oldKeyToIdx","idxInOld","vnodeToMove","oldStartIdx","newStartIdx","oldEndIdx","oldStartVnode","oldEndVnode","newEndIdx","newStartVnode","newEndVnode","canMove","patchVnode","findIdxInOld","i_5","postpatch","invokeInsertHook","i_6","isRenderedModule","inVPre","hasChildNodes","childrenMatch","i_7","fullInvoke","isInitialPatch","isRealElement","oldElm","_leaveCb","patchable","i_8","i_9","insert_1","i_10","updateDirectives","oldDir","isCreate","isDestroy","oldDirs","normalizeDirectives","newDirs","dirsWithInsert","dirsWithPostpatch","oldArg","callHook","componentUpdated","callInsert","emptyModifiers","getRawDirName","rawName","baseModules","updateAttrs","inheritAttrs","oldAttrs","_v_attr_proxy","setAttr","removeAttributeNS","isInPre","baseSetAttr","__ieph","blocker_1","updateClass","_transitionClasses","_prevClass","klass","RANGE_TOKEN","CHECKBOX_RADIO_TOKEN","normalizeEvents","useMicrotaskFix","attachedTimestamp_1","original_1","updateDOMListeners","svgContainer","updateDOMProps","strCur","shouldUpdateValue","checkVal","composing","isNotInFocusAndDirty","isDirtyWithModifiers","notInFocus","_vModifiers","parseStyleText","listDelimiter","propertyDelimiter","normalizeStyleData","normalizeStyleBinding","staticStyle","bindingStyle","getStyle","checkChild","styleData","emptyStyle","cssVarRE","importantRE","setProp","vendorNames","capName","updateStyle","oldStaticStyle","oldStyleBinding","normalizedStyle","oldStyle","whitespaceRE","tar","resolveTransition","autoCssTransition","hasTransition","TRANSITION","ANIMATION","transitionProp","transitionEndEvent","animationProp","animationEndEvent","ontransitionend","onwebkittransitionend","onanimationend","onwebkitanimationend","raf","nextFrame","addTransitionClass","transitionClasses","removeTransitionClass","whenTransitionEnds","expectedType","getTransitionInfo","propCount","transformRE","transitionDelays","transitionDurations","transitionTimeout","getTimeout","animationDelays","animationDurations","animationTimeout","hasTransform","delays","toMs","toggleDisplay","_enterCb","appearClass","appearToClass","appearActiveClass","afterEnter","beforeAppear","appear","afterAppear","appearCancelled","transitionNode","isAppear","startClass","toClass","beforeEnterHook","enterHook","afterEnterHook","enterCancelledHook","explicitEnterDuration","expectsCSS","userWantsControl","getHookArgumentsLength","pendingNode","_pending","isValidDuration","delayLeave","explicitLeaveDuration","performLeave","invokerFns","_enter","platformModules","vmodel","_vOptions","setSelected","onCompositionStart","onCompositionEnd","prevOptions_1","curOptions_1","hasNoMatchingOption","actuallySetSelected","isMultiple","locateNode","originalDisplay","__vOriginalDisplay","platformDirectives","transitionProps","getRealChild","compOptions","extractTransitionData","rawChild","hasParentTransition","isSameChild","oldChild","isNotTextNode","isVShowDirective","Transition","_leaving","oldRawChild","delayedLeave_1","moveClass","TransitionGroup","kept","prevChildren","rawChildren","transitionData","hasMove","callPendingCbs","recordPosition","applyTranslation","_reflow","el_1","WebkitTransform","_moveCb","_hasMove","newPos","oldPos","platformComponents","_extends","_typeof","_toPrimitive","prim","_toPropertyKey","_defineProperty","toPropertyKey","_objectSpread2","_objectWithoutPropertiesLoose","excluded","sourceKeys"],"sourceRoot":""}